diff --git a/aima-gui/src/main/java/aima/gui/fx/demo/IntegratedAimaApp.java b/aima-gui/src/main/java/aima/gui/fx/demo/IntegratedAimaApp.java index 5a366a2662..ce65ae9d83 100644 --- a/aima-gui/src/main/java/aima/gui/fx/demo/IntegratedAimaApp.java +++ b/aima-gui/src/main/java/aima/gui/fx/demo/IntegratedAimaApp.java @@ -1,6 +1,6 @@ package aima.gui.fx.demo; -import aima.gui.fx.demo.search.MapColoringApp; +import aima.gui.fx.demo.search.CspMapColoringApp; import aima.gui.fx.demo.search.games.EightPuzzleApp; import aima.gui.fx.demo.search.games.TicTacToeApp; import aima.gui.prog.agent.NondeterministicVacuumEnvironmentProg; @@ -57,7 +57,7 @@ protected void defineContent(IntegratedAppPaneBuilder builder) { builder.registerApp(VacuumAgentApp.class); builder.registerApp(RouteFindingAgentApp.class); - builder.registerApp(MapColoringApp.class); + builder.registerApp(CspMapColoringApp.class); builder.registerApp(NQueensSearchApp.class); builder.registerApp(EightPuzzleApp.class); diff --git a/aima-gui/src/main/java/aima/gui/fx/demo/search/MapColoringApp.java b/aima-gui/src/main/java/aima/gui/fx/demo/search/CspMapColoringApp.java similarity index 94% rename from aima-gui/src/main/java/aima/gui/fx/demo/search/MapColoringApp.java rename to aima-gui/src/main/java/aima/gui/fx/demo/search/CspMapColoringApp.java index 0e25aebb0c..431166312f 100644 --- a/aima-gui/src/main/java/aima/gui/fx/demo/search/MapColoringApp.java +++ b/aima-gui/src/main/java/aima/gui/fx/demo/search/CspMapColoringApp.java @@ -5,7 +5,7 @@ import aima.gui.fx.framework.Parameter; import aima.gui.fx.framework.SimulationPaneBuilder; import aima.gui.fx.framework.SimulationPaneCtrl; -import aima.gui.fx.views.BinaryCspViewCtrl; +import aima.gui.fx.views.CspViewCtrl; import javafx.application.Platform; import javafx.scene.layout.BorderPane; import javafx.scene.layout.Pane; @@ -19,7 +19,7 @@ * * @author Ruediger Lunde */ -public class MapColoringApp extends IntegrableApplication { +public class CspMapColoringApp extends IntegrableApplication { public static void main(String[] args) { launch(args); @@ -28,19 +28,19 @@ public static void main(String[] args) { public final static String PARAM_MAP = "map"; public final static String PARAM_STRATEGY = "strategy"; - private BinaryCspViewCtrl stateViewCtrl; + private CspViewCtrl stateViewCtrl; private SimulationPaneCtrl simPaneCtrl; private CSP csp; private SolutionStrategy strategy; private int stepCounter; - public MapColoringApp() { + public CspMapColoringApp() { } @Override public String getTitle() { - return "Map Coloring App"; + return "CSP Map Coloring App"; } /** @@ -52,7 +52,7 @@ public Pane createRootPane() { BorderPane root = new BorderPane(); StackPane stateView = new StackPane(); - stateViewCtrl = new BinaryCspViewCtrl(stateView); + stateViewCtrl = new CspViewCtrl(stateView); Parameter[] params = createParameters(); @@ -203,7 +203,9 @@ private void updateStateView(CSP csp, Assignment assignment) { private void updateStateViewLater(CSP csp, Assignment assignment) { stateViewCtrl.update(csp, assignment); String txt1 = "Step " + stepCounter + ": "; - String txt2 = assignment != null ? assignment.toString() : "Domain reduced"; + String txt2 = "Domain reduced"; + if (assignment != null) + txt2 = assignment.toString() + (assignment.isSolution(csp) ? " (Solution)" : ""); simPaneCtrl.setStatus(txt1 + txt2); } } diff --git a/aima-gui/src/main/java/aima/gui/fx/views/BinaryCspViewCtrl.java b/aima-gui/src/main/java/aima/gui/fx/views/CspViewCtrl.java similarity index 95% rename from aima-gui/src/main/java/aima/gui/fx/views/BinaryCspViewCtrl.java rename to aima-gui/src/main/java/aima/gui/fx/views/CspViewCtrl.java index a1e368aa2c..ada15819d2 100644 --- a/aima-gui/src/main/java/aima/gui/fx/views/BinaryCspViewCtrl.java +++ b/aima-gui/src/main/java/aima/gui/fx/views/CspViewCtrl.java @@ -21,7 +21,7 @@ * * @author Ruediger Lunde */ -public class BinaryCspViewCtrl { +public class CspViewCtrl { protected Pane pane; protected CSP csp; protected Assignment assignment; @@ -35,7 +35,7 @@ public class BinaryCspViewCtrl { */ protected Hashtable colorMapping = new Hashtable(); - public BinaryCspViewCtrl(StackPane viewRoot) { + public CspViewCtrl(StackPane viewRoot) { pane = new Pane(); viewRoot.getChildren().add(pane); viewRoot.setStyle("-fx-background-color: white"); @@ -106,12 +106,12 @@ protected void visualize(Variable var) { label += " = " + value; fillColor = colorMapping.get(value); } - Circle circle = new Circle(pos.getX(), pos.getY(), 30); + Circle circle = new Circle(pos.getX(), pos.getY(), 20); circle.setStroke(Color.BLACK); circle.setFill(fillColor != null ? fillColor : Color.WHITE); - Text t1 = new Text(pos.getX(), pos.getY(), label); + Text t1 = new Text(pos.getX() + 25, pos.getY(), label); t1.setTextOrigin(VPos.CENTER); - Text t2 = new Text(pos.getX(), pos.getY() + 50, csp.getDomain(var).toString()); + Text t2 = new Text(pos.getX(), pos.getY() + 40, csp.getDomain(var).toString()); pane.getChildren().addAll(circle, t1, t2); }