private void initialize() { this.getStyleClass().add(DEFAULT_STYLE_CLASS); }
@Override public StyleableProperty<Paint> getStyleableProperty(JFXCheckBox control) { return control.checkedColorProperty(); } };
@Override public StyleableBooleanProperty getStyleableProperty(JFXCheckBox control) { return control.disableVisualFocusProperty(); } };
/** * {@inheritDoc} */ public JFXCheckBox() { initialize(); // init in scene builder workaround ( TODO : remove when JFoenix is well integrated in scenebuilder by gluon ) StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace(); for (int i = 0; i < stackTraceElements.length && i < 15; i++) { if (stackTraceElements[i].getClassName().toLowerCase().contains(".scenebuilder.kit.fxom.")) { this.setText("CheckBox"); break; } } }
private void updateRippleColor() { rippler.setRipplerFill(getSkinnable().isSelected() ? getSkinnable().getCheckedColor() : getSkinnable().getUnCheckedColor()); }
box.setBorder(new Border(new BorderStroke(control.getUnCheckedColor(), BorderStrokeStyle.SOLID, new CornerRadii(2), control.selectedProperty().addListener( observable -> { updateRippleColor(); playSelectAnimation(control.isSelected(), true); }); control.indeterminateProperty().addListener(observable -> { updateRippleColor(); playIndeterminateAnimation(control.isIndeterminate(), true); }); control.focusedProperty().addListener((o, oldVal, newVal) -> { if(!control.isDisableVisualFocus()){ if (newVal) { if (!getSkinnable().isPressed()) { rippler.setOverlayVisible(true); control.pressedProperty().addListener((o, oldVal, newVal) -> rippler.setOverlayVisible(false)); updateChildren(); createFillTransition(); registerChangeListener(control.checkedColorProperty(), "CHECKED_COLOR");
box.setPrefSize(20, 20); box.setMaxSize(20, 20); box.setBorder(new Border(new BorderStroke(control.getUnCheckedColor(), BorderStrokeStyle.SOLID, new CornerRadii(0), boxContainer.setPadding(new Insets(padding)); rippler = new JFXRippler(boxContainer, RipplerMask.CIRCLE); rippler.setRipplerFill(getSkinnable().isSelected() ? control.getUnCheckedColor() : control.getCheckedColor()); rightLine.setStroke(control.getCheckedColor()); rightLine.setStrokeWidth(lineThick); leftLine.setStroke(control.getCheckedColor()); leftLine.setStrokeWidth(lineThick); rightLine.setVisible(false); rippler.setRipplerFill(newVal ? control.getUnCheckedColor() : control.getCheckedColor()); transition.setRate(newVal ? 1 : -1); transition.play();
@Override public void start(Stage stage) { FlowPane main = new FlowPane(); main.setVgap(20); main.setHgap(20); CheckBox cb = new CheckBox("CheckBox"); JFXCheckBox jfxCheckBox = new JFXCheckBox("JFX CheckBox"); JFXCheckBox customJFXCheckBox = new JFXCheckBox("Custom JFX CheckBox"); customJFXCheckBox.getStyleClass().add("custom-jfx-check-box"); main.getChildren().add(cb); main.getChildren().add(jfxCheckBox); main.getChildren().add(customJFXCheckBox); StackPane pane = new StackPane(); pane.getChildren().add(main); StackPane.setMargin(main, new Insets(100)); pane.setStyle("-fx-background-color:WHITE"); final Scene scene = new Scene(pane, 600, 200); scene.getStylesheets().add(CheckBoxDemo.class.getResource("/css/jfoenix-components.css").toExternalForm()); stage.setTitle("JFX CheckBox Demo "); stage.setScene(scene); stage.setResizable(false); stage.show(); }
private void playIndeterminateAnimation(Boolean indeterminate, boolean playAnimation) { if (indeterminate == null) { indeterminate = false; } indeterminateTransition.setRate(indeterminate ? 1 : -1); if (playAnimation) { indeterminateTransition.play(); } else { if (indeterminate) { CornerRadii radii = indeterminateMark.getBackground() == null ? null : indeterminateMark.getBackground().getFills().get(0).getRadii(); Insets insets = indeterminateMark.getBackground() == null ? null : indeterminateMark.getBackground().getFills().get(0).getInsets(); indeterminateMark.setOpacity(1); indeterminateMark.setScaleY(1); indeterminateMark.setScaleX(1); indeterminateMark.setBackground(new Background(new BackgroundFill(getSkinnable().getCheckedColor(), radii, insets))); indeterminateTransition.playFrom(indeterminateTransition.getCycleDuration()); } else { indeterminateMark.setOpacity(0); indeterminateMark.setScaleY(0); indeterminateMark.setScaleX(0); indeterminateTransition.playFrom(Duration.ZERO); } } if(getSkinnable().isSelected()){ playSelectAnimation(!indeterminate, playAnimation); } }
private void createFillTransition() { select = new JFXFillTransition(Duration.millis(120), box, Color.TRANSPARENT, (Color) getSkinnable().getCheckedColor()); select.setInterpolator(Interpolator.EASE_OUT); }
/** * {@inheritDoc} */ public JFXCheckBox(String text) { super(text); initialize(); }
@Override public List<CssMetaData<? extends Styleable, ?>> getControlCssMetaData() { return getClassCssMetaData(); }
private List<CheckBox> buildCheckboxed(String group, List<IEnumeratedValueModel> vals) { final Iterator<IEnumeratedValueModel> iterator = vals.iterator(); final List<CheckBox> checkBoxs = new ArrayList<>(); checkBoxes.put(group, checkBoxs); while (iterator.hasNext()) { final IEnumeratedValueModel model = iterator.next(); final CheckBox checkBox = new JFXCheckBox(); checkBoxs.add(checkBox); checkBox.setUserData(model); checkBox.setText(model.getValue()); // internalLayout.getStyleClass().add("radio-buttons-internal-wrapper"); if (!iterator.hasNext()) { // internalLayout.pseudoClassStateChanged(PseudoClass.getPseudoClass("last"), // true); } checkBox.selectedProperty().addListener(getCheckboxSelectListener(group, checkBox)); } return checkBoxs; }
box.setBorder(new Border(new BorderStroke(control.getUnCheckedColor(), BorderStrokeStyle.SOLID, new CornerRadii(2), control.selectedProperty().addListener(observable -> { updateRippleColor(); playSelectAnimation(control.isSelected(), true); }); control.indeterminateProperty().addListener(observable -> { updateRippleColor(); playIndeterminateAnimation(control.isIndeterminate(), true); }); control.focusedProperty().addListener((o, oldVal, newVal) -> { if (!control.isDisableVisualFocus()) { if (newVal) { if (!getSkinnable().isPressed()) { control.pressedProperty().addListener((o, oldVal, newVal) -> rippler.setOverlayVisible(false)); updateChildren(); createFillTransition(); registerChangeListener(control.checkedColorProperty(), obs -> createFillTransition());
mark.setScaleX(1); mark.setOpacity(1); box.setBackground(new Background(new BackgroundFill(getSkinnable().getCheckedColor(), radii, insets))); select.playFrom(select.getCycleDuration()); transition.playFrom(transition.getCycleDuration()); box.setBorder(new Border(new BorderStroke(selection ? getSkinnable().getCheckedColor() : getSkinnable().getUnCheckedColor(), BorderStrokeStyle.SOLID, new CornerRadii(2),
/** * {@inheritDoc} */ public JFXCheckBox() { initialize(); // init in scene builder workaround ( TODO : remove when JFoenix is well integrated in scenebuilder by gluon ) StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace(); for (int i = 0; i < stackTraceElements.length && i < 15; i++) { if (stackTraceElements[i].getClassName().toLowerCase().contains(".scenebuilder.kit.fxom.")) { this.setText("CheckBox"); break; } } }
private void createFillTransition() { select = new JFXFillTransition(Duration.millis(120), box, Color.TRANSPARENT, (Color) ((JFXCheckBox) getSkinnable()).getCheckedColor()); select.setInterpolator(Interpolator.EASE_OUT); }
/** * {@inheritDoc} */ public JFXCheckBox(String text) { super(text); initialize(); }
@Override public List<CssMetaData<? extends Styleable, ?>> getControlCssMetaData() { return getClassCssMetaData(); }
box.setStyle("-fx-alignment:CENTER_LEFT;" + "-fx-spacing: 10;" + "-fx-padding: 0 0 0 16;"); if (item.preferenceItem() == null || item.preferenceItem().isMultipleSection()) { final CheckBox checkBox = new JFXCheckBox(); checkBox.allowIndeterminateProperty().set(false); checkBox.setSelected(item.selectedProperty().get());