[jboss-svn-commits] JBL Code SVN: r28966 - in labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/common: swingui and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Mon Aug 17 11:14:53 EDT 2009


Author: ge0ffrey
Date: 2009-08-17 11:14:53 -0400 (Mon, 17 Aug 2009)
New Revision: 28966

Modified:
   labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/common/business/SolutionBusiness.java
   labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/common/swingui/WorkflowFrame.java
Log:
JBRULES-2250 BestSolutionChangedEvent: use it in the examples to update the label

Modified: labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/common/business/SolutionBusiness.java
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/common/business/SolutionBusiness.java	2009-08-17 15:11:13 UTC (rev 28965)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/common/business/SolutionBusiness.java	2009-08-17 15:14:53 UTC (rev 28966)
@@ -13,6 +13,7 @@
 import org.drools.ClassObjectFilter;
 import org.drools.WorkingMemory;
 import org.drools.solver.core.Solver;
+import org.drools.solver.core.event.SolverEventListener;
 import org.drools.solver.core.localsearch.DefaultLocalSearchSolver;
 import org.drools.solver.core.localsearch.LocalSearchSolverScope;
 import org.drools.solver.core.move.Move;
@@ -93,6 +94,10 @@
         return localSearchSolverScope.calculateScoreFromWorkingMemory();
     }
 
+    public void addSolverEventLister(SolverEventListener eventListener) {
+        solver.addEventListener(eventListener);
+    }
+
     public List<ScoreDetail> getScoreDetailList() {
         Map<String, ScoreDetail> scoreDetailMap = new HashMap<String, ScoreDetail>();
         WorkingMemory workingMemory = localSearchSolverScope.getWorkingMemory();

Modified: labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/common/swingui/WorkflowFrame.java
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/common/swingui/WorkflowFrame.java	2009-08-17 15:11:13 UTC (rev 28965)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/common/swingui/WorkflowFrame.java	2009-08-17 15:14:53 UTC (rev 28966)
@@ -29,6 +29,9 @@
 import javax.swing.filechooser.FileFilter;
 
 import org.drools.solver.examples.common.business.SolutionBusiness;
+import org.drools.solver.core.event.SolverEventListener;
+import org.drools.solver.core.event.BestSolutionChangedEvent;
+import org.drools.solver.core.solution.Solution;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -60,11 +63,25 @@
         this.solutionPanel = solutionPanel;
         solutionPanel.setSolutionBusiness(solutionBusiness);
         solutionPanel.setWorkflowFrame(this);
+        registerSolverEventListener();
         constraintScoreMapDialog = new ConstraintScoreMapDialog(this);
         constraintScoreMapDialog.setSolutionBusiness(solutionBusiness);
         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     }
 
+    private void registerSolverEventListener() {
+        solutionBusiness.addSolverEventLister(new SolverEventListener() {
+            public void bestSolutionChanged(BestSolutionChangedEvent event) {
+                final Solution bestSolution = event.getNewBestSolution();
+                SwingUtilities.invokeLater(new Runnable() {
+                    public void run() {
+                        resultLabel.setText("Latest best score: " + bestSolution.getScore());
+                    }
+                });
+            }
+        });
+    }
+
     public void init() {
         setContentPane(createContentPane());
         pack();
@@ -262,7 +279,7 @@
     public void updateScreen() {
         solutionPanel.resetPanel();
         validate();
-        resultLabel.setText("Score = " + solutionBusiness.getScore());
+        resultLabel.setText("Score: " + solutionBusiness.getScore());
     }
 
 }



More information about the jboss-svn-commits mailing list