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.
toller start auf stackoverflow, danke! – tomash
Das ist RCP3, oder? – Weltraumschaf