2016-04-15 17 views
0

Ich arbeite an einer Eclipse-RCP-Anwendung, wo ich eine Perspektive mit zwei verschiedenen Ordnern habe. Die Ansichten im linken Ordner zeigen Informationen an, auf die der Benutzer klicken kann, um weitere Informationen zu erhalten. Daher werden die Details im richtigen Ordner angezeigt.
Wenn es nur eine Ansicht im richtigen Ordner gab, gab es keine Probleme. Die Dinge wurden jedoch unordentlich, als ich dem richtigen Ordner eine weitere Ansicht hinzufügte. Da die Ansichten irgendwie kommunikativ sein müssen, habe ich dafür einen Code geschrieben. Während createPartControl(Composite) registriert sich die Ansicht für Änderungen der Benutzerauswahl. Die zweite Ansicht des Ordners wird jedoch erst geladen, wenn der Benutzer darauf klickt. Daher wird sie nicht aktualisiert, wenn der Benutzer eine Tabellenzeile oder etwas anderes auswählt.Immer öffnen (erstellen) Eclipse RCP Ansichten

Das könnte kompliziert zu verstehen sein, also hier ein Beispiel: Der Benutzer öffnet die Anwendung und sieht zwei Tabfolder. Dann wählt er Zeile X in einer Tabelle aus. Die Frontansicht des rechten Ordners enthält nun Informationen zur Zeile X. Die zweite Ansicht dieses Ordners ist noch nicht geladen, so dass sie nicht für Auswahländerungen registriert ist. Wenn der Benutzer diese Ansicht jetzt öffnet, befindet er sich im Standardzustand, weil er die Information über die Auswahländerung nicht erhalten hat.
Erst nachdem der Benutzer die Ansicht geöffnet hat, kann er Informationen anzeigen. Gibt es eine Möglichkeit, eine Ansicht zu erstellen, die automatisch geladen wird (erstellt wird), sobald die Perspektive geladen ist?

Zusammen damit möchte ich den rechten Registerkartenordner öffnen, wenn der Benutzer Zeile X auswählt und der rechte Registerkartenordner minimiert wird. Dazu habe ich IWorkbenchPage.showView(String) verwendet. So öffnen Sie die erste Ansicht des Registerkartenordners. Aber wenn ich die andere Ansicht geöffnet habe und ich Zeile Y wähle, wird die erste Ansicht geöffnet, wenn ich sie nach vorne bringe. Gibt es einen Weg dies zu verhindern?

Antwort

1

Sie können eine Ansicht öffnen, ohne sie aktiv mit machen:

IWorkbenchPage page = ... 

page.showView("view id", null, IWorkbenchPage.VIEW_VISIBLE); 

Sie auch

IViewPart part = page.findView("view id"); 

um die Ansicht zu finden, wenn es bereits geöffnet ist verwenden können.

+0

Danke für Ihre Antwort, wo würden Sie den ersten Teil Ihres Codes platzieren, um die Ansichten beim Start der Anwendung zu öffnen (oder wenn die Perspektive geladen)? – AidenPearce

+0

Das ist eine andere Frage. Wenn dies Ihre Perspektive ist, fügen Sie einfach die Ansicht in Ihr perspektivisches Design ein. Wenn es sich um eine vorhandene Perspektive handelt, verwenden Sie den Erweiterungspunkt "org.eclipse.ui.perspectiveExtensions", um eine Ansicht für die Perspektive hinzuzufügen. –

Verwandte Themen