[jboss-svn-commits] JBL Code SVN: r19188 - in labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main: java/org/drools/solver/examples/itc2007/curriculumcourse/domain and 3 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Mar 21 15:26:16 EDT 2008


Author: ge0ffrey
Date: 2008-03-21 15:26:16 -0400 (Fri, 21 Mar 2008)
New Revision: 19188

Added:
   labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/itc2007/curriculumcourse/app/CurriculumCourseApp.java
   labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/itc2007/curriculumcourse/swingui/CurriculumCoursePanel.java
   labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/itc2007/curriculumcourse/solver/curriculumCourseScoreRules.drl
   labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/itc2007/curriculumcourse/solver/curriculumCourseSolverConfig.xml
Modified:
   labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/itc2007/curriculumcourse/domain/Course.java
   labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/itc2007/curriculumcourse/domain/Curriculum.java
   labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/itc2007/curriculumcourse/domain/Day.java
   labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/itc2007/curriculumcourse/domain/Lecture.java
   labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/itc2007/curriculumcourse/domain/Period.java
   labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/itc2007/curriculumcourse/domain/Room.java
   labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/itc2007/curriculumcourse/domain/Teacher.java
   labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/itc2007/curriculumcourse/domain/Timeslot.java
   labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/itc2007/curriculumcourse/domain/UnavailablePeriodConstraint.java
   labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/itc2007/examination/solver/examinationScoreRules.drl
Log:
curruculumcourse panel

Copied: labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/itc2007/curriculumcourse/app/CurriculumCourseApp.java (from rev 18895, labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/itc2007/examination/app/ExaminationApp.java)
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/itc2007/curriculumcourse/app/CurriculumCourseApp.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/itc2007/curriculumcourse/app/CurriculumCourseApp.java	2008-03-21 19:26:16 UTC (rev 19188)
@@ -0,0 +1,38 @@
+package org.drools.solver.examples.itc2007.curriculumcourse.app;
+
+import org.drools.solver.config.XmlSolverConfigurer;
+import org.drools.solver.core.Solver;
+import org.drools.solver.examples.common.app.CommonApp;
+import org.drools.solver.examples.common.swingui.SolutionPanel;
+import org.drools.solver.examples.itc2007.curriculumcourse.swingui.CurriculumCoursePanel;
+
+/**
+ * @author Geoffrey De Smet
+ */
+public class CurriculumCourseApp extends CommonApp {
+
+    public static final String SOLVER_CONFIG
+            = "/org/drools/solver/examples/itc2007/curriculumcourse/solver/curriculumCourseSolverConfig.xml";
+
+    public static void main(String[] args) {
+        new CurriculumCourseApp().init();
+    }
+
+    @Override
+    protected Solver createSolver() {
+        XmlSolverConfigurer configurer = new XmlSolverConfigurer();
+        configurer.configure(SOLVER_CONFIG);
+        return configurer.buildSolver();
+    }
+
+    @Override
+    protected String getExampleDirName() {
+        return "itc2007/curriculumcourse";
+    }
+
+    @Override
+    protected SolutionPanel createSolutionPanel() {
+        return new CurriculumCoursePanel();
+    }
+
+}
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/itc2007/curriculumcourse/domain/Course.java
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/itc2007/curriculumcourse/domain/Course.java	2008-03-21 19:16:54 UTC (rev 19187)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/itc2007/curriculumcourse/domain/Course.java	2008-03-21 19:26:16 UTC (rev 19188)
@@ -1,11 +1,13 @@
 package org.drools.solver.examples.itc2007.curriculumcourse.domain;
 
+import com.thoughtworks.xstream.annotations.XStreamAlias;
 import org.apache.commons.lang.builder.CompareToBuilder;
 import org.drools.solver.examples.common.domain.AbstractPersistable;
 
 /**
  * @author Geoffrey De Smet
  */
+ at XStreamAlias("Course")
 public class Course extends AbstractPersistable implements Comparable<Course> {
 
     private String code;

Modified: labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/itc2007/curriculumcourse/domain/Curriculum.java
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/itc2007/curriculumcourse/domain/Curriculum.java	2008-03-21 19:16:54 UTC (rev 19187)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/itc2007/curriculumcourse/domain/Curriculum.java	2008-03-21 19:26:16 UTC (rev 19188)
@@ -1,11 +1,13 @@
 package org.drools.solver.examples.itc2007.curriculumcourse.domain;
 
+import com.thoughtworks.xstream.annotations.XStreamAlias;
 import org.apache.commons.lang.builder.CompareToBuilder;
 import org.drools.solver.examples.common.domain.AbstractPersistable;
 
 /**
  * @author Geoffrey De Smet
  */
+ at XStreamAlias("Curriculum")
 public class Curriculum extends AbstractPersistable implements Comparable<Curriculum> {
 
     private String code;

Modified: labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/itc2007/curriculumcourse/domain/Day.java
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/itc2007/curriculumcourse/domain/Day.java	2008-03-21 19:16:54 UTC (rev 19187)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/itc2007/curriculumcourse/domain/Day.java	2008-03-21 19:26:16 UTC (rev 19188)
@@ -1,11 +1,13 @@
 package org.drools.solver.examples.itc2007.curriculumcourse.domain;
 
+import com.thoughtworks.xstream.annotations.XStreamAlias;
 import org.apache.commons.lang.builder.CompareToBuilder;
 import org.drools.solver.examples.common.domain.AbstractPersistable;
 
 /**
  * @author Geoffrey De Smet
  */
+ at XStreamAlias("Day")
 public class Day extends AbstractPersistable implements Comparable<Day> {
 
     private int dayIndex;

Modified: labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/itc2007/curriculumcourse/domain/Lecture.java
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/itc2007/curriculumcourse/domain/Lecture.java	2008-03-21 19:16:54 UTC (rev 19187)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/itc2007/curriculumcourse/domain/Lecture.java	2008-03-21 19:26:16 UTC (rev 19188)
@@ -1,5 +1,6 @@
 package org.drools.solver.examples.itc2007.curriculumcourse.domain;
 
+import com.thoughtworks.xstream.annotations.XStreamAlias;
 import org.apache.commons.lang.builder.CompareToBuilder;
 import org.apache.commons.lang.builder.EqualsBuilder;
 import org.apache.commons.lang.builder.HashCodeBuilder;
@@ -8,6 +9,7 @@
 /**
  * @author Geoffrey De Smet
  */
+ at XStreamAlias("Lecture")
 public class Lecture extends AbstractPersistable implements Comparable<Lecture> {
 
     private Course course;

Modified: labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/itc2007/curriculumcourse/domain/Period.java
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/itc2007/curriculumcourse/domain/Period.java	2008-03-21 19:16:54 UTC (rev 19187)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/itc2007/curriculumcourse/domain/Period.java	2008-03-21 19:26:16 UTC (rev 19188)
@@ -1,11 +1,13 @@
 package org.drools.solver.examples.itc2007.curriculumcourse.domain;
 
+import com.thoughtworks.xstream.annotations.XStreamAlias;
 import org.apache.commons.lang.builder.CompareToBuilder;
 import org.drools.solver.examples.common.domain.AbstractPersistable;
 
 /**
  * @author Geoffrey De Smet
  */
+ at XStreamAlias("Period")
 public class Period extends AbstractPersistable implements Comparable<Period> {
 
     private Day day;

Modified: labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/itc2007/curriculumcourse/domain/Room.java
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/itc2007/curriculumcourse/domain/Room.java	2008-03-21 19:16:54 UTC (rev 19187)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/itc2007/curriculumcourse/domain/Room.java	2008-03-21 19:26:16 UTC (rev 19188)
@@ -1,11 +1,13 @@
 package org.drools.solver.examples.itc2007.curriculumcourse.domain;
 
+import com.thoughtworks.xstream.annotations.XStreamAlias;
 import org.apache.commons.lang.builder.CompareToBuilder;
 import org.drools.solver.examples.common.domain.AbstractPersistable;
 
 /**
  * @author Geoffrey De Smet
  */
+ at XStreamAlias("Room")
 public class Room extends AbstractPersistable implements Comparable<Room> {
 
     private String code;

Modified: labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/itc2007/curriculumcourse/domain/Teacher.java
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/itc2007/curriculumcourse/domain/Teacher.java	2008-03-21 19:16:54 UTC (rev 19187)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/itc2007/curriculumcourse/domain/Teacher.java	2008-03-21 19:26:16 UTC (rev 19188)
@@ -1,5 +1,6 @@
 package org.drools.solver.examples.itc2007.curriculumcourse.domain;
 
+import com.thoughtworks.xstream.annotations.XStreamAlias;
 import org.apache.commons.lang.builder.CompareToBuilder;
 import org.drools.solver.examples.common.domain.AbstractPersistable;
 
@@ -7,6 +8,7 @@
  * Not used during score calculation, so not inserted into the working memory.
  * @author Geoffrey De Smet
  */
+ at XStreamAlias("Teacher")
 public class Teacher extends AbstractPersistable implements Comparable<Teacher> {
 
     private String code;

Modified: labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/itc2007/curriculumcourse/domain/Timeslot.java
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/itc2007/curriculumcourse/domain/Timeslot.java	2008-03-21 19:16:54 UTC (rev 19187)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/itc2007/curriculumcourse/domain/Timeslot.java	2008-03-21 19:26:16 UTC (rev 19188)
@@ -1,11 +1,13 @@
 package org.drools.solver.examples.itc2007.curriculumcourse.domain;
 
+import com.thoughtworks.xstream.annotations.XStreamAlias;
 import org.apache.commons.lang.builder.CompareToBuilder;
 import org.drools.solver.examples.common.domain.AbstractPersistable;
 
 /**
  * @author Geoffrey De Smet
  */
+ at XStreamAlias("Timeslot")
 public class Timeslot extends AbstractPersistable implements Comparable<Timeslot> {
 
     private int timeslotIndex;

Modified: labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/itc2007/curriculumcourse/domain/UnavailablePeriodConstraint.java
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/itc2007/curriculumcourse/domain/UnavailablePeriodConstraint.java	2008-03-21 19:16:54 UTC (rev 19187)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/itc2007/curriculumcourse/domain/UnavailablePeriodConstraint.java	2008-03-21 19:26:16 UTC (rev 19188)
@@ -1,12 +1,15 @@
 package org.drools.solver.examples.itc2007.curriculumcourse.domain;
 
+import com.thoughtworks.xstream.annotations.XStreamAlias;
 import org.apache.commons.lang.builder.CompareToBuilder;
 import org.drools.solver.examples.common.domain.AbstractPersistable;
 
 /**
  * @author Geoffrey De Smet
  */
-public class UnavailablePeriodConstraint extends AbstractPersistable implements Comparable<UnavailablePeriodConstraint> {
+ at XStreamAlias("UnavailablePeriodConstraint")
+public class UnavailablePeriodConstraint extends AbstractPersistable
+        implements Comparable<UnavailablePeriodConstraint> {
 
     private Course course;
     private Period period;

Copied: labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/itc2007/curriculumcourse/swingui/CurriculumCoursePanel.java (from rev 18895, labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/itc2007/examination/swingui/ExaminationPanel.java)
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/itc2007/curriculumcourse/swingui/CurriculumCoursePanel.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/itc2007/curriculumcourse/swingui/CurriculumCoursePanel.java	2008-03-21 19:26:16 UTC (rev 19188)
@@ -0,0 +1,132 @@
+package org.drools.solver.examples.itc2007.curriculumcourse.swingui;
+
+import java.awt.Color;
+import java.awt.GridLayout;
+import java.awt.event.ActionEvent;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.swing.AbstractAction;
+import javax.swing.BorderFactory;
+import javax.swing.JButton;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+
+import org.drools.solver.examples.common.swingui.SolutionPanel;
+import org.drools.solver.examples.itc2007.curriculumcourse.domain.CurriculumCourseSchedule;
+import org.drools.solver.examples.itc2007.curriculumcourse.domain.Lecture;
+import org.drools.solver.examples.itc2007.curriculumcourse.domain.Period;
+import org.drools.solver.examples.itc2007.curriculumcourse.domain.Room;
+
+/**
+ * @author Geoffrey De Smet
+ */
+public class CurriculumCoursePanel extends SolutionPanel {
+
+    private static final Color HEADER_COLOR = Color.YELLOW;
+
+    private GridLayout gridLayout;
+
+    public CurriculumCoursePanel() {
+        gridLayout = new GridLayout(0, 1);
+        setLayout(gridLayout);
+    }
+
+    private CurriculumCourseSchedule getCurriculumCourseSchedule() {
+        return (CurriculumCourseSchedule) solutionBusiness.getSolution();
+    }
+
+    public void resetPanel() {
+        removeAll();
+        CurriculumCourseSchedule schedule = getCurriculumCourseSchedule();
+        gridLayout.setColumns(schedule.getRoomList().size() + 1);
+        JLabel headerCornerLabel = new JLabel("Period         \\         Room");
+        headerCornerLabel.setBorder(BorderFactory.createCompoundBorder(
+                BorderFactory.createLineBorder(Color.DARK_GRAY),
+                BorderFactory.createEmptyBorder(2, 2, 2, 2)));
+        headerCornerLabel.setBackground(HEADER_COLOR);
+        headerCornerLabel.setOpaque(true);
+        add(headerCornerLabel);
+        for (Room room : schedule.getRoomList()) {
+            JLabel roomLabel = new JLabel(room.toString());
+            roomLabel.setBorder(BorderFactory.createCompoundBorder(
+                    BorderFactory.createLineBorder(Color.DARK_GRAY),
+                    BorderFactory.createEmptyBorder(2, 2, 2, 2)));
+            roomLabel.setBackground(HEADER_COLOR);
+            roomLabel.setOpaque(true);
+            add(roomLabel);
+        }
+        Map<Period, Map<Room, PeriodRoomPanel>> periodRoomPanelMap = new HashMap<Period, Map<Room, PeriodRoomPanel>>();
+        for (Period period : schedule.getPeriodList()) {
+            JLabel periodLabel = new JLabel(period.toString());
+            periodLabel.setBorder(BorderFactory.createCompoundBorder(
+                    BorderFactory.createLineBorder(Color.DARK_GRAY),
+                    BorderFactory.createEmptyBorder(2, 2, 2, 2)));
+            periodLabel.setBackground(HEADER_COLOR);
+            periodLabel.setOpaque(true);
+            add(periodLabel);
+            Map<Room, PeriodRoomPanel> roomPanelMap = new HashMap<Room, PeriodRoomPanel>();
+            periodRoomPanelMap.put(period, roomPanelMap);
+            for (Room room : schedule.getRoomList()) {
+                PeriodRoomPanel periodRoomPanel = new PeriodRoomPanel();
+                add(periodRoomPanel);
+                roomPanelMap.put(room, periodRoomPanel);
+            }
+        }
+        if (schedule.isInitialized()) {
+            for (Lecture lecture : schedule.getLectureList()) {
+                PeriodRoomPanel periodRoomPanel = periodRoomPanelMap.get(lecture.getPeriod()).get(lecture.getRoom());
+                periodRoomPanel.addLecture(lecture);
+            }
+        }
+    }
+
+    private class PeriodRoomPanel extends JPanel {
+
+        public PeriodRoomPanel() {
+            super(new GridLayout(0, 1));
+            setBorder(BorderFactory.createCompoundBorder(
+                    BorderFactory.createLineBorder(Color.DARK_GRAY),
+                    BorderFactory.createEmptyBorder(2, 2, 2, 2)));
+        }
+
+        public void addLecture(Lecture lecture) {
+            JButton button = new JButton(new ExamAction(lecture));
+            add(button);
+        }
+
+    }
+
+    private class ExamAction extends AbstractAction {
+
+        private Lecture lecture;
+
+        public ExamAction(Lecture lecture) {
+            super(lecture.toString());
+            this.lecture = lecture;
+        }
+
+        public void actionPerformed(ActionEvent e) {
+//            JPanel listFieldsPanel = new JPanel(new GridLayout(2, 1));
+//            List<Period> periodList = getExamination().getPeriodList();
+//            JComboBox periodListField = new JComboBox(periodList.toArray());
+//            periodListField.setSelectedItem(lecture.getPeriod());
+//            listFieldsPanel.add(periodListField);
+//            List<Room> roomList = getExamination().getRoomList();
+//            JComboBox roomListField = new JComboBox(roomList.toArray());
+//            roomListField.setSelectedItem(lecture.getRoom());
+//            listFieldsPanel.add(roomListField);
+//            int result = JOptionPane.showConfirmDialog(CurriculumCoursePanel.this.getRootPane(), listFieldsPanel,
+//                    "Select period and room", JOptionPane.OK_CANCEL_OPTION);
+//            if (result == JOptionPane.OK_OPTION) {
+//                Period toPeriod = (Period) periodListField.getSelectedItem();
+//                solutionBusiness.doMove(new PeriodChangeMove(lecture, toPeriod));
+//                Room toRoom = (Room) roomListField.getSelectedItem();
+//                solutionBusiness.doMove(new RoomChangeMove(lecture, toRoom));
+//                workflowFrame.updateScreen();
+//            }
+        }
+
+    }
+
+}
\ No newline at end of file

Copied: labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/itc2007/curriculumcourse/solver/curriculumCourseScoreRules.drl (from rev 18895, labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/itc2007/examination/solver/examinationScoreRules.drl)
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/itc2007/curriculumcourse/solver/curriculumCourseScoreRules.drl	                        (rev 0)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/itc2007/curriculumcourse/solver/curriculumCourseScoreRules.drl	2008-03-21 19:26:16 UTC (rev 19188)
@@ -0,0 +1,51 @@
+package org.drools.solver.examples.itc2007.curriculumcourse.solver;
+    dialect "java"
+
+import org.drools.solver.core.score.calculator.HardAndSoftConstraintScoreCalculator;
+import org.drools.solver.core.score.constraint.IntConstraintOccurrence;
+import org.drools.solver.core.score.constraint.ConstraintType;
+
+import org.drools.solver.examples.itc2007.curriculumcourse.domain.Course;
+import org.drools.solver.examples.itc2007.curriculumcourse.domain.Curriculum;
+import org.drools.solver.examples.itc2007.curriculumcourse.domain.CurriculumCourseSchedule;
+import org.drools.solver.examples.itc2007.curriculumcourse.domain.Day;
+import org.drools.solver.examples.itc2007.curriculumcourse.domain.Lecture;
+import org.drools.solver.examples.itc2007.curriculumcourse.domain.Period;
+import org.drools.solver.examples.itc2007.curriculumcourse.domain.Room;
+import org.drools.solver.examples.itc2007.curriculumcourse.domain.Teacher;
+import org.drools.solver.examples.itc2007.curriculumcourse.domain.Timeslot;
+import org.drools.solver.examples.itc2007.curriculumcourse.domain.UnavailablePeriodConstraint;
+
+global HardAndSoftConstraintScoreCalculator scoreCalculator;
+
+// ############################################################################
+// Hard constraints
+// ############################################################################
+
+// Accumulate hard constraints
+rule "hardConstraintsBroken"
+        salience -1 // Finish the other rules first (optional, for performance)
+    when
+        $hardTotal : Number() from accumulate(
+            IntConstraintOccurrence(constraintType == ConstraintType.NEGATIVE_HARD, $weight : weight),
+            sum($weight) // Vote for http://jira.jboss.com/jira/browse/JBRULES-1075
+        );
+    then
+        scoreCalculator.setHardConstraintsBroken($hardTotal.intValue());
+end
+
+// ############################################################################
+// Soft constraints
+// ############################################################################
+
+// Accumulate soft constraints
+rule "softConstraintsBroken"
+        salience -1 // Finish the other rules first (optional, for performance)
+    when
+        $softTotal : Number() from accumulate(
+            IntConstraintOccurrence(constraintType == ConstraintType.NEGATIVE_SOFT, $weight : weight),
+            sum($weight) // Vote for http://jira.jboss.com/jira/browse/JBRULES-1075
+        );
+    then
+        scoreCalculator.setSoftConstraintsBroken($softTotal.intValue());
+end

Copied: labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/itc2007/curriculumcourse/solver/curriculumCourseSolverConfig.xml (from rev 18895, labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/itc2007/examination/solver/examinationSolverConfig.xml)
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/itc2007/curriculumcourse/solver/curriculumCourseSolverConfig.xml	                        (rev 0)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/itc2007/curriculumcourse/solver/curriculumCourseSolverConfig.xml	2008-03-21 19:26:16 UTC (rev 19188)
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<localSearchSolver>
+    <scoreDrl>/org/drools/solver/examples/itc2007/curriculumcourse/solver/curriculumCourseScoreRules.drl</scoreDrl>
+    <scoreCalculator>
+        <scoreCalculatorType>HARD_AND_SOFT_CONSTRAINTS</scoreCalculatorType>
+    </scoreCalculator>
+    <!--<startingSolutionInitializerClass>org.drools.solver.examples.itc2007.examination.solver.solution.initializer.ExaminationStartingSolutionInitializer</startingSolutionInitializerClass>-->
+    <finish>
+        <!--
+            Official benchmark maximumSecondsSpend allowed on:
+            ge0ffrey's main pc: 429
+            ge0ffrey's old pc: 1152
+        -->
+        <maximumSecondsSpend>429</maximumSecondsSpend>
+        <!--<feasableScore>-999999.0</feasableScore>-->
+        <!--<maximumStepCount>100</maximumStepCount>-->
+    </finish>
+    <selector>
+        <selector>
+            <topSize>10</topSize>
+        </selector>
+        <!--<selector>-->
+            <!--<moveFactoryClass>org.drools.solver.examples.itc2007.examination.solver.move.factory.PeriodChangeExaminationMoveFactory</moveFactoryClass>-->
+            <!--<relativeSelection>0.002</relativeSelection>-->
+        <!--</selector>-->
+        <!--<selector>-->
+            <!--<moveFactoryClass>org.drools.solver.examples.itc2007.examination.solver.move.factory.RoomChangeExaminationMoveFactory</moveFactoryClass>-->
+            <!--<relativeSelection>0.002</relativeSelection>-->
+        <!--</selector>-->
+        <!--<selector>-->
+            <!--<moveFactoryClass>org.drools.solver.examples.itc2007.examination.solver.move.factory.ExamSwitchExaminationMoveFactory</moveFactoryClass>-->
+            <!--<relativeSelection>0.002</relativeSelection>-->
+        <!--</selector>-->
+    </selector>
+    <accepter>
+        <completeSolutionTabuSize>1500</completeSolutionTabuSize>
+    </accepter>
+    <forager>
+        <foragerType>MAX_SCORE_OF_ALL</foragerType>
+    </forager>
+    <!--<selector>-->
+        <!--<moveFactoryClass>org.drools.solver.examples.itc2007.examination.solver.move.factory.PeriodChangeExaminationMoveFactory</moveFactoryClass>-->
+        <!--<shuffleMovesEveryStep>true</shuffleMovesEveryStep>-->
+    <!--</selector>-->
+    <!--<accepter>-->
+        <!--<accepterType>SIMULATED_ANNEALING</accepterType>-->
+    <!--</accepter>-->
+    <!--<forager>-->
+        <!--<foragerType>FIRST_RANDOMLY_ACCEPTED</foragerType>-->
+    <!--</forager>-->
+</localSearchSolver>
+        
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/itc2007/examination/solver/examinationScoreRules.drl
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/itc2007/examination/solver/examinationScoreRules.drl	2008-03-21 19:16:54 UTC (rev 19187)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/itc2007/examination/solver/examinationScoreRules.drl	2008-03-21 19:26:16 UTC (rev 19188)
@@ -18,8 +18,6 @@
 import org.drools.solver.examples.itc2007.examination.domain.Topic;
 import org.drools.solver.examples.itc2007.examination.domain.TopicConflict;
 
-import java.util.HashSet;
-
 global HardAndSoftConstraintScoreCalculator scoreCalculator;
 
 // ############################################################################




More information about the jboss-svn-commits mailing list