Bei der bisherigen Konfiguration standen die Knoten für sich selbst. In diesem Abschnitt sollen die bisherigen Knoten als Master-Knoten betrachtet werden, denen Slave-Knoten als Label zugeordnet werden.
Die Slave-Knoten als Label in diesem Diagramm erfüllen zwei Aufgaben:
- Anzeigen eines Labels mit dem Namen des Master-Knotens an der Oberkante des Master-Knotens.
- Anzeigen eines Labels mit dem Namen des Slave-Knotens, der die LAN_Buchse (LAN_Jack) einer Roomcomponent repräsentiert. Über diese Slave-Knoten können die Roomcomponents später miteinander verbunden werden.
Zunächst wird ein Slave-Knoten konfiguriert.
- Fügen Sie unterhalb des Knotens mit id="Component" die folgenden Zeilen ein.
<!-- Slave -->
<node id="LAN_Jack" valid="=isInstanceOf('IT_ModularSystem.Basic.LAN_Jack')">
<figureLabel figure="com.mind8.graph2d.figure.Label">
<properties>
<property id="text">
<read value="=$Name" />
</property>
<property id="showIcon">
<read value="false" />
</property>
</properties>
</figureLabel>
</node>
Der neue Knoten für den Slave hat die ID LAN_Jack auf die noch referenziert wird.
Das Attribut valid="isInstanceOf('IT_ModularSystem.Basic.LAN_Jack')" ermittelt den Typ, dem die Projektkomponente entsprechen muss, um als LAN_Jack eingefügt werden zu können.
Mit <figureLabel> wird ein Knoten konfiguriert, der als Label darzustellen ist.
Mit der Eigenschaft <property id="text"> <read value="=$Name"> wird beschrieben, dass der Wert des Parameters Name als Text dargestellt wird.
Die Eigenschaft <property id="showIcon"> <read value="false"> verhindert die Darstellung eines allgemeinen Symbols neben dem Text des Labels.
Die Bedeutung der einzelnen Eigenschaften:
ID-Name | Bedeutung |
---|---|
text | Text oder Formel, die einen Text liefert, der als Label angezeigt wird |
showIcon | Definiert die Sichtbarkeit des Icons im Label true = Icon wird angezeigt false = Icon wird nicht angezeigt |
Nun wird definiert, wie die Komponente LAN_Jack als Slave-Knoten an den Außenkanten des Masters dargestellt werden soll. Gleichzeitig wird der Label konfiguriert, der den Namen der Masterkomponente anzeigen soll.
- Fügen Sie unterhalb des Knotens mit id="Component" die folgenden Zeilen ein.
<!-- Relation of Master (PC/Printer/Telephone/5waySwitch/2wayLANJack) to Slave (LAN_Jack) and Label -->
<node id="abstract_Roomcomponent" super="Component" slaveNodes="=rmos('IT_ModularSystem.Basic.LAN_Jack').append(this)">
<slaveNode id="SN_LAN_Jack" node="LAN_Jack" layout="outsideEdged" direction="=$Direction" parent="=mc">
<movement direction="WEST SOUTH EAST NORTH" rotate="NO" />
</slaveNode>
<slaveNode id="SNLabel" valid="=isInstanceEO() and isInstanceOf('IT_Architecture.Levelcomponents.RoomComponent')" layout="outsideEdged" direction="NORTH" parent="=this">
<figureLabel figure="com.mind8.graph2d.figure.Label">
<properties>
<property id="text">
<read value="=$Tooltip" />
</property>
<property id="prefWidth">
<read value="100" />
</property>
<property id="prefHeight">
<read value="30" />
</property>
<property id="showIcon">
<read value="false" />
</property>
</properties>
</figureLabel>
<property id="showLabel">
< read value="true" />
</property>
<movement rotateWithMaster="NO" rotate="NO" />
</slaveNode>
</node>
- Ändern Sie im Tag <node id="Room"> das Attribut acceptedChildren="Master" zu acceptedChildren="abstract_Roomcomponent".
- Ändern Sie im Tag <node id="Master"> das Attribut super="Component" zu super="abstract_Roomcomponent".
- Speichern Sie die Diagrammkonfiguration ([Strg] + [S]).
Die ID des neuen Knotens ist abstract_Roomcomponent.
Der Knoten mit der ID Master referenziert als Knoten, von dem die Eigenschaften ererbt werden, nun nicht mehr Component sondern abstract_Roomcomponent.
Der Knoten abstract_Roomcomponent erbt nun die Eigenschaften des Knotens Component.
Damit der neue Knoten abstract_Roomcomponent in einen Raum (Room) eingefügt werden kann ist nun dieser durch acceptedChildren="abstract_Roomcomponent" als erlaubte untergeordnete Komponente zugelassen.
Das Attribut slaveNodes="=rmos('IT_ModularSystem.Basic.LAN_Jack').append(this)" definiert, dass alle Komponenten des Typs LAN_Jack als Slave-Knoten zu sammeln sind.
Es folgt die Konfiguration des ersten Slave-Knoten-Typs. Für diesen Typ wird mit node="LAN_Jack" die vorher erstellt Konfiguration des Slave-Knotens mit der ID SN_LAN_Jack referenziert.
Mit dem Attribut layout="outsideEdged" wird festgelegt, dass der Slave-Knoten an der Außenkante des Masters anzuordnen ist.
An welcher Außenkante der Slave-Knoten angeordnet wird bestimmt das Attribut direction="=$Direction". Der Wert des Parameters Direction ist in jedem Slave-Knoten hinterlegt.
Das Attribut parent="=mc" ermittelt die Projektkomponente, die als Master gültig ist. Hier ist es die Projektkomponente, die in die Komponente LAN_Jack eingebaut ist.
Mit dem untergeordneten Tag <movement direction="WEST SOUTH EAST NORTH" rotate="NO" /> wird festgelegt, dass diese Slave-Knoten an alle Außenkanten des Masters verschoben werden können, dabei aber nicht gedreht werden.
Die folgende Slave-Knoten-Konfiguration hat die ID SNLabel.
Die Slave-Knoten für diese Konfiguration müssen dem Typ des Attributs valid="=isInstanceEO() and isInstanceOf('IT_Architecture.Levelcomponents.RoomComponent')" entsprechen.
Auch diese Slave-Knoten werden, dem Attribut layout="outsideEdged" entsprechend an einer Außenkante des Masters angeordnet.
Diese Slave-Knoten werden durch das Attribut direction="NORTH" immer an der Oberkante angeordnet.
Durch das Attribut parent="=this" wird nicht eine untergeordnete, sondern die Projektkomponente eines Geräts selbst als Ursprung der Daten definiert, die mit dem Label anzuzeigen sind.
Mit figureLabel wird dann festgelegt, dass der Slave-Knoten als Label dargestellt wird.
In dem Label wird per Eigenschaft property id="text" ein Text dargestellt, der im Parameter Tooltip der Komponente gespeichert ist.
Die Eigenschaft property id="showLabel" mit read value="true" sorgt dafür, dass der Label angezeigt wird.
Zuletzt sorgt das Tag <movement rotateWithMaster="NO" rotate="NO" /> dafür, dass sich der Slave-Knoten nicht dreht, wenn sich der Master-Knoten drehen sollte, der Label bleibt also immer an der Oberkante und der Text ist immer lesbar.