Schnittstelle IApplicationComponent
Das Innovator-Framework verwendet die Schnittstelle IApplicationComponent zum Senden von Nachrichten an das Plug-in.
Realisierung der Schnittstelle
Ein Plug-in muss genau eine Klasse enthalten, die IApplicationComponent realisiert. Das Innovator-Framework nutzt diese Klasse zum Senden von Nachrichten an das Plug-in, wenn relevante Ereignisse auftreten. Dazu erzeugt das Framework eine Instanz der Klasse beim Öffnen eines Innovator-Modells. Diese Instanz besteht während der gesamten Lebensdauer des Modells und wird für alle Nachrichten verwendet, die im Kontext dieses Modells auftreten.
Bemerkung: Das Plug-in selbst instanziiert niemals die eigene schnittstellenrealisierende Klasse.
IApplicationComponent.Description
Die Eigenschaft Description dient der Selbstbeschreibung des Plug-ins.
ComponentDescription Description { get; }
Die Klasse ComponentDescription enthält folgende Eigenschaften:
-
Purpose
Zweck des Plug-ins
Bemerkung: Die Description-Eigenschaft wird gegenwärtig nicht ausgewertet und ist für zukünftige Verwendung vorgesehen.
IApplicationComponent.RequestHandler
RequestHandler ist die zentrale Methode der Schnittstelle IApplicationComponent, die eingehende Nachrichten vom Framework verarbeitet.
void RequestHandler(ModelDockSite, Request)
-
ModelDockSite
Modellkontext, in dem alle relevanten Daten zum Modell und dem Fenster, in dem das Modell dargestellt wird, enthalten sind.
-
Request
Nachricht, die vom Framework geschickt wurde. Die Eigenschaft Type spezifiziert das Ereignis, das zum Senden der Nachricht geführt hat.
Die elementaren Nachrichtentypen werden im Folgenden näher erläutert:
Check
Unmittelbar nach der Anmeldung des Benutzers im Modell erhält jedes Plug-in eine Nachricht vom Typ Check. Bei der Bearbeitung sollte ein Plug-in prüfen, ob es mit dem Modell lauffähig ist. Erfüllt das Modell nicht die notwendigen Voraussetzungen, dann sollte das Plug-in eine aussagekräftige Meldung in der Eigenschaft Error der Request-Struktur als Ergebnis liefern. Das Plug-in wird dann nicht geladen und bleibt während der Laufzeit der Innovator Oberfläche inaktiv. Ein späteres Nachladen des Plug-ins ist nicht möglich.
Hinweis: Ein Plug-in, das unter allen Umständen lauffähig ist, muss die Nachricht nicht bearbeiten.
Hinweis
Zur Bearbeitung der Check-Nachricht siehe das Sample MID.Innovator.Plugin.Sample.CheckRequest.
OpenModel
Ist das Plug-in nicht im Zuge der Bearbeitung der Check-Nachricht deaktiviert worden, dann erhält es im Anschluss eine OpenModel-Nachricht. Hier besteht nun die Möglichkeit, die Oberfläche zu erweitern durch:
-
Registrierung eigener Befehle
-
Erzeugung zusätzlicher Steuerelemente im Menüband
-
Erzeugung eigener Toolfenster
