Spezielle Parameter des Rasterlayouts

Sortierungsparameter (GL)

Der Sortierungsparameter gibt an, wie die Knoten angeordnet werden sollen.
Beispiel für die Angabe der Iterationen für die Knotenplatzierung und der zulässigen Zeit (GL-Algorithmus)
Gehen Sie wie folgt vor, um die Sortierungsoption für die Knoten anzugeben:
Verwenden Sie die folgende Methode:
gridLayout.setNodeComparator(ibm_ilog.graphlayout.grid.GridLayout.DESCENDING_HEIGHT); 
Der Sortierungsparameter gibt an, wie die Knoten angeordnet werden sollen.
Die gültigen Werte für comparator sind folgende:
  • ibm_ilog.graphlayout.grid.GridLayout.AUTOMATIC_ORDERING
    Der Algorithmus kann die Reihenfolge oder Sortierung frei wählen, so dass der vom Layout belegte Gesamtbereich möglichst gering ist.
  • ibm_ilog.graphlayout.grid.GridLayout.NO_ORDERING
    Es wird keine Sortierung vorgenommen.
  • ibm_ilog.graphlayout.grid.GridLayout.DESCENDING_HEIGHT
    Die Knoten werden in absteigender Reihenfolge ihrer Höhe angeordnet.
  • ibm_ilog.graphlayout.grid.GridLayout.ASCENDING_HEIGHT
    Die Knoten werden in aufsteigender Reihenfolge ihrer Höhe angeordnet.
  • ibm_ilog.graphlayout.grid.GridLayout.DESCENDING_WIDTH
    Die Knoten werden in absteigender Reihenfolge ihrer Breite angeordnet.
  • ibm_ilog.graphlayout.grid.GridLayout.ASCENDING_WIDTH
    Die Knoten werden in aufsteigender Reihenfolge ihrer Breite angeordnet.
  • ibm_ilog.graphlayout.grid.GridLayout.DESCENDING_AREA
    Die Knoten werden in absteigender Reihenfolge ihres Bereichs angeordnet.
  • ibm_ilog.graphlayout.grid.GridLayout.ASCENDING_AREA
    Die Knoten werden in aufsteigender Reihenfolge ihres Bereichs angeordnet.
  • ibm_ilog.graphlayout.grid.GridLayout.ASCENDING_INDEX
    Die Knoten werden in aufsteigender Reihenfolge ihrer Indizes sortiert (siehe setIndex).
  • ibm_ilog.graphlayout.grid.GridLayout.DESCENDING_INDEX
    Die Knoten werden in absteigender Reihenfolge ihrer Indizes sortiert (siehe setIndex).
  • null
    Die Knoten werden beliebig angeordnet.
  • Beliebiges Objekt mit einer Eigenschaft compare, deren Wert eine Funktion sein muss.
    Die Knoten werden diesem angepassten Vergleichsoperator entsprechend angeordnet.
  • Die Funktion compare muss die folgende Signatur haben:
    compareFunction (A, B)
    Die Vergleichsfunktion vergleicht zwei Argumente. Angenommen, es gibt zwei Elemente, A und B. In diesem Fall gibt compareFunction einen der folgenden Werte zurück:
    • -1
      Die Funktion gibt A vor B in der Sortierfolge zurück.
    • 0
      A entspricht B.
    • 1
      Die Funktion gibt A nach B in der Sortierfolge zurück.
Der Standardwert ist ibm_ilog.graphlayout.grid.GridLayout.AUTOMATIC_ORDERING.
Im inkrementellen Modus (siehe setIncrementalMode) und mit festen Knoten (siehe setFixed) wird die Reihenfolge der Knoten nicht vollständig beibehalten.
Wenn der Layoutmodus TILE_TO_GRID_FIXED_WIDTH oder TILE_TO_GRID_FIXED_HEIGHT eingestellt ist, werden die Sortieroptionen nur für Knoten angewendet, deren Größe (einschließlich Rändern) kleiner ist als die Rasterzellengröße (siehe setHorizontalGridOffset und setVerticalGridOffset).

Layoutmodi (GL)

Der Algorithmus für Rasterlayout unterstützt vier Layoutmodi.
Beispiel für die Auswahl eines Layoutmodus (GL-Algorithmus)
Gehen Sie zur Auswahl eines Layoutmodus wie folgt vor:
Verwenden Sie die folgende Methode:
gridLayout.setLayoutMode(ibm_ilog.graphlayout.grid.GridLayout.TILE_TO_GRID_FIXED_HEIGHT);  
Die gültigen Werte für mode sind folgende:
  • ibm_ilog.graphlayout.grid.GridLayout.TILE_TO_GRID_FIXED_WIDTH (Standardwert)
    Die Knoten werden in den Zellen eines Rasters (Matrix) platziert, das eine feste maximale Spaltenanzahl hat. Diese Zahl entspricht der Breite des Layoutbereich, geteilt durch das horizontale Rasteroffset.
  • ibm_ilog.graphlayout.grid.GridLayout.TILE_TO_GRID_FIXED_HEIGHT
    Die Knoten werden in den Zellen eines Rasters (Matrix) platziert, das eine feste maximale Zeilenanzahl hat. Diese Zahl entspricht der Höhe des Layoutbereich, geteilt durch das vertikale Rasteroffset.
  • ibm_ilog.graphlayout.grid.GridLayout.TILE_TO_ROWS
    Die Knoten werden in Zeilen platziert. Die maximale Breite der Zeilen entspricht der Breite des Layoutbereichs. Die Höhe der Zeile entspricht der maximalen Höhe der Knoten, die in der Zeile enthalten sind (plus Rändern).
  • ibm_ilog.graphlayout.grid.GridLayout.TILE_TO_COLUMNS
    Die Knoten werden in Spalten platziert. Die maximale Höhe der Spalten entspricht der Höhe des Layoutbereichs. Die Breite der Spalten entspricht der maximalen Breite der Knoten, die in der Spalte enthalten sind (plus Rändern).

Ausrichtungsparameter (GL)

Parameter für globale Ausrichtung

Die Ausrichtungsoptionen steuern, wie ein Knoten oberhalb seiner Rasterzelle bzw. oberhalb seiner Zeile oder Spalte (je nach Layoutmodus) platziert wird. Die Ausrichtung kann global festgelegt werden. In diesem Fall werden alle Knoten gleich ausgerichtet. Die Ausrichtung kann aber auch lokal in jedem Knoten festgelegt werden. In diesem Fall werden in derselben Zeichnung unterschiedliche Ausrichtungen verwendet.
Beispiel für das Festlegen der globalen Ausrichtung (BL-Algorithmus)
Gehen Sie zum Festlegen der globalen Ausrichtung wie folgt vor:
Verwenden Sie die folgenden Methoden:
gridLayout.setGlobalHorizontalAlignment(ibm_ilog.graphlayout.grid.GridLayout.LEFT);
gridLayout.setGlobalVerticalAlignment(ibm_ilog.graphlayout.grid.GridLayout.TOP);
Die gültigen Werte für den Ausrichtungsparameter sind folgende:
  • ibm_ilog.graphlayout.grid.GridLayout.CENTER (Standardwert)
    Der Knoten wird horizontal und vertikal oberhalb seiner Rasterzelle bzw. Zeile oder Spalte platziert.
  • ibm_ilog.graphlayout.grid.GridLayout.TOP
    Der Knoten wird vertikal an der Oberseite seiner Zelle bzw. Zeile ausgerichtet. Diese Option wird im Layoutmodus TILE_TO_COLUMNS nicht verwendet.
  • ibm_ilog.graphlayout.grid.GridLayout.BOTTOM
    Der Knoten wird vertikal an der Unterseite seiner Rasterzelle bzw. Zeile ausgerichtet. Diese Option wird im Layoutmodus TILE_TO_COLUMNS nicht verwendet.
  • ibm_ilog.graphlayout.grid.GridLayout.LEFT
    Der Knoten wird horizontal an der linken Seite seiner Rasterzelle bzw. Spalte ausgerichtet. Diese Option wird im Layoutmodus TILE_TO_ROWS nicht verwendet.
  • ibm_ilog.graphlayout.grid.GridLayout.RIGHT
    Der Knoten wird horizontal an der rechten Seite seiner Rasterzelle bzw. Spalte ausgerichtet. Diese Option wird im Layoutmodus TILE_TO_ROWS nicht verwendet.
  • ibm_ilog.graphlayout.grid.GridLayout.MIXED
    Jeder Knoten kann eine andere Ausrichtung haben. Sie können die Ausrichtung jedes Knotens einzeln festlegen mit dem Ergebnis, dass in demselben Graphen unterschiedliche Ausrichtungen vorkommen können.

Ausrichtung einzelner Knoten

Alle Knoten haben dieselbe Ausrichtung, sofern die globale Ausrichtung nicht auf gemischt gesetzt ist. Nur, wenn die globale Ausrichtung auf gemischt eingestellt ist, kann jeder Knoten einen eigenen Ausrichtungsstil haben.
Beispiel für die Festlegung der Ausrichtung einzelner Knoten (GL-Algorithmus)
Gehen Sie wie folgt vor, um die Ausrichtung eines einzelnen Knotens festzulegen und abzurufen:
Verwenden Sie die folgenden Methoden:
setHorizontalAlignment(node, alignment);  
setVerticalAlignment(node, alignment);   
getHorizontalAlignment(node);   
getVerticalAlignment(node);   
Die gültigen Werte für den Ausrichtungsparameter sind folgende:
  • ibm_ilog.graphlayout.grid.GridLayout.CENTER (Standardwert)
  • ibm_ilog.graphlayout.grid.GridLayout.TOP
  • ibm_ilog.graphlayout.grid.GridLayout.BOTTOM
  • ibm_ilog.graphlayout.grid.GridLayout.LEFT
  • ibm_ilog.graphlayout.grid.GridLayout.RIGHT

Maximale Anzahl der Knoten pro Zeile oder Spalte (GL)

Standardmäßig platziert das Layout im Modus ibm_ilog.graphlayout.grid.GridLayout.TILE_TO_ROWS oder ibm_ilog.graphlayout.grid.GridLayout.TILE_TO_COLUMNS, abhängig von der Größe der Knoten und den dimensionalen Parametern (Layoutbereich und Randeinstellungen) so viele Knoten wie möglich in jeder Zeile oder Spalte. Bei Bedarf kann das Layout zusätzlich eine festgelegte maximale Anzahl an Knoten pro Zeile bzw. Spalte berücksichtigen.
Beispiel für die Festlegung der maximalen Anzahl an Knoten pro Zeile oder Spalte (GL-Algorithmus)
Gehen Sie wie folgt vor, um die maximale Anzahl an Knoten pro Zeile oder Spalte festzulegen:
Verwenden Sie die folgende Methode:
gridLayout.setMaxNumberOfNodesPerRowOrColumn(5);  
Der Standardwert ist int.MAX_VALUE, d. h., die Anzahl der Knoten, die in jeder Zeile bzw. Spalte platziert werden, wird nur durch die Größe der Knoten und die dimensionalen Parameter bestimmt. Der angegebene Wert muss mindestens 1 sein. Der Parameter hat keine Wirkung, wenn der Layoutmodus ibm_ilog.graphlayout.grid.GridLayout.TILE_TO_GRID_FIXED_WIDTH oder ibm_ilog.graphlayout.grid.GridLayout.TILE_TO_GRID_FIXED_HEIGHT eingestellt ist.

Inkrementeller Modus (GL)

Der Algorithmus für Rasterlayout platziert normalerweise alle Knoten ganz neu. Wenn der Graph inkrementell geändert wird, weil Sie Knoten hinzufügen, entfernen oder in der Größe ändern, können die nachfolgenden Layouts erheblich von dem jeweils vorherigen abweichen. Um diesen Effekt zu vermeiden und dem Benutzer dabei zu helfen, sich den Graphen gedanklich vorzustellen, hat der Algorithmus einen inkrementellen Modus. Im inkrementellen Modus versucht das Layout, die Knoten an derselben Position oder in derselben Reihenfolge wie im vorherigen Layout zu platzieren, sofern dies möglich ist.
Beispiel für das Aktivieren des inkrementellen Modus (GL-Algorithmus)
Gehen Sie zum Aktivieren des inkrementellen Modus wie folgt vor:
Rufen Sie die Methode setIncrementalMode wie folgt auf:
gridLayout.setIncrementalMode(true); 
Hinweis
Zur Bewahrung der Stabilität kann der inkrementelle Modus einige Bereiche frei lassen. Deshalb kann der Gesamtbereich des Layouts größer als im nicht inkrementellen Modus sein. Außerdem kann das Layout nicht so übersichtlich ausssehen wie im nicht inkrementellen Modus.

Dimensionale Parameter (GL)

Dimensionale Parameter für den Rastermodus des Algorithmus für Rasterlayout und Dimensionale Parameter für den Zeilen/Spalten-Modus des Algorithmus für Rasterlayout veranschaulichen die dimensionalen Parameter, die im Algorithmus für Rasterlayout verwendet werden. Diese Parameter werden in den folgenden Abschnitten beschrieben.
Abbildung, die die
Rand- und Rasterabstandsparameter des Rasterlayouts im Rastermodus veranschaulicht
Dimensionale Parameter für den Rastermodus des Algorithmus für Rasterlayout
Abbildung, die
die Rand- und Layoutbereichsparameter des Rasterlayouts im Zeilen- und Spaltenmodus veranschaulicht
Dimensionale Parameter für den Zeilen/Spalten-Modus des Algorithmus für Rasterlayout

Rasteroffset (GL)

Die Parameter für das Rasteroffset steuern den Abstand zwischen den Rasterlinien. Sie werden nur im Rastermodus (Layoutmodi TILE_TO_GRID_FIXED_WIDTH und TILE_TO_GRID_FIXED_HEIGHT) berücksichtigt.
Beispiel für die Festlegung des Rasteroffsets (GL-Algorithmus)
Gehen Sie zum Festlegen des horizontalen und vertikalen Rasteroffsets wie folgt vor:
Verwenden Sie die folgenden Methoden:
gridLayout.setHorizontalGridOffset(50);
gridLayout.setVerticalGridOffset(50);  
Das Rasteroffset ist der kritische Parameter für den Rastermodus. Wenn das Rasteroffset größer ist als die Größe der Knoten (plus Rändern), wird ein freier Bereich um den Knoten herum gelassen. Wenn das Rasteroffset kleiner ist als die Größe der Knoten (plus Rändern), muss der Knoten in mehreren Rasterzellen platziert werden. Die beste Wahl für die Rasteroffsets richten sich nach der Anwendung. Die Offsets können anhand der maximalen Größe der Knoten (plus Rändern) oder der mittleren Größe usw. berechnet werden. Wenn alle Knoten eine ähnliche Größe haben, ist die Wahl nicht kompliziert.

Ränder (GL)

Die Ränder steuern den Platz um jeden Knoten herum, den der Layoutalgorithmus frei lässt.
Beispiel für die Festlegung der Ränder (GL-Algorithmus)
Gehen Sie zum Festlegen der Ränder wie folgt vor:
Verwenden Sie die folgenden Methoden:
gridLayout.setTopMargin(10);
gridLayout.setBottomMargin(10);
gridLayout.setLeftMargin(5);
gridLayout.setRightMargin(5);  
Die Bedeutung der Randparameter in den Rastermodi und in den Zeilen/Spalten-Modi ist nicht dieselbe.
Der Standardwert für alle Randparameter ist 5.