aboutsummaryrefslogtreecommitdiffstats
path: root/src/jcgp/gui/settings/SettingsPane.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/jcgp/gui/settings/SettingsPane.java')
-rw-r--r--src/jcgp/gui/settings/SettingsPane.java94
1 files changed, 53 insertions, 41 deletions
diff --git a/src/jcgp/gui/settings/SettingsPane.java b/src/jcgp/gui/settings/SettingsPane.java
index d7ffd79..e455846 100644
--- a/src/jcgp/gui/settings/SettingsPane.java
+++ b/src/jcgp/gui/settings/SettingsPane.java
@@ -30,8 +30,9 @@ public class SettingsPane extends AnchorPane {
private VBox baseParameterPane, eaPane, mutatorPane, problemPane;
private Button runPause = new Button("Run"), step = new Button("Step"), reset = new Button("Reset");
+ private Button loadParameters = new Button("Load parameters"), loadChromosome = new Button("Load chromosome"), saveChromosome = new Button("Save chromosome");
- private ArrayList<GUIParameter> parameters = new ArrayList<GUIParameter>();
+ private ArrayList<GUIParameter<?>> parameters = new ArrayList<GUIParameter<?>>();
public SettingsPane(JCGP cgp, GUI gui) {
super();
@@ -50,7 +51,7 @@ public class SettingsPane extends AnchorPane {
initialiseProblemTypeParameters(cgp, gui);
- createControls(cgp, gui);
+ createControls(gui);
ScrollPane scroll = new ScrollPane();
scroll.setFitToWidth(true);
@@ -74,27 +75,26 @@ public class SettingsPane extends AnchorPane {
baseParameterPane.getChildren().add(header);
- parameters.add(GUIParameter.create(cgp.getResources().getParameter("rows"), this));
- parameters.add(GUIParameter.create(cgp.getResources().getParameter("columns"), this));
- parameters.add(GUIParameter.create(cgp.getResources().getParameter("inputs"), this));
- parameters.add(GUIParameter.create(cgp.getResources().getParameter("outputs"), this));
- parameters.add(GUIParameter.create(cgp.getResources().getParameter("levelsBack"), this));
+ parameters.add(GUIParameter.create(cgp.getResources().getRowsParameter(), this));
+ parameters.add(GUIParameter.create(cgp.getResources().getColumnsParameter(), this));
+ parameters.add(GUIParameter.create(cgp.getResources().getInputsParameter(), this));
+ parameters.add(GUIParameter.create(cgp.getResources().getOutputsParameter(), this));
+ parameters.add(GUIParameter.create(cgp.getResources().getLevelsBackParameter(), this));
- GUIParameter gp = GUIParameter.create(cgp.getResources().getParameter("popSize"), this);
+ GUIParameter<?> gp = GUIParameter.create(cgp.getResources().getPopulationSizeParameter(), this);
gp.setPadding(new Insets(0, 0, 10, 0));
parameters.add(gp);
- parameters.add(GUIParameter.create(cgp.getResources().getParameter("currentGen"), this));
- parameters.add(GUIParameter.create(cgp.getResources().getParameter("generations"), this));
- parameters.add(GUIParameter.create(cgp.getResources().getParameter("currentRun"), this));
+ parameters.add(GUIParameter.create(cgp.getResources().getCurrentGenerationParameter(), this));
+ parameters.add(GUIParameter.create(cgp.getResources().getGenerationsParameter(), this));
+ parameters.add(GUIParameter.create(cgp.getResources().getCurrentRunParameter(), this));
- gp = GUIParameter.create(cgp.getResources().getParameter("runs"), this);
+ gp = GUIParameter.create(cgp.getResources().getRunsParameter(), this);
gp.setPadding(new Insets(0, 0, 10, 0));
parameters.add(gp);
- parameters.add(GUIParameter.create(cgp.getResources().getParameter("seed"), this));
- parameters.add(GUIParameter.create(cgp.getResources().getParameter("report"), this));
- //parameters.add(GUIParameter.create(cgp.getResources().getParameter("maxFitness"), this));
+ parameters.add(GUIParameter.create(cgp.getResources().getSeedParameter(), this));
+ parameters.add(GUIParameter.create(cgp.getResources().getReportParameter(), this));
baseParameterPane.getChildren().addAll(parameters);
mainContainer.getChildren().add(baseParameterPane);
@@ -204,7 +204,7 @@ public class SettingsPane extends AnchorPane {
}
- private void createControls(final JCGP cgp, final GUI gui) {
+ private void createControls(final GUI gui) {
Text header = new Text("Experiment controls");
header.setFont(Font.font("Arial", 14));
header.setUnderline(true);
@@ -220,7 +220,6 @@ public class SettingsPane extends AnchorPane {
}
});
- step = new Button("Step");
step.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
@@ -228,7 +227,6 @@ public class SettingsPane extends AnchorPane {
}
});
- reset = new Button("Reset");
reset.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
@@ -236,8 +234,6 @@ public class SettingsPane extends AnchorPane {
}
});
- flowButtons.getChildren().addAll(runPause, step, reset);
-
HBox.setHgrow(runPause, Priority.ALWAYS);
runPause.setMaxWidth(Double.MAX_VALUE);
HBox.setHgrow(step, Priority.ALWAYS);
@@ -245,7 +241,37 @@ public class SettingsPane extends AnchorPane {
HBox.setHgrow(reset, Priority.ALWAYS);
reset.setMaxWidth(Double.MAX_VALUE);
- controls.getChildren().addAll(header, flowButtons);
+ flowButtons.getChildren().addAll(runPause, step, reset);
+ flowButtons.setPadding(new Insets(0, 0, 10, 0));
+
+ loadParameters.setOnAction(new EventHandler<ActionEvent>() {
+ @Override
+ public void handle(ActionEvent event) {
+ //gui.runPause();
+ }
+ });
+
+ loadChromosome.setOnAction(new EventHandler<ActionEvent>() {
+ @Override
+ public void handle(ActionEvent event) {
+ //gui.step();
+ }
+ });
+ saveChromosome.setOnAction(new EventHandler<ActionEvent>() {
+ @Override
+ public void handle(ActionEvent event) {
+ //gui.step();
+ }
+ });
+
+ HBox.setHgrow(loadParameters, Priority.ALWAYS);
+ loadParameters.setMaxWidth(Double.MAX_VALUE);
+ HBox.setHgrow(loadChromosome, Priority.ALWAYS);
+ loadChromosome.setMaxWidth(Double.MAX_VALUE);
+ HBox.setHgrow(saveChromosome, Priority.ALWAYS);
+ saveChromosome.setMaxWidth(Double.MAX_VALUE);
+
+ controls.getChildren().addAll(header, flowButtons, loadParameters, loadChromosome, saveChromosome);
mainContainer.getChildren().add(controls);
}
@@ -254,11 +280,11 @@ public class SettingsPane extends AnchorPane {
* @param cgp
* @param vb
*/
- private void refreshParameters(Parameter[] newParameters, VBox vb) {
+ private void refreshParameters(Parameter<?>[] newParameters, VBox vb) {
parameters.removeAll(vb.getChildren());
vb.getChildren().clear();
for (int i = 0; i < newParameters.length; i++) {
- GUIParameter gp = GUIParameter.create(newParameters[i], this);
+ GUIParameter<?> gp = GUIParameter.create(newParameters[i], this);
parameters.add(gp);
vb.getChildren().add(gp);
}
@@ -290,25 +316,12 @@ public class SettingsPane extends AnchorPane {
}
}
-
-
-// public void runningMode(boolean value) {
-// baseParameterPane.setDisable(value);
-// eaPane.setDisable(value);
-// mutatorPane.setDisable(value);
-// problemPane.setDisable(value);
-// step.setDisable(value);
-// reset.setDisable(value);
-//
-// runPause.setText(value ? "Pause" : "Run");
-// }
-//
/**
*
* @return true if the experiment needs to be reset, false otherwise.
*/
public boolean isResetRequired() {
- for (GUIParameter parameter : parameters) {
+ for (GUIParameter<?> parameter : parameters) {
if (parameter.requiresReset()) {
return true;
}
@@ -317,7 +330,7 @@ public class SettingsPane extends AnchorPane {
}
public boolean areParametersValid() {
- for (GUIParameter parameter : parameters) {
+ for (GUIParameter<?> parameter : parameters) {
if (!parameter.isValid()) {
return false;
}
@@ -327,7 +340,7 @@ public class SettingsPane extends AnchorPane {
public void revalidateParameters() {
runPause.setDisable(false);
- for (GUIParameter parameter : parameters) {
+ for (GUIParameter<?> parameter : parameters) {
parameter.validate();
if (parameter.requiresReset()) {
runPause.setDisable(true);
@@ -336,7 +349,7 @@ public class SettingsPane extends AnchorPane {
}
public void applyParameters() {
- for (GUIParameter parameter : parameters) {
+ for (GUIParameter<?> parameter : parameters) {
parameter.applyValue();
}
}
@@ -351,6 +364,5 @@ public class SettingsPane extends AnchorPane {
runPause.setDisable(finished);
step.setDisable(running || finished);
reset.setDisable(running);
-
}
}