package com.twasyl.slideshowfx.setup.step; import javafx.beans.property.*; import javafx.fxml.Initializable; import javafx.scene.Node; /** * Abstract implementation of a {@link ISetupStep}. * * @author Thierry Wasylczenko * @since SlideshowFX 1.0 * @version 1.0 */ public abstract class AbstractSetupStep implements ISetupStep { protected Node view; protected Initializable controller; private final StringProperty title = new SimpleStringProperty(); private final BooleanProperty valid = new SimpleBooleanProperty(false); private final ObjectProperty<ISetupStep> previous = new SimpleObjectProperty<>(null); private final ObjectProperty<ISetupStep> next = new SimpleObjectProperty<>(null); @Override public StringProperty titleProperty() { return this.title; } @Override public String title() { return this.titleProperty().get(); } @Override public <T extends ISetupStep> T title(String title) { this.titleProperty().set(title); return (T) this; } @Override public ObjectProperty<ISetupStep> previousProperty() { return this.previous; } @Override public ISetupStep previous() { return this.previous.get(); } @Override public <T extends ISetupStep> T previous(ISetupStep step) { this.previous.set(step); return (T) this; } @Override public ObjectProperty<ISetupStep> nextProperty() { return this.next; } @Override public ISetupStep next() { return this.next.get(); } @Override public <T extends ISetupStep> T next(ISetupStep step) { this.next.set(step); return (T) this; } @Override public BooleanProperty validProperty() { return this.valid; } @Override public boolean isValid() { return this.valid.get(); } @Override public <T extends ISetupStep> T setValid(boolean valid) { this.valid.set(valid); return (T) this; } @Override public Node getView() { return this.view; } }