Elementfenster
Elementfenster sind spezielle Dokumentenfenster, die genau ein Modellelement repräsentieren.
Eigenschaften von Elementfenstern
Elementfenster sind spezielle Dokumentenfenster, denen genau ein Modellelement zugeordnet ist, dessen Bestandteile oder Eigenschaften im Fenster dargestellt werden.
Beispiele für Elementfenster sind:
-
Diagramme
Dargestellt werden enthaltene Elemente als Graph.
-
Tabellen
Dargestellt werden Unterelemente und deren Eigenschaften in tabellarischer Form.
-
Spezifikationen
Dargestellt werden zugeordnete Texte.
Elementfenster sind analog zu Dokumentenfenstern zu erzeugen, nur dass die Schnittstelle IElemWorkArea, eine Spezialisierung von IDocWorkArea, zu realisieren ist.
Für die Schnittstelle IElemWorkArea sind folgende Eigenschaften zu implementieren:
-
Element
Modellelement, das durch das Fenster repräsentiert wird.
-
Info
Eigenschaften des Modellelements.
Diese beinhalten z.B. Anzeigetexte und -symbole, die zugehörige sperrbare Einheit und deren Zustand bzgl. Zugriff und Sperre. Unter "sperrbare Einheit" wird das nächste übergeordnete Element verstanden, das im Metamodell die Eigenschaft besitzt, sperrbar zu sein. Beispielsweise ist für ein Property in einer Klasse die zugehörige sperrbare Einheit diese Klasse.
Die benötigten Daten können in der Regel über die Methode ELElement.GetElementCache bestimmt werden.
-
DocumentIdentifier
Stringwertige Repräsentation für das Modellelement.
Diese Repräsentation wird in der Regel dann verwendet, wenn das Fenster später nach dem Schließen wieder geöffnet werden soll, weil es beispielsweise im Menü der zuletzt bearbeiteten Elemente ausgewählt wurde. Es muss dazu möglich sein, aus der stringwertigen Repräsentation das Modellelement zu berechnen. Bis auf ganz wenige Ausnahmen ist jedem Modellelement eine UUID zugeordnet, die für diesen Zweck verwendet werden kann.
-
Title
Titel, der in der Liste der zuletzt bearbeiteten Elemente angezeigt wird.
Der Titel muss aus einem Bezeichner für den Fenstertyp, also z.B. Diagramm, und einem Platzhalter für den Namen bestehen. Der Name wird vom Framework aus der Eigenschaft Info bestimmt und anstelle des Platzhalters in den Titel eingesetzt.
Hinweis
Zur Erzeugung eines Elementfensters siehe das Sample MID.Innovator.Plugin.Sample.ElementWindow1.
Verhalten von Elementfenstern
Die meisten Elementfenster weisen das im Folgenden beschriebene Verhalten bei der Bearbeitung des zugeordneten Elements auf:
-
Zur Bearbeitung des Elements muss die zugehörige sperrbare Einheit gesperrt sein.
-
Die sperrbare Einheit wird beim Öffnen des Dokuments gesperrt, falls sie nicht bereits gesperrt ist.
Die sperrbare Einheit wird beim Schließen des Dokuments entsperrt, falls nicht weitere Dokumente mit derselben sperrbaren Einheit geöffnet sind.
-
Änderungen am Element werden automatisch oder manuell, z.B. mittels einer Schaltfläche, im Server gespeichert.
Beim Entsperren der sperrbaren Einheit oder dem Schließen des Fensters werden vorgenommene Änderungen gespeichert.
Hinweis
Zum beschriebenen Verhalten von Elementfenstern siehe das Sample MID.Innovator.Plugin.Sample.ElementWindow2.
Zur Ausführung modifizierender Server-Kommandos ist die Sperre nicht unbedingt erforderlich. Meistens reicht es, wenn Zugriff auf die sperrbare Einheit besteht und diese nicht fremdgesperrt ist. Das Verfahren muss also nicht unbedingt exakt wie beschrieben umgesetzt werden. Es ist allerdings besonders dann empfehlenswert, wenn relativ umfangreiche und zeitlich aufwendige Elementänderungen im Fenster vorgenommen werden können, da das Verfahren gewährleistet, dass sich nicht mehrere Benutzer ihre Änderungen durch parallele Arbeit gegenseitig überschreiben.