aboutsummaryrefslogtreecommitdiffstats
path: root/src/jcgp/gui/settings/parameters
diff options
context:
space:
mode:
Diffstat (limited to 'src/jcgp/gui/settings/parameters')
-rw-r--r--src/jcgp/gui/settings/parameters/GUIBooleanParameter.java3
-rw-r--r--src/jcgp/gui/settings/parameters/GUIDoubleParameter.java7
-rw-r--r--src/jcgp/gui/settings/parameters/GUIIntegerParameter.java6
-rw-r--r--src/jcgp/gui/settings/parameters/GUIParameter.java4
4 files changed, 12 insertions, 8 deletions
diff --git a/src/jcgp/gui/settings/parameters/GUIBooleanParameter.java b/src/jcgp/gui/settings/parameters/GUIBooleanParameter.java
index e708c53..cc7113d 100644
--- a/src/jcgp/gui/settings/parameters/GUIBooleanParameter.java
+++ b/src/jcgp/gui/settings/parameters/GUIBooleanParameter.java
@@ -62,7 +62,8 @@ public class GUIBooleanParameter extends GUIParameter<Boolean> {
checkBox.setStyle(BASE_CHECKBOX_STYLE + INVALID_PARAMETER_STYLE);
checkBox.setTooltip(tooltip);
tooltip.setText(parameter.getStatus().getDetails());
- } else if (parameter.getStatus() == ParameterStatus.WARNING || parameter.getStatus() == ParameterStatus.WARNING_RESET) {
+ } else if (parameter.getStatus() == ParameterStatus.WARNING
+ || parameter.getStatus() == ParameterStatus.WARNING_RESET) {
checkBox.setStyle(BASE_CHECKBOX_STYLE + WARNING_PARAMETER_STYLE);
checkBox.setTooltip(tooltip);
tooltip.setText(parameter.getStatus().getDetails());
diff --git a/src/jcgp/gui/settings/parameters/GUIDoubleParameter.java b/src/jcgp/gui/settings/parameters/GUIDoubleParameter.java
index f177ffa..777e739 100644
--- a/src/jcgp/gui/settings/parameters/GUIDoubleParameter.java
+++ b/src/jcgp/gui/settings/parameters/GUIDoubleParameter.java
@@ -36,6 +36,7 @@ public class GUIDoubleParameter extends GUIParameter<Number> {
@Override
protected Control makeControl() {
+ // we use a text field, and a formatting class to enforce decimals
decimalFormat = new DecimalFormat();
decimalFormat.setMaximumFractionDigits(10);
textField = new TextField(decimalFormat.format(parameter.get().doubleValue()));
@@ -48,14 +49,16 @@ public class GUIDoubleParameter extends GUIParameter<Number> {
@Override
protected void setControlListeners() {
/* pass the TextField value back to the parameter whenever it gets
- * modified, provided it is not empty and the experiment isn't running */
+ * modified, provided it is not empty, the experiment isn't running
+ * and it matches the double-precision regex filter */
textField.textProperty().addListener(new ChangeListener<String>() {
@Override
public void changed(
ObservableValue<? extends String> observable,
String oldValue, String newValue) {
if (!settingsPane.isExperimentRunning()) {
- if (newValue.matches("([0-9]*[.]*[0-9]*)")) {
+ //if (newValue.matches("([0-9]*[.]?[0-9]*)")) {
+ if (newValue.matches("^[-+]?[0-9]*\\.?[0-9]+$")) {
if (!newValue.isEmpty()) {
double value = Double.parseDouble(newValue);
parameter.set(value);
diff --git a/src/jcgp/gui/settings/parameters/GUIIntegerParameter.java b/src/jcgp/gui/settings/parameters/GUIIntegerParameter.java
index e1b0b75..6e8b3f1 100644
--- a/src/jcgp/gui/settings/parameters/GUIIntegerParameter.java
+++ b/src/jcgp/gui/settings/parameters/GUIIntegerParameter.java
@@ -33,6 +33,7 @@ public class GUIIntegerParameter extends GUIParameter<Number> {
@Override
protected Control makeControl() {
+ // this uses a text field
textField = new TextField(String.valueOf(parameter.get()));
textField.setStyle(VALID_PARAMETER_STYLE);
textField.setAlignment(Pos.CENTER_RIGHT);
@@ -44,7 +45,8 @@ public class GUIIntegerParameter extends GUIParameter<Number> {
@Override
protected void setControlListeners() {
/* pass the TextField value back to the parameter whenever it gets
- * modified, provided it is not empty and the experiment isn't running */
+ * modified, provided it is not empty, the experiment isn't running
+ * and it matches the integer regex pattern */
textField.textProperty().addListener(new ChangeListener<String>() {
@Override
public void changed(
@@ -98,7 +100,7 @@ public class GUIIntegerParameter extends GUIParameter<Number> {
@Override
public void refreshValue() {
if (!textField.isFocused()) {
- textField.setText(String.valueOf(parameter.get()));
+ textField.setText(parameter.get().toString());
}
}
}
diff --git a/src/jcgp/gui/settings/parameters/GUIParameter.java b/src/jcgp/gui/settings/parameters/GUIParameter.java
index 79762ff..b675fb5 100644
--- a/src/jcgp/gui/settings/parameters/GUIParameter.java
+++ b/src/jcgp/gui/settings/parameters/GUIParameter.java
@@ -30,9 +30,8 @@ import jcgp.gui.settings.SettingsPane;
* Monitor parameters have their Control disabled so that no changed can be made via the GUI.
* Non-monitor parameters are updated automatically as well, but may be changed by the user
* if the program is not evolving.
- * <br><br>
- * For more information on how parameters work in JCGP, see {@link Parameter}.
*
+ * @see Parameter
* @author Eduardo Pedroni
* @param <T> the parameter data type
*/
@@ -174,7 +173,6 @@ public abstract class GUIParameter<T> extends HBox {
*/
public void validate() {
parameter.validate(parameter.get());
- //refreshValue();
setValidityStyle();
}