문제

Eclipse RCP 및 전체 관점/보기/편집기 설계에 대한 질문 - 여러 모니터에 여러 개의 Windows를 표시 할 애플리케이션을 만드는 가장 좋은 방법은 무엇입니까? 튜토리얼과 책 내가 본 튜토리얼과 책 항상 RCP/SWT 디자인은 단일 응용 프로그램 창 내의 관점 내부보기에 포장합니다.

하나의 창이 다른 모든 것을 지배해야합니까? 아니면 모두 동일해야합니까 (마지막 종료 신청서를 닫습니다)? 관점과 견해를 어떻게 다루나요? 우리가 알아야 할 다른 것들이 있습니까?

환경 : Eclipse Ganymede, Windows XP.

도움이 되었습니까?

해결책

단일 일식 워크 벤치는 여러 개의 창을 만들 수 있습니다. 각 창은 원근법을 사용하여 배치되므로 다른 창은 다른 관점이나 동일한 관점으로 설정 될 수 있으며 다른 창과 독립적으로 각 창의 관점을 전환 할 수 있습니다.

각 창에 대한 입력을 설정할 수도 있습니다. 이는 각 창이 다른 데이터에서 작업하는 경우 유용합니다 (예 : 각 창이 다른 서버에 연결되어 있거나 모두 동일한 스키마이지만 다른 데이터가있는 다른 데이터베이스의 데이터를 보여줄 수 있음).

다른 모니터에서 동일한 데이터에 대한 다른 관점을 볼 수 있도록 Windows 만 사용하고있을 수 있습니다. 이 경우 프로그래밍 방식으로 Windows를 생성 할 필요는 없지만 워크 벤치에서 제공하는 작업 만 추가하면됩니다. ActionBaradvisor 클래스를 수정하여 수행 할 수 있습니다.

필드 선언에 추가 :

private IWorkbenchAction newWindowAction;

작업을 수행하는 코드에 추가하십시오 (일반적으로 Makeactions라고하는 메소드) :

    newWindowAction = ActionFactory.OPEN_NEW_WINDOW.create(window);
    register(newWindowAction);

메뉴를 만드는 코드에 추가하십시오.

    menu.add(newWindowAction);

여기서 메뉴는 일반적으로 창 메뉴입니다. 응용 프로그램에 이미 창 메뉴가없고 하나를 만들려면 다음 줄이 작동합니다.

    MenuManager menu = new MenuManager(
      "&Window", 
      IWorkbenchActionConstants.M_WINDOW);

이렇게하면 Eclipse IDE의 Window-> 새 창 메뉴 항목과 같은 방식으로 새 창을 만들 수있는 메뉴 항목이 제공됩니다.

반면에 각 창이 다른 데이터를 표시하려면 새 창을 프로그래밍 방식으로 열어야합니다. 이를 통해 각 창에 대해 다른 입력을 설정할 수 있습니다. 코드 라인이 필요합니다.

IWorkbenchPage newPage = window.openPage(inputObject);

여기서 inputObject에는 창에 표시된 데이터를 식별하는 정보가 포함되어 있습니다. 초기 관점을 설정하려면 페이지에서 setPerspective를 호출하여 수행 할 수 있습니다.

각 창에서 제목을 설정하려고합니다.

newPage.getWorkbenchWindow().getShell().setText(windowTitle);

여기서 Windowtitle은 창에 대한 입력을 설명하는 문자열입니다.

다음과 같이 창에 대한 입력을 가져올 수 있습니다.

window.getActivePage().getInput()

그런 다음 창 입력으로 사용하는 클래스 에이 클래스에 캐스트 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top