[jboss-svn-commits] JBL Code SVN: r14594 - in labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main: rules/org/drools/examples and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Sun Aug 26 09:42:56 EDT 2007


Author: mark.proctor at jboss.com
Date: 2007-08-26 09:42:55 -0400 (Sun, 26 Aug 2007)
New Revision: 14594

Modified:
   labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/PetStore.java
   labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/PetStore.drl
Log:
-updated the petstore example

Modified: labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/PetStore.java
===================================================================
--- labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/PetStore.java	2007-08-26 13:27:58 UTC (rev 14593)
+++ labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/PetStore.java	2007-08-26 13:42:55 UTC (rev 14594)
@@ -319,6 +319,8 @@
                                                       ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED );
             bottomHalf.add( outputPane,
                             BorderLayout.CENTER );
+            
+            this.callback.setOutput( this.output );
         }
 
         /**
@@ -367,8 +369,10 @@
             public void mouseReleased(MouseEvent e) {
                 JButton button = (JButton) e.getComponent();
                 try {
-                    output.append( callback.checkout( (JFrame) button.getTopLevelAncestor(),
-                                                      tableModel.getItems() ) );
+//                    output.append( callback.checkout( (JFrame) button.getTopLevelAncestor(),
+//                                                      tableModel.getItems() ) );
+                    callback.checkout( (JFrame) button.getTopLevelAncestor(),
+                                        tableModel.getItems() );                    
                 } catch ( org.drools.FactException fe ) {
                     fe.printStackTrace();
                 }
@@ -490,10 +494,15 @@
      */
     public static class CheckoutCallback {
         RuleBase ruleBase;
-
+        JTextArea output;
+        
         public CheckoutCallback(RuleBase ruleBase) {
             this.ruleBase = ruleBase;
         }
+        
+        public void setOutput(JTextArea output) {
+            this.output = output;
+        }
 
         /**
          * Populate the cart and assert into working memory Pass Jframe reference
@@ -515,7 +524,8 @@
             //add the JFrame to the ApplicationData to allow for user interaction
             WorkingMemory workingMemory = ruleBase.newStatefulSession();
             workingMemory.setGlobal( "frame",
-                                              frame );
+                                      frame );
+            workingMemory.setGlobal( "textArea", this.output);
             workingMemory.insert( cart );
             workingMemory.fireAllRules();
 

Modified: labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/PetStore.drl
===================================================================
--- labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/PetStore.drl	2007-08-26 13:27:58 UTC (rev 14593)
+++ labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/PetStore.drl	2007-08-26 13:42:55 UTC (rev 14594)
@@ -5,21 +5,27 @@
 import java.util.ArrayList
 
 global javax.swing.JFrame frame 
+global javax.swing.JTextArea textArea
 
 dialect "mvel"
 
 // insert each item in the shopping cart into the Working Memory 
 rule "Explode Cart"
+    salience 10
+	dialect "java"
 	when
 	    $cart : ShoppingCart()
 		$item : CartItem() from $cart.getItems()
 	then
 		insert( $item );
+		drools.getWorkingMemory().getRuleBase().removeRule("org.drools.examples", "Explode Cart" );
+		
 end
 
 // Free Fish Food sample when we buy a Gold Fish if we haven't already  bought 
 // Fish Food and dont already have a Fish Food Sample
 rule "Free Fish Food Sample"
+	dialect "java"
 	when
 	    $cart : ShoppingCart()
 		not CartItem(name == "Fish Food")
@@ -27,8 +33,7 @@
  	    exists CartItem(name == "Gold Fish" )
 	then
 		System.out.println( "Adding free Fish Food Sample to cart" );
-		$cart.addItem( new CartItem( "Fish Food Sample", 0.00 ) );
-		update( $cart );		
+		$cart.addItem( new CartItem( "Fish Food Sample", 0.00 ) );	
 end
 
 // Suggest a tank if we have bought more than 5 gold fish and dont already have one
@@ -40,16 +45,30 @@
 end	
 
 rule "Apply 5% Discount"
+	dialect "java"
 	when
 		$cart : ShoppingCart( grossCost >= 10 && < 20, discount < 0.05 )
 	then
-	    modify( $cart ) { discount = 0.05 };
+//	    with( $cart ) { discount = 0.05 };
+		$cart.setDiscount( 0.05 );
 end
 
 rule "Apply 10% Discount"
+	dialect "java"
 	when
-		ShoppingCart( grossCost >= 20, discount < 0.10 )
+		$cart : ShoppingCart( grossCost >= 20, discount < 0.10 )
 	then
-	    modify( $cart ) { discount = 0.10 };
+//	    with( $cart ) { discount = 0.10 };
+		$cart.setDiscount( 0.10 );
 end
+
+rule "Gross Total"
+    salience -10
+    dialect "java"
+	when
+		Double( total : doubleValue ) from accumulate( CartItem( cost : cost)
+   			        			   					   sum( cost) )
+	then	
+	     textArea.append( "gross total=" + total + "\n" );
+end
 	
\ No newline at end of file




More information about the jboss-svn-commits mailing list