|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
public interface UndoableEdit
UndoableEdit
表示一個編輯。該編輯可被撤消,如果已撤消,該編輯可恢復。
設計 UndoableEdit
與 UndoManager
一起使用。由於 UndoableEdit
是由 UndoableEditListener
產生的,所以通常將它們添加到 UndoManager
。當將 UndoableEdit
添加到 UndoManager
時,會發生以下事件(假定沒有在 UndoManager
上調用 end
):
UndoManager
套件含編輯,則它將在當前編輯上調用 addEdit
,傳入新的編輯作為參數。如果 addEdit
返回 true,則新的編輯被視為已合併到當前編輯中,並且不會將新的編輯添加到當前編輯列表。編輯可以使用 addEdit
將多個較小編輯合併到較大編輯中,並且將合併後的編輯視為單個編輯。
addEdit
返回 false,則以傳入的當前編輯對新的編輯調用 replaceEdit
。這與 addEdit
截然相反 如果新的編輯從 replaceEdit
返回 true,則新的編輯將替換當前編輯。
UndoManager
使用 isSignificant
確定應該撤消或恢復多少編輯。UndoManager
將撤消或恢復當前編輯與最後一個或下一個有效編輯之間的所有無效編輯(isSignificant
返回 false)。addEdit
和 replaceEdit
可用於將多個編輯視為單個編輯,從 isSignificant
返回 false 允許 treating 可用於一次撤消或恢復多個較小編輯。也可以使用 addEdit
方法完成類似的功能。
方法摘要 | |
---|---|
boolean |
addEdit(UndoableEdit anEdit)
將 UndoableEdit 添加到此 UndoableEdit 。 |
boolean |
canRedo()
如果可以恢復此編輯,則返回 true。 |
boolean |
canUndo()
如果可以撤消此編輯,則返回 true。 |
void |
die()
通知某個編輯不應再使用它。 |
String |
getPresentationName()
返回此編輯的本地化可讀描述,例如,適於在更改日誌中使用。 |
String |
getRedoPresentationName()
返回此編輯可恢復形式的本地化可讀描述,例如,適於用作 “Redo” 選單項。 |
String |
getUndoPresentationName()
返回此編輯可撤消形式的本地化可讀描述,例如,適於用作 “Undo” 選單項。 |
boolean |
isSignificant()
如果認為此編輯有效,則返回 true。 |
void |
redo()
重新應用編輯。 |
boolean |
replaceEdit(UndoableEdit anEdit)
如果此 UndoableEdit 應替換 anEdit ,則返回 true。 |
void |
undo()
撤消編輯。 |
方法詳細資訊 |
---|
void undo() throws CannotUndoException
CannotUndoException
- 如果不能撤消此編輯boolean canUndo()
void redo() throws CannotRedoException
CannotRedoException
- 如果不能恢復此編輯boolean canRedo()
void die()
UndoableEdit
標記為停用,則不能再對它進行撤消或恢復。
對於不可能撤消或恢復時清除不再需要的狀態而言,這是一個有用的鉤子 (hook)。例如,刪除不能再恢復的物件所使用的檔案資源。UndoManager
在其離開編輯佇列之前調用它。
注意,這是一個單向操作。不存在 "un-die" 方法。
CompoundEdit.die()
boolean addEdit(UndoableEdit anEdit)
UndoableEdit
添加到此 UndoableEdit
。此方法可用於將多個較小編輯合併為一個較大的復合編輯。例如,文本編輯器通常允許對單詞或句子應用撤消操作。文本編輯器可以選擇在每個關鍵事件上產生編輯,但允許將這些編輯合併為一個更加使用者友好的單元,比如一個單詞。在這種情況下,當可以合併編輯時,UndoableEdit
將覆寫 addEdit
以返回 true。
返回值為 true 指示已將 anEdit
合併到此編輯。返回值為 false 指示不能將 anEdit
合併到此編輯。
通常,接收者已經在 UndoManager
(或者其他 UndoableEditListener
)佇列中,並且可以合併 anEdit
,而不是將它按順序添加到佇列中。
如果返回 true,則從現在開始,anEdit
必須從 canUndo
和 canRedo
返回 false,並且必須對 undo
或 redo
拋出適當的異常。
anEdit
- 要添加的編輯
anEdit
合併到此編輯,則返回 trueboolean replaceEdit(UndoableEdit anEdit)
UndoableEdit
應替換 anEdit
,則返回 true。此方法由 CompoundEdit
和 UndoManager
使用;如果不能將 anEdit
添加到當前編輯(addEdit
返回 false),則調用此方法。
此方法提供了某個編輯替換現有編輯的方法。
此訊息與 addEdit 相反 -- anEdit 通常已經在 UndoManager
(或者其他 UndoableEditListener)的佇列中,並且接收者可以替換它。
如果返回 true,則從現在開始,anEdit 必須從 canUndo() 和 canRedo() 返回 false,並且必須對 undo() 或 redo() 拋出適當的異常。
anEdit
- 替換當前編輯的編輯
anEdit
,則返回 trueboolean isSignificant()
UndoManager
將為下一個有效編輯撤消或恢復所有無效編輯。
String getPresentationName()
String getUndoPresentationName()
getPresentationName
。
String getRedoPresentationName()
getPresentationName
。
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。