[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