dynamische Menüs mit RCP

Goliath83

Grünschnabel
Hallo!

Ich möchte in meiner RCP-Anwendung ein komplettes Menü bzw. mehrere Menüs dynamisch erzeugen. Dynamisch in dem Sinne, das durch die Methode "fillMenuBar(IMenuManager menuBar)" in der Klasse "ApplicationActionBarAdvisor" ein oder mehrere Menü(s) erzeugt werden. Dabei sind die Menüs und deren Menü-Einträge von den Rechten der Benutzer bzw. Benutzergruppen abhängig.

Die Idee ist folgende:

Die Anwendung besteht aus mehreren Plugins, darunter ein Haupt-Plugin in dem sich die oben genannte Klasse befindet. Des weiteren gibt es ein Controller-Plugin. Die einzelnen Menüs und Menüeinträge sollen durch Extensions / Extension-Points bekannt gemacht werden. Das Controller-Plugin soll nun in die Masse der vorhandenen Plugins fragen, ob es Menü-Extensions gibt. Diese sollen dann gegen die Bbenutzerrechte geprüft und anschließend auch als Menü oder Menü-Eintrag in die Anwendung "gezeichnet" werden.


Frage:

Ist es überhaupt möglich so etwas in RCP umzusetzen oder ginge es einfacher?

Kann mir evtl. jemand ein Beispiel dazu geben?




Vielen Dank im Voraus!
 
Hallo Goliath,

Du hast offensichtlich schon herausgefunden, wie man Menüs im RCP erstellt. Ich bin leider zu blöd das herauszufinden. Kannst Du mir eine Beschreibung zukommen lassen wie das geht - per Programmcode und per PDE.

Soweit ich es verstanden habe, kann man per Programmcode nur fest vorgegebene Menüs erstellen - oder? Oder gibt es hier auch eine Möglichkeit, wie ich ein individuelles Menü aufbauen kann?
 
Hallo ihr zwei, da ich denke etwas Ahnung davon zu haben werd ich euch mal antworten.

Zuerst zu dir Goliath, wenn es möglich ist würde ich an deiner Stelle die Methoden/Actions und Delegations für die verschiedenen Gruppen/Benutzerrechte in verschiedene Plugins stecken. In diesen Plugins kannst du dann in der plugin.xml sog. "Actionsets" (unter Actionssets kannst du Menus oder Actions zur RCP hinzufügen) hinzufügen mit dem du diese dynamischen Menüs aufbauen kannst.

Nun zu dir teddyid, ich verstehe nicht ganz was du mit "fest vorgegebene Menüs meinst". Wenn du das näher erläutern kannst wäre ich dir dankbar.

Im Endeffekt kann man das Menü im ApplicationActionBarAdvisor aufbauen, im plugin.xml actionssets hinzufügen (haben den selben effekt) oder beides gemischt. Soviel zu den Möglichkeiten ein Menü für eine RCP aufzubauen.

Gruss

Ben
 
Laut einem Webinar auf live.eclipse.org soll man auch beide Methoden nutzen.

Die globalen Menüeinträge (also sowas wie Öffnen, Speichern, Beenden, usw) sollte man im ActionBarAdvicor festlegen. Menüs, die Abhängig vom Benutzer, oder der zur Zeit aktiven Perspektive sind sollten über ActionSets deklariert werden.

Auf jeden Fall ist http://live.eclipse.org einen Besuch wert, wenn man sich mit RCP befasst.
 
Zurück