@Override protected Node createUndecoratedEditor() { final boolean usesDefaultValue = value.getValue() == null || value.getValue().equals(defaultValue.getValue()); ); customValue.setValue(usesDefaultValue ? defaultValue.get() : value.get()); setSpinnerBehaviour(svf, usesDefaultValue, defaultValue, customValue); if (n == null || n == defaultValue.get()) { value.setValue(null); } else {
private static void setSpinnerBehaviour( final IntegerSpinnerValueFactory svf, final boolean useDefaultValue, final ObservableIntegerValue defaultValue, final ObjectProperty<Integer> customValue ) { if (useDefaultValue) { svf.valueProperty().unbindBidirectional(customValue); svf.setValue(defaultValue.get()); } else { svf.setValue(customValue.getValue()); svf.valueProperty().bindBidirectional(customValue); } } }
@Override public int getInt(Object holder) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException { if (ObservableIntegerValue.class.isAssignableFrom(property.getType())) return ((ObservableIntegerValue)property.getObject(holder)).get(); return property.getInt(holder); }
@Override protected Node createUndecoratedEditor() { final boolean usesDefaultValue = value.getValue() == null || value.getValue().equals(defaultValue.getValue()); ); customValue.setValue(usesDefaultValue ? defaultValue.get() : value.get()); setSpinnerBehaviour(svf, usesDefaultValue, defaultValue, customValue); if (n == null || n == defaultValue.get()) { value.setValue(null); } else {
private static void setSpinnerBehaviour( final IntegerSpinnerValueFactory svf, final boolean useDefaultValue, final ObservableIntegerValue defaultValue, final ObjectProperty<Integer> customValue ) { if (useDefaultValue) { svf.valueProperty().unbindBidirectional(customValue); svf.setValue(defaultValue.get()); } else { svf.setValue(customValue.getValue()); svf.valueProperty().bindBidirectional(customValue); } } }