Ein Befehl ist ein Objekt, das die Semantik einer Aktivität repräsentiert. Befehle können Steuerelementen zugewiesen werden, deren Aktivierung den Befehl auslöst. Die Verarbeitung erfolgt kontextabhängig.
Ein Befehl ist ein Objekt, das die Semantik einer Aktivität repräsentiert. "Kopieren" und "Speichern" sind Beispiele für Befehle.
Befehle können Steuerelementen zugewiesen werden, wie z.B. einer Menüband-Schaltfläche. Bei Aktivierung des Steuerelements wird der Befehl ausgelöst. Nach Auslösung muss der Befehl verarbeitet werden. Diese Verarbeitung erfolgt kontextabhängig. So wird beispielsweise der Speichern-Befehl in einem Textfenster anders verarbeitet als in einem Fenster, das ein Bild enthält.
Ein Befehl wird durch ein Objekt vom Typ ExtCommand mittels folgender Eigenschaften beschrieben.
| Eigenschaft | Funktion | obligatorisch |
|---|---|---|
| Identifier | Eindeutiger, stringwertiger Identifikator |
|
| LabelTitel | Text des Befehls |
|
| SmallImageSource | Symbol in der Größe 16x16 | |
| LargeImageSource | Symbol in der Größe 32x32 | |
| ToolTipText | Text des Tooltipps | |
| ToolTipImageSource | Symbol im Tooltipp |
Achtung
Der Befehl wird bei seiner Verarbeitung über seinen Identifikator erkannt. Es ist daher unerlässlich, dass dieser eindeutig gewählt wird. Bei Plug-ins empfiehlt sich daher, den Plug-in-Namen als Präfix des Identifikators zu verwenden.
Zur Definition eigener Befehle sind Objekte vom Typ ExtCommand zu erzeugen und diese als Liste bei Bearbeitung der OpenModel-Nachricht mittels der Methode GUIRegistration.AddCommands zu registrieren.
Hinweis
Zur Definition eigener Befehle siehe das Sample MID.Innovator.Plugin.Sample.Command.
Werden zur Erzeugung eines Steuerelements die Create-Methoden der Klasse RibbonManager verwendet, dann wird der zugehörige Befehl als Argument an die Create-Methode übergeben. Die Daten des Befehls wie Text, Symbole und Tooltipp werden vom Steuerelement übernommen.
Plug-ins können Befehle von der Klasse verarbeiten lassen, die IApplicationComponent realisiert. Dazu muss die Klasse zusätzlich die Schnittstelle ICommandDispatchable realisieren, indem sie zwei Dispatcher-Methoden zur Verfügung stellt:
CanExeCmd
Prüfung des Befehls auf Ausführbarkeit.
ExecuteCmd
Ausführung des Befehls.
Bei der Verarbeitung eines Befehls werden vom Framework nacheinander eine Reihe von Dispatcher-Methoden aufgerufen:
Dispatcher des Frameworks für modellunabhängige Befehle
Dispatcher des Frameworks für modellabhängige Befehle
Dispatcher des aktuellen Fensters
Dispatcher aller Komponenten, die ICommandDispatchable realisieren
Verarbeitet ein Dispatcher einen Befehl, dann liefert er true als Ergebnis zurück und die Reihe bricht ab. D.h. es wird niemals ein Befehl von mehreren Dispatcher-Methoden gleichzeitig verarbeitet. Ein Plug-in muss also in seinen Dispatcher-Methoden dann und nur dann true als Ergebnis liefern, wenn es den Befehl verarbeitet. Verarbeitung ist nicht zu verwechseln mit Ausführbarkeit. Verarbeitung ist dann gegeben, wenn ein Befehl auf Ausführbarkeit geprüft und unter gewissen Umständen ausgeführt wird. Das ist eine feste Eigenschaft, die sich niemals ändert. Ausführbarkeit dagegen ist eine temporäre Eigenschaft, die vom aktuellen Zustand der Daten in der Anwendung abhängt.
© 1986-2014 MID GmbH Nürnberg Deutschland. DIN EN 9001 zertifiziert. Alle Rechte vorbehalten.