package jcgp.gui.settings.parameters; import javafx.geometry.Pos; import javafx.scene.control.TextField; import javafx.scene.layout.Priority; import javafx.scene.text.Text; import jcgp.backend.parameters.IntegerParameter; import jcgp.gui.GUI; public class GUIIntegerParameter extends GUIParameter { GUIIntegerParameter(IntegerParameter parameter) { super(); this.parameter = parameter; name = new Text(parameter.getName()); value = new TextField(String.valueOf(parameter.get())); ((TextField) value).setAlignment(Pos.CENTER_RIGHT); setHgrow(value, Priority.ALWAYS); name.setWrappingWidth(GUI.WRAP_WIDTH); ((TextField) value).setEditable(!parameter.isMonitor()); if (parameter.isMonitor()) { makeLightBinding(); } getChildren().addAll(name, value); } @Override public void refreshValue() { ((TextField) value).setText(String.valueOf(((IntegerParameter) parameter).get())); } @Override public boolean applyChange() { if (Integer.valueOf(((TextField) value).getText()) != ((IntegerParameter) parameter).get() && (!parameter.isMonitor())) { // apply value ((IntegerParameter) parameter).set(Integer.valueOf(((TextField) value).getText())); return parameter.isCritical(); } return false; } }