RCP Views

robertmr

Grünschnabel
Hallo!

Habe noch mal eine Frage zu Views in RCP. Wenn man ein neues Plugin-Projekt mit View erzeugt, bekommt man bereits eine View.java vorgeneriert.

wie verhält es sich nun, wenn ich in meiner Anwendung mehrere Views (sprich Masken/Bilder) benötige, die über Menü aufgerufen werden. Wo lege ich diese dann als View ab? Wie spreche ich sie in meiner MenuCommand-Klasse an? Diese zweite View soll dann anstelle der ersten an der Oberfläche angezeigt werden.

Viele Grüße
Robert
 
Hallo,

Sie haben in Ihrem von Eclipse generierten Plugin-In bereits eine Datei erstellt bekommen, die nennt sich Perspective.java

In dieser Datei legen Sie Platzhalter für die verschiedenen Views an - sprich, wo sollen die Views geöffnet werden, wenn der Aufruf dazu stattfindet.

Ein kleines Beispiel:

Java:
public class Perspective implements IPerspectiveFactory {

	public void createInitialLayout(IPageLayout layout) {
		
	  String editorArea = layout.getEditorArea();
		layout.setEditorAreaVisible(false);
		layout.setFixed(true);
		
		/**
		 * Festlegen der Karteikarten
		 */
		IFolderLayout folderNav = layout.createFolder("navi", IPageLayout.LEFT, 0.25f, editorArea);
		IFolderLayout folderViews = layout.createFolder("view", IPageLayout.RIGHT, 0.75f, editorArea);

		/**
		 * Views zu folderNav hinzufügen
		 */
		folderNav.addView(View.ID); // Fügt eine View zu folderNav hinzu und öffnet sie standardmäßig.
		
		/**
		 * Views zu folderViews hinzufügen
		 */
		folderViews.addPlaceholder(View1.ID); // Fügt View1 als Platzhalter hinzu. Das heißt, wenn nun der Aufruf stattfindet, dass diese View geöffnet werden soll, dann wird sie in dem hier definiertem Bereich geöffnet.
		folderViews.addPlaceholder(View2.ID); // das gleiche gilt für View2.

        }
}

angenommen Sie haben nun irgendwo in einer Toolbar vor, eine andere View zu öffnen, dann würde das in etwa so aussehen:

Java:
Action sampleOpenViewAction = new Action("View öffnen") {
    public void run() {
            try {
                    PlatformUI.getWorkbench().getActiveWorkbenchWindow().
                             getActivePage().showView(View1.ID); // Die View wird in dem in Perspective.java definiertem Bereich (folderViews) geöffnet.
            } 
            catch (PartInitException e) {
                    System.err.println("ERROR: \t View1konnte nicht geöffnet werden");
            }
};

Wichtig ist dabei, dass Ihre Views alle eine ID haben , und, dass diese ID auch einer View in der plugin.xml zugewiesen wurde, sonst schlägt der Aufruf fehl.

Weitere Informationen zu Eclipse Views, plugin.xml, Perspective in RCP-Applications

http://www.eclipse.org/articles/Article-RCP-3/tutorial3.html

Gruß,
Jens
 
Zurück