Hallo zusammen,
ich versuche mich gerade wieder ein wenig an Eclipse RCP.
Dabei habe ich folgendes Problem.
Ich habe eine Klasse PerspektiveFactory in der ich mehrere Views hinzufüge. Die werden dann ja auch alle in dem Programm angezeigt, wenn ich es starte. Einen von diesen Views möchte ich zwar in meiner Perspektive haben, aber ihn im initialen Zustand der Perspektive nicht sehen.
Zuerst habe ich ihn gar nciht erst der Perspektive hinzugefügt, aber dann ist es ja nicht möglich ihn spter im Programm in die Perspektive zu intregrieren und zum Beispiel neben einen anderen View der Perspektive zu legen.
Also habe ich es per Code versucht. Bekomme dann allerdings eine NullPointerException und weiß nicht weiter.
Über Hilfe wäre ich sehr dankbar.
Grüße,
Rainbow
ich versuche mich gerade wieder ein wenig an Eclipse RCP.
Dabei habe ich folgendes Problem.
Ich habe eine Klasse PerspektiveFactory in der ich mehrere Views hinzufüge. Die werden dann ja auch alle in dem Programm angezeigt, wenn ich es starte. Einen von diesen Views möchte ich zwar in meiner Perspektive haben, aber ihn im initialen Zustand der Perspektive nicht sehen.
Zuerst habe ich ihn gar nciht erst der Perspektive hinzugefügt, aber dann ist es ja nicht möglich ihn spter im Programm in die Perspektive zu intregrieren und zum Beispiel neben einen anderen View der Perspektive zu legen.
Also habe ich es per Code versucht. Bekomme dann allerdings eine NullPointerException und weiß nicht weiter.
Über Hilfe wäre ich sehr dankbar.
Java:
public class PerspectiveFactory implements IPerspectiveFactory {
public void createInitialLayout(IPageLayout layout) {
String editorArea = layout.getEditorArea();
layout.setEditorAreaVisible(false);
layout.addView(BeispielView1.VIEW_ID, IPageLayout.TOP, 0.5f, editorArea);
layout.addView(BeispielView2.VIEW_ID, IPageLayout.BOTTOM, 0.6f, editorArea);
layout.addView(BeispielView3.VIEW_ID, IPageLayout.BOTTOM, 0.6f, editorArea);
layout.addView(BeispielView4.VIEW_ID, IPageLayout.BOTTOM, 0.6f, editorArea);
layout.addView(BeispielView5.VIEW_ID, IPageLayout.BOTTOM, 0.6f, editorArea);
// Fast Views
layout.addFastView(IPageLayout.ID_OUTLINE, 0.2f);
layout.addFastView(IPageLayout.ID_PROP_SHEET, 0.2f);
closeView(BeispielView3.VIEW_ID);
}
void closeView(String viewId) {
IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
IViewReference[] viewRefs = window.getActivePage().getViewReferences();
for(int i = 0; i < viewRefs.length; i++) {
IViewReference ref = viewRefs[i];
if(viewId.equals(ref.getId())) {
ref.getPage().hideView(ref);
}
}
}
}
Code:
java.lang.NullPointerException
at org.eclipse.ui.internal.PerspectiveHelper.removePart(PerspectiveHelper.java:1277)
at org.eclipse.ui.internal.Perspective.hideView(Perspective.java:602)
at org.eclipse.ui.internal.WorkbenchPage.hideView(WorkbenchPage.java:2387)
Grüße,
Rainbow