2009-03-26 5 views
5

Frage zu Eclipse RCP und ganze Perspektive/Ansicht/Editor-Design - Was ist der beste Weg, um Anwendung zu erstellen, die mehrere Fenster auf mehreren Monitoren anzeigen? Tutorials und Buch Ich habe gesehen, RCP/SWT-Design immer in Ansichten innerhalb Perspektive in einzelnen Anwendungsfenster zu packen.Eclipse RCP-Anwendung - Multi-Window-Design für mehrere Monitore

Sollte ein Fenster alle anderen regeln oder alle sollten gleich sein (beim letzten Schließen der Anwendung)? Wie geht es mit den Perspektiven und Ansichten? Gibt es noch andere Dinge, die wir wissen sollten?

Umgebung: Eclipse Ganymed, Windows XP.

Antwort

7

Eine einzelne Eclipse-Workbench kann mehrere Fenster erstellen. Jedes Fenster ist mit einer Perspektive angelegt, so dass verschiedene Fenster auf verschiedene Perspektiven oder die gleiche Perspektive eingestellt werden können und Sie die Perspektiven in jedem Fenster unabhängig von den anderen Fenstern wechseln können.

Sie können auch die Eingabe für jedes Fenster festlegen. Dies ist nützlich, wenn jedes Fenster an verschiedenen Daten arbeitet (z. B. könnte jedes Fenster mit einem anderen Server verbunden sein oder Daten aus verschiedenen Datenbanken anzeigen, die alle dasselbe Schema, aber unterschiedliche Daten haben).

Es kann sein, dass Sie nur Windows verwenden, so dass Sie verschiedene Perspektiven der gleichen Daten auf verschiedenen Monitoren sehen können. In diesem Fall müssen Sie die Fenster nicht programmatisch erstellen, sondern müssen lediglich die von der Workbench bereitgestellte Aktion hinzufügen. Dies kann durch Änderung Ihrer ActionBarAdvisor Klasse erfolgen:

zu der Feld Erklärungen hinzu:

private IWorkbenchAction newWindowAction; 

zum Code hinzufügen, wo Sie die Aktionen zu machen (in der Regel eine Methode namens makeActions):

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

, um den Code hinzuzufügen, wo Sie die Menüs zu erstellen:

menu.add(newWindowAction); 

wo Menü typica lly das Fenstermenü. Wenn Sie nicht über ein Menü Fenster bereits in Ihrer Anwendung und mögen erstellen, wird die folgende Zeile funktionieren:

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

Dies gibt Ihnen einen Menüpunkt, der ein neues Fenster in der gleichen Art und Weise schaffen als Fenster-> Neues Fenster-Menüelement in der Eclipse-IDE.

Wenn auf der anderen Seite jedes Fenster unterschiedliche Daten anzeigen soll, müssen Sie die neuen Fenster programmatisch öffnen. Dadurch können Sie für jedes Fenster unterschiedliche Eingaben vornehmen. Sie erhalten eine Codezeile so etwas wie benötigen:

IWorkbenchPage newPage = window.openPage(inputObject); 

wo Inputobject-Informationen enthält, die die Daten im Fenster angezeigt identifiziert. Wenn Sie die Anfangsperspektive festlegen möchten, können Sie dies tun, indem Sie setPerspective auf der Seite aufrufen.

Sie wollen den Titel in jedem Fenster setzen:

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

wo window eine Zeichenfolge ist, die Eingabe in das Fenster zu beschreiben.

Sie können den Eingang für ein Fenster wie folgt holen:

window.getActivePage().getInput() 

Sie können dann diese werfen, was auch immer Klasse, die Sie als Ihre Fenster Eingabe verwenden.

+0

toller start auf stackoverflow, danke! – tomash

+0

Das ist RCP3, oder? – Weltraumschaf

Verwandte Themen