Command und Context Menu

  • Themenstarter Gelöschtes Mitglied 5909
  • Beginndatum
G

Gelöschtes Mitglied 5909

Gast
Folgende Situation:

Ich habe ein plugin search, welches einen extension point bereitstellt.

Der extensionpoint definiert ein paar interfaces, um eine suche in der Gui zu ermöglichen.

U.A. eine SearchAction, was dann die suche durführt.

Der Suchdialog wird dynamisch mit hilfe einer der Interface-Implementierungen zusammengebaut.

Dazu holt sich der Dialog die aktive view, sucht nach Search Extension Implementierungen.

Die Implementierung, dessen id der mit der view übereinstimmt wird verwendet und ausgeführt.

Ansonsten kommt "suche nicht möglich.."

Die Implementierungen stecken in anderen bundles, die die interfaces implementieren, da nur sie wissen wo, was usw gesucht werden kann.

Das ganze ist über die plugin.xml konfiguriert, d.h. search kennt die anderen bundles nicht. Und die anderen bundles kennen lediglich die interfaces. Das ist auch gut und richtig soweit ich weiß.

Nun mein Problem:

Im Menü gibt es den Punkt suchen (über plugin.xml hinzugefügt). Jetzt möchte ich in den view beim Kontext Menü den Punkt suchen hinzufügen. Ich habe aber nirgends einen weg gefunden, das ganze mit der plugin.xml zu machen, sondern nur programmatisch.

Dadurch krieg ich auf das bundle ne abhängigkeit. was ich a) nicht schön finde und b) ein cycle entsteht.

Ich möchte im idealfall, dass im contextmenü der punkt suchen erscheint, sobald ich eine implementierung von suche bereitstelle (steht ja in der plugins.xml). Beim clicken soll dann der command search ausgeführt werden, der dann ja den dialog öffnet.

Ich dachte erst daran einen weiteren CommandHandler zu implementieren, der dann den Punkt ins ContextMenü hinzufügt.
Das ging aber auch nicht.

Wie krieg ich das hin?


btw: wie kann ich die commands programmiertechnisch ausführen?
 

Wildcard

Top Contributor
Durch die Location: popup:eek:rg.eclipse.ui.popup.any kannst du dein Menü in jedes Popup Menu einklinken. Ob das Commando aktiv ist steuerst du dann entweder über den Hanlder, oder die Contribution. Ein eigener Property Tester bietet sich an.
 

Ähnliche Java Themen

Neue Themen


Oben