RCP TreeViewer

der_andere

Mitglied
Guten Morgen,

habe ein kleines Problem, dass bestimmt schon x-mal erklärt wurde aber ich verstehe nicht, wie ich es realisieren kann.

Folgendes Problem:
Ich habe mir eine View erstellt die einen TreeViewer beinhaltet (auf der rechten Seite) auf der linken Seite ist eine leere View. Nun möchte ich, wenn man in der Baumstruktur einen anderen Link der Doppelklick anklickt sich die leere View sich schließt und sich eine andere öffnet. Bisher habe ich das so gelöst:

Java:
IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
IViewReference ref = page.findViewReference(START_VIEW.ID);
IViewPart viewPart = ref.getView(true);
page.hideView(viewPart);
page.showView(ANDERE_VIEW.ID);

wie kann ich das machen, das "page.findViewReference" variabel ist, also so dass sie sich merkt wo der Anwender zuletzt war. So wie es jetzt ist, bekomme ich wenn ich nicht zuvor auf der START_VIEW war einen NullPointer, was ja auch logisch ist.

bin für jede Antwort dankbar!

Der_AnderE
 

Sonecc

Gesperrter Benutzer
Du machst dir eine öffentliche Statische Variable, in der sich deine View verewigt wenn sie geöffnet wird.
Diese Variable nutzt du dann in deinem Code dort.
 

Sonecc

Gesperrter Benutzer
In der Klasse die das öffnen und schließen managed
Java:
public static String ActiveViewID = START_VIEW.ID;

Nun die neue Methode die die Views managed (also dein Code überarbeitet)

Java:
IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
IViewReference ref = page.findViewReference(ActiveViewID);
IViewPart viewPart = ref.getView(true);
page.hideView(viewPart);
page.showView(ANDERE_VIEW.ID);


Im Konstruktor deiner Views:
ViewController ist dabei die Klasse die das öffnen und schließen der Views managed..

Java:
ViewController.ActiveViewID = this.ID;




Gibt bestimmt auch besser Wege das zu lösen und das ganze ist auch ungetestet, sollte aber funktionieren
 

Ähnliche Java Themen


Oben