[jboss-svn-commits] JBL Code SVN: r8123 - in labs/jbossrules/trunk/drools-jbrms/src: main/java/org/drools/brms/client/common main/java/org/drools/brms/client/modeldriven/model main/java/org/drools/brms/client/modeldriven/ui main/java/org/drools/brms/public test/java/org/drools/brms/client/modeldriven
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Thu Dec 7 12:30:59 EST 2006
Author: michael.neale at jboss.com
Date: 2006-12-07 12:30:46 -0500 (Thu, 07 Dec 2006)
New Revision: 8123
Added:
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/YesNoDialog.java
labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/client/modeldriven/ActionSetFieldTest.java
Modified:
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/ActionSetField.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/FactPattern.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/RuleModel.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/ActionSetFieldWidget.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/FactPatternWidget.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/RuleModeller.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/JBRMS.css
labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/client/modeldriven/FactPatternTest.java
labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/client/modeldriven/RuleModelTest.java
Log:
lots more ajaxy improvements
Added: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/YesNoDialog.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/YesNoDialog.java 2006-12-07 15:22:58 UTC (rev 8122)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/YesNoDialog.java 2006-12-07 17:30:46 UTC (rev 8123)
@@ -0,0 +1,45 @@
+package org.drools.brms.client.common;
+
+import com.google.gwt.user.client.Command;
+import com.google.gwt.user.client.ui.Button;
+import com.google.gwt.user.client.ui.ClickListener;
+import com.google.gwt.user.client.ui.DialogBox;
+import com.google.gwt.user.client.ui.HorizontalPanel;
+import com.google.gwt.user.client.ui.Widget;
+
+/**
+ * A simple confirmation dialog.
+ *
+ * @author Michael Neale
+ *
+ */
+public class YesNoDialog extends DialogBox {
+
+ public YesNoDialog(String message, final Command yes) {
+ setText( message );
+
+ Button y = new Button("Yes");
+ Button n = new Button("No");
+
+ y.addClickListener( new ClickListener() {
+ public void onClick(Widget w) {
+ yes.execute();
+ hide();
+ }
+ });
+
+ n.addClickListener( new ClickListener() {
+ public void onClick(Widget w) {
+ hide();
+ }
+
+ });
+
+ HorizontalPanel horiz = new HorizontalPanel();
+ horiz.add( y );
+ horiz.add( n );
+
+ setWidget( horiz );
+ }
+
+}
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/ActionSetField.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/ActionSetField.java 2006-12-07 15:22:58 UTC (rev 8122)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/ActionSetField.java 2006-12-07 17:30:46 UTC (rev 8123)
@@ -12,4 +12,35 @@
public boolean modify;
+ public void removeField(int idx) {
+ //Unfortunately, this is kinda duplicate code with other methods,
+ //but with typed arrays, and GWT, its not really possible to do anything "better"
+ //at this point in time.
+ ActionFieldValue[] newList = new ActionFieldValue[fieldValues.length - 1];
+ int newIdx = 0;
+ for ( int i = 0; i < fieldValues.length; i++ ) {
+
+ if (i != idx) {
+ newList[newIdx] = fieldValues[i];
+ newIdx++;
+ }
+
+ }
+ this.fieldValues = newList;
+ }
+
+ public void addFieldValue(ActionFieldValue val) {
+ if (fieldValues == null) {
+ fieldValues = new ActionFieldValue[1];
+ fieldValues[0] = val;
+ } else {
+ ActionFieldValue[] newList = new ActionFieldValue[fieldValues.length + 1];
+ for ( int i = 0; i < fieldValues.length; i++ ) {
+ newList[i] = fieldValues[i];
+ }
+ newList[fieldValues.length] = val;
+ fieldValues = newList;
+ }
+ }
+
}
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/FactPattern.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/FactPattern.java 2006-12-07 15:22:58 UTC (rev 8122)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/FactPattern.java 2006-12-07 17:30:46 UTC (rev 8123)
@@ -29,6 +29,24 @@
constraints = newList;
}
}
+
+ public void removeConstraint(int idx) {
+ //Unfortunately, this is kinda duplicate code with other methods,
+ //but with typed arrays, and GWT, its not really possible to do anything "better"
+ //at this point in time.
+ Constraint[] newList = new Constraint[constraints.length - 1];
+ int newIdx = 0;
+ for ( int i = 0; i < constraints.length; i++ ) {
+
+ if (i != idx) {
+ newList[newIdx] = constraints[i];
+ newIdx++;
+ }
+
+ }
+ this.constraints = newList;
+
+ }
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/RuleModel.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/RuleModel.java 2006-12-07 15:22:58 UTC (rev 8122)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/RuleModel.java 2006-12-07 17:30:46 UTC (rev 8123)
@@ -77,7 +77,6 @@
}
/**
- *
* @param binding The name of the LHS fact binding.
* @return Returns true if the specified binding is used on the RHS.
*/
@@ -89,6 +88,11 @@
if (set.variable.equals( binding )) {
return true;
}
+ } else if (rhs[i] instanceof ActionRetractFact) {
+ ActionRetractFact ret = (ActionRetractFact) rhs[i];
+ if (ret.variableName.equals( binding )) {
+ return true;
+ }
}
}
return false;
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/ActionSetFieldWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/ActionSetFieldWidget.java 2006-12-07 15:22:58 UTC (rev 8122)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/ActionSetFieldWidget.java 2006-12-07 17:30:46 UTC (rev 8123)
@@ -1,14 +1,21 @@
package org.drools.brms.client.modeldriven.ui;
+import org.drools.brms.client.common.FormStylePopup;
+import org.drools.brms.client.common.YesNoDialog;
import org.drools.brms.client.modeldriven.SuggestionCompletionEngine;
import org.drools.brms.client.modeldriven.model.ActionFieldValue;
import org.drools.brms.client.modeldriven.model.ActionSetField;
+import org.drools.brms.client.modeldriven.model.Constraint;
import org.drools.brms.client.modeldriven.model.FactPattern;
import org.drools.brms.client.modeldriven.model.RuleModel;
+import com.google.gwt.user.client.Command;
import com.google.gwt.user.client.ui.ChangeListener;
+import com.google.gwt.user.client.ui.ClickListener;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.FlexTable;
+import com.google.gwt.user.client.ui.HorizontalPanel;
+import com.google.gwt.user.client.ui.Image;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.ListBox;
import com.google.gwt.user.client.ui.TextBox;
@@ -26,12 +33,14 @@
final private FlexTable layout;
private boolean isBoundFact = false;
final private String[] fieldCompletions;
+ private RuleModeller modeller;
- public ActionSetFieldWidget(RuleModel rule, ActionSetField set, SuggestionCompletionEngine com) {
+ public ActionSetFieldWidget(RuleModeller mod, RuleModel rule, ActionSetField set, SuggestionCompletionEngine com) {
this.model = set;
this.completions = com;
this.layout = new FlexTable();
+ this.modeller = mod;
layout.setStyleName( "model-builderInner-Background" );
if (completions.isGlobalVariable( set.variable )) {
this.fieldCompletions = completions.getFieldCompletionsForGlobalVariable( set.variable );
@@ -59,6 +68,21 @@
inner.setWidget( i, 0, fieldSelector(val) );
inner.setWidget( i, 1, valueEditor(val) );
+ final int idx = i;
+ Image remove = new Image("images/clear_item.gif");
+ remove.addClickListener( new ClickListener() {
+ public void onClick(Widget w) {
+ YesNoDialog diag = new YesNoDialog("Remove this item?", new Command() {
+ public void execute() {
+ model.removeField( idx );
+ modeller.refreshWidget();
+ }
+ });
+ diag.setPopupPosition( w.getAbsoluteLeft(), w.getAbsoluteTop() );
+ diag.show();
+ }
+ });
+ inner.setWidget( i, 2, remove );
}
layout.setWidget( 0, 1, inner );
@@ -67,11 +91,54 @@
}
- private Label getSetterLabel() {
- return new Label("Set " + model.variable);
+ private Widget getSetterLabel() {
+
+ HorizontalPanel horiz = new HorizontalPanel();
+
+
+ Image edit = new Image("images/edit.gif");
+ edit.addClickListener( new ClickListener() {
+ public void onClick(Widget w) {
+ showAddFieldPopup(w);
+ }
+ } );
+
+ horiz.add( edit );
+ horiz.add( new Label("Set " + model.variable) );
+
+ return horiz;
}
+ protected void showAddFieldPopup(Widget w) {
+ final FormStylePopup popup = new FormStylePopup("images/newex_wiz.gif", "Add a field");
+ popup.setStyleName( "ks-popups-Popup" );
+ final ListBox box = new ListBox();
+ box.addItem( "..." );
+
+ for ( int i = 0; i < fieldCompletions.length; i++ ) {
+ box.addItem( fieldCompletions[i] );
+ }
+
+ box.setSelectedIndex( 0 );
+
+ popup.addAttribute( "Add field", box );
+ box.addChangeListener( new ChangeListener() {
+ public void onChange(Widget w) {
+ model.addFieldValue( new ActionFieldValue(box.getItemText( box.getSelectedIndex() ), "") );
+ modeller.refreshWidget();
+ popup.hide();
+ }
+ });
+
+
+
+ popup.setPopupPosition( w.getAbsoluteLeft(), w.getAbsoluteTop() );
+ popup.show();
+
+ }
+
+
private Widget valueEditor(final ActionFieldValue val) {
final TextBox box = new TextBox();
box.setText( val.value );
@@ -86,22 +153,24 @@
private Widget fieldSelector(final ActionFieldValue val) {
- final ListBox box = new ListBox();
- for ( int i = 0; i < this.fieldCompletions.length; i++ ) {
- box.addItem( this.fieldCompletions[i] );
- if (this.fieldCompletions[i].equals( val.field )) {
- box.setSelectedIndex( i );
- }
-
- }
+// final ListBox box = new ListBox();
+// for ( int i = 0; i < this.fieldCompletions.length; i++ ) {
+// box.addItem( this.fieldCompletions[i] );
+// if (this.fieldCompletions[i].equals( val.field )) {
+// box.setSelectedIndex( i );
+// }
+//
+// }
+//
+// box.addChangeListener( new ChangeListener() {
+// public void onChange(Widget w) {
+// val.field = box.getItemText( box.getSelectedIndex() );
+// }
+// });
- box.addChangeListener( new ChangeListener() {
- public void onChange(Widget w) {
- val.field = box.getItemText( box.getSelectedIndex() );
- }
- });
+ //return box;
- return box;
+ return new Label(val.field);
}
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/FactPatternWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/FactPatternWidget.java 2006-12-07 15:22:58 UTC (rev 8122)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/FactPatternWidget.java 2006-12-07 17:30:46 UTC (rev 8123)
@@ -1,6 +1,7 @@
package org.drools.brms.client.modeldriven.ui;
import org.drools.brms.client.common.FormStylePopup;
+import org.drools.brms.client.common.YesNoDialog;
import org.drools.brms.client.modeldriven.SuggestionCompletionEngine;
import org.drools.brms.client.modeldriven.model.ConnectiveConstraint;
import org.drools.brms.client.modeldriven.model.Constraint;
@@ -34,10 +35,10 @@
private boolean bindable;
- public FactPatternWidget(RuleModeller modeller, IPattern p, SuggestionCompletionEngine com, boolean canBind) {
+ public FactPatternWidget(RuleModeller mod, IPattern p, SuggestionCompletionEngine com, boolean canBind) {
this.pattern = (FactPattern) p;
this.completions = com;
- this.modeller = modeller;
+ this.modeller = mod;
this.bindable = canBind;
layout.setWidget( 0, 0, getPatternLabel() );
@@ -48,18 +49,41 @@
for ( int row = 0; row < pattern.constraints.length; row++ ) {
final Constraint c = pattern.constraints[row];
final int currentRow = row;
+
inner.setWidget( row, 0, fieldDropDown(c, new Command() {
public void execute() {
inner.setWidget( currentRow, 1, operatorDropDown( c ));
- }
-
- }) );
+ }
+ }));
+
inner.setWidget( row, 1, operatorDropDown(c) );
inner.setWidget( row, 2, valueEditor(c) );
inner.setWidget( row, 3, connectives(c) );
+
+ Image clear = new Image("images/clear_item.gif");
+ clear.addClickListener( new ClickListener() {
+ public void onClick(Widget w) {
+ YesNoDialog d = new YesNoDialog("Remove this item?", new Command() {
+ public void execute() {
+ pattern.removeConstraint( currentRow );
+ modeller.refreshWidget();
+ }
+
+ });
+ d.setPopupPosition( w.getAbsoluteLeft(), w.getAbsoluteTop());
+ d.show();
+ }
+ } );
+
+ inner.setWidget( row, 4, clear );
+
}
- layout.setStyleName( "model-builderInner-Background" );
+ if (bindable) {
+ layout.setStyleName( "model-builderInner-Background" );
+ } else {
+ layout.setStyleName( "model-builderInnerInner-Background" );
+ }
initWidget( layout );
}
@@ -111,7 +135,21 @@
}
});
- if (bindable) {
+ doBindingEditor( popup );
+
+ popup.setPopupPosition( w.getAbsoluteLeft(), w.getAbsoluteTop() );
+ popup.show();
+ }
+
+
+ /**
+ * This adds in (optionally) the editor for changing the bound variable name.
+ * If its a bindable pattern, it will show the editor,
+ * if it is already bound, and the name is used, it should
+ * not be editable.
+ */
+ private void doBindingEditor(final FormStylePopup popup) {
+ if (bindable && !(modeller.getModel().isBoundFactUsed( pattern.boundName ))) {
HorizontalPanel varName = new HorizontalPanel();
final TextBox varTxt = new TextBox();
varTxt.setText( pattern.boundName );
@@ -130,9 +168,6 @@
popup.addAttribute("Variable name", varName);
}
-
- popup.setPopupPosition( w.getAbsoluteLeft(), w.getAbsoluteTop() );
- popup.show();
}
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/RuleModeller.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/RuleModeller.java 2006-12-07 15:22:58 UTC (rev 8122)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/RuleModeller.java 2006-12-07 17:30:46 UTC (rev 8123)
@@ -2,6 +2,7 @@
import org.drools.brms.client.common.ErrorPopup;
import org.drools.brms.client.common.FormStylePopup;
+import org.drools.brms.client.common.YesNoDialog;
import org.drools.brms.client.modeldriven.SuggestionCompletionEngine;
import org.drools.brms.client.modeldriven.model.ActionAssertFact;
import org.drools.brms.client.modeldriven.model.ActionRetractFact;
@@ -12,6 +13,7 @@
import org.drools.brms.client.modeldriven.model.IPattern;
import org.drools.brms.client.modeldriven.model.RuleModel;
+import com.google.gwt.user.client.Command;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.ClickListener;
import com.google.gwt.user.client.ui.Composite;
@@ -44,8 +46,7 @@
refreshWidget();
layout.setStyleName( "model-builder-Background" );
- initWidget( layout );
-
+ initWidget( layout );
}
/**
@@ -82,7 +83,7 @@
Widget w = null;
if (action instanceof ActionSetField) {
- w = new ActionSetFieldWidget(this.model, (ActionSetField) action, completions ) ;
+ w = new ActionSetFieldWidget(this, this.model, (ActionSetField) action, completions ) ;
} else if (action instanceof ActionAssertFact) {
w = new ActionAssertFactWidget((ActionAssertFact) action, completions );
} else if (action instanceof ActionRetractFact) {
@@ -95,8 +96,14 @@
final int idx = i;
remove.addClickListener( new ClickListener() {
public void onClick(Widget w) {
- model.removeRhsItem(idx);
- refreshWidget();
+ YesNoDialog diag = new YesNoDialog("Remove this item?", new Command() {
+ public void execute() {
+ model.removeRhsItem(idx);
+ refreshWidget();
+ }
+ });
+ diag.setPopupPosition( w.getAbsoluteLeft(), w.getAbsoluteTop() );
+ diag.show();
}
} );
horiz.add( w );
@@ -162,9 +169,8 @@
for ( int i = 0; i < model.lhs.length; i++ ) {
IPattern pattern = model.lhs[i];
Widget w;
- if (pattern instanceof FactPattern) {
-
- w = new FactPatternWidget(this, pattern, completions, true) ;
+ if (pattern instanceof FactPattern) {
+ w = new FactPatternWidget(this, pattern, completions, true) ;
} else if (pattern instanceof CompositeFactPattern) {
w = new CompositeFactPatternWidget(this, (CompositeFactPattern) pattern, completions) ;
} else {
@@ -177,11 +183,20 @@
final int idx = i;
remove.addClickListener( new ClickListener() {
public void onClick(Widget w) {
- if (model.removeLhsItem(idx)) {
- refreshWidget();
- } else {
- ErrorPopup.showMessage( "Can't remove that item as it is used in the action part of the rule." );
- }
+ YesNoDialog diag = new YesNoDialog("Remove this item?", new Command() {
+
+ public void execute() {
+ if (model.removeLhsItem(idx)) {
+ refreshWidget();
+ } else {
+ ErrorPopup.showMessage( "Can't remove that item as it is used in the action part of the rule." );
+ }
+
+ }
+
+ });
+ diag.setPopupPosition( w.getAbsoluteLeft(), w.getAbsoluteTop() );
+ diag.show();
}
} );
horiz.add( w );
@@ -196,7 +211,9 @@
+ public RuleModel getModel() {
+ return model;
+ }
-
}
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/JBRMS.css
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/JBRMS.css 2006-12-07 15:22:58 UTC (rev 8122)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/JBRMS.css 2006-12-07 17:30:46 UTC (rev 8123)
@@ -119,13 +119,27 @@
}
.model-builderInner-Background {
- background-color: white;
- //border: 1px solid #87B3FF;
- border-top: 1px solid black;
- border-bottom: 1px solid black;
+ background-color: white;
+ border-top: 1px solid gray;
+ border-bottom: 1px solid gray;
}
+.model-builderInnerInner-Background {
+ background-color: white;
+ border-top: 1px solid gray;
+ border-bottom: 1px solid gray;
+}
+.gwt-DialogBox {
+ border: 1px solid #87B3FF;
+}
+.gwt-DialogBox .Caption {
+ background-color: #FDFCDC;
+ font-size: smaller;
+}
+
+
+
.gwt-TabBar {
background-color: #B8B8B8;
font-size: smaller;
Added: labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/client/modeldriven/ActionSetFieldTest.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/client/modeldriven/ActionSetFieldTest.java 2006-12-07 15:22:58 UTC (rev 8122)
+++ labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/client/modeldriven/ActionSetFieldTest.java 2006-12-07 17:30:46 UTC (rev 8123)
@@ -0,0 +1,42 @@
+package org.drools.brms.client.modeldriven;
+
+import org.drools.brms.client.modeldriven.model.ActionFieldValue;
+import org.drools.brms.client.modeldriven.model.ActionSetField;
+
+import junit.framework.TestCase;
+
+public class ActionSetFieldTest extends TestCase {
+
+ public void testRemove() {
+ ActionSetField set = new ActionSetField();
+ set.fieldValues = new ActionFieldValue[2];
+ ActionFieldValue v0 = new ActionFieldValue("x", "42");
+ ActionFieldValue v1 = new ActionFieldValue("y", "43");
+ set.fieldValues[0] = v0;
+ set.fieldValues[1] = v1;
+
+ set.removeField( 1 );
+
+ assertEquals(1, set.fieldValues.length);
+ assertEquals(v0, set.fieldValues[0]);
+
+ }
+
+ public void testAdd() {
+ ActionSetField set = new ActionSetField();
+ set.fieldValues = new ActionFieldValue[2];
+ ActionFieldValue v0 = new ActionFieldValue("x", "42");
+ ActionFieldValue v1 = new ActionFieldValue("y", "43");
+ set.fieldValues[0] = v0;
+ set.fieldValues[1] = v1;
+
+ ActionFieldValue q = new ActionFieldValue("q", "q");
+ set.addFieldValue( q);
+
+ assertEquals(3, set.fieldValues.length);
+ assertEquals(q, set.fieldValues[2]);
+ assertEquals(v0, set.fieldValues[0]);
+
+ }
+
+}
Modified: labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/client/modeldriven/FactPatternTest.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/client/modeldriven/FactPatternTest.java 2006-12-07 15:22:58 UTC (rev 8122)
+++ labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/client/modeldriven/FactPatternTest.java 2006-12-07 17:30:46 UTC (rev 8123)
@@ -24,6 +24,23 @@
}
+ public void testRemoveConstraint() {
+ FactPattern p = new FactPattern();
+ Constraint x = new Constraint("x");
+ p.addConstraint(x);
+ Constraint y = new Constraint("y");
+ p.addConstraint( y );
+
+ assertEquals(2, p.constraints.length);
+
+ p.removeConstraint(1);
+
+ assertEquals(1, p.constraints.length);
+
+ assertEquals(x, p.constraints[0]);
+
+ }
+
}
Modified: labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/client/modeldriven/RuleModelTest.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/client/modeldriven/RuleModelTest.java 2006-12-07 15:22:58 UTC (rev 8122)
+++ labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/client/modeldriven/RuleModelTest.java 2006-12-07 17:30:46 UTC (rev 8123)
@@ -48,6 +48,11 @@
assertEquals(3, model.lhs.length);
assertFalse(model.removeLhsItem( 0 ));
assertEquals(3, model.lhs.length);
+
+ ActionRetractFact fact = new ActionRetractFact("q");
+ model.rhs[0] = fact;
+ assertTrue(model.isBoundFactUsed( "q" ));
+ assertFalse(model.isBoundFactUsed( "x" ));
}
public void testBindingList() {
More information about the jboss-svn-commits
mailing list