Das Element <slaveNode> ist ein Kind-Element eines Knotens (node). Es wird beispielsweise dazu verwendet bei richtungsabhängigen Objekten die Eingangs- und Ausgangsseite darzustellen. Ist der Slave-Knoten mit dem Attribut snapPoint="true" versehen, wird dieser als Andockpunkt dargestellt. Durch das übereinander Anordnen von zwei Master-Knoten mit ihren Andockpunkten, wird eine Objektreferenz berechnet und in einem Parameter gespeichert. Dies wird erkennbar durch rote Hilfslinien, die als Fadenkreuz am Andockpunkt eingeblendet werden. Die angedockten Masterknoten können anschließend miteinander im Diagramm verschoben werden.
So lösen Sie angedockten Knoten wieder voneinander:
- Markieren sie einen der angedockten Knoten.
- Drücken Sie die Taste [Alt] und halten Sie diese gedrückt.
- Schieben Sie den markierten Knoten beiseite.
- Lassen Sie die Taste [Alt] wieder los.
Attributname | Verwendung | Attributwerte | Defaultwert | Beschreibung |
---|---|---|---|---|
autoUpdated | optional | true, false | Bestimmt die automatische Platzierung von Slave-Knoten in das Diagramm true = Slave-Knoten werden immer automatisch platziert false = Slave-Knoten werden nur beim Platzieren eines Master-Knotens automatisch platziert |
|
creation | manual byMaster |
byMaster | Spezifiziert, wie das Element <slave> erzeugt wird, manuell oder automatisch, wenn der Master erzeugt wird. | |
deletion | direct withMaster no |
direct | Spezifiziert, wie das Element <slaveNode> gelöscht wird: direct = nur das Element <slaveNode> wird gelöscht withMaster = das Master Element löscht auch alle seine <slaveNode> Elemente no = das Element <slave> kann nicht direkt gelöscht werden |
|
direction | optional | NORTH EAST SOUTH WEST |
Orientierung des Slaves relativ zum Master Element. Kann als Formel oder als Konstante angegeben werden | |
id | benötigt | beliebig | eindeutige ID, auf die Bezug genommen wird | |
layout | benötigt | outsideEdged insideEdged insideFree insideFloat |
Definiert, wie die Slaves angeordnet werden outsideEdged = Anordnung an Außenkanten insideEdged = Anordnung an Innenkanten insideFree = freie Anordnung innerhalb des Masters (siehe Gantt-Diagramm) insideFloat = verschiebbare Anordnung innerhalb des Masters (siehe Gantt-Diagramm) |
|
node | optional | Referenz auf die Knotenbeschreibung. Wird benötigt, wenn der Knoten separat beschrieben ist. | ||
parent | benötigt | Formel zum Master Objekt. | ||
position | optional | Position eines Slave-Knotens entlang der Kante des Master-Knotens. Die Position wandert mit steigenden Werten im Uhrzeigersinn um den Knoten herum. 50% = Wert in Prozent 50px = Wert in Pixel |
||
rotation | optional | Definiert die Darstellungsweise, wenn das Element <node> im Diagramm gedreht wird | ||
snapPoint | optional | true, false | Definiert den Slave-Knoten als Andockpunkt. true = Slave-Knoten ist Andockpunkt false = Slave-Knoten ist kein Andockpunkt |
|
super | optional | ID eines Knotens von dem die Eigenschaften ererbt werden | ||
valid | optional | Formel um festzustellen, ob ein EO durch den aktuellen Knoten grafisch repräsentiert wird. Die Formel wird mit dem EO verglichen |
Erlaubte Unterelemente | Anzahl |
---|---|
figureBase | beliebig |
figureContainer | beliebig |
figureEllipse | beliebig |
figureImage | beliebig |
figureLabel | beliebig |
figurePolygon | beliebig |
property | beliebig |
slaveNode | beliebig |
figureDefinition | beliebig |
Beispiel:
Unterhalb des grafischen Objekts einer Projektkomponente wird als <slaveNode> das Icon und ein Text dargestellt, der sich aus der Bezeichnung und der Bearbeitungszeit zusammensetzt.
<node id="Function" super="Component" slaveNodes="=this">
<figureImage figure="com.mind8.graph2d.figure.Image"/>
<slaveNode id="LabelAsSlave" node="LabelAsSlave" super="Component" valid="=isInstanceEO() and isInstanceOf('BodyShellWork_Architecture.LevelComponents.Function')" layout="outsideEdged" direction="SOUTH" parent="=this">
<figureLabel figure="com.mind8.graph2d.figure.Label">
<properties>
<property id="text">
<read value="=$Designation+':'+$ProcessingTime+'ms'"/>
</property>
<property id="prefWidth">
<read value="100"/>
</property>
<property id="prefHeight">
<read value="50"/>
</property>
</properties>
</figureLabel>
<property id="showLabel">
<read value="true"/>
</property>
<movement rotateWithMaster="NO" rotate="NO"/>
</slaveNode>
</node>
Ergebnis:
Der slaveNode wird an der unteren Kante des grafischen Objekts mit Icon, Bezeichnung und Bearbeitungszeit der Projektkomponente angezeigt.
Beispiel:
Thermodynamische Bauteile werden nur in einer Richtung durchströmt. Diese Eigenschaft soll bei den grafischen Objekten des Thermodynamik_Diagramms berücksichtigt werden. Die Anschlüsse der Projektkomponenten werden so dargestellt, dass die Strömungsrichtung erkennbar ist und als slaveNodes in der korrekten Himmelsrichtung am Master-Knoten angeordnet.
<node id="AbstractThermodynamicComponent" super="Component" slaveNodes="=rmos('Thermodynamic_Architecture.ConnectionPoint')" valid="=isInstanceOf('Thermodynamic_Architecture.IThermodynamikFunktion')">
<figureImage>
<configuration>
<editRequestHandler xsi:type="formui:formui-handler" />
<editRequestHandlerInfo xsi:type="formui:formui-handler-info" refId="TDD" />
</configuration>
<properties>
<property id="img">
<readvalue="=type('Thermodynamic_ModularSystem.Diagram_Configuration.Imageregister').image(this)" />
</property>
</properties>
</figureImage>
<slaveNode node="AirInput" layout="outsideEdged" direction="WEST" parent="=mc">
<movement direction="EAST SOUTH WEST NORTH" rotate="YES" />
</slaveNode>
<slaveNode node="AirOutput" layout="outsideEdged" direction="EAST" parent="=mc">
<movement direction="EAST SOUTH WEST NORTH" rotate="YES" />
</slaveNode>
</node>
Ergebnis:
Die Slave-Knoten (in den Kreisen) zeigen die Richtung des Luftstroms an. Wird das grafische Objekt des Masters gedreht, drehen sich die Slave-Knoten mit.
<node id="abstractBelt" slaveNodes="=mos">
<figureBase>
<properties>
<property id="resizable">
<read value="true" />
</property>
</properties>
</figureBase>
<slaveNode id="startSlave" node="snapPointStart" parent="=mc" layout="onEdge" direction="=$Direction" creation="byMaster" snapPoint="true" position="50%" />
<slaveNode id="endSlave" node="snapPointEnd" parent="=mc" layout="onEdge" direction="=$Direction" creation="byMaster" snapPoint="true" position="50%" />
<slaveNode id="stopperSlave" node="stopperApp" parent="=mc" layout="outsideEdged" creation="byMaster"/>
</node>
Ergebnis:
Auf der Kontur des Master-Knotens (1) sind die Slave-Knoten (2) als Andockpunkte platziert.