IBM® ILOG® Dojo Diagrammer は、非接続グラフ
のレイアウトに特別なサポートを提供します。
グラフが複数の 接続コンポーネント から構成されている場合、あるいは、分離ノード
(リンクのないノード)を含む場合、各接続コンポーネントに別々にレイアウト・アルゴリズムを適用してから、専用のレイアウト・アルゴリズム
(通常は、ibm_ilog.graphlayout.grid.GridLayout) を使用してその接続コンポーネントを配置することが望ましいです。次の図は、4
つの接続コンポーネントを含むグラフを示しています。
通常のレイアウト・インスタンス
(ここで ibm_ilog.graphlayout.forcedirected.ForceDirectedLayout) 上で、接続コンポーネントのレイアウトを使用可能にすることで、
接続コンポーネントが自動的に認識されて、個々にレイアウトされます。最終的に、4
つの接続コンポーネントが、高度にカスタマイズ可能な配置アルゴリズム
(ibm_ilog.graphlayout.grid.GridLayout) を使用して配置されます。

非接続グラフ内の接続コンポーネントの自動レイアウト
ibm_ilog.graphlayout.GraphLayout のサブクラスがこの機能をサポートするかどうかを示すには、そのメソッドを使用します。
supportsLayoutOfConnectedComponents()
デフォルトの実装では
false
が返されます。サブクラスは、この機能がサポートされることを示す true
を返すように、このメソッドをオーバーライドすることができます。メソッド setLayoutOfConnectedComponentsEnabled(true) を使用して、接続コンポーネントのレイアウトを有効にすることができます。
現行設定を取得するには、以下の操作を行います。
var enabled = layout.isLayoutOfConnectedComponentsEnabled();
デフォルト値は、以下のメソッドによって返される値です。
isLayoutOfConnectedComponentsEnabledByDefault()
ibm_ilog.graphlayout.GraphLayout でのこのメソッドのデフォルト実装は、
false
を戻します。
一部のレイアウト・クラスの場合、この機能がデフォルトで使用可能に設定されていて、そのクラスでこのメソッドをオーバーライドして true
を返すのが適切です。このクラス
ibm_ilog.graphlayout.GraphLayout
の メソッド performLayout
が、この機能をサポートするレイアウト・クラスで使用可能に設定されている場合、アタッチされたグラフ・モデルを複数接続コンポーネントにカットして、各接続コンポーネントを別々にレイアウトします。 How does the layout of connected components feature work
when this mechanism is enabled in the layout classes that support
this feature? グラフ全体に対してレイアウトを実行する
代わりに、メソッド performLayout は、まず最初に、
グラフの接続コンポーネントを切り分けます。
その後、メソッド
layout
の呼び出しによって、
それぞれの接続コンポーネントが個別にレイアウトされます。これを行うため、
アタッチされたグラフは、元のグラフの各接続コンポーネントに対応する、内部的に生成された
グラフに一時的に変更されます。最後に、メソッド setLayoutOfConnectedComponents によって指定されたレイアウト・インスタンス
layout.setLayoutOfConnectedComponents(connectedComponentsLayout);
が使用されて、接続コンポーネントが配置されます。接続コンポーネントを
配置するレイアウト・インスタンスを指定するには、
メソッド setLayoutOfConnectedComponents を呼び出します。
このメソッドを使用して指定されたレイアウト・インスタンスがない
場合、メソッド
getLayoutOfConnectedComponents
は、 ibm_ilog.graphlayout.grid.GridLayout のインスタンスを戻します。このインスタンスのレイアウト領域パラメーターは、デフォルトで矩形
(0
、0
、800
、800
) に設定されます。
レイアウト・モード・パラメーターは ibm_ilog.graphlayout.grid.GridLayout.TILE_TO_ROWS に設定されます。メモ
ツリー・レイアウトおよび階層型レイアウトには、
非接続グラフ用の組み込みサポートが含まれています。ツリー・レイアウトおよび階層型レイアウトの
場合の結果は、基本クラス ibm_ilog.graphlayout.GraphLayout によって提供される汎用メカニズム
(接続コンポーネントのレイアウト機能)
の結果と 異なることがあります。ユーザー特有のニーズに応じて、汎用メカニズムまたは組み込みサポートの
どちらかを使用できます。