リンクの作成

ConnectionAdorner クラスを使用すると、ダイアグラム内に新規のリンクを作成することができます。リンクが作成される前に、ダイアグラム内で、アクションが許可されるかどうかを検証するための関数が呼び出されます。この関数は、allowCreateLinkFunction マークアップにより、DiagramEditor にバウンドでき、以下の形式です。
allowCreateLinkFunction: function(DiagramEditor, startNode, endNode)
新規のリンクが作成されると、新規のリンクを変更できるようにするために、以下の関数が呼び出されます。
onLinkUpdated: function (diagram, link, isNew, undoAction)
ここで、
  • diagram は、現在のダイアグラムです。
  • link は、作成されたリンクです。
  • isNew は、リンクが新規かどうかを示すブール値 (true ならば新規に作成されたリンク) です。
  • undoAction は、この更新に対して作成された ConnectAction です。 元に戻すおよび再実行についてはカスタマイズしたアクションを設定することができ、このアクションに必要な他のデータを追加できます。

ConnectAction クラス

ConnectAction クラスを使用すると、接続アクションを元に戻す、および再実行することができます。このアクションは、通常、onLinkUpdated 関数から呼び出されるユーザー関数を追加することにより、カスタマイズすることができます。 これには、以下のメソッドが含まれます。
  • getLink: 変更されたリンクを取得します。このメソッドは、取り消しアクションによる置換後でも正しいリンクを自動的に検出します。
  • setUndoUserFunction: ユーザー取り消し関数を設定します。
  • getUndoUserFunction: ユーザー取り消し関数を取得します。
  • setRedoUserFunction: ユーザー再実行関数を設定します。
  • getRedoUserFunction: ユーザー再実行関数を取得します。

接続ハンドルの使用

接続ハンドルは、要素のバウンディング・ボックスの各側に配置された三角形によって表されます。サイズ変更ハンドルと同様、このハンドルは、カーソルを上に重ねると強調表示され、アクションが実行可能であることを示します。ハンドルをクリックすると、選択されたハンドル (指定された位置に BasicPort を作成) とマウス・カーソルとの間にリンクが作成されます。この新規のリンクは、保持した端点を別のノードまたはサブグラフ内のポートまでドラッグすると作成されます。
宛先ポートは、カーソルをエンティティーの上に重ねるとそのエンティティー内に表示されます。宛先ポートは、元のポートとまったく同じ外観になっています。 それらのポートのいずれかの上でドロップ・アクションが実行されると、BasicPort が要素のサイドに作成され、リンク終端がそれに接続されます。接続ターゲット・ハンドルが指定されず、マウス・ボタンがターゲット・コンポーネント上で直接放された場合、AutomaticPort が作成されます。
Ctrl キーを押している間は、AutomaticPort をリンクの起点で作成でき、その場合、リンクは任意のポートを起点とすることができます。
メモ
  • 接続ハンドルのドラッグ中、すべてのマウスオーバー・イベントで、関数 allowCreateLink が評価され、マウス・カーソルが変わってその場所で接続アクションができるかどうかが示されます。
  • リンクの作成後、開始および終了要素が評価され、リンクは、第 1 レベルの共通の親に再割り当てされます。 例えば、両方の要素が同じサブグラフに属する場合、リンクの親も同じサブグラフになります。