Sie befinden sich hier: Benutzeranpassungen > Plug-ins für Innovator erstellen > Tool- und Dokumentfenster > Selektion

Selektion

Die Eigenschaften Selection und SelectionPropagation steuern das Verhalten eines Fensters bezüglich der Selektion.

Globale Selektion

Zahlreiche Befehle benötigen eine Menge von Modellelementen, auf denen sie ausgeführt werden. Ein einfaches Beispiel ist der Befehl Aus Modell löschen. Um diese Elementmenge festzulegen, wird in der Regel in einem Fenster eine Selektion vorgenommen, beispielsweise im Modellbaum oder in einem Diagramm. Da viele Fenster gleichzeitig geöffnet sein können, die eine Selektion von Modellelementen beinhalten, ergibt sich die Frage, auf welche dieser Elementmengen ein Menübandbefehl wie Aus Modell löschen angewendet wird. Es muss also einen Mechanismus geben, der eine der Selektionen als die momentan gültige festlegt. Diese Selektion wird als "globale Selektion" bezeichnet.

Hinweis

Es gilt die Regel, dass das aktive Fenster die globale Selektion vorgibt.

Technisch realisiert wird die Behandlung der globalen Selektion mittels der beiden IWorkArea-Eigenschaften Selection und SelectionPropagation.

Szenario 1 - Fenster mit Elementselektion

Ein Fenster, in dem eine Selektion von Modellelementen vorgenommen werden kann, sollte die beiden Eigenschaften wie folgt behandeln:

  • SelectionPropagation ist auf SelectionType.ContextElement zu setzen.

    (Der Wert ContextElement signalisiert dem Framework, dass im Fenster Modellelemente selektiert werden können, die die globale Selektion darstellen, wenn das Fenster aktiv ist.)

  • Für die Eigenschaft Selection ist eine private Variable vom Typ ElementSet bereitzustellen, die über den Setter gesetzt und vom Getter geliefert wird.

    (Bei einem Wechsel des aktiven Fensters aktualisiert das Framework ggf. automatisch die globale Selektion. Dazu muss es die Selektion im nun aktiven Fenster ermitteln können. Diesem Zweck dient die Eigenschaft Selection.)

  • Wird im Fenster die Elementselektion geändert, dann ist über den Selection-Setter die neue Selektion in die private Variable zu übertragen. Nachfolgend ist die statische Methode WorkArea.TransferSelection aufzurufen.

    (Ändert sich die Selektion im aktiven Fenster, dann muss das Framework benachrichtigt werden, damit es die globale Selektion anpassen kann. Dazu wird die Methode TransferSelection aufgerufen.)

Hinweis

Zur Erzeugung eines Fensters mit Elementselektion siehe das Sample MID.Innovator.Plugin.Sample.Selection1.

Szenario 2 - Fenster mit einer Abhängigkeit von der Selektion

Fenster wie der Detail- und der Eigenschaftenbereich passen ihren Inhalt an die globale Selektion an. Ein derartiges Fenster ist wie folgt zu implementieren:

Hinweis

Zur Erzeugung eines Fensters mit einer Abhängigkeit von der Selektion siehe das Sample MID.Innovator.Plugin.Sample.Selection2.

Szenario 3 - Fenster ohne Selektionsbezug

Einige wenige Fenster, wie z.B. der Info-Bereich, geben weder die Selektion vor, noch hängen sie davon ab. Ein derartiges Fenster ist wie folgt zu implementieren:

Hinweis

Zur Erzeugung eines Fensters ohne Selektionsbezug siehe das Sample MID.Innovator.Plugin.Sample.HelloToolWindow.

 

 

© 1986-2014 MID GmbH Nürnberg Deutschland. DIN EN 9001 zertifiziert. Alle Rechte vorbehalten.