取り消し管理

ダイアグラムの処理中に、「元に戻す」および「再実行」操作を行うことができます。これらの操作は、DiagramEditor で使用することができます。 これらは、編集機能によって適用可能なすべての標準変更をサポートするだけでなく、対応する取り消しオブジェクト登録により、プログラムを使用して適用されたあらゆる基本的なプロパティー変更をサポートしています。カスタマイズされた操作により、さらに複雑な変更もサポートできます。

UndoManager

このオブジェクトは、getUndoManager メソッドにより使用可能で、元に戻すおよび再実行が可能なアクションのスタックを管理します。このコンポーネントは、これらのスタックを管理するメソッドの基本リストを提供するだけでなく、完全な GraphElements の辞書を、その ID、および必要な場合はそれらの代替 (元に戻すときの削除、および連続再実行時) によって保守します。Undo Manager には、以下のメソッドがあります。
  • getDiagram: ダイアグラムを取得します。
  • addAction: 取り消しアクション・スタックにアクションを追加します (再実行スタックをクリア)。
  • undoAction: 取り消しスタックからアクションをアンスタックして、取り消し操作を適用し、それを再実行スタックに追加します。
  • redoAction: 再実行スタックからアクションをアンスタックし、再実行操作を適用します。
  • getUndoStack: 取り消しアクション・スタックのコピーを取得します。
  • getRedoStack: 再実行アクション・スタックのコピーを取得します。
  • setMaximumStackSize: 最大スタック・サイズを設定します。ヌルの場合、サイズは無制限です。
  • getMaximumStackSize: 最大スタック・サイズを取得します。
  • getRegisteredGfx: 指定された ID に対応する登録済み GFX を取得します。必要に応じて、代替を検索します。
  • registerGfxReplacement: GFX ID が別の ID に置換された場合に登録を行います (GFX が削除され、代替が新規の ID で作成された場合)。
  • getRegisteredGfxReplacement: 指定された GFX ID の登録済み代替を取得します。最後の代替を検出するため繰り返し検索を行います。代替が登録されていない場合、指定された GFX ID が返されます。
  • getRegisteredParent: 指定された ID のグラフの親を返します。ID がサブグラフに対応する場合、内部グラフが返されます。

取り消しアクション

Action クラスは、取り消し操作が含まれる基本クラスです。このクラスは、あらゆる取り消しアクションの基本インターフェースを提供し、以下のメソッドがあります。
  • undo: 取り消し関数を適用します。
  • redo: 再実行関数を適用します。
  • getLabel: UI 印刷のアクション・ラベルを取得します。
  • getUndoManager: 取り消しスタックに追加される時に自動的にアクティブになる undoManager を取得します。
  • isUndoing: 取り消しメソッド実行時に true を返します。
  • isRedoing: 再実行メソッド実行時に true を返します。
クラスの以下のサブセットは、Action から継承し、カスタマイズまたは新規アクションの作成に便利です。

SimpleAction

SimpleAction クラスは、単純な取り消しアクションに使用します。このクラスは、変数の割り当て、または単純な引数でメソッドを呼び出すことによって変更できる基本プロパティーを元に戻すおよび再実行する場合に使用されます。SimpleAction クラスは、カスタマイズされた編集アクションを元に戻す場合に使用します。移動取り消しアクションでは、このクラスを使用して、以下のメソッドによる移動アクションを元に戻す、および再実行します。
  • setOldValue: 旧値を設定します。
  • setNewValue: 新規の値を設定します。
  • getOldValue: 旧値を取得し、クローン関数が以前に設定されている場合は、設定された値を複製します。
  • getNewValue: 新規の値を取得し、クローン関数が以前に設定されている場合は、設定された値を複製します。
  • setModifiedElementId: 変更されたオブジェクトを設定します。
  • getModifiedElementId: 変更されたオブジェクトを取得します。
  • getModifiedElement: 変更された GFX 要素、または必要に応じてその代替を取得します。
  • setMethodOrProperty: 変更対象のプロパティーまたはメソッド名を設定します。
  • setCloneFunction: クローン関数を設定し、変更アクションの前に値を複製します。

MultipleAction

MultipleAction クラスは、UndoActions のリストをグループにまとめます。 このクラスは、Actions のセットを 1 つの複合アクションにグループ化し、再実行または取り消し操作時に順次すべての追加されたアクションを実行します。

ReparentingAction

ReparentingAction クラスでは、リペアレンティング・アクションを元に戻す、および再実行することができます。このクラスは、MultipleAction と組み合わせて、リペアレンティングに関連する取り消しまたは再実行アクションを作成する場合に使用します。

UserCustomizedAction

UserCustomizedAction クラスは、DiagramEditor に付属しないすべてのアクションに対する基本クラスです。 ただし、完全に 期待した動作を得るためには、カスタマイズの必要があります。 このクラスは、DropActionConnectAction、および ReConnectAction を使用して拡張することができます。