Ich verwende PartDescriptors, um mehrere Instanzen desselben MPart
zu erstellen. Wie identifiziere ich jedes Teil? Ich eclipse rcp 3.x ist es leicht, eine ViewPart
durch seine primäre und Seconday ID zu finden. Wie erreiche ich das im e4 rcp Programmiermodell?eclipse e4 - Wie werden Eclipse e4 Ansichten (Teile) eindeutig identifiziert?
Antwort
Alle Teile, die aus dem Deskriptor erstellt wurden, haben die gleiche ID, daher liegt es an Ihnen, zusätzliche identifizierende Informationen hinzuzufügen.
Eine Möglichkeit, dies zu tun ist, um Ihre eigene einzigartige Daten seitens des transienten Daten hinzufügen, wenn Sie die Rolle zu erstellen:
Object uniqueId = .....
part.getTransientData().put("part id key", uniqueId);
Und lesen Sie die ID mit:
part.getTransientData().get("part id key");
zu Finden Sie das Teil, das Sie verwenden können eine der findElements
Methoden von EModelService
. Mit der Version Selector
können Sie eine Übereinstimmung für die ID und die Daten codieren. Zum Beispiel, wenn alles in einem Teilstapel:
MPartStack partStack = .... get part stack
List<MPart> parts = modelService.findElements(partStack, MPart.class, EModelService.ANYWHERE, new FindPartSelector(id, data));
wo FindPartSelector
ein Selektor sind Sie schreiben. Dies hat nur eine Methode:
@Override
public boolean select(final MApplicationElement element)
{
// TODO match id and transient data
}
Beachten Sie, dass die transienten Daten verloren gehen, wenn Sie Ihren RCP verlassen. Wenn diese Teile zwischen Sitzungen beibehalten werden, können Sie getPersistedState
statt getTransientData
verwenden.
- 1. Teile-Stack immer in Eclipse E4 anzeigen
- 2. Eclipse e4 deaktivieren maximiert Teil
- 3. FilteredItemsSelectionDialog in Eclipse E4
- 4. Undo Redo in Eclipse E4
- 5. Alle uncatched Ausnahmen protokollieren Eclipse E4
- 6. Eclipse E4 Anwendung erstellt nicht korrekt
- 7. Get GUI-Komponenten von Eclipse E4
- 8. Update Eclipse E4-Anwendung mit p2
- 9. Eclipse e4 Programm wird nicht gestartet
- 10. Eclipse E4 öffnen Java Editor programmatisch
- 11. Wie über Dialog in e4 mit Eclipse Neon zu haben?
- 12. Benutzerdefinierte ISaveHandler und IWindowCloseHandler für Eclipse e4 Texteditor App
- 13. Eclipse RCP offene Ansicht programmgesteuert die e4 Weg
- 14. Mehrere Handler für einen Befehl in Eclipse e4
- 15. Wo sind die Plattformdienste in Eclipse rcp/e4?
- 16. Deaktivieren Sie Drag & Drop-Teil in Eclipse e4
- 17. E4 von der Wiederherstellung der Ansichten verhindern
- 18. E4 Fokus Perspektive, wenn Ansicht bereits
- 19. ausblenden Coolbar/Symbolleiste Artikel/Preference Seiten in Eclipse RCP-Anwendung (Eclipse-e4)
- 20. E4 RCP + GEF5 Anwendung Implementierung
- 21. E4 Beitrag zu einer Perspektive
- 22. Kann ein FormEditor in einer e4-Anwendung verwendet werden?
- 23. e4 Set ESelectionService Null
- 24. Zugriff auf eine Kompatibilitätsschicht IViewParts (e4) MPart
- 25. Wie man aktives Fenster in e4 rcp Anwendung erhält?
- 26. Ist es möglich, das E4-Anwendungsmodell in einer Eclipse-Projektkopie zu aktualisieren?
- 27. H2-Datenbank in E4 Anwendung nicht auflösbar
- 28. UI-Beiträge auf Handler-Switch im e4-Anwendungsmodell aktualisieren
- 29. Wie man Eclipse e4 Part schließt, wenn das Preferences Fenster geöffnet ist
- 30. E4 RCP CTabFolder Bild Schlagschatten
ok Ich werde immer alle Teile durchlaufen müssen, die durch 'partService.getParts()' kommen und dann meinen Teil finden. ist das richtig ? – ssdimmanuel
Sie können eine 'EModelService'' findElements' Methode verwenden, um die Suche durchzuführen - siehe aktualisierte Antwort. –
Beachten Sie, dass die temporären Daten gelöscht werden, wenn das Workbench-Modell beibehalten wird (Parameter -clearPersistedData nicht festgelegt). Wenn nun das Workbench-Modell beim nächsten Start wiederhergestellt wird, haben die Teile diese "sekundäre ID" nicht. –