[jboss-svn-commits] JBL Code SVN: r8104 - in labs/jbossrules/trunk/drools-jbrms/src: 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
Wed Dec 6 12:41:44 EST 2006
Author: michael.neale at jboss.com
Date: 2006-12-06 12:41:32 -0500 (Wed, 06 Dec 2006)
New Revision: 8104
Added:
labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/client/modeldriven/FactPatternTest.java
Modified:
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/Constraint.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/CompositeFactPatternWidget.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
Log:
some refactoring, testing, and adding of ability to add constraints
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/Constraint.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/Constraint.java 2006-12-06 16:46:52 UTC (rev 8103)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/Constraint.java 2006-12-06 17:41:32 UTC (rev 8104)
@@ -10,4 +10,11 @@
public ConnectiveConstraint[] connectives;
+ public Constraint(String field) {
+ this.fieldName = field;
+ }
+
+ public Constraint() {}
+
+
}
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-06 16:46:52 UTC (rev 8103)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/FactPattern.java 2006-12-06 17:41:32 UTC (rev 8104)
@@ -16,4 +16,21 @@
public String boundName;
+ public void addConstraint(Constraint constraint) {
+ if (constraints == null) {
+ constraints = new Constraint[1];
+ constraints[0] = constraint;
+ } else {
+ Constraint[] newList = new Constraint[constraints.length + 1];
+ for ( int i = 0; i < constraints.length; i++ ) {
+ newList[i] = constraints[i];
+ }
+ newList[constraints.length] = constraint;
+ constraints = newList;
+ }
+ }
+
+
+
+
}
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/CompositeFactPatternWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/CompositeFactPatternWidget.java 2006-12-06 16:46:52 UTC (rev 8103)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/CompositeFactPatternWidget.java 2006-12-06 17:41:32 UTC (rev 8104)
@@ -4,6 +4,7 @@
import org.drools.brms.client.modeldriven.model.CompositeFactPattern;
import org.drools.brms.client.modeldriven.model.FactPattern;
+import com.google.gwt.user.client.Command;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.Grid;
import com.google.gwt.user.client.ui.Label;
@@ -14,12 +15,15 @@
private final SuggestionCompletionEngine completions;
private CompositeFactPattern pattern;
private Grid layout;
+ private RuleModeller modeller;
- public CompositeFactPatternWidget(CompositeFactPattern pattern,
+ public CompositeFactPatternWidget(RuleModeller modeller, CompositeFactPattern pattern,
SuggestionCompletionEngine completions) {
this.completions = completions;
this.pattern = pattern;
+ this.modeller = modeller;
+
this.layout = new Grid(1, 2);
this.layout.setStyleName( "model-builderInner-Background" );
@@ -34,7 +38,7 @@
FactPattern[] facts = pattern.patterns;
for ( int i = 0; i < facts.length; i++ ) {
- vert.add( new FactPatternWidget(facts[i], this.completions) );
+ vert.add( new FactPatternWidget(modeller, facts[i], this.completions) );
}
this.layout.setWidget( 0, 0, new Label(pattern.type) );
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-06 16:46:52 UTC (rev 8103)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/FactPatternWidget.java 2006-12-06 17:41:32 UTC (rev 8104)
@@ -1,5 +1,6 @@
package org.drools.brms.client.modeldriven.ui;
+import org.drools.brms.client.common.FormStylePopup;
import org.drools.brms.client.modeldriven.SuggestionCompletionEngine;
import org.drools.brms.client.modeldriven.model.ConnectiveConstraint;
import org.drools.brms.client.modeldriven.model.Constraint;
@@ -8,9 +9,11 @@
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,11 +29,13 @@
private FactPattern pattern;
private FlexTable layout = new FlexTable();
private SuggestionCompletionEngine completions;
+ private RuleModeller modeller;
- public FactPatternWidget(IPattern p, SuggestionCompletionEngine com) {
+ public FactPatternWidget(RuleModeller modeller, IPattern p, SuggestionCompletionEngine com) {
this.pattern = (FactPattern) p;
this.completions = com;
+ this.modeller = modeller;
layout.setWidget( 0, 0, getPatternLabel() );
final FlexTable inner = new FlexTable();
@@ -57,15 +62,57 @@
}
- private Label getPatternLabel() {
+ /**
+ * This returns the pattern label.
+ */
+ private Widget getPatternLabel() {
+ HorizontalPanel horiz = new HorizontalPanel();
+
+ Image edit = new Image("images/edit.gif");
+ horiz.add( edit );
+ edit.addClickListener( new ClickListener() {
+ public void onClick(Widget w) {
+ showPatternPopup(w);
+ }
+ } );
+
if (pattern.boundName != null) {
- return new Label(pattern.factType + " [" + pattern.boundName + "]" );
+ horiz.add( new Label(pattern.factType + " [" + pattern.boundName + "]" ));
} else {
- return new Label(pattern.factType);
+ horiz.add( new Label(pattern.factType));
}
+
+ return horiz;
+
}
+ protected void showPatternPopup(Widget w) {
+ final FormStylePopup popup = new FormStylePopup("images/newex_wiz.gif", "Modify constraints");
+ popup.setStyleName( "ks-popups-Popup" );
+ final ListBox box = new ListBox();
+ box.addItem( "..." );
+ String[] fields = this.completions.getFieldCompletions( this.pattern.factType );
+ for ( int i = 0; i < fields.length; i++ ) {
+ box.addItem( fields[i] );
+ }
+
+ box.setSelectedIndex( 0 );
+
+ popup.addAttribute( "Add field", box );
+ box.addChangeListener( new ChangeListener() {
+ public void onChange(Widget w) {
+ pattern.addConstraint( new Constraint(box.getItemText( box.getSelectedIndex() )) );
+ modeller.refreshWidget();
+ popup.hide();
+ }
+ });
+
+ popup.setPopupPosition( w.getAbsoluteLeft(), w.getAbsoluteTop() );
+ popup.show();
+ }
+
+
private Widget connectives(Constraint c) {
if (c.connectives != null && c.connectives.length > 0) {
HorizontalPanel horiz = new HorizontalPanel();
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-06 16:46:52 UTC (rev 8103)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/RuleModeller.java 2006-12-06 17:41:32 UTC (rev 8104)
@@ -41,14 +41,17 @@
layout = new FlexTable();
- doLayout();
+ refreshWidget();
layout.setStyleName( "model-builder-Background" );
initWidget( layout );
}
- private void doLayout() {
+ /**
+ * This updates the widget to reflect the state of the model.
+ */
+ public void refreshWidget() {
layout.clear();
Image addPattern = new Image( "images/new_item.gif" );
@@ -93,7 +96,7 @@
remove.addClickListener( new ClickListener() {
public void onClick(Widget w) {
model.removeRhsItem(idx);
- doLayout();
+ refreshWidget();
}
} );
horiz.add( w );
@@ -150,7 +153,7 @@
this.model.lhs = newList;
- doLayout();
+ refreshWidget();
}
private Widget renderLhs(final RuleModel model) {
@@ -161,9 +164,9 @@
Widget w;
if (pattern instanceof FactPattern) {
- w = new FactPatternWidget(pattern, completions) ;
+ w = new FactPatternWidget(this, pattern, completions) ;
} else if (pattern instanceof CompositeFactPattern) {
- w = new CompositeFactPatternWidget((CompositeFactPattern) pattern, completions) ;
+ w = new CompositeFactPatternWidget(this, (CompositeFactPattern) pattern, completions) ;
} else {
throw new RuntimeException("I don't know what type of pattern that is.");
}
@@ -175,7 +178,7 @@
remove.addClickListener( new ClickListener() {
public void onClick(Widget w) {
if (model.removeLhsItem(idx)) {
- doLayout();
+ refreshWidget();
} else {
ErrorPopup.showMessage( "Can't remove that item as it is used in the action part of the rule." );
}
Added: 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-06 16:46:52 UTC (rev 8103)
+++ labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/client/modeldriven/FactPatternTest.java 2006-12-06 17:41:32 UTC (rev 8104)
@@ -0,0 +1,29 @@
+package org.drools.brms.client.modeldriven;
+
+import org.drools.brms.client.modeldriven.model.Constraint;
+import org.drools.brms.client.modeldriven.model.FactPattern;
+
+import junit.framework.TestCase;
+
+public class FactPatternTest extends TestCase {
+
+ public void testAddConstraint() {
+ FactPattern p = new FactPattern();
+ Constraint x = new Constraint("x");
+ p.addConstraint(x);
+
+ assertEquals(1, p.constraints.length);
+ assertEquals(x, p.constraints[0]);
+
+ Constraint y = new Constraint("y");
+
+ p.addConstraint( y );
+ assertEquals(2, p.constraints.length);
+ assertEquals(x, p.constraints[0]);
+ assertEquals(y, p.constraints[1]);
+
+ }
+
+
+
+}
More information about the jboss-svn-commits
mailing list