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!
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!