![]() |
Abbildung 1 |
Lösung: Im WorkbenchWindowAdvisor (bzw. in der Klasse die von diesem erbt) muss die Methode isDurableFolder überschriben werden:
@Override
public boolean isDurableFolder(String perspectiveId, String folderId) {
if (folderId.equals("folderName")) {
if ("perspective.id".equals(perspectiveId)) {
return true;
}
}
return super.isDurableFolder(perspectiveId, folderId);
}
Der
folderName
ist der Name des IFolder
der in der Persepctive Klasse angelegt wurde. perspective.id
ist die im plugin.xml eingetragene ID der Perspective.Das Ergebnis ist in Abbildung 2 dargestellt:
![]() |
Abbildung 2 |
Hier ein Auszug aus der Perspective Klasse:
public class Perspective implements IPerspectiveFactory {
public static final String ID = "perspective.id";
public void createInitialLayout(IPageLayout layout) {
String editorArea = layout.getEditorArea();
layout.setEditorAreaVisible(false);
layout.addStandaloneView(NavigationView.ID, false,
IPageLayout.LEFT, 0.25f, editorArea);
IFolderLayout folder = layout.createFolder("inputFolder",
IPageLayout.TOP, 0.5f, editorArea);
layout.getViewLayout(NavigationView.ID).setCloseable(false);
}
}
Anzumerken sei, dass derartige Verweneung der
isDurableFolder
Methode auf den Spezialfall einer Applikation mit einen Navigationsbaum links und dem Inhalt rechts passt. Sollten komplexere GUIs gefordert sein, muss die Methode entsprechned modifiziert werden.Dieser Artikel basiert auf folgendem Posting bei stackoverflow.com.