Java Drawing DrawTop

Language

JP  US  UK

 

Undo, Redo

 H. Jyounishi, Tokyo Japan
 

Frame (Index), No frame                 version:0.3(latest)  

要旨:図形の新規作成∙ 削除∙ 変更およびテキストの入力∙ 削除∙ 変更に対してundo、redoを実行する。Undo、redoを実行するためには、変更に対応するjavax.swing.undo.UndoableEditをインプリメントしたクラスを作成しそのオブジェクトを、javax.swing.undo.UndoManagerに登録する。

このページで説明するクラス: UndoConstants, UndoDrawManager, UndoableDrawEdit

UndoableDrawEditサブクラスDelimiter, ChangeContainer, CreateContainer, DeleteContainer, ChangeTextBox, ChangePaintStyle, InsertText, DeleteText

重要事項: コマンドに対するUndo設定一覧表

1. UndoConstantsクラス 戻る=>page top

public class UndoConstants

static定数からなるクラスで次のような意味に使う。

∙ コマンドの操作コード: ADD, DELETE, CHANGE

∙ 操作対象:CONTAINER(ShapeContainerオブジェクト), TEXTBOX(TextBoxオブジェクト), PAINTSTYLE(PaintStylelオブジェクト), SIZE_POSITION(位置、サイズ), SHAPE(図形データ)

参照=>ContainerManager Undoサポート機能


フィールド

説明

ADD

public static final int ADD
新規作成、追加の操作コード

DELETE

public static final int DELETE
削除の操作コード

CONTAINER

public static final int CONTAINER

ShapeContainerオブジェクトを意味する。undoを実行すると変更前のShapeContainerに置き換えられる。

SHAPE

public static final int SHAPE

ShapeContainerの図形データ

SIZE_POSITION

public static final int SIZE_POSITION

ShapeContainer, TextBoxなどの位置、サイズ

TEXTBOX

public static final int TEXTBOX

TextBoxオブジェクトを意味する。undoを実行すると変更前のTextBoxに置き換えられる。

PAINTSTYLE

public static final int PAINTSTYLE

PaintStyleオブジェクトを意味する。undoを実行すると変更前のPaintStyleに置き換えられる。



2. UndoDrawManagerクラス 戻る=>page top

public class UndoDrawManager extends UndoManager

Undoの設定とは、変更に対応するjavax.swing.undo.UndoableEditをインプリメントしたオブジェクトを、 javax.swing.undo.UndoManagerに登録することである。本アプリケーションでは名前の重複を避けるため、 UndoManager相当クラスをUndoDrawManagerUndoableEditインタフェースをインプリメントしたクラスを UndoableDrawEditと記す。

UndoableDrawEditDelimiterオブジェクトを定義し、 Delimiterから次のDelimiterまで、一括してundo、redoを実行するように拡張する。 これにより複数図形のundo、redo設定、複数の操作を組み合わせたコマンドのundo、redo設定が簡単になる。


メソッド

説明

コンストラクタ

public UndoDrawManager(int id)

上位クラスUndoManagerのコンストラクタを呼ぶ。

addEdit

public boolean addEdit(UndoableEdit anEdit)

UndoableEditオブジェクトの登録。このアプリではjavax.swing.undo.AbstractUndoableEditの拡張クラスUndoableDrawEditオブジェクトを登録する。

canUndo

public boolean canUndo()

変更がある場合はtrueを返す。
Java Standard Edition UndoManagerのメソッド。

discardAllEdits

public void discardAllEdits()

登録されているUndoableEditオブジェクトを全て削除する。

undo

public void undo()

undo操作を実行。概要で述べたように、次のDelimiterまで実行する。

redo

public void redo()

redo操作を実行。概要で述べたように、次のDelimiterまで実行する。

changeButtonState

protected void changeButtonState()

メニューボタンの外観を変え、undo/redo操作ができるかどうかを示す。

上位クラスUndoDrawManagerのcanUndo()、canRedo()の結果をメニューボタンに反映する。



3. UndoableDrawEditクラス 戻る=>page top

public class UndoableDrawEdit extends AbstractUndoableEdit

UndoDrawManager(UndoManager拡張クラス)のaddEditメソッドで登録するオブジェクトを作成する。 UndoDrawManager(UndoManager)でundo、redoを実行すると、登録されているUndoableDrawEditの undo、redoメソッドが実行される。つまりundo、redo操作のロジックはUndoableDrawEditのundo、redoメソッドに書けばよい。


3.1 Delimiterサブクラス 戻る=>page top

public static class Delimiter extends AbstractUndoableEdit

複数のUndo操作を一括して実行するために用意したオブジェクト。 UndoDrawManagerはDelimiterとDelimiterで囲まれたUndoableDrawEditオブジェクトをまとめて実行する。


メソッド

説明

コンストラクタ

public Delimiter()

Delimiterオブジェクトを作成する。

getUndoPresentation
Name

public String getUndoPresentationName()

"Delimiter"を返す。

getRedoPresentation
Name

public String getRedoPresentationName()

"Delimiter"を返す。

isSignificant

public boolean isSignificant()

trueを返す。

undo

public void undo() throws CannotUndoException

上位クラスのundo>メソッド実行。

redo

public void redo() throws CannotRedoException

上位クラスのredoメソッド実行。

toString

public String toString()

"Delimiter"を返す。



3.2 ChangeContainerサブクラス 戻る=>page top

public static class ChangeContainer extends AbstractUndoableEdit

図形コンテナ(ShapeContainer)が変更されたとき、 変更前と変更後の図形コンテナを記録しておいて、undo, redoを実行する。典型的な例は、 図形コンテナの移動∙ リサイズである。図形コンテナをそのまま記録するのではなく、 コンパクトな形式(SerializableElement)で記録する。
グループ図形は1つのSerializableElementで表せるので、 このオブジェクトに登録する図形はグループ図形でもよい。


フィールド

説明

oldData

SerializableElement oldData

変更前の図形コンテナ (ShapeContainerのSerializableElement形式)。

newData

SerializableElement newData

変更前の図形コンテナ(ShapeContainerのSerializableElement形式)。


メソッド

説明

コンストラクタ

public ChangeContainer(ShapeContainer oldContainer, ShapeContainer newContainer)

SerializableElementUtil.convertShapeContainerでSerializableElementに変換してフィールド変数oldData、newDataに設定する。

canUndo

public boolean canUndo()

常にtrueを返す。

canRedo

public boolean canRedo()

常にtrueを返す。

getUndoPresentation
Name

public String getUndoPresentationName()

"ChangeContainer Undo"を返す。

getRedoPresentation
Name

public String getRedoPresentationName()

"ChangeContainer Redo"を返す。

isSignificant

public boolean isSignificant()

常にtrueを返す。

undo

public void undo() throws CannotUndoException

∙ oldDataのshapeIdフィールドを使い、ContainerManagerで図形コンテナ(container)を取得。

SerializableElementUtil.setToShapeContainerメソッドでcontainerに変更前の図形データを設定する。

redo

public void redo() throws CannotRedoException

undoと同様の操作。変更後の図形データを設定する。



3.3 CreateContainerサブクラス 戻る=>page top

public static class CreateContainer extends AbstractUndoableEdit

図形作成に対するundo設定である。Copy&Pasteで図形が複写される場合にも適用する。


フィールド

説明

data

SerializableElement data

作成された図形データ(SerializableElement形式)


メソッド

説明

コンストラクタ

public CreateContainer(ShapeContainer container)

containerをSerializableElementUtil.convertShapeContainerでSerializableElementに変換してフィールド変数dataに設定する。

canUndo

public boolean canUndo()

常にtrueを返す。

canRedo

public boolean canRedo()

常にtrueを返す。

getUndoPresentation
Name

public String getUndoPresentationName()

"CreateContainer Undo"を返す。

getRedoPresentation
Name

public String getRedoPresentationName()

"CreateContainer Redo"を返す。

isSignificant

public boolean isSignificant()

常にtrueを返す。

undo

public void undo() throws CannotUndoException

∙ フィールド変数dataのshapeIdフィールドを使い、ContainerManagerで新規作成図形(ShapeContainer)を検索。

ContainerManager.deleteContainerで新規作成図形を削除する。

redo

public void redo() throws CannotRedoException

undoの逆操作。

∙ フィールド変数dataから新規作成図形(ShapeContainer)を再構成する。次のメソッド。

ShapeContainer container= SerializableElementUtil.invertShapeContainer(this.data)

ContainerManager.addContainer(container.getContainerIndex(), container)でContainerListに再登録。

container.getContainerIndex()を指定しているのは、ContainerListの元の位置へ戻すためである。

これは図形の重なりの順番に関係する。



3.4 DeleteContainerサブクラス 戻る=>page top

public static class DeleteContainer extends AbstractUndoableEdit

図形の削除に対するUndoオブジェクトを作成する。


フィールド

説明

data

SerializableElement data

削除された図形データ(SerializableElement形式)


メソッド

説明

コンストラクタ

public DeleteContainer (ShapeContainer container)

containerをSerializableElementUtil.convertShapeContainerでSerializableElementに変換してフィールド変数dataに設定する。

(注)ContainerListから削除した後に、引数のcontainerを指定してこのコンストラクタを呼ぶと、SerializableElementオブジェクトに記録されるcontainerIndexが全て-1になり、元の位置に戻らないので注意。

canUndo

public boolean canUndo()

常にtrueを返す。

canRedo

public boolean canRedo()

常にtrueを返す。

getUndoPresentation
Name

public String getUndoPresentationName()

"DeleteContainer Undo"を返す。

getRedoPresentation
Name

public String getRedoPresentationName()

"DeleteContainer Redo"を返す。

isSignificant

public boolean isSignificant()

常にtrueを返す。

undo

public void undo() throws CannotUndoException

∙ フィールド変数dataから新規作成図形(ShapeContainer)を再構成する。次のメソッド。

ShapeContainer container= SerializableElementUtil.invertShapeContainer(this.data)

ContainerManager.addContainer(container.getContainerIndex(), container)でContainerListに再登録。

container.getContainerIndex()を指定しているのは、ContainerListの元の位置へ戻すためである。

これは図形の重なりの順番に関係する。

redo

public void redo() throws CannotRedoException

∙ フィールド変数dataのshapeIdフィールドを使い、ContainerManagerで削除図形(ShapeContainer)を検索。

ContainerManager.deleteContainerで削除図形を再度削除する。



3.5 ChangeTextBoxサブクラス 戻る=>page top
public static class ChangeTextBox extends AbstractUndoableEdit

TextBoxの変更を記録する。


フィールド

説明

shapeId

String shapeId

挿入する文字列を持つShapeContainerのshapeId。ShapeContainerはグループ図形も可。

oldStextBox

public SerializableTextBox oldTextBox

変更前のTextBox(SerializableTextBox形式)

newStextBox

public SerializableTextBox newTextBox

変更後のTextBox(SerializableTextBox形式)


メソッド

説明

コンストラクタ

public ChangeTextBox(String shapeId, TextBox oldTextBox, TextBox newTextBox)

[引数]

∙ shapeId:変更されたTextBoxを所有するShapeContainerのshapeId。

∙ oldTextBox、newTextBox:変更前と後のTextBox。
 TextBox.getSerializableTextBoxメソッドでSerializableTextBoxを取得して、フィールド変数に設定する。

canUndo

public boolean canUndo()

常にtrueを返す。

canRedo

public boolean canRedo()

常にtrueを返す。

getUndoPresentation
Name

public String getUndoPresentationName()

"ChangeTextBox Undo"を返す。

getRedoPresentation
Name

public String getRedoPresentationName()

"ChangeTextBox Redo"を返す。

isSignificant

public boolean isSignificant()

常にtrueを返す。

undo

public void undo() throws CannotUndoException

∙ フィールド変数shapeIdを使い、ContainerManagerでTextBoxを持つShapeContainerを検索。

∙ ShapeContainerがグループ図形の場合も考慮し、次のステップでTextBoxを直下にもつShapeContainerを求める。

∙ TextBoxを変更前に戻す。

TextBox.setSerializableTextBox(this.oldStextBox);

redo

public void redo() throws CannotRedoException

targetContainerを見つけるまでの処理はundoと同じ。

∙ TextBoxを変更後に戻す。

textBox.setSerializableTextBox(this.newStextBox);



3.6 ChangePaintStyle 戻る=>page top
public static class ChangePaintStyle extends AbstractUndoableEdit PaintStyleの変更を記録する。

フィールド

説明

shapeId

String shapeId

挿入する文字列を持つShapeContainerのshapeId。ShapeContainerはグループ図形も可。

oldSpaintStyle

public SerializablePaintStyle oldPaintStyle

変更前のPaintStyle (SerializablePaintStyle形式)

newSpaintStyle

public SerializablePaintStyle newPaintStyle

変更後のPaintStyle (SerializablePaintStyle形式)


メソッド

説明

コンストラクタ

public ChangePaintStyle(String shapeId, PaintStyle oldPaintStyle, PaintStyle newPaintStylee)

[引数]

∙ shapeId:変更されたPaintStyleを所有するShapeContainerのshapeId。

∙ oldPaintStyle、newPaintStyle:変更前と後のPaintStyle。

PaintStyle.getSerializablePaintStyleメソッドでSerializablePaintStyleに変換してフィールド変数に設定する。

canUndo

public boolean canUndo()

常にtrueを返す。

canRedo

public boolean canRedo()

常にtrueを返す。

getUndoPresentation
Name

public String getUndoPresentationName()

"ChangePaintStyle Undo"を返す。

getRedoPresentation
Name

public String getRedoPresentationName()

"ChangePaintStyle Redo"を返す。

isSignificant

public boolean isSignificant()

常にtrueを返す。

undo

public void undo() throws CannotUndoException

∙ フィールド変数shapeIdを使い、ContainerManagerでPaintStyleを持つShapeContainerを検索。

∙ ShapeContainerがグループ図形の場合も考慮し、次のステップでPaintStyleを直下にもつShapeContainerを求める。

∙ PaintStyleを変更前に戻す。

paintStyle.setSerializablePaintStyle(this.oldSpaintStyle);

redo

public void redo() throws CannotRedoException

targetContainerを見つけるまでの処理はundoと同じ。

∙ PaintStyleを変更後に戻す。

paintStyle.setSerializablePaintStyle(this.newSpaintStyle);



3.7 ChangeTextサブクラス 戻る=>page top

public static class ChangeText extends AbstractUndoableEdit

TextBoxの確定テキストの変更を記録する。現在このサブクラスは使っていない。


フィールド

説明

shapeId

String shapeId

挿入する文字列を持つShapeContainerのshapeId。ShapeContainerはグループ図形も可。

oldStr

AttributedString oldStr

変更前のAttributedString。

newStr

AttributedString newStr

変更後のAttributedString。


メソッド

説明

コンストラクタ

public ChangeText(String shapeId, AttributedString oldStr, AttributedString newStr)

[引数]

∙ shapeId:削除する文字列を持つShapeContainerのshapeId。フィールド変数に設定する。

∙ oldStr、newStr:変更前後のAttributedString。フィールド変数に設定する。

getContainer

public ShapeContainer getContainer()

フィールド変数shapeIdをキーとしてContainerManagerで検索しShapeContainerを返す。

canUndo

public boolean canUndo()

常にtrueを返す。

canRedo

public boolean canRedo()

常にtrueを返す。

getUndoPresentation
Name

public String getUndoPresentationName()

"ChangeText Undo"を返す。

getRedoPresentation
Name

public String getRedoPresentationName()

"ChangeText Redo"を返す。

isSignificant

public boolean isSignificant()

常にtrueを返す。

undo

public void undo() throws CannotUndoException

∙ フィールド変数shapeIdを使い、ContainerManagerでTextBoxを持つShapeContainerを検索。

∙ TextBox のAttributedStringを変更前に戻す。

shapeContainer.getTextBox().replaceText(TextBox.UNDO_REDO, this.oldStr)

redo

public void redo() throws CannotRedoException

ShapeContainerの検索はundoと同じ。

∙ TextBox のAttributedStringを変更後に戻す。

shapeContainer.getTextBox().replaceText(TextBox.UNDO_REDO, this.newStr)



3.8 InsertTextサブクラス 戻る=>page top

public static class InsertText extends AbstractUndoableEdit

文字列の追加

テキストを挿入する場合、一文字またはword単位にUndoableDrawEditオブジェクトを作成するのは効率が悪い。このオブジェクトを呼び出して、挿入文字列を追加できるようにしてある。このためのメソッドが、getContainer、getPosition、setPosition、getAttribString、setAttribStringである。

参照=>TextUndoSetup.InsertText


フィールド

説明

shapeId

String shapeId

TextBoxを持つShapeContainerのshapeId。

attribStr

AttributedString attribStr

挿入された属性つき文字列。

position

int position

属性つき文字列での挿入開始位置。


メソッド

説明

コンストラクタ

public InsertText(String shapeId, AttributedString attribStr, int position)

[引数]

∙ shapeId:削除する文字列を持つShapeContainerのshapeId。フィールド変数に設定する。

∙ attribStr:属性つき文字列。

∙ position:挿入開始位置。

getContainer

public ShapeContainer getContainer()

フィールド変数shapeIdをキーとしてContainerManagerで検索しShapeContainerを返す。

getPosition

public int getPosition()

フィールド変数positionを返す。

setPosition

public void setPosition(int position)

フィールド変数positionに引数を設定。

getAttribString

public AttributedString getAttribString()

フィールド変数attribStrを返す。

setAttribString

public void setAttribString(AttributedString attribStr)

フィールド変数attribStrに引数を設定。

canUndo

public boolean canUndo()

常にtrueを返す。

canRedo

public boolean canRedo()

常にtrueを返す。

getUndoPresentation
Name

public String getUndoPresentationName()

"InsertText Undo"を返す。

getRedoPresentation
Name

public String getRedoPresentationName()

"InsertText Redo"を返す。

isSignificant

public boolean isSignificant()

常にtrueを返す。

undo

public void undo() throws CannotUndoException

∙ フィールド変数shapeIdを使い、ContainerManagerでTextBoxを持つShapeContainerを検索。

∙ TextBox からフィールド変数attribStrを削除する。

shapeContainer.getTextBox().deleteText(TextBox.UNDO_REDO, this.position, this.position+length)

redo

public void redo() throws CannotRedoException

∙ フィールド変数shapeIdを使い、ContainerManagerでTextBoxを持つShapeContainerを検索。

∙ TextBox にフィールド変数attribStrを追加する。

shapeContainer.getTextBox().insertText(TextBox.UNDO_REDO, this.position, this.attribStr.getIterator())



3.9 DeleteTextサブクラス 戻る=>page top
public static class DeleteText extends AbstractUndoableEdit

削除文字列の追加

特にBack spaceキーでテキストを削除する場合、一文字削除ごとにこのオブジェクトを作成するのは効率が悪い。このオブジェクトを呼び出して、削除文字列を追加できるようにしてある。このためのメソッドが、getShapeContainer、getPosition、setPosition、getAttribString、setAttribStringである。

参照=> TextUndoSetup.DeleteText


フィールド

説明

shapeId

String shapeId

TextBoxを持つShapeContainerのshapeId。

attribStr

AttributedString attribStr

削除する属性つき文字列。

position

int position

属性つき文字列での削除開始位置。


メソッド

説明

コンストラクタ

public DeleteText(String shapeId, AttributedString attribStr, int position)

[引数]

∙ shapeId:削除する文字列を持つShapeContainerのshapeId。フィールド変数に設定する。

∙ attribStr:属性つき文字列。

∙ position:削除開始位置。

getContainer

public ShapeContainer getContainer()

フィールド変数shapeIdをキーとしてContainerManagerで検索しShapeContainerを返す。

getPosition

public int getPosition()

フィールド変数positionを返す。

setPosition

public void setPosition(int position)

フィールド変数positionに引数を設定。

getAttribString

public AttributedString getAttribString()

フィールド変数attribStrを返す。

setAttribString

public void setAttribString(AttributedString attribStr)

フィールド変数attribStrに引数を設定。

canUndo

public boolean canUndo()

常にtrueを返す。

canRedo

public boolean canRedo()

常にtrueを返す。

getUndoPresentation
Name

public String getUndoPresentationName()

"DeleteString Undo"を返す。

getRedoPresentation
Name

public String getRedoPresentationName()

"DeleteString Redo"を返す。

isSignificant

public boolean isSignificant()

常にtrueを返す。

undo

public void undo() throws CannotUndoException

∙ フィールド変数shapeIdを使い、ContainerManagerでTextBoxを持つShapeContainerを検索。

∙ TextBox にフィールド変数attribStrを追加する。

shapeContainer.getTextBox().insertText(TextBox.UNDO_REDO, this.position, this.attribStr.getIterator())

redo

public void redo() throws CannotRedoException

∙ フィールド変数shapeIdを使い、ContainerManagerでTextBoxを持つShapeContainerを検索。

∙ TextBox からフィールド変数attribStrを削除する。

shapeContainer.getTextBox().deleteText(TextBox.UNDO_REDO, this.position, this.position+length)



4. The undo setup for each command 戻る=>page top

コマンド

説明

ファイル

(NEW, OPEN, SAVE, SAVE, SAVEAS)

Undo設定は不要。

ページ設定

(NEXT_PAGE, PREVIOUS_PAGE, INSERT_NEW_PAGE, DELETE_PAGE, PAGE_SETUP, PAGE_LAYOUT)

Undo設定は不要。

印刷
(PRINT)

Undo設定は不要。

テキスト編集

(CUT, COPY, PASTE, DELETE)

CUT, DELETEに対するUndo設定はTextBoxdeleteTextメソッドで行う。
PASTEに対するUndo設定はTextBoxinsertTextメソッドで行う。
COPYに対するUndo設定は不要。

図形編集

(CUT, COPY, PASTE, DELETE, SELECT_ALL)

Undo設定はContainerManagerUndoサポート機能を使い、undoSetupStartundoSetupEndを呼んで行う。
CUT, PASTE, DELETEに対してはEditcopyContainers, pasteContainers, deleteメソッドでUndo設定を行う。

COPY, SELECT_ALLに対するUndo設定は不要。

図形作成

(TEXT_BOX, RECTANGLE, ROUND_RECTANGLE, ELLIPSE, LINE, ARROW, DOUBLE_ARROW, POLYLINE, CUBIC_CURVE, COMPONENT_SHAPE)

Undo設定はContainerManagerUndoサポート機能を使い、undoSetupStartundoSetupEndCreateShapeLScreatingEndから呼んで行う。

部品ライブラリ

(LIB)

Undo設定は不要。

移動/リサイス
(MOVE, RESIZE)

Undo設定はContainerManagerUndoサポート機能を使い、undoSetupStartundoSetupEndMoverResizeShapeLSstart, endメソッドから呼んで行う。

もしリサイズコマンドをダイアログ(図形フォーマットダイアログ)から呼ぶ場合、Undo設定はConnectorUtilresizeContainerで行う。

: コネクター(connectors)に対してもUndo設定がなされる。

テキストボックス追加/図形の変換/加工

(ADD_TEXT_BOX, TRANSLATE, ROTATE, FLIP, MODIFY_SHAPE, CUT_SHAPE, CONNECT_CURVES)

Undo設定はContainerManagerUndoサポート機能を使い、undoSetupStartundoSetupEndを次のメソッドから呼んで行う。

∙ ADD_TEXT_BOX: ExecCommandexecメソッド。
∙ TRANSLATE: TranslateActionactionPerformed メソッド。
∙ ROTATE: RotateActionactionPerformed メソッド。
∙ FLIP: FlipActionactionPerformed メソッド。
∙ MODIFY_SHAPE: ModifyShapeLSstart, end メソッド。
∙ CUT_SHAPE: CutShapeActioncutShapes メソッド。
∙ CONNECT_CURVES: ConnectCurvesActionconnect メソッド。

設定
(AUTO_ALIGN, CONNECTOR_ENABLE, DISPLAY_NODE_POINTS)
Undo設定は不要。

情報表示

(SHAPE_FORMAT, DRAW_PANEL_INFORMATION)

Undo設定は不要。

フォント属性
(FONT_FAMILY, FONT_SIZE, FONT_COLOR, BOLD, ITALIC, UNDERLINE, SUBSCRIPT/SUPERSCRIPT )

Undo設定はContainerManagerUndoサポート機能を使い、undoSetupStartundoSetupEndExecCommandUtil.setFontStyleメソッドから呼んで行う。

テキストボックス
(TEXTBOX_LAYOUT, TEXT_ALIGN)

Undo設定はContainerManagerUndoサポート機能を使い、undoSetupStartundoSetupEndを次のメソッドから呼んで行う。

∙ TEXTBOX_LAYOUT: ExecCommandUtil.setTextBoxLayoutメソッド。
∙ TEXT_ALIGN: ExecCommandUtil.setTextBoxLayoutメソッド。

図形の属性

(FILL_COLOR, LINE_COLOR, LINE_WIDTH, LINE_STROKE, ARROW_STYLE)

Undo設定はContainerManagerUndoサポート機能を使い、undoSetupStartundoSetupEndExecCommandexecメソッドから呼んで行う。

図形表示の順番(Z-order)

(MOVE_TO_FRONT, MOVE_TO_BACK, MOVE_FORWARD, MOVE_BACKWARD)

Undo設定はContainerManagerUndoサポート機能を使い、undoSetupStartundoSetupEndExecCommandUtil.moveZorderメソッドから呼んで行う。

整列

(ALIGN_LEFT, ALIGN_CENTER, ALIGN_RIGHT, ALIGN_TOP, ALIGN_MIDDLE, ALIGN_BOTTOM)

Undo設定はContainerManagerUndoサポート機能を使い、undoSetupStartundoSetupEndExecCommandUtil.alignメソッドから呼んで行う。

グループ化
(GROUP, UNGROUP)

Undo設定はContainerManagerUndoサポート機能を使い、undoSetupStartundoSetupEndExecCommandexecメソッドから呼んで行う。

表示倍率

(ZOOM, ZOOM_TO)

Undo設定は不要。



Copyright (c) 2009-2013
All other trademarks are property of their respective owners.