[jboss-svn-commits] JBL Code SVN: r8333 - in labs/jbossrules/trunk/drools-jbrms/src: main/java/org/drools/brms/client main/java/org/drools/brms/client/modeldriven main/java/org/drools/brms/client/modeldriven/model main/java/org/drools/brms/client/modeldriven/ui test/java/org/drools/brms/client/modeldriven
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Thu Dec 14 18:09:50 EST 2006
Author: michael.neale at jboss.com
Date: 2006-12-14 18:09:38 -0500 (Thu, 14 Dec 2006)
New Revision: 8333
Added:
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/DSLSentence.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/DSLSentenceFragment.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/DSLSentenceWidget.java
Modified:
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/Packages.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/SuggestionCompletionEngine.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/ui/RuleModeller.java
labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/client/modeldriven/SuggestionCompletionTest.java
Log:
DSL editor built into the modeller now
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/Packages.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/Packages.java 2006-12-14 22:02:58 UTC (rev 8332)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/Packages.java 2006-12-14 23:09:38 UTC (rev 8333)
@@ -1,19 +1,18 @@
package org.drools.brms.client;
-import org.drools.brms.client.common.DatePicker;
import org.drools.brms.client.modeldriven.SuggestionCompletionEngine;
import org.drools.brms.client.modeldriven.model.ActionAssertFact;
import org.drools.brms.client.modeldriven.model.ActionFieldValue;
import org.drools.brms.client.modeldriven.model.ActionRetractFact;
import org.drools.brms.client.modeldriven.model.ActionSetField;
import org.drools.brms.client.modeldriven.model.CompositeFactPattern;
-import org.drools.brms.client.modeldriven.model.ConnectiveConstraint;
import org.drools.brms.client.modeldriven.model.Constraint;
+import org.drools.brms.client.modeldriven.model.DSLSentence;
+import org.drools.brms.client.modeldriven.model.DSLSentenceFragment;
import org.drools.brms.client.modeldriven.model.FactPattern;
import org.drools.brms.client.modeldriven.model.IAction;
import org.drools.brms.client.modeldriven.model.IPattern;
import org.drools.brms.client.modeldriven.model.RuleModel;
-import org.drools.brms.client.modeldriven.ui.CompositeFactPatternWidget;
import org.drools.brms.client.modeldriven.ui.RuleModeller;
import com.google.gwt.user.client.ui.Image;
@@ -48,10 +47,8 @@
panel.add( new RuleModeller(getDummySuggestionEngine(), getDummyData() ) );
panel.setSpacing( 8 );
+
- DatePicker pick = new DatePicker();
- panel.add( pick );
-
initWidget( panel );
}
@@ -71,6 +68,27 @@
com.addConnectiveOperators( "Vehicle", "make", new String[] {"|="});
+ DSLSentence sen = new DSLSentence();
+ sen.elements = new DSLSentenceFragment[2];
+ sen.elements[0] = new DSLSentenceFragment("This is a dsl expression", false);
+ sen.elements[1] = new DSLSentenceFragment("(something)", true);
+ com.addDSLCondition( sen );
+
+
+ sen = new DSLSentence();
+ sen.elements = new DSLSentenceFragment[3];
+ sen.elements[0] = new DSLSentenceFragment("Send an email to [", false);
+ sen.elements[1] = new DSLSentenceFragment("(someone)", true);
+ sen.elements[2] = new DSLSentenceFragment("]", false);
+ com.addDSLAction( sen );
+
+ sen = new DSLSentence();
+ sen.elements = new DSLSentenceFragment[1];
+ sen.elements[0] = new DSLSentenceFragment("do nothing", false);
+ com.addDSLAction( sen );
+
+
+
return com;
}
@@ -89,6 +107,23 @@
model.lhs[1] = p2;
model.lhs[2] = p3;
+ DSLSentence dsl = new DSLSentence();
+ dsl.elements = new DSLSentenceFragment[2];
+ dsl.elements[0] = new DSLSentenceFragment("There is a Storm alert of type", false);
+ dsl.elements[1] = new DSLSentenceFragment("(code here)", true);
+
+ model.addLhsItem( dsl );
+
+ dsl = new DSLSentence();
+ dsl.elements = new DSLSentenceFragment[2];
+ dsl.elements[0] = new DSLSentenceFragment("- severity rating is not more than", false);
+ dsl.elements[1] = new DSLSentenceFragment("(code here)", true);
+
+ model.addLhsItem( dsl );
+
+
+
+
p1.factType = "Person";
p1.constraints = new Constraint[2];
p1.constraints[0] = new Constraint();
@@ -101,11 +136,9 @@
p1.constraints[1].operator = "==";
p1.constraints[1].value = "Bob";
p1.constraints[1].fieldBinding = "n";
-// p1.constraints[1].connectives = new ConnectiveConstraint[2];
-// p1.constraints[1].connectives[0] = new ConnectiveConstraint("|=", "Michael");
-// p1.constraints[1].connectives[1] = new ConnectiveConstraint("|=", "Mark");
-
+
+
p2.factType = "Vehicle";
p2.boundName = "car1";
p2.constraints = new Constraint[1];
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/SuggestionCompletionEngine.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/SuggestionCompletionEngine.java 2006-12-14 22:02:58 UTC (rev 8332)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/SuggestionCompletionEngine.java 2006-12-14 23:09:38 UTC (rev 8333)
@@ -1,10 +1,14 @@
package org.drools.brms.client.modeldriven;
+import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
+import java.util.List;
import java.util.Map;
import java.util.Set;
+import org.drools.brms.client.modeldriven.model.DSLSentence;
+
/**
* An suggestion completion processor. This should be usable in both GWT/Web and the IDE.
* The data for this can be loaded into this from simple string lists.
@@ -26,7 +30,10 @@
private Map operatorMap = new HashMap();
private HashMap ceMap = new HashMap();
private HashMap actionMap = new HashMap();
-
+ private List conditionDSLSentences = new ArrayList();
+ private List actionDSLSentences = new ArrayList();
+
+
/**
* For bulk loading up the data (from a previous rule save)
*
@@ -36,6 +43,9 @@
* that are valid CONNECTIVE operators.
*
* @param globals A map of global variable name to its fields (String[]).
+ * @param boundFacts A map of bound facts to types.
+ * @param conditionDSLs a list of DSLSentence suggestions for the LHS
+ * @param actionDSLs a list of DSLSentence suggestions for the RHS
*
*/
public void load(
@@ -43,11 +53,15 @@
Map factFieldToOperator,
Map factFieldToConnectiveOperator,
Map globals,
- Map boundFacts
+ Map boundFacts,
+ List conditionDSLs,
+ List actionDSLs
) {
this.factToFields = factToFields;
this.factFieldToOperator = factFieldToOperator;
this.factFieldToConnectiveOperator = factFieldToConnectiveOperator;
+ this.actionDSLSentences = actionDSLs;
+ this.conditionDSLSentences = conditionDSLs;
this.globals = globals;
}
@@ -97,7 +111,21 @@
}
+ /**
+ * Add a DSL suggestion for the LHS.
+ * @param sentence
+ */
+ public void addDSLCondition(DSLSentence sentence) {
+ this.conditionDSLSentences.add( sentence );
+ }
+ /**
+ * Add a DSL suggestion for the RHS.
+ * @param sentence
+ */
+ public void addDSLAction(DSLSentence sentence) {
+ this.actionDSLSentences.add( sentence );
+ }
/**
@@ -132,6 +160,14 @@
public String[] getConditionalElements() {
return new String[] {"not", "exists", "or"};
}
+
+ public List getDSLConditions() {
+ return conditionDSLSentences;
+ }
+
+ public List getDSLActions() {
+ return actionDSLSentences;
+ }
public String[] getConnectiveOperatorCompletions(String factType,
String fieldName) {
Added: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/DSLSentence.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/DSLSentence.java 2006-12-14 22:02:58 UTC (rev 8332)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/DSLSentence.java 2006-12-14 23:09:38 UTC (rev 8333)
@@ -0,0 +1,24 @@
+package org.drools.brms.client.modeldriven.model;
+
+
+/**
+ * This represents a DSL sentence.
+ * @author Michael Neale
+ */
+public class DSLSentence
+ implements
+ IPattern,
+ IAction {
+
+ public DSLSentenceFragment[] elements;
+
+ public String toString() {
+ String result = "";
+ if (elements != null) {
+ for ( int i = 0; i < elements.length; i++ ) {
+ result += elements[i].value + " ";
+ }
+ }
+ return result;
+ }
+}
Added: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/DSLSentenceFragment.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/DSLSentenceFragment.java 2006-12-14 22:02:58 UTC (rev 8332)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/DSLSentenceFragment.java 2006-12-14 23:09:38 UTC (rev 8333)
@@ -0,0 +1,30 @@
+package org.drools.brms.client.modeldriven.model;
+
+import com.google.gwt.user.client.rpc.IsSerializable;
+
+/**
+ * This holds the value of a fragment of a DSL.
+ * It can either be a sentence fragment (a display only thing) or a
+ * value which the user can change.
+ *
+ * @author Michael Neale
+ *
+ */
+public class DSLSentenceFragment
+ implements
+ IsSerializable {
+
+ public String value;
+ public boolean isEditableField;
+
+ /**
+ * @param fragment
+ * @param isEditableField true if it is a editable value. false means display only.
+ */
+ public DSLSentenceFragment(String fragment,
+ boolean isEditableField) {
+ value = fragment;
+ this.isEditableField = isEditableField;
+ }
+
+}
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-14 22:02:58 UTC (rev 8332)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/FactPattern.java 2006-12-14 23:09:38 UTC (rev 8333)
@@ -1,7 +1,18 @@
package org.drools.brms.client.modeldriven.model;
+/**
+ * A fact pattern is a declaration of a fact type, and its constraint,
+ * and perhaps a variable that is it bound to
+ * It is the equivalent of a "column" in drools terms.
+ * @author Michael Neale
+ *
+ */
public class FactPattern implements IPattern {
+ public Constraint[] constraints;
+ public String factType;
+ public String boundName;
+
public FactPattern() {
this.constraints = new Constraint[0];
}
@@ -11,9 +22,7 @@
this.constraints = new Constraint[0];
}
- public Constraint[] constraints;
- public String factType;
- public String boundName;
+
public void addConstraint(Constraint constraint) {
Added: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/DSLSentenceWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/DSLSentenceWidget.java 2006-12-14 22:02:58 UTC (rev 8332)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/DSLSentenceWidget.java 2006-12-14 23:09:38 UTC (rev 8333)
@@ -0,0 +1,79 @@
+package org.drools.brms.client.modeldriven.ui;
+
+import org.drools.brms.client.modeldriven.model.DSLSentence;
+import org.drools.brms.client.modeldriven.model.DSLSentenceFragment;
+
+import com.google.gwt.user.client.DOM;
+import com.google.gwt.user.client.ui.ChangeListener;
+import com.google.gwt.user.client.ui.Composite;
+import com.google.gwt.user.client.ui.HTML;
+import com.google.gwt.user.client.ui.HorizontalPanel;
+import com.google.gwt.user.client.ui.Label;
+import com.google.gwt.user.client.ui.TextBox;
+import com.google.gwt.user.client.ui.Widget;
+
+/**
+ * This displays a widget to edit a DSL sentence.
+ *
+ * @author Michael Neale
+ *
+ */
+public class DSLSentenceWidget extends Composite {
+
+ private HorizontalPanel horiz = new HorizontalPanel();
+
+ /**
+ * @param sentence The sentence to render/bind to.
+ * @param lastOne true if this is the last one to render.
+ * @param firstOne true if this is the first one to render.
+ */
+ public DSLSentenceWidget(DSLSentence sentence, boolean lastOne, boolean firstOne) {
+
+
+ if (lastOne) {
+ this.horiz.setStyleName( "model-builderInnerLastRow-Background" );
+ }
+ if (firstOne) {
+ this.horiz.setStyleName( "model-builderInnerFirstRow-Background" );
+ }
+ if (!lastOne && !firstOne) {
+ this.horiz.setStyleName( "model-builderInnerNoBorders-Background" );
+ }
+
+ init( sentence );
+
+
+ }
+
+ public DSLSentenceWidget(DSLSentence sentence) {
+ this.horiz.setStyleName( "model-builderInner-Background" );
+ init( sentence );
+ }
+
+ private void init(DSLSentence sentence) {
+ for ( int i = 0; i < sentence.elements.length; i++ ) {
+ final DSLSentenceFragment el = sentence.elements[i];
+ if (!el.isEditableField) {
+ horiz.add( new Label(el.value) );
+ } else {
+ horiz.add( new HTML(" ") );
+ final TextBox box = new TextBox();
+ box.addChangeListener( new ChangeListener() {
+ public void onChange(Widget w) {
+ el.value = box.getText();
+ }
+ });
+ box.setText( el.value );
+ box.setVisibleLength( el.value.length() );
+ horiz.add( box );
+ horiz.add( new HTML(" ") );
+ }
+ }
+
+ initWidget( this.horiz );
+ }
+
+
+
+
+}
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-14 22:02:58 UTC (rev 8332)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/RuleModeller.java 2006-12-14 23:09:38 UTC (rev 8333)
@@ -11,6 +11,7 @@
import org.drools.brms.client.modeldriven.model.ActionRetractFact;
import org.drools.brms.client.modeldriven.model.ActionSetField;
import org.drools.brms.client.modeldriven.model.CompositeFactPattern;
+import org.drools.brms.client.modeldriven.model.DSLSentence;
import org.drools.brms.client.modeldriven.model.FactPattern;
import org.drools.brms.client.modeldriven.model.IAction;
import org.drools.brms.client.modeldriven.model.IPattern;
@@ -62,7 +63,7 @@
addPattern.setTitle( "Add a condition to this rule." );
addPattern.addClickListener( new ClickListener() {
public void onClick(Widget w) {
- showAddConditionSelector(w);
+ showConditionSelector(w);
}
});
@@ -86,7 +87,7 @@
/**
- * Do the widgets for the RHS.
+ * Do all the widgets for the RHS.
*/
private Widget renderRhs(final RuleModel model) {
VerticalPanel vert = new VerticalPanel();
@@ -100,7 +101,9 @@
} else if (action instanceof ActionAssertFact) {
w = new ActionAssertFactWidget(this, (ActionAssertFact) action, completions );
} else if (action instanceof ActionRetractFact) {
- w = new ActionRetractFactWidget(this.completions, (ActionRetractFact) action);
+ w = new ActionRetractFactWidget(this.completions, (ActionRetractFact) action );
+ } else if (action instanceof DSLSentence) {
+ w = new DSLSentenceWidget((DSLSentence) action);
}
HorizontalPanel horiz = new HorizontalPanel();
@@ -133,11 +136,9 @@
/**
* Pops up the fact selector.
*/
- protected void showAddConditionSelector(final Widget w) {
+ protected void showConditionSelector(final Widget w) {
final FormStylePopup popup = new FormStylePopup("images/new_fact.gif", "Add a condition to the rule...");
-
-
//
// The list of facts
//
@@ -182,12 +183,40 @@
}
}
});
+
+ //
+ // The list of DSL sentences
+ //
+ if (completions.getDSLConditions().size() > 0) {
+ final ListBox dsls = new ListBox();
+ dsls.addItem( "Choose..." );
+ for(int i = 0; i < completions.getDSLConditions().size(); i++ ) {
+ DSLSentence sen = (DSLSentence) completions.getDSLConditions().get( i );
+ dsls.addItem( sen.toString(), Integer.toString( i ) );
+ }
+
+ dsls.addChangeListener( new ChangeListener() {
+ public void onChange(Widget w) {
+ int idx = Integer.parseInt( dsls.getValue( dsls.getSelectedIndex() ) );
+ addNewDSLLhs( (DSLSentence) completions.getDSLConditions().get( idx ) );
+ popup.hide();
+ }
+ });
+ popup.addAttribute( "Template conditions", dsls );
+ }
+
popup.setPopupPosition( w.getAbsoluteLeft() - 400, w.getAbsoluteTop() );
popup.show();
}
+ protected void addNewDSLLhs(DSLSentence sentence) {
+ model.addLhsItem( sentence );
+ refreshWidget();
+
+ }
+
protected void showActionSelector(Widget w) {
final FormStylePopup popup = new FormStylePopup("images/new_fact.gif", "Add a new action...");
@@ -256,6 +285,29 @@
if (factsToAssert.getItemCount() > 1) {
popup.addAttribute( "Assert a new fact", factsToAssert );
}
+
+
+ //
+ // The list of DSL sentences
+ //
+ if (completions.getDSLActions().size() > 0) {
+ final ListBox dsls = new ListBox();
+ dsls.addItem( "Choose..." );
+ for(int i = 0; i < completions.getDSLActions().size(); i++ ) {
+ DSLSentence sen = (DSLSentence) completions.getDSLActions().get( i );
+ dsls.addItem( sen.toString(), Integer.toString( i ) );
+ }
+
+ dsls.addChangeListener( new ChangeListener() {
+ public void onChange(Widget w) {
+ int idx = Integer.parseInt( dsls.getValue( dsls.getSelectedIndex() ) );
+ addNewDSLRhs( (DSLSentence) completions.getDSLActions().get( idx ) );
+ popup.hide();
+ }
+ });
+ popup.addAttribute( "Template actions", dsls );
+ }
+
popup.setPopupPosition( w.getAbsoluteLeft() - 400, w.getAbsoluteTop() );
popup.show();
@@ -263,6 +315,11 @@
+ protected void addNewDSLRhs(DSLSentence sentence) {
+ this.model.addRhsItem( sentence );
+ refreshWidget();
+ }
+
protected void addRetract(String var) {
this.model.addRhsItem( new ActionRetractFact(var) );
refreshWidget();
@@ -286,51 +343,93 @@
refreshWidget();
}
+ /**
+ * Builds all the condition widgets.
+ */
private Widget renderLhs(final RuleModel model) {
VerticalPanel vert = new VerticalPanel();
-
+
for ( int i = 0; i < model.lhs.length; i++ ) {
IPattern pattern = model.lhs[i];
- Widget w;
+ Widget w = null;
if (pattern instanceof FactPattern) {
w = new FactPatternWidget(this, pattern, completions, true) ;
+ addLhsWidget( model,
+ vert,
+ i,
+ w );
} else if (pattern instanceof CompositeFactPattern) {
w = new CompositeFactPatternWidget(this, (CompositeFactPattern) pattern, completions) ;
+ addLhsWidget( model,
+ vert,
+ i,
+ w );
+ } else if (pattern instanceof DSLSentence) {
+ //ignore this time
} else {
throw new RuntimeException("I don't know what type of pattern that is.");
}
- HorizontalPanel horiz = new HorizontalPanel();
+
+ }
+
+ boolean startedDSLSection = false;
+ for ( int i = 0; i < model.lhs.length; i++ ) {
+ IPattern pattern = model.lhs[i];
+ Widget w = null;
- Image remove = new Image("images/delete_item_small.gif");
- remove.setTitle( "Remove this condition, and all the field constraints that belong to it." );
- final int idx = i;
- remove.addClickListener( new ClickListener() {
- public void onClick(Widget w) {
- 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();
+ if (pattern instanceof DSLSentence) {
+ if (!startedDSLSection) {
+ w = new DSLSentenceWidget((DSLSentence) pattern, false, true);
+ startedDSLSection = true;
+ } else if (i == model.lhs.length - 1) {
+ w = new DSLSentenceWidget((DSLSentence) pattern, true, false);
+ } else {
+ w = new DSLSentenceWidget((DSLSentence) pattern, false, false);
}
- } );
- horiz.add( w );
- horiz.add( remove );
-
-
- vert.add( horiz );
+ addLhsWidget( model, vert, i, w );
+
+ }
}
return vert;
}
+ /**
+ * This adds the widget to the UI, also adding the
+ */
+ private void addLhsWidget(final RuleModel model,
+ VerticalPanel vert,
+ int i,
+ Widget w) {
+ HorizontalPanel horiz = new HorizontalPanel();
+
+ Image remove = new Image("images/delete_item_small.gif");
+ remove.setTitle( "Remove this condition, and all the field constraints that belong to it." );
+ final int idx = i;
+ remove.addClickListener( new ClickListener() {
+ public void onClick(Widget w) {
+ 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 );
+ horiz.add( remove );
+
+ vert.add( horiz );
+ }
+
+
public RuleModel getModel() {
return model;
Modified: labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/client/modeldriven/SuggestionCompletionTest.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/client/modeldriven/SuggestionCompletionTest.java 2006-12-14 22:02:58 UTC (rev 8332)
+++ labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/client/modeldriven/SuggestionCompletionTest.java 2006-12-14 23:09:38 UTC (rev 8333)
@@ -1,5 +1,6 @@
package org.drools.brms.client.modeldriven;
+import java.util.ArrayList;
import java.util.HashMap;
import junit.framework.TestCase;
@@ -29,6 +30,12 @@
}},
new HashMap() {{
put("x", "Person");
+ }},
+ new ArrayList() {{
+
+ }},
+ new ArrayList() {{
+
}}
);
@@ -109,8 +116,8 @@
public void testOperatorMapping() {
SuggestionCompletionEngine com = new SuggestionCompletionEngine();
- assertEquals("is not", com.getOperatorDisplayName("!="));
- assertEquals("is", com.getOperatorDisplayName("=="));
+ assertEquals("is not equal to", com.getOperatorDisplayName("!="));
+ assertEquals("is equal to", com.getOperatorDisplayName("=="));
assertEquals("xxx", com.getOperatorDisplayName("xxx"));
}
More information about the jboss-svn-commits
mailing list