All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.dooapp.fxform.samples.MultiBeanForm Maven / Gradle / Ivy

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 com.dooapp.fxform.reflection.MultipleBeanSource;
import javafx.beans.property.*;
import javafx.scene.Node;
import javafx.scene.layout.Pane;
import javafx.stage.Stage;

/**
 * @author Bastien
 */
public class MultiBeanForm extends FXFormSample {

    @Override
    public String getSampleName() {
        return "Multiple bean form";
    }

    @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 favoriteMovie = new SimpleObjectProperty<>();
        public BooleanProperty coolDeveloper = new SimpleBooleanProperty();
        public ObjectProperty
address = new SimpleObjectProperty<>(new Address()); } @Accessor(value = Accessor.AccessType.FIELD) public class Address { StringProperty street = new SimpleStringProperty(); StringProperty city = new SimpleStringProperty(); StringProperty zip = new SimpleStringProperty(); } @Override public Node getPanel(Stage stage) { Pane root = new Pane(); FXForm form = new FXFormBuilder<>() .includeAndReorder("firstName", "lastName", "age", "favoriteMovie", "coolDeveloper", "street", "city", "zip") .resourceBundle(Utils.SAMPLE) .build(); User user = new User(); form.setSource(new MultipleBeanSource(user, user.address.get())); root.getChildren().add(form); return root; } @Override public String getSampleDescription() { return "This is an example of how to do a very basic form with more than one bean"; } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy