diff options
Diffstat (limited to 'src/jcgp/gui/settings/SettingsPane.java')
-rw-r--r-- | src/jcgp/gui/settings/SettingsPane.java | 94 |
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); - } } |