RCP Verwendung vorhandener Views, Strukturierung RCP Anwendungen

chalkbag

Bekanntes Mitglied
Hallo zusammen,

ich beschäftige mich schon ein kleines Weilchen mit Eclipse RCP und so kenne ich natürlich,

Lars Vogel - Eclipse Tutorial
Eclipse, RCP, Plugin and OSGi Development
Ralf Ebert - RCP Buch
Eclipse RCP Buch
RCP API
Help->HelpContent->Plugin Development -> Reference -> Api

Ich denke die grundlegenden Prinzipien zu verstehen, doch fühl ich mich noch unsicher und hab noch einige Frage bevor ich mir zutrauen würde, eine produktive Anwendung mittels RCP zu entwickeln.

1.) Wie strukturiere ich ein Projekt sinnvoll, klar alles in Plugins aufteilen und über ein Projekt vereinen. Aber wie teilt ihr auf, ich muss ja nicht jede View einzeln auslagern, trenne ich nach Funktionen (welche sich aber nicht immer nahtlos trennen lassen, wie z.B. Export, Drucken nutzen ja mehre Komponenten)? -> Hier würden mich Meinungen, Erfahrungen eurerseits sehr interessieren

2.) Die angesprochenen Tutorials bauen immer wieder ihre eigenen Views komplett neu auf, aber kann ich mir das nicht zum Teil sparen, ist dass nicht ein Hauptgrund für RCP. Aber wie würde ich z.B. den Projekt-View in einer Anwendung recyclen, oder ein XML mit dem vorhanden XML Editor bearbeiten /anzeigen -> Wie kann ich diese View verwenden und evtl. sogar etwas an meine Bedürfnisse anpassen (hier hab ich einfach noch keine Beispiele gefunden)

Ich hoffe ihr könnt mir ein paar Erfahrungen schildern.

Grüße

Staubbeutel
 

stefan!

Mitglied
Zu 1. Auf jeden fall solltest du (G)UI und Geschäftslogik trennen. Zum Beispiel ein core-Plugin komplett ohne UI und ein Plugin welches Views, Editoren, Wizards usw. beinhaltet. Auch alle zusätzlichen externen libs in osgi-bundles auslagern. Dann ggf. noch Plugins für Services.

Natürlich kann man auch nach Funktionen trennen. Das macht insbesondere dann Sinn, wenn man später Produkte mit unterschiedlichem Funktionsumfang erstellen möchte. Aber jede einzelne Funktion wie drucken oder speichern würde ich nicht extra auslagern.
Ist natürlich (wie immer) auch von der Größe des Projektes abhängig, bei kleinen Projekten muss man imho keine 30 Plugins haben.

2: RCP bietet viele Vorteile wie Wizards, integrierte Update und Hilfefunktion, Command-Framework, fertige Editoren usw. Einen einfachen Texteditor kann man sehr schnell in die eigene Anwendung integrieren, für XML gibt es sicher auch Lösungen ...

Stefan
 

chalkbag

Bekanntes Mitglied
Hallo Stefan,

zu 1.)
vielen dank, ich denk ich hab es verstanden, wie du das andenkst

zu 2.)
Du hast nicht rein zufällig ein Beispiel, in welchem du welche View auch immer mal eingebunden hast, bzw. welche Views ich überhaupt einbinden kann, erfahre ich über den Eclipse Spy (Plugin) ?

Danke schonmal
 

stefan!

Mitglied
Wenn du existierende Views aus Eclipse in eigenen Projekten verwenden willst, solltest du erstmal die jeweils relevanten Infos wie ID der View oder Klassen ermitteln (Plug-in Spy).

Nicht jede View lässt sich einfach in eigene Anwendungen integrieren, kommt halt darauf an inwieweit die View weitere Abhängigkeiten zu anderen Plug-in Projekten hat.

Du kannst beispielsweise die Console View in die eigene RCP Anwendung integrieren, indem du eine View mit der ID org.eclipse.ui.console und als Klasse org.eclipse.ui.internal.console.ConsoleView angibst. Dazu musst du dann nur noch die notwendigen Plug-ins in deine TargetPlatform aufnehmen ;)
 

Wildcard

Top Contributor
2.) Die angesprochenen Tutorials bauen immer wieder ihre eigenen Views komplett neu auf, aber kann ich mir das nicht zum Teil sparen, ist dass nicht ein Hauptgrund für RCP. Aber wie würde ich z.B. den Projekt-View in einer Anwendung recyclen, oder ein XML mit dem vorhanden XML Editor bearbeiten /anzeigen -> Wie kann ich diese View verwenden und evtl. sogar etwas an meine Bedürfnisse anpassen (hier hab ich einfach noch keine Beispiele gefunden)
Die Eclipse Architektur erlaubt dir erstmal nur viele verschiedene (eigene und externe) Module zu einer Anwendung zusammen zu schnüren. In wie weit eine bestehende View dann von dir erweitert werden kann hängt davon ab ob die View/Editor es vorsieht erweitert zu werden. Beispiele für Views die häufig erweitert werden sind zB die Properties View, oder der Project Explorer.
Der Project Explorer bietet zB verschiedene Extension Points an über den du ihn erweitern kannst. Ein Beispiel für eine solche Erweiterung wäre:
XML Dateien lassen sich aufklappen und zeigen dann die Tag Hierarchie an. Macht zwar nicht viel Sinn, aber darum ging es auch nicht :)
 

Ähnliche Java Themen


Oben