[jboss-svn-commits] JBL Code SVN: r33133 - in labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples: common/app and 1 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu May 27 15:34:09 EDT 2010


Author: ge0ffrey
Date: 2010-05-27 15:34:09 -0400 (Thu, 27 May 2010)
New Revision: 33133

Modified:
   labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/app/ExamplesApp.java
   labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/common/app/CommonApp.java
   labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/common/swingui/WorkflowFrame.java
Log:
ExamplesApp should allow to open multiple examples without having to restart

Modified: labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/app/ExamplesApp.java
===================================================================
--- labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/app/ExamplesApp.java	2010-05-27 19:23:29 UTC (rev 33132)
+++ labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/app/ExamplesApp.java	2010-05-27 19:34:09 UTC (rev 33133)
@@ -44,32 +44,32 @@
         contentPane.add(new JLabel("Which example do you want to see?"));
         contentPane.add(new JButton(new AbstractAction("N queens"){
             public void actionPerformed(ActionEvent e) {
-                new NQueensApp().init();
+                new NQueensApp().init(false);
             }
         }));
         contentPane.add(new JButton(new AbstractAction("Miss Manners 2009"){
             public void actionPerformed(ActionEvent e) {
-                new Manners2009App().init();
+                new Manners2009App().init(false);
             }
         }));
         contentPane.add(new JButton(new AbstractAction("Traveling tournament"){
             public void actionPerformed(ActionEvent e) {
-                new SmartTravelingTournamentApp().init();
+                new SmartTravelingTournamentApp().init(false);
             }
         }));
         contentPane.add(new JButton(new AbstractAction("ITC2007 Curriculum course timetabling"){
             public void actionPerformed(ActionEvent e) {
-                new CurriculumCourseApp().init();
+                new CurriculumCourseApp().init(false);
             }
         }));
         contentPane.add(new JButton(new AbstractAction("ITC2007 Examination timetabling"){
             public void actionPerformed(ActionEvent e) {
-                new ExaminationApp().init();
+                new ExaminationApp().init(false);
             }
         }));
         contentPane.add(new JButton(new AbstractAction("Patient admission schedule"){
             public void actionPerformed(ActionEvent e) {
-                new PatientAdmissionScheduleApp().init();
+                new PatientAdmissionScheduleApp().init(false);
             }
         }));
         return contentPane;

Modified: labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/common/app/CommonApp.java
===================================================================
--- labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/common/app/CommonApp.java	2010-05-27 19:23:29 UTC (rev 33132)
+++ labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/common/app/CommonApp.java	2010-05-27 19:34:09 UTC (rev 33133)
@@ -1,5 +1,7 @@
 package org.drools.planner.examples.common.app;
 
+import javax.swing.JFrame;
+
 import org.drools.planner.core.Solver;
 import org.drools.planner.examples.common.business.SolutionBusiness;
 import org.drools.planner.examples.common.persistence.AbstractSolutionExporter;
@@ -22,6 +24,11 @@
     }
 
     public void init() {
+        init(true);
+    }
+
+    public void init(boolean exitOnClose) {
+        workflowFrame.setDefaultCloseOperation(exitOnClose ? JFrame.EXIT_ON_CLOSE : JFrame.DISPOSE_ON_CLOSE);
         workflowFrame.init();
         workflowFrame.setVisible(true);
     }

Modified: labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/common/swingui/WorkflowFrame.java
===================================================================
--- labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/common/swingui/WorkflowFrame.java	2010-05-27 19:23:29 UTC (rev 33132)
+++ labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/common/swingui/WorkflowFrame.java	2010-05-27 19:34:09 UTC (rev 33133)
@@ -4,6 +4,8 @@
 import java.awt.Dimension;
 import java.awt.GridLayout;
 import java.awt.event.ActionEvent;
+import java.awt.event.WindowAdapter;
+import java.awt.event.WindowEvent;
 import java.io.File;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
@@ -61,13 +63,12 @@
         this.solutionPanel = solutionPanel;
         solutionPanel.setSolutionBusiness(solutionBusiness);
         solutionPanel.setWorkflowFrame(this);
-        registerSolverEventListener();
+        registerListeners();
         constraintScoreMapDialog = new ConstraintScoreMapDialog(this);
         constraintScoreMapDialog.setSolutionBusiness(solutionBusiness);
-        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     }
 
-    private void registerSolverEventListener() {
+    private void registerListeners() {
         solutionBusiness.addSolverEventLister(new SolverEventListener() {
             public void bestSolutionChanged(BestSolutionChangedEvent event) {
                 final Solution bestSolution = event.getNewBestSolution();
@@ -78,6 +79,12 @@
                 });
             }
         });
+        addWindowListener(new WindowAdapter() {
+            public void windowClosing(WindowEvent e) {
+                // This async, so it doesn't stop the solving immediately
+                solutionBusiness.terminateSolvingEarly();
+            }
+        });
     }
 
     public void init() {



More information about the jboss-svn-commits mailing list