package com.dooapp.fxform.samples;
import com.dooapp.fxform.FXForm;
import com.dooapp.fxform.FXFormSample;
import com.dooapp.fxform.Utils;
import com.dooapp.fxform.annotation.Accessor;
import com.dooapp.fxform.builder.FXFormBuilder;
import com.dooapp.fxform.model.Movies;
import javafx.beans.property.*;
import javafx.scene.Node;
import javafx.scene.layout.Pane;
import javafx.stage.Stage;
/**
* @author Bastien
*/
public class ReadOnlyForm extends FXFormSample {
@Accessor(value = Accessor.AccessType.FIELD)
public class User {
public StringProperty firstName = new SimpleStringProperty();
public StringProperty lastName = new SimpleStringProperty();
public IntegerProperty age = new SimpleIntegerProperty(10);
public ObjectProperty<Movies> favoriteMovie = new SimpleObjectProperty<>();
public BooleanProperty coolDeveloper = new SimpleBooleanProperty();
}
@Override
public String getSampleName() {
return "Read only form";
}
@Override
public Node getPanel(Stage stage) {
Pane root = new Pane();
FXForm form = new FXFormBuilder<>()
.includeAndReorder("firstName", "lastName", "age", "favoriteMovie")
.resourceBundle(Utils.SAMPLE)
.readOnly(true)
.build();
User user = new User();
user.firstName.set("Robert");
user.lastName.set("Shepard");
user.age.setValue(42);
user.favoriteMovie.setValue(Movies.LOTR);
form.setSource(user);
root.getChildren().add(form);
return root;
}
@Override
public String getSampleDescription() {
return "This is how you can do a read only form";
}
}