Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 34 additions & 1 deletion richtextfx/src/main/java/org/fxmisc/richtext/util/UndoUtils.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,9 @@
import org.fxmisc.richtext.model.TextChange;
import org.fxmisc.undo.UndoManager;
import org.fxmisc.undo.UndoManagerFactory;
import org.reactfx.EventStream;
import org.reactfx.value.Val;

import javafx.beans.value.ObservableBooleanValue;

import java.time.Duration;
import java.util.List;
Expand Down Expand Up @@ -35,6 +37,37 @@ public static <PS, SEG, S> UndoManager defaultUndoManager(GenericStyledArea<PS,
: plainTextUndoManager(area);
}

/**
* Constructs an UndoManager with no history
*/
public static UndoManager noOpUndoManager() {
return new UndoManager() {

private final Val<Boolean> alwaysFalse = Val.constant(false);

@Override public boolean undo() { return false; }
@Override public boolean redo() { return false; }
@Override public Val<Boolean> undoAvailableProperty() { return alwaysFalse; }
@Override public boolean isUndoAvailable() { return false; }
@Override public Val<Boolean> redoAvailableProperty() { return alwaysFalse; }
@Override public boolean isRedoAvailable() { return false; }
@Override public boolean isPerformingAction() { return false; }
@Override public boolean isAtMarkedPosition() { return false; }

// not sure whether these may throw NPEs at some point
@Override public Val nextUndoProperty() { return null; }
@Override public Val nextRedoProperty() { return null; }
@Override public ObservableBooleanValue performingActionProperty() { return null; }
@Override public UndoPosition getCurrentPosition() { return null; }
@Override public ObservableBooleanValue atMarkedPositionProperty() { return null; }

// ignore these
@Override public void preventMerge() { }
@Override public void forgetHistory() { }
@Override public void close() { }
};
}

/* ********************************************************************** *
* *
* UndoManager Factory Methods *
Expand Down