選択インタラクター

以下のセクションでは、選択インタラクターの使用方法について説明します。

SelectionInteractor

SelectionInteractor は、選択された要素を追加および削除することにより、そのグラフと Selection オブジェクトの間のインタラクションを管理します。デフォルトでは、要素をクリックすると、選択は空になり、クリックされた要素が選択されます。 Ctrl キーを押しながら要素を選択すると、クリックされた要素が選択に追加されます。その要素が既に選択されている場合は、その要素は選択から削除されます。 ダイアグラムのフリー域をクリックすると、選択は空になります。
また、SelectionInteractor は、グラフ内で使用可能にすることにより、Diagram ウィジェットなしで使用することができます。
graph = surface.createGraph();
graph.setSelect(true);

MarqueeSelectionInteractor

MarqueeSelectionInteractor は、DiagramEditor ウィジェットで使用することができます。 このインタラクターの場合、ダイアグラムの長方形領域を選択することにより、複数の要素を選択することができます。
ダイアグラムのフリー域をクリックし、マウスをドラッグすると、半透明の長方形が Viewport 内に描画されます。 マウス・ボタンを放すと、境界をつけた要素が選択されます。 デフォルトでは、部分的に境界をつけた要素は、囲み枠選択に含まれます。ただし、完全に境界をつけた要素だけを囲み枠選択に入れるようにする場合は、setPartialSelectionEnabledメソッドを false に設定することができます。
MarqueeSelectionInteractor のモードは、setMarqueeMode(mode) メソッドを使用することにより、DiagramEditor で変更できます。
  • トップレベルのみ:
    デフォルト・モードです。トップレベルの要素だけ (グラフ内に作成された要素) を選択します。このモードは、topLevelOnly 定数を使用して設定します。
  • トップの親:
    選択された要素の最上位の親のみを選択します。 例えば、サブグラフが完全に境界で囲まれている場合、そのサブグラフだけが選択され、その子は選択されません。サブグラフが囲み枠によって囲まれていない場合は、境界内にある 子が選択されます。このモードは、topParent 定数を使用して設定します。
  • すべて:
    境界をつけた要素すべてを選択します。このモードは、all 定数を使用して設定します。
複数選択も可能です。ユーザーが適切な修飾キー (デフォルトでは Ctrl キー) を押して囲み枠選択を繰り返すと、前から存在していた要素をクリアすることなく、選択された要素が選択に追加されます。