44 lines
925 B
Java
44 lines
925 B
Java
package dev.kske.undoredo.javafx;
|
|
|
|
import java.util.Optional;
|
|
|
|
import javafx.beans.property.*;
|
|
|
|
import dev.kske.undoredo.core.*;
|
|
|
|
/**
|
|
* @param <C> the change type to store in this change manager
|
|
* @author Kai S. K. Engelbart
|
|
* @since 0.0.1
|
|
*/
|
|
public interface ObservableChangeManager<C extends Change> extends ChangeManager<C> {
|
|
|
|
ReadOnlyObjectProperty<C> lastChangeProperty();
|
|
|
|
@Override
|
|
default Optional<C> getLastChange() {
|
|
return Optional.of(lastChangeProperty().get());
|
|
}
|
|
|
|
ReadOnlyBooleanProperty atMarkedIndexProperty();
|
|
|
|
@Override
|
|
default boolean isAtMarkedIndex() {
|
|
return atMarkedIndexProperty().get();
|
|
}
|
|
|
|
ReadOnlyBooleanProperty undoAvailableProperty();
|
|
|
|
@Override
|
|
default boolean isUndoAvailable() {
|
|
return undoAvailableProperty().get();
|
|
}
|
|
|
|
ReadOnlyBooleanProperty redoAvailableProperty();
|
|
|
|
@Override
|
|
default boolean isRedoAvailable() {
|
|
return redoAvailableProperty().get();
|
|
}
|
|
}
|