Frage

Was sind Unterschiede zwischen den Aktionen und Befehlen im Zusammenhang mit Eclipse RCP? Ich weiß, dass sie sowohl auf die Menüeinträge beitragen, aber was ist besser? Und warum?

Von allen Online-Ressourcen, die ich lesen, ich konnte nicht ein festes Verständnis der Unterschiede zwischen den beiden erhalten. Ich habe nicht wirklich versucht, sie zu benutzen, wollte aber nur um sie verstehen, mit höherer Ebene Sicht zu starten.

Danke

War es hilfreich?

Lösung

Haben Sie die Eclipse Wiki FAQ Was ist der Unterschied zwischen einem Befehl und einer Aktion?

  

Sie verstehen wahrscheinlich bereits, dass Aktionen und Befehle im Grunde das Gleiche tun: Sie ein bestimmtes Stück Code verursachen ausgeführt werden. Sie werden ausgelöst, vor allem, von artificats innerhalb der Benutzeroberfläche

     

Das Hauptanliegen mit Aktionen ist, dass die Manifestation und der Code alle in der Aktion gespeichert sind, .
  Es gibt zwar eine gewisse Trennung in Aktion Delegierten ist, sind sie nach wie vor auf die zugrunde liegende Handlung verbunden. Auswahl Ereignisse werden in Aktionen übergeben, damit sie ihren aktivierten Zustand (programmatisch), basierend auf der aktuellen Auswahl ändern. Dies ist nicht sehr elegant. Auch eine Aktion auf einem bestimmten Werkbank Teil platzieren Sie mehrere Erweiterungspunkte verwenden.

     

Befehle ziemlich löst all diese Probleme. Die Grundidee ist, dass Die Entscheidung ist nur die abstrakte Idee von Code ausgeführt werden. Die tatsächliche Handhabung des Codes erfolgt durch, na ja, Handler . Handlers werden von einem bestimmten Zustand der Werkbank aktiviert. Dieser Zustand wird durch die Plattform Kern Ausdrücke abgefragt. Das bedeutet, dass wir nur einen globalen Befehl Speichern benötigen, die anders verhält sich auf dessen Basis Handler gerade aktiv ist.

Eigenschaften eines Befehls

Der Artikel die Unterschiede Details

Aktionen :

  • Die UI und Handhabung sind immer gebunden . Es gibt keine Möglichkeit, einander trennen
  • Während Aktionen können auf verschiedene Teile der Werkbank (Popup-Menü / Werkzeugleiste) beigetragen werden, alle waren verschiedene Erweiterungspunkte und so am Ende die XML an mehreren Stellen zu duplizieren. Das Schlimmste ist, dass nicht alle Erweiterungspunkte die gleiche Konfiguration erwarten.
  • Festlegen Aktionen an mehreren Stellen ist ein Wartung Alptraum . Wenn Sie das Symbol einer Aktion ändern müssen, müssen Sie in allen Orten ändern.
  • Ein weiteres Problem mit Aktionen in plugin.xml Duplizieren ist, dass mehr Instanzen der gleichen Aktionen im Speicher erstellt werden.

Befehle beinhalten mehr Erweiterungspunkte, aber:

  • Handler kann separat von einem Befehl deklariert werden. Dies ermöglicht für mehr Handler Erklärungen für den gleichen Befehl .
  • Die activeWhen für alle Handler ausgewertet werden und die, die true zurückgibt, für die spezifische Bedingung ausgewählt ist. All diese Dinge sind getan sogar ohne einen Handler in dem Speicher geladen werden. Auch ohne das Plugin geladen !
  • die Parameter zu definieren, ist alles über eine Karte von Anzeigenamen und die IDs zurück. Der Name würde in der Tastenbelegungen Seite und die ID verwendet werden würde angezeigt werden, um den Befehl aufzurufen, wenn die Tastenfolge gedrückt wird.
  • Definieren Sie eine IExecutionListener, die lediglich ein Beobachter der Befehlsausführung ist, so dass es weder Veto es noch keine Änderungen an der Veranstaltung machen

Andere Tipps

Just Zugabe zu VonC die ausgezeichnete Antwort, Befehle vielleicht ein wenig zu viel des Guten, wenn Ihre Anwendung relativ klein ist. Sie sind relativ schwieriger zu gründen, und sie leuchten am meisten, wenn Sie mehrere Perspektiven, Editoren und Ansichten haben.

Für etwas einfach, ich würde mit Aktionen gehen.

Und denken Sie daran, dass Aktion auf neuere Version von Eclipse veraltet sein können. Ich würde vorschlagen, Sie Befehl zu verwenden, von Anfang an.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top