Package com.dooapp.fxform.samples

Source Code of com.dooapp.fxform.samples.DifferentSkinForm$User

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.view.skin.DefaultSkin;
import com.dooapp.fxform.view.skin.InlineSkin;
import javafx.beans.property.*;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.scene.Node;
import javafx.scene.control.ChoiceBox;
import javafx.scene.control.Label;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.VBox;
import javafx.scene.paint.Color;
import javafx.scene.text.Font;
import javafx.stage.Stage;

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

    @Override
    public String getSampleName() {
        return "Different skin";
    }

    @Override
    public Node getPanel(Stage stage) {
        final BorderPane bp = new BorderPane();
        Label title = new Label("Inline skin");
        VBox box = new VBox(10);
        ChoiceBox<String> choiceBox = new ChoiceBox<>();
        User user = new User();

        bp.setStyle("-fx-padding: 10;");
        choiceBox.getItems().addAll("Inline skin", "Default skin");
        bp.setTop(choiceBox);
        title.setFont(Font.font(24));

        FXForm form = new FXFormBuilder<>()
                .includeAndReorder("firstName", "lastName", "age", "favoriteMovie", "coolDeveloper")
                .resourceBundle(Utils.SAMPLE)
                .build();
        form.setSource(user);
        box.getChildren().addAll(title, form);
        choiceBox.getSelectionModel().selectedItemProperty().addListener(new ChangeListener<String>() {
            @Override
            public void changed(ObservableValue<? extends String> observableValue, String s, String s2) {
                if (s2.equals("Inline skin")) {
                    title.setText("Inline skin");
                    form.setSkin(new InlineSkin(form));
                } else {
                    title.setText("Default skin");
                    form.setSkin(new DefaultSkin(form));
                }
            }
        });
        bp.setCenter(box);
        choiceBox.getSelectionModel().selectFirst();
        return bp;
    }

    @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 getSampleDescription() {
        return "This is an example of how to use different skins with your form";
    }
}
TOP

Related Classes of com.dooapp.fxform.samples.DifferentSkinForm$User

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.