Package io.keikai.doc.collab.utils
Class UndoManager
- java.lang.Object
-
- io.keikai.doc.collab.lib0.ObservableV2
-
- io.keikai.doc.collab.utils.UndoManager
-
public class UndoManager extends ObservableV2
Fires 'stack-item-added' event when a stack item was added to either the undo- or the redo-stack. You may store additional stack information via the metadata property on `event.stackItem.meta` (it is a `Map` of metadata properties). Fires 'stack-item-popped' event when a stack item was popped from either the undo- or the redo-stack. You may restore the saved stack information from `event.stackItem.meta`.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classUndoManager.StackClearedStatus
-
Constructor Summary
Constructors Constructor Description UndoManager(AbstractType typeScope)UndoManager(AbstractType typeScope, UndoManagerOptions options)UndoManager(java.util.List<AbstractType> typeScopes)UndoManager(java.util.List<AbstractType> typeScopes, UndoManagerOptions options)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddToScope(AbstractType yType)voidaddToScope(java.util.List<AbstractType> yTypes)voidaddTrackedOrigin(java.lang.Object origin)booleancanRedo()Are redo steps available?booleancanUndo()Are undo steps available?voidclear(boolean clearUndoStack, boolean clearRedoStack)static voidclearUndoManagerStackItem(Transaction tr, UndoManager um, StackItem stackItem)Clear an UndoManager stack item.voiddestroy()intgetCaptureTimeout()java.util.function.Function<java.lang.Object,java.lang.Boolean>getCaptureTransaction()StackItemgetCurrStackItem()java.util.function.Function<java.lang.Object,java.lang.Boolean>getDeleteFilter()DocgetDoc()longgetLastChange()java.util.List<StackItem>getRedoStack()java.util.List<AbstractType>getScope()java.util.Set<java.lang.Object>getTrackedOrigins()java.util.List<StackItem>getUndoStack()booleanisIgnoreRemoteMapChanges()booleanisRedoing()booleanisUndoing()voidonStackCleared(java.util.function.Consumer<UndoManager.StackClearedStatus> eventListener)voidonStackItemAdded(java.util.function.BiConsumer<StackItemEvent,UndoManager> eventListener)voidonStackItemAdded(java.util.function.Consumer<StackItemEvent> eventListener)voidonStackItemPopped(java.util.function.BiConsumer<StackItemEvent,UndoManager> eventListener)voidonStackItemPopped(java.util.function.Consumer<StackItemEvent> eventListener)voidonStackItemUpdated(java.util.function.BiConsumer<StackItemEvent,UndoManager> eventListener)voidonStackItemUpdated(java.util.function.Consumer<StackItemEvent> eventListener)static StackItempopStackItem(UndoManager undoManager, java.util.List<StackItem> stack, java.lang.String eventType)Pop an item from the undo/redo stack.StackItemredo()Redo last undo operation.voidremoveTrackedOrigin(java.lang.Object origin)voidsetCurrStackItem(StackItem currStackItem)voidstopCapturing()UndoManager merges Undo-StackItem if they are created within time-gap smaller than `options.captureTimeout`.StackItemundo()Undo last changes on type.
-
-
-
Constructor Detail
-
UndoManager
public UndoManager(AbstractType typeScope)
- Parameters:
typeScope- Accepts single type
-
UndoManager
public UndoManager(AbstractType typeScope, UndoManagerOptions options)
- Parameters:
typeScope- Accepts single typeoptions-
-
UndoManager
public UndoManager(java.util.List<AbstractType> typeScopes)
- Parameters:
typeScopes- Accepts an array of types
-
UndoManager
public UndoManager(java.util.List<AbstractType> typeScopes, UndoManagerOptions options)
- Parameters:
typeScopes- Accepts an array of typesoptions-
-
-
Method Detail
-
getScope
public java.util.List<AbstractType> getScope()
-
getDoc
public Doc getDoc()
-
getDeleteFilter
public java.util.function.Function<java.lang.Object,java.lang.Boolean> getDeleteFilter()
-
getTrackedOrigins
public java.util.Set<java.lang.Object> getTrackedOrigins()
-
getCaptureTransaction
public java.util.function.Function<java.lang.Object,java.lang.Boolean> getCaptureTransaction()
-
getUndoStack
public java.util.List<StackItem> getUndoStack()
-
getRedoStack
public java.util.List<StackItem> getRedoStack()
-
isUndoing
public boolean isUndoing()
-
isRedoing
public boolean isRedoing()
-
getCurrStackItem
public StackItem getCurrStackItem()
-
setCurrStackItem
public void setCurrStackItem(StackItem currStackItem)
-
getLastChange
public long getLastChange()
-
isIgnoreRemoteMapChanges
public boolean isIgnoreRemoteMapChanges()
-
getCaptureTimeout
public int getCaptureTimeout()
-
addToScope
public void addToScope(AbstractType yType)
- Parameters:
yType-
-
addToScope
public void addToScope(java.util.List<AbstractType> yTypes)
- Parameters:
yTypes-
-
addTrackedOrigin
public void addTrackedOrigin(java.lang.Object origin)
-
removeTrackedOrigin
public void removeTrackedOrigin(java.lang.Object origin)
-
clear
public void clear(boolean clearUndoStack, boolean clearRedoStack)
-
stopCapturing
public void stopCapturing()
UndoManager merges Undo-StackItem if they are created within time-gap smaller than `options.captureTimeout`. Call `um.stopCapturing()` so that the next StackItem won't be merged.
-
undo
public StackItem undo()
Undo last changes on type.- Returns:
- {StackItem?} Returns StackItem if a change was applied
-
redo
public StackItem redo()
Redo last undo operation.- Returns:
- {StackItem?} Returns StackItem if a change was applied
-
canUndo
public boolean canUndo()
Are undo steps available?- Returns:
- {boolean} `true` if undo is possible
-
canRedo
public boolean canRedo()
Are redo steps available?- Returns:
- {boolean} `true` if redo is possible
-
destroy
public void destroy()
- Overrides:
destroyin classObservableV2
-
clearUndoManagerStackItem
public static void clearUndoManagerStackItem(Transaction tr, UndoManager um, StackItem stackItem)
Clear an UndoManager stack item.- Parameters:
tr- The current transaction.um- The UndoManager instance.stackItem- The stack item to clear.
-
popStackItem
public static StackItem popStackItem(UndoManager undoManager, java.util.List<StackItem> stack, java.lang.String eventType)
Pop an item from the undo/redo stack.- Parameters:
undoManager- The UndoManager instance.stack- The stack from which to pop the item.eventType- The event type ("undo" or "redo").- Returns:
- The popped stack item, or null if no item was popped.
-
onStackItemAdded
public void onStackItemAdded(java.util.function.Consumer<StackItemEvent> eventListener)
-
onStackItemAdded
public void onStackItemAdded(java.util.function.BiConsumer<StackItemEvent,UndoManager> eventListener)
-
onStackItemPopped
public void onStackItemPopped(java.util.function.Consumer<StackItemEvent> eventListener)
-
onStackItemPopped
public void onStackItemPopped(java.util.function.BiConsumer<StackItemEvent,UndoManager> eventListener)
-
onStackCleared
public void onStackCleared(java.util.function.Consumer<UndoManager.StackClearedStatus> eventListener)
-
onStackItemUpdated
public void onStackItemUpdated(java.util.function.Consumer<StackItemEvent> eventListener)
-
onStackItemUpdated
public void onStackItemUpdated(java.util.function.BiConsumer<StackItemEvent,UndoManager> eventListener)
-
-