/* * @(#)AnimationDemo.java 5/19/2013 * * Copyright 2002 - 2013 JIDE Software Inc. All rights reserved. */ package jidefx.examples.shapes; import javafx.application.Application; import javafx.beans.value.ChangeListener; import javafx.beans.value.ObservableValue; import javafx.scene.control.Label; import javafx.scene.control.ListView; import javafx.scene.layout.BorderPane; import javafx.scene.layout.Region; import javafx.scene.layout.VBox; import jidefx.examples.demo.AbstractFxDemo; import jidefx.scene.control.field.IntegerField; import jidefx.utils.PredefinedShapes; @SuppressWarnings("Convert2Lambda") public class ShapesDemo extends AbstractFxDemo { private BorderPane _demoPane; public static void main(String[] args) { Application.launch(args); } @Override public String getName() { return "Shapes Demo"; } @Override public String getDescription() { return "PredefinedShapes has several pre-defined shapes that you can use inside your application.\n" + "\n" + "Demoed classes:\n" + "jidefx.utils.PredefinedShapes\n"; } @Override public Region getDemoPanel() { _demoPane = new BorderPane(); _demoPane.setMinSize(400, 400); return _demoPane; } @Override public Region getOptionsPanel() { Label fieldLabel = new Label("Size of the Shape: "); IntegerField field = new IntegerField(5, 200, 40); field.installAdjustmentMouseHandler(fieldLabel); ListView<String> shapesList = new ListView<>(); shapesList.getItems().addAll("Calendar", "Clock", "Key", "Filter", "Clear", "Close", "Plus", "Minus", "Magnifier", "Arrow"); shapesList.setPrefHeight(200); shapesList.getSelectionModel().selectedItemProperty().addListener(new ChangeListener<String>() { @Override public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue) { changeShape(newValue, field.getValue()); } }); field.valueProperty().addListener(new ChangeListener<Integer>() { @Override public void changed(ObservableValue<? extends Integer> observable, Integer oldValue, Integer newValue) { changeShape(shapesList.getSelectionModel().getSelectedItem(), field.getValue()); } }); shapesList.getSelectionModel().select(0); field.setSpinnersVisible(true); return new VBox(6, fieldLabel, field, shapesList); } private void changeShape(String newValue, double size) { if ("Calendar".equals(newValue)) { _demoPane.setCenter(PredefinedShapes.getInstance().createCalendarIcon(size)); } else if ("Clock".equals(newValue)) { _demoPane.setCenter(PredefinedShapes.getInstance().createClockIcon(size)); } else if ("Key".equals(newValue)) { _demoPane.setCenter(PredefinedShapes.getInstance().createKeyIcon(size)); } else if ("Filter".equals(newValue)) { _demoPane.setCenter(PredefinedShapes.getInstance().createFilterIcon(size)); } else if ("Clear".equals(newValue)) { _demoPane.setCenter(PredefinedShapes.getInstance().createClearIcon(size)); } else if ("Close".equals(newValue)) { _demoPane.setCenter(PredefinedShapes.getInstance().createCloseIcon(size)); } else if ("Plus".equals(newValue)) { _demoPane.setCenter(PredefinedShapes.getInstance().createPlusIcon(size)); } else if ("Minus".equals(newValue)) { _demoPane.setCenter(PredefinedShapes.getInstance().createMinusIcon(size)); } else if ("Arrow".equals(newValue)) { _demoPane.setCenter(PredefinedShapes.getInstance().createArrowIcon(size)); } else if ("Magnifier".equals(newValue)) { _demoPane.setCenter(PredefinedShapes.getInstance().createMagnifierIcon(size, false)); } } }