[jboss-svn-commits] JBL Code SVN: r7981 - in labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client: . modeldriven modeldriven/model modeldriven/ui modeldriven/ui/old
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Thu Nov 30 06:51:03 EST 2006
Author: michael.neale at jboss.com
Date: 2006-11-30 06:50:50 -0500 (Thu, 30 Nov 2006)
New Revision: 7981
Added:
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/ActionAssertFact.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/ActionRetractFact.java
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/ConnectiveConstraint.java
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/Exist.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/IAction.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/IPattern.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/Not.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/Or.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/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/client/modeldriven/ui/old/
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/old/ConstraintWidget.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/old/FactTypeWidget.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/old/PatternWidget.java
Removed:
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/ConstraintWidget.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/FactTypeWidget.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/PatternWidget.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/RuleScorecardWidget.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
Log:
new model driven rule builder, using a model, plus bindings
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-11-30 11:39:54 UTC (rev 7980)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/Packages.java 2006-11-30 11:50:50 UTC (rev 7981)
@@ -1,10 +1,12 @@
package org.drools.brms.client;
-import java.util.HashMap;
-
import org.drools.brms.client.modeldriven.SuggestionCompletionEngine;
-import org.drools.brms.client.modeldriven.ui.PatternWidget;
-import org.drools.brms.client.modeldriven.ui.RuleScorecardWidget;
+import org.drools.brms.client.modeldriven.model.ConnectiveConstraint;
+import org.drools.brms.client.modeldriven.model.Constraint;
+import org.drools.brms.client.modeldriven.model.FactPattern;
+import org.drools.brms.client.modeldriven.model.IPattern;
+import org.drools.brms.client.modeldriven.model.RuleModel;
+import org.drools.brms.client.modeldriven.ui.RuleModeller;
import com.google.gwt.user.client.ui.Image;
import com.google.gwt.user.client.ui.VerticalPanel;
@@ -34,23 +36,71 @@
public Packages() {
VerticalPanel panel = new VerticalPanel();
+
+ panel.add( new RuleModeller(getDummySuggestionEngine(), getDummyData() ) );
+
+ panel.setSpacing( 8 );
+ initWidget( panel );
+ }
- //TODO: this will really be loaded from the server, as will the current rule stuff
+
+ private SuggestionCompletionEngine getDummySuggestionEngine() {
SuggestionCompletionEngine com = new SuggestionCompletionEngine();
com.addFact( "Person", new String[] {"age", "name"} );
com.addFact("Vehicle", new String[] {"type", "make"} );
com.addOperators( "Person", "name", new String[] {"==", "!="});
+ com.addOperators( "Person", "age", new String[] {"==", "!=", "<", ">", "<=", ">="});
com.addOperators( "Vehicle", "age", new String[] {"==", "!=", "<", ">"});
+ com.addOperators( "Vehicle", "type", new String[] {"==", "!=", "<", ">"});
- com.addConnectiveOperators( "Vehicle", "make", new String[] {"|="});
+ com.addConnectiveOperators( "Person", "name", new String[] {"|=", "!="});
+ com.addConnectiveOperators( "Vehicle", "make", new String[] {"|="});
+ return com;
+ }
+
+
+ private RuleModel getDummyData() {
+ RuleModel model = new RuleModel();
- panel.add( new RuleScorecardWidget(com ) );
+ model.lhs = new IPattern[2];
- panel.setSpacing( 8 );
- initWidget( panel );
+ FactPattern p1 = new FactPattern();
+ FactPattern p2 = new FactPattern();
+
+ model.lhs[0] = p1;
+ model.lhs[1] = p2;
+
+ p1.factType = "Person";
+ p1.constraints = new Constraint[2];
+ p1.constraints[0] = new Constraint();
+ p1.constraints[1] = new Constraint();
+ p1.constraints[0].fieldName = "age";
+ p1.constraints[0].operator = "<";
+ p1.constraints[0].value = "42";
+
+ p1.constraints[1].fieldName = "name";
+ 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];
+ p2.constraints[0] = new Constraint();
+ p2.constraints[0].fieldName = "type";
+ p2.constraints[0].operator = "!=";
+
+
+
+ return model;
+
}
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-11-30 11:39:54 UTC (rev 7980)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/SuggestionCompletionEngine.java 2006-11-30 11:50:50 UTC (rev 7981)
@@ -9,6 +9,7 @@
/**
* 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.
*
* @author Michael Neale
*/
Added: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/ActionAssertFact.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/ActionAssertFact.java 2006-11-30 11:39:54 UTC (rev 7980)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/ActionAssertFact.java 2006-11-30 11:50:50 UTC (rev 7981)
@@ -0,0 +1,12 @@
+package org.drools.brms.client.modeldriven.model;
+
+public class ActionAssertFact
+ implements
+ IAction {
+
+ public String factType;
+
+ /** tuples of field = value */
+ public String[][] fieldValues;
+
+}
Added: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/ActionRetractFact.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/ActionRetractFact.java 2006-11-30 11:39:54 UTC (rev 7980)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/ActionRetractFact.java 2006-11-30 11:50:50 UTC (rev 7981)
@@ -0,0 +1,9 @@
+package org.drools.brms.client.modeldriven.model;
+
+public class ActionRetractFact
+ implements
+ IAction {
+
+ public String variableName;
+
+}
Added: 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-11-30 11:39:54 UTC (rev 7980)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/ActionSetField.java 2006-11-30 11:50:50 UTC (rev 7981)
@@ -0,0 +1,10 @@
+package org.drools.brms.client.modeldriven.model;
+
+public class ActionSetField implements IAction {
+
+ public String variable;
+ public String field;
+ public String value;
+ public boolean modify;
+
+}
Added: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/ConnectiveConstraint.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/ConnectiveConstraint.java 2006-11-30 11:39:54 UTC (rev 7980)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/ConnectiveConstraint.java 2006-11-30 11:50:50 UTC (rev 7981)
@@ -0,0 +1,17 @@
+package org.drools.brms.client.modeldriven.model;
+
+import com.google.gwt.user.client.rpc.IsSerializable;
+
+public class ConnectiveConstraint
+ implements
+ IsSerializable {
+
+ public ConnectiveConstraint(String opr,
+ String val) {
+ this.operator = opr;
+ this.value = val;
+ }
+ public String operator;
+ public String value;
+
+}
Added: 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-11-30 11:39:54 UTC (rev 7980)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/Constraint.java 2006-11-30 11:50:50 UTC (rev 7981)
@@ -0,0 +1,13 @@
+package org.drools.brms.client.modeldriven.model;
+
+import com.google.gwt.user.client.rpc.IsSerializable;
+
+public class Constraint implements IsSerializable {
+ public String fieldBinding;
+ public String fieldName;
+ public String operator;
+ public String value;
+
+ public ConnectiveConstraint[] connectives;
+
+}
Added: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/Exist.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/Exist.java 2006-11-30 11:39:54 UTC (rev 7980)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/Exist.java 2006-11-30 11:50:50 UTC (rev 7981)
@@ -0,0 +1,9 @@
+package org.drools.brms.client.modeldriven.model;
+
+public class Exist
+ implements
+ IPattern {
+
+ FactPattern[] factPattern;
+
+}
Added: 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-11-30 11:39:54 UTC (rev 7980)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/FactPattern.java 2006-11-30 11:50:50 UTC (rev 7981)
@@ -0,0 +1,10 @@
+package org.drools.brms.client.modeldriven.model;
+
+public class FactPattern implements IPattern {
+
+ public Constraint[] constraints;
+ public String factType;
+ public String boundName;
+
+
+}
Added: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/IAction.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/IAction.java 2006-11-30 11:39:54 UTC (rev 7980)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/IAction.java 2006-11-30 11:50:50 UTC (rev 7981)
@@ -0,0 +1,7 @@
+package org.drools.brms.client.modeldriven.model;
+
+import com.google.gwt.user.client.rpc.IsSerializable;
+
+public interface IAction extends IsSerializable {
+
+}
Added: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/IPattern.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/IPattern.java 2006-11-30 11:39:54 UTC (rev 7980)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/IPattern.java 2006-11-30 11:50:50 UTC (rev 7981)
@@ -0,0 +1,9 @@
+package org.drools.brms.client.modeldriven.model;
+
+import com.google.gwt.user.client.rpc.IsSerializable;
+
+public interface IPattern
+ extends
+ IsSerializable {
+
+}
Added: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/Not.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/Not.java 2006-11-30 11:39:54 UTC (rev 7980)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/Not.java 2006-11-30 11:50:50 UTC (rev 7981)
@@ -0,0 +1,9 @@
+package org.drools.brms.client.modeldriven.model;
+
+public class Not
+ implements
+ IPattern {
+
+ FactPattern[] factPatterns;
+
+}
Added: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/Or.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/Or.java 2006-11-30 11:39:54 UTC (rev 7980)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/Or.java 2006-11-30 11:50:50 UTC (rev 7981)
@@ -0,0 +1,7 @@
+package org.drools.brms.client.modeldriven.model;
+
+public class Or implements IPattern {
+
+ FactPattern[] factPatterns;
+
+}
Added: 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-11-30 11:39:54 UTC (rev 7980)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/RuleModel.java 2006-11-30 11:50:50 UTC (rev 7981)
@@ -0,0 +1,9 @@
+package org.drools.brms.client.modeldriven.model;
+
+public class RuleModel {
+
+ public IPattern[] lhs;
+ public ActionSetField[] rhs;
+
+
+}
Deleted: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/ConstraintWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/ConstraintWidget.java 2006-11-30 11:39:54 UTC (rev 7980)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/ConstraintWidget.java 2006-11-30 11:50:50 UTC (rev 7981)
@@ -1,200 +0,0 @@
-package org.drools.brms.client.modeldriven.ui;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.drools.brms.client.modeldriven.SuggestionCompletionEngine;
-
-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.HasHorizontalAlignment;
-import com.google.gwt.user.client.ui.Image;
-import com.google.gwt.user.client.ui.ListBox;
-import com.google.gwt.user.client.ui.TextBox;
-import com.google.gwt.user.client.ui.Widget;
-import com.google.gwt.user.client.ui.FlexTable.FlexCellFormatter;
-
-/**
- * This contains all the constraints that are placed on a fact class.
- *
- * @author Michael Neale
- */
-public class ConstraintWidget extends Composite {
-
- private FlexTable outer;
- public FlexTable layout;
- private List rowData = new ArrayList();
- private final SuggestionCompletionEngine completions;
- private String factType;
-
-
- /**
- *
- * @param factType The type of the fact (needed for lists)
- * @param com The suggestion completion.
- * @param constraints A list of ConstraintAtom's, which apply to the fact.
- */
- public ConstraintWidget(String factType, SuggestionCompletionEngine com, List constraints) {
- this.completions = com;
- this.factType = factType;
- this.rowData = constraints;
- outer = new FlexTable();
- doTable();
-
-
-
- initWidget( outer );
- }
-
-
-
- private void doTable() {
- layout = new FlexTable();
- outer.setWidget( 0, 0, layout);
-
- //firstly to add a row
- Image add = new Image("images/new_item.gif");
- add.setTitle( "Add a new constraint on this fact." );
- add.addClickListener( new ClickListener() {
- public void onClick(Widget w) {
- rowData.add( new ConstraintAtom() );
- doTable();
- }
- });
-
- int addRow = rowData.size() + 1;
- layout.setWidget( addRow, 0, add );
- FlexCellFormatter formatter = layout.getFlexCellFormatter();
- formatter.setColSpan( addRow, 0, 5 );
- formatter.setHorizontalAlignment( addRow, 0, HasHorizontalAlignment.ALIGN_CENTER );
-
-
- //now to do the rows:
- for ( int i = 0; i < rowData.size(); i++ ) {
- ConstraintAtom row = (ConstraintAtom) rowData.get( i );
- layout.setWidget( i, 0, doFieldDropDown(row, i));
- layout.setWidget( i, 1, doOperatorDropDown(row) );
- layout.setWidget( i, 2, doValueEditor(row) );
- //TODO: add in connectives here...
-
- Image remove = new Image("images/clear_item.gif");
- final int idx = i;
- remove.addClickListener( new ClickListener() {
-
- public void onClick(Widget w) {
- rowData.remove( idx );
- doTable();
- }
-
- });
- layout.setWidget( i, 4, remove );
- }
-
-
- }
-
-
-
- private Widget doValueEditor(final ConstraintAtom row) {
- final TextBox text = new TextBox();
- text.setText( row.value );
- text.addChangeListener( new ChangeListener() {
- public void onChange(Widget w) {
- row.value = text.getText();
- }
- });
- return text;
- }
-
-
-
- /**
- * Builds the list of valid operators based on the field selected.
- */
- private ListBox doOperatorDropDown(final ConstraintAtom row) {
- final ListBox box = new ListBox();
- String[] oprs = completions.getOperatorCompletions( factType, row.field.field );
- if (oprs != null) {
- for ( int i = 0; i < oprs.length; i++ ) {
- box.addItem( oprs[i] );
- if (oprs[i].equals( row.operator )) {
- box.setSelectedIndex( i );
- }
-
- }
-
- box.addChangeListener( new ChangeListener() {
- public void onChange(Widget w) {
- row.operator = box.getItemText( box.getSelectedIndex() );
- }
- });
-
- }
-
- if (row.operator == null) {
- box.addItem( "..." );
-
- }
-
- return box;
- }
-
-
-
- /**
- * Creates the field list drop down, and selects the item.
- */
- private ListBox doFieldDropDown(final ConstraintAtom row, final int rowNumberInLayout) {
-
- final ListBox box = new ListBox();
-
- String[] com = completions.getFieldCompletions( factType );
- for ( int i = 0; i < com.length; i++ ) {
- box.addItem( com[i] );
- if (com[i].equals( row.field.field )) {
- box.setSelectedIndex( i );
- }
-
- }
-
- box.addChangeListener( new ChangeListener() {
-
- public void onChange(Widget w) {
- row.field.field = box.getItemText( box.getSelectedIndex() );
- layout.setWidget( rowNumberInLayout, 1, doOperatorDropDown( row ) );
- }
-
- });
-
- if (row.field.field == null) {
- box.addItem( "..." );
- }
-
- return box;
-
- }
-
-
- /**
- * These classes are for containing the values.
- */
- class ConstraintAtom {
- public ConstraintField field = new ConstraintField();
- public String operator;
- public String value;
- public ConnectiveConstraint[] connectives;
- }
-
- class ConstraintField {
- public String field;
- public String boundVariableName;
- }
-
- class ConnectiveConstraint {
- public String operator;
- public String value;
- }
-
-}
Added: 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-11-30 11:39:54 UTC (rev 7980)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/FactPatternWidget.java 2006-11-30 11:50:50 UTC (rev 7981)
@@ -0,0 +1,186 @@
+package org.drools.brms.client.modeldriven.ui;
+
+import org.drools.brms.client.modeldriven.SuggestionCompletionEngine;
+import org.drools.brms.client.modeldriven.model.ConnectiveConstraint;
+import org.drools.brms.client.modeldriven.model.Constraint;
+import org.drools.brms.client.modeldriven.model.FactPattern;
+import org.drools.brms.client.modeldriven.model.IPattern;
+
+import com.google.gwt.user.client.Command;
+import com.google.gwt.user.client.ui.ChangeListener;
+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.Label;
+import com.google.gwt.user.client.ui.ListBox;
+import com.google.gwt.user.client.ui.TextBox;
+import com.google.gwt.user.client.ui.Widget;
+
+/**
+ * This is the new smart widget that works off the model.
+ * @author Michael Neale
+ *
+ */
+public class FactPatternWidget extends Composite {
+
+ private FactPattern pattern;
+ private FlexTable layout = new FlexTable();
+ private SuggestionCompletionEngine completions;
+
+
+ public FactPatternWidget(IPattern p, SuggestionCompletionEngine com) {
+ this.pattern = (FactPattern) p;
+ this.completions = com;
+ layout.setWidget( 0, 0, getPatternLabel() );
+
+ final FlexTable inner = new FlexTable();
+
+ layout.setWidget( 0, 1, inner );
+
+ 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) );
+
+ }
+ layout.setStyleName( "model-builder-Background" );
+ initWidget( layout );
+
+
+ }
+
+
+ private Label getPatternLabel() {
+ if (pattern.boundName != null) {
+ return new Label(pattern.factType + " [" + pattern.boundName + "]" );
+ } else {
+ return new Label(pattern.factType);
+ }
+ }
+
+
+ private Widget connectives(Constraint c) {
+ if (c.connectives != null && c.connectives.length > 0) {
+ HorizontalPanel horiz = new HorizontalPanel();
+ for ( int i = 0; i < c.connectives.length; i++ ) {
+ ConnectiveConstraint con = c.connectives[i];
+ horiz.add( connectiveOperatorDropDown(con, c.fieldName) );
+ horiz.add( connectiveValueEditor(con) );
+ }
+ return horiz;
+ } else {
+ //nothing to do
+ return null;
+ }
+
+ }
+
+
+ private Widget connectiveValueEditor(final ConnectiveConstraint con) {
+
+ final TextBox box = new TextBox();
+ box.setVisibleLength( 4 );
+ box.setText( con.value );
+ box.addChangeListener( new ChangeListener() {
+ public void onChange(Widget w) {
+ con.value = box.getText();
+ }
+ });
+ return box;
+ }
+
+
+ private Widget connectiveOperatorDropDown(final ConnectiveConstraint con, String fieldName) {
+ String[] ops = completions.getConnectiveOperatorCompletions( pattern.factType, fieldName );
+ final ListBox box = new ListBox();
+ for ( int i = 0; i < ops.length; i++ ) {
+ box.addItem( ops[i] );
+ if (ops[i].equals( con.operator )) {
+ box.setSelectedIndex( i );
+ }
+
+ }
+
+ box.addChangeListener( new ChangeListener() {
+ public void onChange(Widget w) {
+ con.operator = box.getItemText( box.getSelectedIndex() );
+ }
+ });
+
+ return box;
+ }
+
+
+ private Widget valueEditor(final Constraint c) {
+ final TextBox box = new TextBox();
+ box.setText( c.value );
+ box.addChangeListener( new ChangeListener() {
+ public void onChange(Widget w) {
+ c.value = box.getText();
+ }
+
+ });
+ return box;
+ }
+
+
+ private Widget operatorDropDown(final Constraint c) {
+ String[] ops = completions.getOperatorCompletions( pattern.factType, c.fieldName );
+ final ListBox box = new ListBox();
+ for ( int i = 0; i < ops.length; i++ ) {
+ box.addItem( ops[i] );
+ if (ops[i].equals( c.operator )) {
+ box.setSelectedIndex( i );
+ }
+
+ }
+
+ box.addChangeListener( new ChangeListener() {
+ public void onChange(Widget w) {
+ c.operator = box.getItemText( box.getSelectedIndex() );
+ }
+ });
+
+ return box;
+ }
+
+
+ private Widget fieldDropDown(final Constraint con, final Command onChange) {
+ HorizontalPanel horiz = new HorizontalPanel();
+
+ final ListBox box = new ListBox();
+
+ String[] com = completions.getFieldCompletions( this.pattern.factType );
+ for ( int i = 0; i < com.length; i++ ) {
+ box.addItem( com[i] );
+ if (com[i].equals( con.fieldName )) {
+ box.setSelectedIndex( i );
+ }
+ }
+
+ box.addChangeListener( new ChangeListener() {
+
+ public void onChange(Widget w) {
+ con.fieldName = box.getItemText( box.getSelectedIndex() );
+ onChange.execute();
+ }
+
+ });
+ horiz.add( box );
+
+ if (con.fieldBinding != null) {
+ horiz.add( new Label( "[" + con.fieldBinding + "]") );
+ }
+
+ return horiz;
+ }
+
+}
Deleted: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/FactTypeWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/FactTypeWidget.java 2006-11-30 11:39:54 UTC (rev 7980)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/FactTypeWidget.java 2006-11-30 11:50:50 UTC (rev 7981)
@@ -1,91 +0,0 @@
-package org.drools.brms.client.modeldriven.ui;
-
-import org.drools.brms.client.modeldriven.SuggestionCompletionEngine;
-
-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.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.PopupPanel;
-import com.google.gwt.user.client.ui.Widget;
-
-/**
- * This is the widget for choosing/viewing the fact type.
- *
- * @author Michael Neale
- *
- */
-public class FactTypeWidget extends Composite {
-
- private final HorizontalPanel widget = new HorizontalPanel();
- private SuggestionCompletionEngine completion;
- private Label type;
- private Command onChange;
-
- public FactTypeWidget(String factType, SuggestionCompletionEngine com, Command onChange) {
- this.completion = com;
- this.onChange = onChange;
-
- type = new Label(factType);
- Image edit = new Image("images/edit_tiny.gif");
- edit.addClickListener( new ClickListener() {
-
- public void onClick(Widget w) {
- FactTypeList list = new FactTypeList();
- list.setPopupPosition( w.getAbsoluteLeft(), w.getAbsoluteTop() );
- list.show();
-
- }
-
- });
-
- widget.add( edit );
- widget.add( type );
-
- initWidget( widget );
- }
-
- /**
- * This returns the current fact type.
- */
- public String getFactType() {
- return type.getText();
- }
-
- /**
- * The popup for choosing a fact type.
- *
- * @author Michael Neale
- */
- class FactTypeList extends PopupPanel {
-
- public FactTypeList() {
- super(true);
- final ListBox box = new ListBox();
- String[] types = completion.getFactTypes();
- box.addItem( "-- please choose --" );
- for ( int i = 0; i < types.length; i++ ) {
- box.addItem( types[i] );
- }
-
-
- box.addChangeListener( new ChangeListener() {
-
- public void onChange(Widget w) {
- type.setText(box.getValue( box.getSelectedIndex()));
- onChange.execute();
- hide();
- }
-
- });
-
- add( box );
- }
-
- }
-
-}
Deleted: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/PatternWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/PatternWidget.java 2006-11-30 11:39:54 UTC (rev 7980)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/PatternWidget.java 2006-11-30 11:50:50 UTC (rev 7981)
@@ -1,56 +0,0 @@
-package org.drools.brms.client.modeldriven.ui;
-
-import java.util.ArrayList;
-
-import org.drools.brms.client.modeldriven.SuggestionCompletionEngine;
-
-import com.google.gwt.user.client.Command;
-import com.google.gwt.user.client.ui.Composite;
-import com.google.gwt.user.client.ui.FlexTable;
-import com.google.gwt.user.client.ui.HasVerticalAlignment;
-
-/**
- * This is the containing widgets for applying constraints to a pattern.
- *
- * eg: <code>Person(age < 42)</code> would be covered by this widget.
- *
- * @author Michael Neale
- */
-public class PatternWidget extends Composite {
-
- private final FlexTable layout;
- private String factTypeSelected;
- private FactTypeWidget factWidget;
- private SuggestionCompletionEngine completions;
-
- public PatternWidget(SuggestionCompletionEngine com, String factType) {
-
- this.completions = com;
- layout = new FlexTable();
- this.factTypeSelected = factType;
-
- layout.setStyleName( "model-builder-Background" );
-
-
- factWidget = new FactTypeWidget(factTypeSelected, com, new Command() {
- public void execute() {
- selectedFactType();
- }
- });
- layout.setWidget( 0, 0, factWidget );
- layout.getFlexCellFormatter().setVerticalAlignment( 0, 0, HasVerticalAlignment.ALIGN_MIDDLE );
-
- //TODO: add loading up of existing data if its passed in here.
-
-
- initWidget( layout );
-
- }
-
-
- protected void selectedFactType() {
- factTypeSelected = factWidget.getFactType();
- layout.setWidget(0, 1, new ConstraintWidget(factTypeSelected, completions, new ArrayList()) );
- }
-
-}
Copied: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/RuleModeller.java (from rev 7854, labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/RuleScorecardWidget.java)
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/RuleScorecardWidget.java 2006-11-27 17:58:05 UTC (rev 7854)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/RuleModeller.java 2006-11-30 11:50:50 UTC (rev 7981)
@@ -0,0 +1,81 @@
+package org.drools.brms.client.modeldriven.ui;
+
+import org.drools.brms.client.modeldriven.SuggestionCompletionEngine;
+import org.drools.brms.client.modeldriven.model.FactPattern;
+import org.drools.brms.client.modeldriven.model.IPattern;
+import org.drools.brms.client.modeldriven.model.RuleModel;
+
+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.Image;
+import com.google.gwt.user.client.ui.Label;
+import com.google.gwt.user.client.ui.VerticalPanel;
+import com.google.gwt.user.client.ui.Widget;
+
+/**
+ * This is the parent widget that contains the model based rule builder.
+ *
+ * @author Michael Neale
+ *
+ */
+public class RuleModeller extends Composite {
+
+ private FlexTable layout;
+ private SuggestionCompletionEngine completions;
+ private RuleModel model;
+
+ public RuleModeller(SuggestionCompletionEngine com, RuleModel model) {
+ this.model = model;
+ this.completions = com;
+
+ layout = new FlexTable();
+ layout.setStyleName( "model-builder-Background" );
+
+ initWidget( layout );
+
+ Image addPattern = new Image( "images/new_item.gif" );
+ addPattern.addClickListener( new ClickListener() {
+ public void onClick(Widget w) {
+ showFactTypeSelector();
+ }
+ });
+
+ layout.setWidget( 0, 0, new Label("IF") );
+ layout.setWidget( 0, 2, addPattern );
+
+
+
+ layout.setWidget( 1, 1, renderLhs(this.model) );
+ layout.setWidget( 2, 0, new Label("THEN") );
+ layout.setWidget( 3, 1, new Label("<Rhs here>") );
+
+
+
+ }
+
+ protected void showFactTypeSelector() {
+ // TODO Auto-generated method stub
+
+ }
+
+ private Widget renderLhs(RuleModel model) {
+ VerticalPanel vert = new VerticalPanel();
+ for ( int i = 0; i < model.lhs.length; i++ ) {
+ IPattern pattern = model.lhs[i];
+ if (pattern instanceof FactPattern) {
+ vert.add( new FactPatternWidget(pattern, completions) );
+ }
+ //TODO: add stuff for removing pattern here.
+
+ }
+
+ return vert;
+ }
+
+
+
+
+
+
+}
Deleted: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/RuleScorecardWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/RuleScorecardWidget.java 2006-11-30 11:39:54 UTC (rev 7980)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/RuleScorecardWidget.java 2006-11-30 11:50:50 UTC (rev 7981)
@@ -1,56 +0,0 @@
-package org.drools.brms.client.modeldriven.ui;
-
-import org.drools.brms.client.modeldriven.SuggestionCompletionEngine;
-
-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.Image;
-import com.google.gwt.user.client.ui.Label;
-import com.google.gwt.user.client.ui.VerticalPanel;
-import com.google.gwt.user.client.ui.Widget;
-
-/**
- * This is the parent widget that contains the model based rule builder.
- *
- * @author Michael Neale
- *
- */
-public class RuleScorecardWidget extends Composite {
-
- private FlexTable layout;
- private SuggestionCompletionEngine completions;
-
- public RuleScorecardWidget(SuggestionCompletionEngine com) {
- this.completions = com;
-
- layout = new FlexTable();
- layout.setStyleName( "model-builder-Background" );
-
- initWidget( layout );
- final VerticalPanel lhsPanel = new VerticalPanel();
-
- Image addPattern = new Image( "images/new_item.gif" );
- addPattern.addClickListener( new ClickListener() {
-
- public void onClick(Widget w) {
- lhsPanel.add( new PatternWidget(completions, "") );
-
- }
-
- });
-
-
-
- layout.setWidget( 0, 0, new Label("IF") );
- layout.setWidget( 0, 2, addPattern );
-
- layout.setWidget( 1, 1, lhsPanel );
-
-
- }
-
-
-
-
-}
Copied: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/old/ConstraintWidget.java (from rev 7854, labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/ConstraintWidget.java)
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/ConstraintWidget.java 2006-11-27 17:58:05 UTC (rev 7854)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/old/ConstraintWidget.java 2006-11-30 11:50:50 UTC (rev 7981)
@@ -0,0 +1,200 @@
+package org.drools.brms.client.modeldriven.ui.old;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.drools.brms.client.modeldriven.SuggestionCompletionEngine;
+
+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.HasHorizontalAlignment;
+import com.google.gwt.user.client.ui.Image;
+import com.google.gwt.user.client.ui.ListBox;
+import com.google.gwt.user.client.ui.TextBox;
+import com.google.gwt.user.client.ui.Widget;
+import com.google.gwt.user.client.ui.FlexTable.FlexCellFormatter;
+
+/**
+ * This contains all the constraints that are placed on a fact class.
+ *
+ * @author Michael Neale
+ */
+public class ConstraintWidget extends Composite {
+
+ private FlexTable outer;
+ public FlexTable layout;
+ private List rowData = new ArrayList();
+ private final SuggestionCompletionEngine completions;
+ private String factType;
+
+
+ /**
+ *
+ * @param factType The type of the fact (needed for lists)
+ * @param com The suggestion completion.
+ * @param constraints A list of ConstraintAtom's, which apply to the fact.
+ */
+ public ConstraintWidget(String factType, SuggestionCompletionEngine com, List constraints) {
+ this.completions = com;
+ this.factType = factType;
+ this.rowData = constraints;
+ outer = new FlexTable();
+ doTable();
+
+
+
+ initWidget( outer );
+ }
+
+
+
+ private void doTable() {
+ layout = new FlexTable();
+ outer.setWidget( 0, 0, layout);
+
+ //firstly to add a row
+ Image add = new Image("images/new_item.gif");
+ add.setTitle( "Add a new constraint on this fact." );
+ add.addClickListener( new ClickListener() {
+ public void onClick(Widget w) {
+ rowData.add( new ConstraintAtom() );
+ doTable();
+ }
+ });
+
+ int addRow = rowData.size() + 1;
+ layout.setWidget( addRow, 0, add );
+ FlexCellFormatter formatter = layout.getFlexCellFormatter();
+ formatter.setColSpan( addRow, 0, 5 );
+ formatter.setHorizontalAlignment( addRow, 0, HasHorizontalAlignment.ALIGN_CENTER );
+
+
+ //now to do the rows:
+ for ( int i = 0; i < rowData.size(); i++ ) {
+ ConstraintAtom row = (ConstraintAtom) rowData.get( i );
+ layout.setWidget( i, 0, doFieldDropDown(row, i));
+ layout.setWidget( i, 1, doOperatorDropDown(row) );
+ layout.setWidget( i, 2, doValueEditor(row) );
+ //TODO: add in connectives here...
+
+ Image remove = new Image("images/clear_item.gif");
+ final int idx = i;
+ remove.addClickListener( new ClickListener() {
+
+ public void onClick(Widget w) {
+ rowData.remove( idx );
+ doTable();
+ }
+
+ });
+ layout.setWidget( i, 4, remove );
+ }
+
+
+ }
+
+
+
+ private Widget doValueEditor(final ConstraintAtom row) {
+ final TextBox text = new TextBox();
+ text.setText( row.value );
+ text.addChangeListener( new ChangeListener() {
+ public void onChange(Widget w) {
+ row.value = text.getText();
+ }
+ });
+ return text;
+ }
+
+
+
+ /**
+ * Builds the list of valid operators based on the field selected.
+ */
+ private ListBox doOperatorDropDown(final ConstraintAtom row) {
+ final ListBox box = new ListBox();
+ String[] oprs = completions.getOperatorCompletions( factType, row.field.field );
+ if (oprs != null) {
+ for ( int i = 0; i < oprs.length; i++ ) {
+ box.addItem( oprs[i] );
+ if (oprs[i].equals( row.operator )) {
+ box.setSelectedIndex( i );
+ }
+
+ }
+
+ box.addChangeListener( new ChangeListener() {
+ public void onChange(Widget w) {
+ row.operator = box.getItemText( box.getSelectedIndex() );
+ }
+ });
+
+ }
+
+ if (row.operator == null) {
+ box.addItem( "..." );
+
+ }
+
+ return box;
+ }
+
+
+
+ /**
+ * Creates the field list drop down, and selects the item.
+ */
+ private ListBox doFieldDropDown(final ConstraintAtom row, final int rowNumberInLayout) {
+
+ final ListBox box = new ListBox();
+
+ String[] com = completions.getFieldCompletions( factType );
+ for ( int i = 0; i < com.length; i++ ) {
+ box.addItem( com[i] );
+ if (com[i].equals( row.field.field )) {
+ box.setSelectedIndex( i );
+ }
+
+ }
+
+ box.addChangeListener( new ChangeListener() {
+
+ public void onChange(Widget w) {
+ row.field.field = box.getItemText( box.getSelectedIndex() );
+ layout.setWidget( rowNumberInLayout, 1, doOperatorDropDown( row ) );
+ }
+
+ });
+
+ if (row.field.field == null) {
+ box.addItem( "..." );
+ }
+
+ return box;
+
+ }
+
+
+ /**
+ * These classes are for containing the values.
+ */
+ class ConstraintAtom {
+ public ConstraintField field = new ConstraintField();
+ public String operator;
+ public String value;
+ public ConnectiveConstraint[] connectives;
+ }
+
+ class ConstraintField {
+ public String field;
+ public String boundVariableName;
+ }
+
+ class ConnectiveConstraint {
+ public String operator;
+ public String value;
+ }
+
+}
Copied: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/old/FactTypeWidget.java (from rev 7854, labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/FactTypeWidget.java)
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/FactTypeWidget.java 2006-11-27 17:58:05 UTC (rev 7854)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/old/FactTypeWidget.java 2006-11-30 11:50:50 UTC (rev 7981)
@@ -0,0 +1,91 @@
+package org.drools.brms.client.modeldriven.ui.old;
+
+import org.drools.brms.client.modeldriven.SuggestionCompletionEngine;
+
+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.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.PopupPanel;
+import com.google.gwt.user.client.ui.Widget;
+
+/**
+ * This is the widget for choosing/viewing the fact type.
+ *
+ * @author Michael Neale
+ *
+ */
+public class FactTypeWidget extends Composite {
+
+ private final HorizontalPanel widget = new HorizontalPanel();
+ private SuggestionCompletionEngine completion;
+ private Label type;
+ private Command onChange;
+
+ public FactTypeWidget(String factType, SuggestionCompletionEngine com, Command onChange) {
+ this.completion = com;
+ this.onChange = onChange;
+
+ type = new Label(factType);
+ Image edit = new Image("images/edit_tiny.gif");
+ edit.addClickListener( new ClickListener() {
+
+ public void onClick(Widget w) {
+ FactTypeList list = new FactTypeList();
+ list.setPopupPosition( w.getAbsoluteLeft(), w.getAbsoluteTop() );
+ list.show();
+
+ }
+
+ });
+
+ widget.add( edit );
+ widget.add( type );
+
+ initWidget( widget );
+ }
+
+ /**
+ * This returns the current fact type.
+ */
+ public String getFactType() {
+ return type.getText();
+ }
+
+ /**
+ * The popup for choosing a fact type.
+ *
+ * @author Michael Neale
+ */
+ class FactTypeList extends PopupPanel {
+
+ public FactTypeList() {
+ super(true);
+ final ListBox box = new ListBox();
+ String[] types = completion.getFactTypes();
+ box.addItem( "-- please choose --" );
+ for ( int i = 0; i < types.length; i++ ) {
+ box.addItem( types[i] );
+ }
+
+
+ box.addChangeListener( new ChangeListener() {
+
+ public void onChange(Widget w) {
+ type.setText(box.getValue( box.getSelectedIndex()));
+ onChange.execute();
+ hide();
+ }
+
+ });
+
+ add( box );
+ }
+
+ }
+
+}
Copied: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/old/PatternWidget.java (from rev 7854, labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/PatternWidget.java)
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/PatternWidget.java 2006-11-27 17:58:05 UTC (rev 7854)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/old/PatternWidget.java 2006-11-30 11:50:50 UTC (rev 7981)
@@ -0,0 +1,56 @@
+package org.drools.brms.client.modeldriven.ui.old;
+
+import java.util.ArrayList;
+
+import org.drools.brms.client.modeldriven.SuggestionCompletionEngine;
+
+import com.google.gwt.user.client.Command;
+import com.google.gwt.user.client.ui.Composite;
+import com.google.gwt.user.client.ui.FlexTable;
+import com.google.gwt.user.client.ui.HasVerticalAlignment;
+
+/**
+ * This is the containing widgets for applying constraints to a pattern.
+ *
+ * eg: <code>Person(age < 42)</code> would be covered by this widget.
+ *
+ * @author Michael Neale
+ */
+public class PatternWidget extends Composite {
+
+ private final FlexTable layout;
+ private String factTypeSelected;
+ private FactTypeWidget factWidget;
+ private SuggestionCompletionEngine completions;
+
+ public PatternWidget(SuggestionCompletionEngine com, String factType) {
+
+ this.completions = com;
+ layout = new FlexTable();
+ this.factTypeSelected = factType;
+
+ layout.setStyleName( "model-builder-Background" );
+
+
+ factWidget = new FactTypeWidget(factTypeSelected, com, new Command() {
+ public void execute() {
+ selectedFactType();
+ }
+ });
+ layout.setWidget( 0, 0, factWidget );
+ layout.getFlexCellFormatter().setVerticalAlignment( 0, 0, HasVerticalAlignment.ALIGN_MIDDLE );
+
+ //TODO: add loading up of existing data if its passed in here.
+
+
+ initWidget( layout );
+
+ }
+
+
+ protected void selectedFactType() {
+ factTypeSelected = factWidget.getFactType();
+ layout.setWidget(0, 1, new ConstraintWidget(factTypeSelected, completions, new ArrayList()) );
+ }
+
+}
More information about the jboss-svn-commits
mailing list