Add change manager unmarking
All checks were successful
zdm/undo-redo/pipeline/head This commit looks good

This commit is contained in:
2021-12-23 10:00:48 +02:00
parent fa5c2419bf
commit 0fc3577750
5 changed files with 55 additions and 21 deletions

View File

@ -23,15 +23,15 @@ import dev.kske.undoredo.core.*;
public class ChangeManagerWrapper<C extends Change, M extends ChangeManager<C>>
implements ObservableChangeManager<C> {
public static final String LAST_CHANGE = "lastChange";
public static final String AT_MARKED_INDEX = "atMarkedIndex";
public static final String UNDO_AVAILABLE = "undoAvailable";
public static final String REDO_AVAILABLE = "redoAvailable";
public static final String LAST_CHANGE = "lastChange";
public static final String AT_MARKED_CHANGE = "atMarkedChange";
public static final String UNDO_AVAILABLE = "undoAvailable";
public static final String REDO_AVAILABLE = "redoAvailable";
protected ReadOnlyObjectWrapper<C> lastChange =
new ReadOnlyObjectWrapper<>(this, LAST_CHANGE);
protected ReadOnlyBooleanWrapper atMarkedIndex =
new ReadOnlyBooleanWrapper(this, AT_MARKED_INDEX);
protected ReadOnlyBooleanWrapper atMarkedChange =
new ReadOnlyBooleanWrapper(this, AT_MARKED_CHANGE);
protected ReadOnlyBooleanWrapper undoAvailable =
new ReadOnlyBooleanWrapper(this, UNDO_AVAILABLE);
protected ReadOnlyBooleanWrapper redoAvailable =
@ -76,7 +76,13 @@ public class ChangeManagerWrapper<C extends Change, M extends ChangeManager<C>>
@Override
public void mark() {
manager.mark();
setAtMarkedIndex(manager.isAtMarkedIndex());
setAtMarkedChange(manager.isAtMarkedChange());
}
@Override
public void unmark() {
manager.unmark();
setAtMarkedChange(manager.isAtMarkedChange());
}
/**
@ -86,7 +92,7 @@ public class ChangeManagerWrapper<C extends Change, M extends ChangeManager<C>>
*/
private void updateProperties() {
setLastChange(manager.getLastChange().orElse(null));
setAtMarkedIndex(manager.isAtMarkedIndex());
setAtMarkedChange(manager.isAtMarkedChange());
setUndoAvailable(manager.isUndoAvailable());
setRedoAvailable(manager.isRedoAvailable());
}
@ -101,12 +107,12 @@ public class ChangeManagerWrapper<C extends Change, M extends ChangeManager<C>>
}
@Override
public final ReadOnlyBooleanProperty atMarkedIndexProperty() {
return atMarkedIndex.getReadOnlyProperty();
public final ReadOnlyBooleanProperty atMarkedChangeProperty() {
return atMarkedChange.getReadOnlyProperty();
}
protected final void setAtMarkedIndex(boolean atMarkedIndex) {
this.atMarkedIndex.set(atMarkedIndex);
protected final void setAtMarkedChange(boolean atMarkedChange) {
this.atMarkedChange.set(atMarkedChange);
}
@Override

View File

@ -24,11 +24,11 @@ public interface ObservableChangeManager<C extends Change> extends ChangeManager
return Optional.of(lastChangeProperty().get());
}
ReadOnlyBooleanProperty atMarkedIndexProperty();
ReadOnlyBooleanProperty atMarkedChangeProperty();
@Override
default boolean isAtMarkedIndex() {
return atMarkedIndexProperty().get();
default boolean isAtMarkedChange() {
return atMarkedChangeProperty().get();
}
ReadOnlyBooleanProperty undoAvailableProperty();