Lokale Eigenschaften

Sie können auf der Serverseite Werte für lokale Eigenschaften in den parentNodeLayout- und parentLinkLayout-Objekten eines Knotens oder Links zuweisen:
Eigenschaft Beschreibung
<Name der clientseitigen lokalen Eigenschaft> Der Name der Pseudoeigenschaft des Knotens bzw. Links, die mit Getter- und Setter-Funktionen in der entsprechenden clientseitigen Layoutklasse definiert wird. Es können alle lokalen Eigenschaften der Typen number, boolean, point und rectangle angegeben werden.
Im folgenden Beispiel werden Werte für vier lokale Eigenschaften mit einem hierarchical-Layout festgelegt:
"parentNodeLayout":{
                  "linkStyle": 1,
                  "linkPriority": 123,
                  "fromPortIndex": 3,
                  "toPortIndex": 5
},
In diesem Beispiel entsprechen die Funktionen getLinkStyle und setLinkStyle der Klasse HierarchicalLayout dem lokalen Eigenschaftsnamen linkStyle.
In dem an den Server übergebenen Graphen können parentNodeLayout- und parentLinkLayout-Objekte in jedem Knoten oder Link eines Graphen oder Untergraphen enthalten sein, in dem nodeLayout und linkLayout vorhanden sind. Das Fehlen der parentNodeLayout- und parentLinkLayout-Objekte für einen bestimmten Knoten oder Link zeigt an, dass es keine lokale Knotenlayout- bzw. Linklayouteigenschaft für diesen Knoten bzw. Link gibt.

Knoteneigenschaften

Eigenschaft Beschreibung
id Eine eindeutige Kennung für den Knoten. Diese Eigenschaft wird beim Erstellen von Links verwendet.
b Zeichenrahmen für den Knoten, der als Array von vier Zahlen angegeben wird (X-Koordinate, Y-Koordinate, Breite und Höhe). Die Werte für den Zeichenrahmen werden im Koordinatenraum des übergeordneten Elements des Knotens ausgedrückt.
parentNodeLayout Ein Objekt, das lokale Eigenschaften des Knotens für das Knotenlayout des Graphen mit dem Knoten enthält. Weitere Informationen finden Sie unter Lokale Eigenschaften.
parentLinkLayout Ein Objekt, das lokale Eigenschaften des Knotens für das Linklayout des Graphen mit dem Knoten enthält. Weitere Informationen finden Sie unter Lokale Eigenschaften.

Linkeigenschaften

Eigenschaft Beschreibung
id Eine eindeutige Kennung für den Knoten. Diese Eigenschaft wird beim Erstellen von Links und vom Client verwendet, wenn dieser sein eigenes Modell nach dem serverseitigen Layout aktualisiert.
f Quellenknoten. Der ID-Wert des Knotens an der Quelle des Links.
t Zielknoten. Der ID-Wert des Knotens am Ziel des Links.
fp Quellenpunkt. Die optionale Koordinate der from point-Verbindung, die als JSON-Array mit zwei Zahlen für die X- und Y-Koordinaten angegeben wird. Wenn diese Eigenschaft nicht definiert wird, wird der from point unter Verwendung der Knotenmitte festgelegt. In der Serverantwort wird diese Eigenschaft weggelassen, wenn das Layout den Verbindungspunkt nicht verschoben hat. In diesem Fall muss der Client den ursprünglichen Verbindungspunkt unverändert übernehmen.
tp Zielpunkt. Die optionale Koordinate der to point-Verbindung, die als JSON-Array mit zwei Zahlen für die X- und Y-Koordinaten angegeben wird. Wenn diese Eigenschaft nicht definiert wird, wird der to point unter Verwendung der Knotenmitte festgelegt. In der Serverantwort wird diese Eigenschaft weggelassen, wenn das Layout den Verbindungspunkt nicht verschoben hat. In diesem Fall muss der Client den ursprünglichen Verbindungspunkt unverändert übernehmen.
ip Eine optionale Liste mit Zwischenpunkten für den Link, die als Array von Arrays mit (x,y)-Koordinaten angegeben wird, z. B. [[10,20], [30,40]]. Der Link wird durch die angegebenen Punkte gezeichnet. Das Fehlen dieser Eigenschaft bedeutet, dass der Link eine gerade Linie zwischen den Knoten ist.
sp Hat den Wert "true", wenn der Linkanfang fixiert ist (BasicPort.isMovable gibt "true" zurück). Wenn diese Eigenschaft nicht definiert wird, ist der Linkanfang nicht fixiert.
ep Hat den Wert "true", wenn das Linkende fixiert ist (BasicPort.isMovable gibt "true" zurück). Wenn diese Eigenschaft nicht definiert wird, ist das Linkende nicht fixiert.
w Linkbreite.
parentNodeLayout Ein Objekt, das lokale Eigenschaften des Links für das Knotenlayout des Graphen mit dem Link enthält. Weitere Informationen finden Sie unter Lokale Eigenschaften.
parentLinkLayout Ein Objekt, das lokale Eigenschaften des Links für das Linklayout des Graphen mit dem Link enthält. Weitere Informationen finden Sie unter Lokale Eigenschaften.
Alle Werte für Geometrieelemente (Punktposition und -breite) werden im Koordinatenraum des übergeordneten Elements des Links ausgedrückt.
In der Serverantwort werden alle Links weggelassen, die bei der Layoutausführung über das Knotenlayout oder das Linklayout nicht angelegt werden. Dieses Verhalten ist zu beobachten, wenn ein Punkt nicht verschoben, hinzugefügt oder entfernt wurde.

Untergraphen

Alle Eigenschaften, die für einen Knoten gültig sind, sind auch für einen Untergraphen gültig. Die folgenden Eigenschaften sind auch in einem Untergraphen gültig:
Eigenschaft Beschreibung
gb Zeichenrahmen des Graphen, der als Array von vier Zahlen angegeben wird (X-Koordinate, Y-Koordinate, Breite und Höhe). Die Werte für den Zeichenrahmen werden im Koordinatenraum des übergeordneten Elements des Untergraphen ausgedrückt. Sie dienen der Berechnung der Randeinstellungen für den Untergraphen.
m Definiert die Matrix für die Transformation aus dem Koordinatenraum des Graphen im Untergraphen in den Koordinatenraum des Untergraphen. Sie wird als Array mit sechs Zahlen angegeben (xx, xy, yx, yy, dx und dy). Das Fehlen dieser Eigenschaft entspricht der Angabe einer Identitätsmatrix.
Wenn ein clientseitiger Untergraph ausgeblendet ist (Subgraph.isCollapsed gibt "true" zurück), beschreiben Sie die Knoten und Links des Untergraphen nicht. Stattdessen beschreiben Sie den Untergraphen so, als wäre dieser ein regulärer Knoten.

Verschachtelte Graphen mit graphenübergreifenden Links

Jeder Knoten kann einen Untergraphen enthalten und beliebige zwei Knoten in jedem Graphen oder Untergraphen können verlinkt werden. Zum Verlinken der Graphen ist es wichtig, dass jeder Knoten eindeutig identifizierbar ist.
Im Folgenden sehen Sie ein Beispiel eines Graphen mit einem Untergraphen und einem graphenübergreifenden Link:
{
"nodeLayout": {"algorithm":"forcedirected"},
"nodes":[
   {"id":"object1", "b":[120, 400, 20, 20]},
   {"id":"object2", "b":[170, 400, 20, 20]},
   {
      "id":"subgraph1", 
      "b":[500,300,200,200],
      "gb":[510,310,180,180],
      "m":[1,0,0,1,12,30],
      "nodeLayout": {"algorithm":"forcedirected"},
      "nodes":[
         {"id":"subgraph1/object1", "b":[0, 0, 20, 20]},
         {"id":"subgraph1/object2", "b":[100, 120, 20, 20]}
      ],
      "links":[
         {"id":"igLink", "f":"subgraph1/object1", "t":"object2"}
      ]
   }
],

"links":[
   {"id":"myLink", "f":"object1", "t":"object2", "ip":[[20,20],[40,20],[40,40]]}
]
}
Der Untergraph in diesem Beispiel ist als Knoten mit einem Zeichenrahmen definiert. Es gibt einen graphenübergreifenden Link vom Knoten im Untergraphen zu einem Untergraphen im übergeordneten Graphen. Der Servercode erfordert keine Namensstruktur, solange alle Knoten in allen Untergraphen eindeutige IDs haben. Wenn eine doppelte ID gefunden wird, schlägt das Graphenlayout fehl.
Wenn der Anfang eines graphenübergreifenden Links ein Knoten in einem ausgeblendeten Untergraphen ist und das Ende des Links ein Knoten in einem nicht ausgeblendeten Graphen ist und umgekehrt, muss in der JSON-Beschreibung des Links der sichtbare Anfangs- bzw. Endknoten anstelle ursprünglichen Anfangs- bzw. Endknotens verwendet werden. Der sichtbare Anfangs- bzw. Endknoten ist der nächste übergeordnete Knoten des Anfangs- bzw. Endknotens, der nicht ausgeblendet ist.