[jboss-svn-commits] JBL Code SVN: r33512 - in labs/jbossrules/trunk: drools-guvnor/src/main/java/org/drools/guvnor/client/common and 14 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Jun 15 12:49:34 EDT 2010


Author: baunax
Date: 2010-06-15 12:49:31 -0400 (Tue, 15 Jun 2010)
New Revision: 33512

Added:
   labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/ide/common/client/modeldriven/brl/BaseSingleFieldConstraint.java
   labs/jbossrules/trunk/drools-ide-common/src/test/java/org/drools/ide/common/modeldriven/brl/ExpressionFormLineTest.java
Removed:
   labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/ide/common/client/modeldriven/brl/ISingleFieldConstraint.java
Modified:
   labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/rulebuilder/ui/AddNewFieldConstraintDialog.java
   labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/rulebuilder/ui/AssignFieldVariableDialog.java
   labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/rulebuilder/ui/ConstraintValueEditor.java
   labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/rulebuilder/ui/FactPatternWidget.java
   labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/rulebuilder/ui/ValueEditorTypeSelectionDialog.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/common/ClickableLabel.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/decisiontable/GuidedDTColumnConfig.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/decisiontable/GuidedDecisionTableWidget.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/ActionCallMethodWidget.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/ActionRetractFactWidget.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/ActionSetFieldWidget.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/ActionValueEditor.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/BoundTextBox.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/ConstraintValueEditor.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/DefaultLiteralEditor.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/EnumDropDownLabel.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/ExpressionBuilder.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/FactPatternWidget.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/GlobalCollectionAddWidget.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/RuleModeller.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/factPattern/Connectives.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/factPattern/PopupCreator.java
   labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/ServiceImplementationTest.java
   labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/util/BRDRTPersistenceTest.java
   labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/ide/common/client/modeldriven/SuggestionCompletionEngine.java
   labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/ide/common/client/modeldriven/brl/ConnectiveConstraint.java
   labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/ide/common/client/modeldriven/brl/ExpressionFormLine.java
   labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/ide/common/client/modeldriven/brl/RuleModel.java
   labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/ide/common/client/modeldriven/brl/SingleFieldConstraint.java
   labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/ide/common/client/modeldriven/brl/SingleFieldConstraintEBLeftSide.java
   labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/ide/common/client/modeldriven/dt/GuidedDecisionTable.java
   labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/ide/common/client/modeldriven/dt/TemplateModel.java
   labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/ide/common/server/util/BRDRLPersistence.java
   labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/ide/common/server/util/GuidedDTDRLPersistence.java
   labs/jbossrules/trunk/drools-ide-common/src/test/java/org/drools/ide/common/client/modeldriven/SuggestionCompletionEngineTest.java
   labs/jbossrules/trunk/drools-ide-common/src/test/java/org/drools/ide/common/modeldriven/RuleModelTest.java
   labs/jbossrules/trunk/drools-ide-common/src/test/java/org/drools/ide/common/modeldriven/dt/GuidedDecisionTableTest.java
   labs/jbossrules/trunk/drools-ide-common/src/test/java/org/drools/ide/common/server/util/BRDRLPersistenceTest.java
   labs/jbossrules/trunk/drools-ide-common/src/test/java/org/drools/ide/common/server/util/BRLPersistenceTest.java
   labs/jbossrules/trunk/drools-ide-common/src/test/java/org/drools/ide/common/server/util/GuidedDTDRLPersistenceTest.java
Log:
GUVNOR-559 Allow to use the Expression Builder on the left side of a constraints
	- Allow user to bind expression to variables

Modified: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/rulebuilder/ui/AddNewFieldConstraintDialog.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/rulebuilder/ui/AddNewFieldConstraintDialog.java	2010-06-15 15:54:44 UTC (rev 33511)
+++ labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/rulebuilder/ui/AddNewFieldConstraintDialog.java	2010-06-15 16:49:31 UTC (rev 33512)
@@ -3,7 +3,7 @@
 import org.drools.ide.common.client.modeldriven.SuggestionCompletionEngine;
 import org.drools.ide.common.client.modeldriven.brl.CompositeFieldConstraint;
 import org.drools.ide.common.client.modeldriven.brl.FactPattern;
-import org.drools.ide.common.client.modeldriven.brl.ISingleFieldConstraint;
+import org.drools.ide.common.client.modeldriven.brl.BaseSingleFieldConstraint;
 import org.drools.ide.common.client.modeldriven.brl.SingleFieldConstraint;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.layout.GridData;
@@ -142,8 +142,8 @@
                                          }
 
                                          SingleFieldConstraint constraint = new SingleFieldConstraint();
-                                         constraint.fieldName = fieldsCombo.getText();
-                                         constraint.fieldType = (String) fieldsCombo.getData( fieldsCombo.getText() );
+                                         constraint.setFieldName(fieldsCombo.getText());
+                                         constraint.setFieldType((String) fieldsCombo.getData( fieldsCombo.getText() ));
                                          pattern.addConstraint( constraint );
                                          modeller.setDirty( true );
                                          modeller.reloadLhs();
@@ -164,7 +164,7 @@
                                    new Listener() {
                                        public void handleEvent(Event event) {
                                            SingleFieldConstraint con = new SingleFieldConstraint();
-                                           con.constraintValueType = ISingleFieldConstraint.TYPE_PREDICATE;
+                                           con.setConstraintValueType(BaseSingleFieldConstraint.TYPE_PREDICATE);
                                            pattern.addConstraint( con );
                                            modeller.setDirty( true );
                                            modeller.reloadLhs();

Modified: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/rulebuilder/ui/AssignFieldVariableDialog.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/rulebuilder/ui/AssignFieldVariableDialog.java	2010-06-15 15:54:44 UTC (rev 33511)
+++ labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/rulebuilder/ui/AssignFieldVariableDialog.java	2010-06-15 16:49:31 UTC (rev 33512)
@@ -34,7 +34,7 @@
                                      SingleFieldConstraint con,
                                      FactPattern pattern) {
         super( parent,
-               "Bind the field called [" + con.fieldName + "] to a variable.",
+               "Bind the field called [" + con.getFieldName() + "] to a variable.",
                "Type the variable name and hit the button." );
 
         this.toolkit = toolkit;
@@ -64,7 +64,7 @@
 
     private void createSubfieldConstraintRow(final Composite composite) {
         SuggestionCompletionEngine engine = modeller.getSuggestionCompletionEngine();
-        String[] fields = engine.getFieldCompletions( con.fieldType );
+        String[] fields = engine.getFieldCompletions( con.getFieldType() );
         if ( fields == null || fields.length <= 0 ) {
             return;
         }
@@ -77,7 +77,7 @@
             String field = fields[i];
             combo.add( field );
             combo.setData( field,
-                           engine.getFieldType( con.fieldType + "." + field ) );
+                           engine.getFieldType( con.getFieldType() + "." + field ) );
         }
         combo.select( 0 );
 
@@ -106,8 +106,8 @@
         final Text variableText = toolkit.createText( composite,
                                                       "" );
 
-        if ( con.fieldBinding != null ) {
-            variableText.setText( con.fieldBinding );
+        if ( con.getFieldBinding() != null ) {
+            variableText.setText( con.getFieldBinding() );
         }
 
         GridData gd = new GridData( GridData.FILL_HORIZONTAL );
@@ -121,7 +121,7 @@
         varButton.addListener( SWT.Selection,
                                new Listener() {
                                    public void handleEvent(Event event) {
-                                       con.fieldBinding = variableText.getText();
+                                       con.setFieldBinding(variableText.getText());
                                        modeller.reloadLhs();
                                        modeller.setDirty( true );
                                        close();

Modified: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/rulebuilder/ui/ConstraintValueEditor.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/rulebuilder/ui/ConstraintValueEditor.java	2010-06-15 15:54:44 UTC (rev 33511)
+++ labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/rulebuilder/ui/ConstraintValueEditor.java	2010-06-15 16:49:31 UTC (rev 33512)
@@ -7,7 +7,7 @@
 import org.drools.ide.common.client.modeldriven.SuggestionCompletionEngine;
 import org.drools.ide.common.client.modeldriven.brl.ConnectiveConstraint;
 import org.drools.ide.common.client.modeldriven.brl.FactPattern;
-import org.drools.ide.common.client.modeldriven.brl.ISingleFieldConstraint;
+import org.drools.ide.common.client.modeldriven.brl.BaseSingleFieldConstraint;
 import org.drools.ide.common.client.modeldriven.brl.SingleFieldConstraint;
 import org.eclipse.jface.resource.ImageDescriptor;
 import org.eclipse.swt.SWT;
@@ -28,7 +28,7 @@
 
     private Composite              composite;
 
-    private ISingleFieldConstraint constraint;
+    private BaseSingleFieldConstraint constraint;
 
     private FormToolkit            toolkit;
 
@@ -39,7 +39,7 @@
     private FactPattern            pattern;
 
     public ConstraintValueEditor(Composite composite,
-                                 ISingleFieldConstraint constraint,
+                                 BaseSingleFieldConstraint constraint,
                                  FormToolkit toolkit,
                                  RuleModeller modeller,
                                  String numericType /* e.g. is "Numeric" */) {
@@ -52,7 +52,7 @@
     }
 
     public ConstraintValueEditor(Composite parent,
-                                 ISingleFieldConstraint c,
+                                 BaseSingleFieldConstraint c,
                                  FormToolkit toolkit,
                                  RuleModeller modeller,
                                  String type,
@@ -70,7 +70,7 @@
     }
 
     private void create() {
-        if ( constraint.constraintValueType == ISingleFieldConstraint.TYPE_UNDEFINED ) {
+        if ( constraint.getConstraintValueType() == BaseSingleFieldConstraint.TYPE_UNDEFINED ) {
             ImageHyperlink link = addImage( composite,
                                             "icons/edit.gif" );
             link.setToolTipText( "Choose value editor type" );
@@ -95,20 +95,20 @@
 
             link.setLayoutData( gd );
         } else {
-            switch ( constraint.constraintValueType ) {
-                case ISingleFieldConstraint.TYPE_LITERAL :
+            switch ( constraint.getConstraintValueType() ) {
+                case BaseSingleFieldConstraint.TYPE_LITERAL :
                     literalValueEditor( composite,
                                         constraint,
                                         new GridData( GridData.FILL_HORIZONTAL ) );
                     break;
-                case ISingleFieldConstraint.TYPE_RET_VALUE :
+                case BaseSingleFieldConstraint.TYPE_RET_VALUE :
                     addImage( composite,
                               "icons/function_assets.gif" );
                     formulaValueEditor( composite,
                                         constraint,
                                         new GridData( GridData.FILL_HORIZONTAL ) );
                     break;
-                case ISingleFieldConstraint.TYPE_VARIABLE :
+                case BaseSingleFieldConstraint.TYPE_VARIABLE :
                     variableEditor( composite,
                                     constraint,
                                     new GridData( GridData.FILL_HORIZONTAL ) );
@@ -121,18 +121,18 @@
     }
 
     private void literalValueEditor(Composite parent,
-                                    final ISingleFieldConstraint c,
+                                    final BaseSingleFieldConstraint c,
                                     GridData gd) {
 
         String fieldName = null;
         if (c instanceof SingleFieldConstraint)  {
-        	fieldName = ((SingleFieldConstraint) c).fieldName;
+        	fieldName = ((SingleFieldConstraint) c).getFieldName();
         } else if (c instanceof ConnectiveConstraint) {
         	fieldName = ((ConnectiveConstraint) c).fieldName;
         }
         String fieldType = null;
         if (c instanceof SingleFieldConstraint)  {
-        	fieldType = ((SingleFieldConstraint) c).fieldType;
+        	fieldType = ((SingleFieldConstraint) c).getFieldType();
         } else if (c instanceof ConnectiveConstraint) {
         	fieldType = ((ConnectiveConstraint) c).fieldType;
         }
@@ -163,13 +163,13 @@
                 } else {
                     combo.add( e );
                 }
-                if ( e.equals( c.value ) || (s && split[0].trim().equals( c.value )) ) {
+                if ( e.equals( c.getValue() ) || (s && split[0].trim().equals( c.getValue() )) ) {
                     combo.select( i );
                     found = true;
                 }
             }
-            if ( !found && c.value != null ) {
-                combo.add( c.value );
+            if ( !found && c.getValue() != null ) {
+                combo.add( c.getValue() );
                 combo.select( combo.getItemCount() - 1 );
             }
 
@@ -180,7 +180,7 @@
                     if ( combo.getData( item ) != null ) {
                         item = (String) combo.getData( item );
                     }
-                    c.value = item;
+                    c.setValue(item);
                     modeller.reloadLhs();
                     modeller.setDirty( true );
                 }
@@ -196,8 +196,8 @@
             final Text box = toolkit.createText( parent,
                                                  "" );
 
-            if ( c.value != null ) {
-                box.setText( c.value );
+            if ( c.getValue() != null ) {
+                box.setText( c.getValue() );
             }
 
             gd.horizontalSpan = 2;
@@ -207,7 +207,7 @@
 
             box.addModifyListener( new ModifyListener() {
                 public void modifyText(ModifyEvent e) {
-                    c.value = box.getText();
+                    c.setValue(box.getText());
                     modeller.setDirty( true );
                 }
             } );
@@ -231,14 +231,14 @@
     }
 
     private void formulaValueEditor(Composite parent,
-                                    final ISingleFieldConstraint c,
+                                    final BaseSingleFieldConstraint c,
                                     GridData gd) {
 
         final Text box = toolkit.createText( parent,
                                              "" );
 
-        if ( c.value != null ) {
-            box.setText( c.value );
+        if ( c.getValue() != null ) {
+            box.setText( c.getValue() );
         }
 
         gd.grabExcessHorizontalSpace = true;
@@ -247,14 +247,14 @@
 
         box.addModifyListener( new ModifyListener() {
             public void modifyText(ModifyEvent e) {
-                c.value = box.getText();
+                c.setValue(box.getText());
                 modeller.setDirty( true );
             }
         } );
     }
 
     private void variableEditor(Composite composite,
-                                final ISingleFieldConstraint c,
+                                final BaseSingleFieldConstraint c,
                                 GridData gd) {
         List vars = modeller.getModel().getBoundVariablesInScope( c );
 
@@ -263,7 +263,7 @@
 
         gd.horizontalSpan = 2;
         combo.setLayoutData( gd );
-        if ( c.value == null ) {
+        if ( c.getValue() == null ) {
             combo.add( "Choose ..." );
         }
 
@@ -272,7 +272,7 @@
         for ( int i = 0; i < vars.size(); i++ ) {
             String var = (String) vars.get( i );
 
-            if ( c.value != null && c.value.equals( var ) ) {
+            if ( c.getValue() != null && c.getValue().equals( var ) ) {
                 idx = i;
             }
             combo.add( var );
@@ -282,7 +282,7 @@
 
         combo.addModifyListener( new ModifyListener() {
             public void modifyText(ModifyEvent e) {
-                c.value = combo.getText();
+                c.setValue(combo.getText());
             }
         } );
 

Modified: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/rulebuilder/ui/FactPatternWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/rulebuilder/ui/FactPatternWidget.java	2010-06-15 15:54:44 UTC (rev 33511)
+++ labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/rulebuilder/ui/FactPatternWidget.java	2010-06-15 16:49:31 UTC (rev 33512)
@@ -10,7 +10,7 @@
 import org.drools.ide.common.client.modeldriven.brl.ConnectiveConstraint;
 import org.drools.ide.common.client.modeldriven.brl.FactPattern;
 import org.drools.ide.common.client.modeldriven.brl.FieldConstraint;
-import org.drools.ide.common.client.modeldriven.brl.ISingleFieldConstraint;
+import org.drools.ide.common.client.modeldriven.brl.BaseSingleFieldConstraint;
 import org.drools.ide.common.client.modeldriven.brl.SingleFieldConstraint;
 import org.drools.eclipse.rulebuilder.modeldriven.HumanReadable;
 import org.eclipse.swt.SWT;
@@ -109,7 +109,7 @@
             FieldConstraint constraint = pattern.getFieldConstraints()[row];
             boolean nested = false;
             if ( constraint instanceof SingleFieldConstraint ) {
-                nested = ((SingleFieldConstraint) constraint).parent != null;
+                nested = ((SingleFieldConstraint) constraint).getParent() != null;
             }
             renderFieldConstraints( constraintComposite,
                                     constraint,
@@ -291,7 +291,7 @@
                                              boolean showBinding,
                                              boolean nested) {
         final SingleFieldConstraint c = (SingleFieldConstraint) constraint;
-        if ( c.constraintValueType != ISingleFieldConstraint.TYPE_PREDICATE ) {
+        if ( c.getConstraintValueType() != BaseSingleFieldConstraint.TYPE_PREDICATE ) {
             createConstraintRow( constraintComposite,
                                  parentConstraint,
                                  row,
@@ -329,7 +329,7 @@
                          showBinding,
                          data );
         toolkit.createLabel( pad,
-                             c.fieldName );
+                             c.getFieldName() );
         if (!hasChildren( row ) &&(c.connectives == null || c.connectives.length == 0 )) {
             addRemoveButton( constraintComposite,
                              parentConstraint,
@@ -345,7 +345,7 @@
 
         constraintValueEditor( constraintComposite,
                                c,
-                               c.fieldName );
+                               c.getFieldName() );
 
         createConnectives( constraintComposite,
                            c );
@@ -354,11 +354,11 @@
     }
 
     private int getNests(final SingleFieldConstraint c) {
-        SingleFieldConstraint s = (SingleFieldConstraint) c.parent;
+        SingleFieldConstraint s = (SingleFieldConstraint) c.getParent();
         int nests = 0;
         while ( s != null ) {
             nests++;
-            s = (SingleFieldConstraint) s.parent;
+            s = (SingleFieldConstraint) s.getParent();
         }
         return nests;
     }
@@ -388,7 +388,7 @@
                     }
                 } );
 
-                link.setToolTipText( "Bind the field called [" + c.fieldName + "] to a variable." );
+                link.setToolTipText( "Bind the field called [" + c.getFieldName() + "] to a variable." );
                 link.setLayoutData( data );
             } else {
                 toolkit.createLabel( constraintComposite,
@@ -396,7 +396,7 @@
             }
         } else {
             toolkit.createLabel( constraintComposite,
-                                 "[" + c.fieldBinding + "]" );
+                                 "[" + c.getFieldBinding() + "]" );
         }
 
     }
@@ -434,17 +434,17 @@
                                            con );
                 connectiveOperatorDropDown( parent,
                                             con,
-                                            c.fieldName );
+                                            c.getFieldName() );
                 constraintValueEditor( parent,
                                        con,
-                                       c.fieldName );
+                                       c.getFieldName() );
 
             }
         }
     }
 
     private void constraintValueEditor(Composite parent,
-                                       ISingleFieldConstraint c,
+                                       BaseSingleFieldConstraint c,
                                        String name) {
         String type = this.modeller.getSuggestionCompletionEngine().getFieldType( pattern.factType,
                                                                                   name );
@@ -557,7 +557,7 @@
         FieldConstraint[] fc = pattern.getFieldConstraints();
         for ( int i = row; i < fc.length; i++ ) {
             SingleFieldConstraint f = (SingleFieldConstraint) fc[i];
-            if (con.equals( f.parent)){
+            if (con.equals( f.getParent())){
                 return true;
             }
         }
@@ -613,13 +613,13 @@
     private void operatorDropDown(Composite parent,
                                   final SingleFieldConstraint c) {
         String[] ops = getCompletions().getOperatorCompletions( pattern.factType,
-                                                                c.fieldName );
+                                                                c.getFieldName() );
         final Combo box = new Combo( parent,
                                      SWT.SIMPLE | SWT.DROP_DOWN | SWT.READ_ONLY );
         for ( int i = 0; i < ops.length; i++ ) {
             String op = ops[i];
             box.add( HumanReadable.getOperatorDisplayName( op ) );
-            if ( op.equals( c.operator ) ) {
+            if ( op.equals( c.getOperator() ) ) {
                 box.select( i );
             }
         }
@@ -629,7 +629,7 @@
         box.addListener( SWT.Selection,
                          new Listener() {
                              public void handleEvent(Event event) {
-                                 c.operator = HumanReadable.getOperatorName( box.getText() );
+                                 c.setOperator(HumanReadable.getOperatorName( box.getText() ));
                                  getModeller().setDirty( true );
                              }
                          } );
@@ -662,14 +662,14 @@
     }
 
     private void formulaValueEditor(Composite parent,
-                                    final ISingleFieldConstraint c,
+                                    final BaseSingleFieldConstraint c,
                                     GridData gd) {
 
         final Text box = toolkit.createText( parent,
                                              "" );
 
-        if ( c.value != null ) {
-            box.setText( c.value );
+        if ( c.getValue() != null ) {
+            box.setText( c.getValue() );
         }
 
         gd.grabExcessHorizontalSpace = true;
@@ -678,7 +678,7 @@
 
         box.addModifyListener( new ModifyListener() {
             public void modifyText(ModifyEvent e) {
-                c.value = box.getText();
+                c.setValue(box.getText());
                 getModeller().setDirty( true );
             }
         } );

Modified: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/rulebuilder/ui/ValueEditorTypeSelectionDialog.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/rulebuilder/ui/ValueEditorTypeSelectionDialog.java	2010-06-15 15:54:44 UTC (rev 33511)
+++ labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/rulebuilder/ui/ValueEditorTypeSelectionDialog.java	2010-06-15 16:49:31 UTC (rev 33512)
@@ -1,6 +1,6 @@
 package org.drools.eclipse.rulebuilder.ui;
 
-import org.drools.ide.common.client.modeldriven.brl.ISingleFieldConstraint;
+import org.drools.ide.common.client.modeldriven.brl.BaseSingleFieldConstraint;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.ModifyEvent;
 import org.eclipse.swt.events.ModifyListener;
@@ -16,12 +16,12 @@
 
     private RuleModeller           modeller;
 
-    private ISingleFieldConstraint constraint;
+    private BaseSingleFieldConstraint constraint;
 
     public ValueEditorTypeSelectionDialog(Shell parent,
                                           FormToolkit toolkit,
                                           RuleModeller modeller,
-                                          ISingleFieldConstraint constraint) {
+                                          BaseSingleFieldConstraint constraint) {
         super( parent,
                "Select value editor type",
                "Select value editor type" );
@@ -49,13 +49,13 @@
 
                 switch ( valueTypeCombo.getSelectionIndex() ) {
                     case 0 :
-                        constraint.constraintValueType = ISingleFieldConstraint.TYPE_LITERAL;
+                        constraint.setConstraintValueType(BaseSingleFieldConstraint.TYPE_LITERAL);
                         break;
                     case 1 :
-                        constraint.constraintValueType = ISingleFieldConstraint.TYPE_RET_VALUE;
+                        constraint.setConstraintValueType(BaseSingleFieldConstraint.TYPE_RET_VALUE);
                         break;
                     case 2 :
-                        constraint.constraintValueType = ISingleFieldConstraint.TYPE_VARIABLE;
+                        constraint.setConstraintValueType(BaseSingleFieldConstraint.TYPE_VARIABLE);
                         break;
                 }
 

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/common/ClickableLabel.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/common/ClickableLabel.java	2010-06-15 15:54:44 UTC (rev 33511)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/common/ClickableLabel.java	2010-06-15 16:49:31 UTC (rev 33512)
@@ -24,9 +24,12 @@
             return "<div class='x-form-field'>" + text + "</div>";            
     }
 
+    @Deprecated
     public ClickableLabel(String text, ClickListener event) {
         this(text, event, true);
 	}
 
-
+    public ClickableLabel(String text, ClickHandler event) {
+        this(text, event, true);
+	}
 }

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/decisiontable/GuidedDTColumnConfig.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/decisiontable/GuidedDTColumnConfig.java	2010-06-15 15:54:44 UTC (rev 33511)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/decisiontable/GuidedDTColumnConfig.java	2010-06-15 16:49:31 UTC (rev 33512)
@@ -12,7 +12,7 @@
 import org.drools.guvnor.client.modeldriven.HumanReadable;
 import org.drools.ide.common.client.modeldriven.FieldAccessorsAndMutators;
 import org.drools.ide.common.client.modeldriven.SuggestionCompletionEngine;
-import org.drools.ide.common.client.modeldriven.brl.ISingleFieldConstraint;
+import org.drools.ide.common.client.modeldriven.brl.BaseSingleFieldConstraint;
 import org.drools.ide.common.client.modeldriven.dt.ConditionCol;
 import org.drools.ide.common.client.modeldriven.dt.DTColumnConfig;
 import org.drools.ide.common.client.modeldriven.dt.GuidedDecisionTable;
@@ -110,30 +110,30 @@
                       valueTypes );
 
         switch ( editingCol.constraintValueType ) {
-            case ISingleFieldConstraint.TYPE_LITERAL :
+            case BaseSingleFieldConstraint.TYPE_LITERAL :
                 literal.setChecked( true );
                 break;
-            case ISingleFieldConstraint.TYPE_RET_VALUE :
+            case BaseSingleFieldConstraint.TYPE_RET_VALUE :
                 formula.setChecked( true );
                 break;
-            case ISingleFieldConstraint.TYPE_PREDICATE :
+            case BaseSingleFieldConstraint.TYPE_PREDICATE :
                 predicate.setChecked( true );
         }
 
         literal.addClickListener( new ClickListener() {
             public void onClick(Widget w) {
-                applyConsTypeChange( ISingleFieldConstraint.TYPE_LITERAL );
+                applyConsTypeChange( BaseSingleFieldConstraint.TYPE_LITERAL );
             }
         } );
 
         formula.addClickListener( new ClickListener() {
             public void onClick(Widget w) {
-                applyConsTypeChange( ISingleFieldConstraint.TYPE_RET_VALUE );
+                applyConsTypeChange( BaseSingleFieldConstraint.TYPE_RET_VALUE );
             }
         } );
         predicate.addClickListener( new ClickListener() {
             public void onClick(Widget w) {
-                applyConsTypeChange( ISingleFieldConstraint.TYPE_PREDICATE );
+                applyConsTypeChange( BaseSingleFieldConstraint.TYPE_PREDICATE );
             }
         } );
 
@@ -200,7 +200,7 @@
                     Window.alert( constants.YouMustEnterAColumnHeaderValueDescription() );
                     return;
                 }
-                if ( editingCol.constraintValueType != ISingleFieldConstraint.TYPE_PREDICATE ) {
+                if ( editingCol.constraintValueType != BaseSingleFieldConstraint.TYPE_PREDICATE ) {
                     if ( null == editingCol.factField || "".equals( editingCol.factField ) ) {
                         Window.alert( constants.PleaseSelectOrEnterField() );
                         return;
@@ -293,7 +293,7 @@
     }
 
     private void doOperatorLabel() {
-        if ( editingCol.constraintValueType == ISingleFieldConstraint.TYPE_PREDICATE ) {
+        if ( editingCol.constraintValueType == BaseSingleFieldConstraint.TYPE_PREDICATE ) {
             operatorLabel.setText( constants.notNeededForPredicate() );
         } else if ( nil( editingCol.factType ) ) {
             operatorLabel.setText( constants.pleaseSelectAPatternFirst() );
@@ -318,7 +318,7 @@
                          ops[i] );
         }
 
-        if ( ISingleFieldConstraint.TYPE_LITERAL == this.editingCol.constraintValueType ) {
+        if ( BaseSingleFieldConstraint.TYPE_LITERAL == this.editingCol.constraintValueType ) {
             box.addItem( HumanReadable.getOperatorDisplayName( "in" ),
                          "in" );
         }
@@ -342,7 +342,7 @@
     }
 
     private void doFieldLabel() {
-        if ( editingCol.constraintValueType == ISingleFieldConstraint.TYPE_PREDICATE ) {
+        if ( editingCol.constraintValueType == BaseSingleFieldConstraint.TYPE_PREDICATE ) {
             fieldLabel.setText( constants.notNeededForPredicate() );
             fieldLabelInterpolationInfo.setVisible( true );
         } else if ( nil( editingCol.factType ) ) {

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/decisiontable/GuidedDecisionTableWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/decisiontable/GuidedDecisionTableWidget.java	2010-06-15 15:54:44 UTC (rev 33511)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/decisiontable/GuidedDecisionTableWidget.java	2010-06-15 16:49:31 UTC (rev 33512)
@@ -20,7 +20,7 @@
 import org.drools.guvnor.client.ruleeditor.RuleViewer;
 import org.drools.guvnor.client.ruleeditor.SaveEventListener;
 import org.drools.ide.common.client.modeldriven.SuggestionCompletionEngine;
-import org.drools.ide.common.client.modeldriven.brl.ISingleFieldConstraint;
+import org.drools.ide.common.client.modeldriven.brl.BaseSingleFieldConstraint;
 import org.drools.ide.common.client.modeldriven.dt.ActionCol;
 import org.drools.ide.common.client.modeldriven.dt.ActionInsertFactCol;
 import org.drools.ide.common.client.modeldriven.dt.ActionSetFieldCol;
@@ -373,7 +373,7 @@
 
     private Widget newCondition() {
         final ConditionCol newCol = new ConditionCol();
-        newCol.constraintValueType = ISingleFieldConstraint.TYPE_LITERAL;
+        newCol.constraintValueType = BaseSingleFieldConstraint.TYPE_LITERAL;
         return new ImageButton( "images/new_item.gif",
                                 constants.AddANewConditionColumn(),
                                 new ClickListener() { //NON-NLS

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/ActionCallMethodWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/ActionCallMethodWidget.java	2010-06-15 15:54:44 UTC (rev 33511)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/ActionCallMethodWidget.java	2010-06-15 16:49:31 UTC (rev 33512)
@@ -237,22 +237,18 @@
 
         SuggestionCompletionEngine completions = this.getModeller().getSuggestionCompletions();
 
-        String type = "";
-        if ( completions.isGlobalVariable( this.model.variable ) ) {
-            type = (String) completions.getGlobalVariable( this.model.variable );
-        } else {
-            if ( this.getModeller().getModel().getBoundFact( this.model.variable ) != null ) {
-                type = this.getModeller().getModel().getBoundFact( this.model.variable ).factType;
-            } else {
-                if ( this.getModeller().getModel().getRhsBoundFact( this.model.variable ) != null ) {
-                    type = this.getModeller().getModel().getRhsBoundFact( this.model.variable ).factType;
-                }
-            }
-        }
+		String type = "";
+		if (completions.isGlobalVariable(this.model.variable)) {
+			type = completions.getGlobalVariable(this.model.variable);
+		} else {
+			type = this.getModeller().getModel().getBindingType(this.model.variable);
+			if (type == null) {
+				type = this.getModeller().getModel().getRhsBoundFact(this.model.variable).factType;
+			}
+		}
 
-        DropDownData enums = completions.getEnums( type,
-                                                        this.model.fieldValues,
-                                                        val.field );
+		DropDownData enums = completions.getEnums(type, this.model.fieldValues, val.field);
+		
         return new MethodParameterValueEditor(val,
                 enums,
                 this.getModeller(),

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/ActionRetractFactWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/ActionRetractFactWidget.java	2010-06-15 15:54:44 UTC (rev 33511)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/ActionRetractFactWidget.java	2010-06-15 16:49:31 UTC (rev 33512)
@@ -44,7 +44,7 @@
         layout.setStyleName( "model-builderInner-Background" );
 
         if (readOnly == null) {
-            this.readOnly = !modeller.getSuggestionCompletions().containsFactType(modeller.getModel().getBoundFact(model.variableName).factType);
+            this.readOnly = !modeller.getSuggestionCompletions().containsFactType(modeller.getModel().getBindingType(model.variableName));
         } else {
             this.readOnly = readOnly;
         }
@@ -53,7 +53,7 @@
             layout.addStyleName("editor-disabled-widget");
         }
 
-        String desc = modeller.getModel().getBoundFact(model.variableName).factType + " [" + model.variableName + "]";
+        String desc = modeller.getModel().getBindingType(model.variableName) + " [" + model.variableName + "]";
         layout.add(new SmallLabel(HumanReadable.getActionDisplayName( "retract" )+"&nbsp;<b>"  + desc  + "</b>"));
 
         //This widget couldn't be modified.

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/ActionSetFieldWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/ActionSetFieldWidget.java	2010-06-15 15:54:44 UTC (rev 33511)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/ActionSetFieldWidget.java	2010-06-15 16:49:31 UTC (rev 33512)
@@ -15,9 +15,13 @@
  * limitations under the License.
  */
 
-import org.drools.guvnor.client.common.*;
+import org.drools.guvnor.client.common.ClickableLabel;
+import org.drools.guvnor.client.common.DirtyableFlexTable;
+import org.drools.guvnor.client.common.FormStylePopup;
+import org.drools.guvnor.client.common.ImageButton;
+import org.drools.guvnor.client.common.SmallLabel;
+import org.drools.guvnor.client.messages.Constants;
 import org.drools.guvnor.client.modeldriven.HumanReadable;
-import org.drools.guvnor.client.messages.Constants;
 import org.drools.ide.common.client.modeldriven.DropDownData;
 import org.drools.ide.common.client.modeldriven.FieldAccessorsAndMutators;
 import org.drools.ide.common.client.modeldriven.SuggestionCompletionEngine;
@@ -25,18 +29,17 @@
 import org.drools.ide.common.client.modeldriven.brl.ActionInsertFact;
 import org.drools.ide.common.client.modeldriven.brl.ActionSetField;
 import org.drools.ide.common.client.modeldriven.brl.ActionUpdateField;
-import org.drools.ide.common.client.modeldriven.brl.FactPattern;
 
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.user.client.Command;
 import com.google.gwt.user.client.Window;
 import com.google.gwt.user.client.ui.ChangeListener;
 import com.google.gwt.user.client.ui.ClickListener;
 import com.google.gwt.user.client.ui.HorizontalPanel;
 import com.google.gwt.user.client.ui.Image;
 import com.google.gwt.user.client.ui.ListBox;
+import com.google.gwt.user.client.ui.MouseListenerAdapter;
 import com.google.gwt.user.client.ui.Widget;
-import com.google.gwt.user.client.ui.MouseListenerAdapter;
-import com.google.gwt.core.client.GWT;
-import com.google.gwt.user.client.Command;
 import com.gwtext.client.util.Format;
 
 /**
@@ -69,13 +72,14 @@
 
         if (completions.isGlobalVariable(set.variable)) {
             this.fieldCompletions = completions.getFieldCompletionsForGlobalVariable(set.variable);
-            this.variableClass = (String) completions.getGlobalVariable(set.variable);
+            this.variableClass = completions.getGlobalVariable(set.variable);
         } else {
-            FactPattern pattern = mod.getModel().getBoundFact(set.variable);
-            if (pattern != null) {
-                this.fieldCompletions = completions.getFieldCompletions(FieldAccessorsAndMutators.MUTATOR,
-                        pattern.factType);
-                this.variableClass = pattern.factType;
+            String type = mod.getModel().getBindingType(set.variable); 
+            if (type != null) {
+                this.fieldCompletions = completions.getFieldCompletions(
+                		FieldAccessorsAndMutators.MUTATOR,
+                        type);
+                this.variableClass = type;
                 this.isBoundFact = true;
             } else {
                 ActionInsertFact patternRhs = mod.getModel().getRhsBoundFact(set.variable);
@@ -88,8 +92,13 @@
             }
         }
 
+        if (this.variableClass == null) {
+        	throw new IllegalStateException("couldn't find type for variable: " + set.variable);
+        }
+        
         if (readOnly == null) {
-            this.readOnly = !completions.containsFactType(this.variableClass);
+            this.readOnly = !completions.containsFactType(this.variableClass)
+            	|| !mod.getModel().getBoundFacts().contains(this.variableClass);
         } else {
             this.readOnly = readOnly;
         }
@@ -182,9 +191,9 @@
 
 
 
-        FactPattern fp = this.getModeller().getModel().getBoundFact(model.variable);
+        String type = this.getModeller().getModel().getBindingType(model.variable);
 
-        String descFact = (fp != null) ? this.getModeller().getModel().getBoundFact(model.variable).factType + " <b>[" + model.variable + "]</b>" : model.variable;
+        String descFact = (type != null) ? type + " <b>[" + model.variable + "]</b>" : model.variable;
 
         String sl = Format.format(constants.setterLabel(), new String[]{HumanReadable.getActionDisplayName(modifyType), descFact});
         return new ClickableLabel(sl, clk, !this.readOnly);//HumanReadable.getActionDisplayName(modifyType) + " value of <b>[" + model.variable + "]</b>", clk);
@@ -228,7 +237,7 @@
         if (completions.isGlobalVariable(this.model.variable)) {
             type = (String) completions.getGlobalVariable(this.model.variable);
         } else {
-            type = this.getModeller().getModel().getBoundFact(this.model.variable).factType;
+            type = this.getModeller().getModel().getBindingType(this.model.variable);
             /*
              * to take in account if the using a rhs bound variable
              */

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/ActionValueEditor.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/ActionValueEditor.java	2010-06-15 15:54:44 UTC (rev 33511)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/ActionValueEditor.java	2010-06-15 16:49:31 UTC (rev 33512)
@@ -1,6 +1,9 @@
 package org.drools.guvnor.client.modeldriven.ui;
 
 import com.google.gwt.event.dom.client.ChangeEvent;
+import com.google.gwt.event.dom.client.ClickEvent;
+import com.google.gwt.event.dom.client.ClickHandler;
+
 import java.util.List;
 
 import org.drools.guvnor.client.common.DirtyableComposite;
@@ -135,8 +138,9 @@
         ListBox listVariable = new ListBox();
         List<String> vars = model.getModel().getBoundFacts();
         for (String v : vars) {
+        	//XXX {bauna} check! this!
             FactPattern factPattern = model.getModel().getBoundFact(v);
-            String fv = model.getModel().getFieldConstraint(v);
+            String fv = model.getModel().getBindingType(v);
 
             if ((factPattern != null && factPattern.factType.equals(this.variableType)) || (fv != null)) {
                 // First selection is empty
@@ -361,7 +365,7 @@
         for (String v : vars) {
             boolean createButton = false;
             Button variable = new Button(constants.BoundVariable());
-            if (vars2.contains(v) == false) {
+            if (!vars2.contains(v)) {
                 FactPattern factPattern = model.getModel().getBoundFact(v);
                 if (factPattern.factType.equals(this.variableType)) {
                     createButton = true;
@@ -375,9 +379,9 @@
             if (createButton == true) {
                 form.addAttribute(constants.BoundVariable() + ":",
                         variable);
-                variable.addClickListener(new ClickListener() {
-
-                    public void onClick(Widget w) {
+                variable.addClickHandler(new ClickHandler() {
+					
+					public void onClick(ClickEvent event) {
                         value.nature = ActionFieldValue.TYPE_VARIABLE;
                         value.value = "=";
                         makeDirty();

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/BoundTextBox.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/BoundTextBox.java	2010-06-15 15:54:44 UTC (rev 33511)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/BoundTextBox.java	2010-06-15 16:49:31 UTC (rev 33512)
@@ -2,7 +2,7 @@
 
 import org.drools.guvnor.client.common.FieldEditListener;
 import org.drools.guvnor.client.common.IDirtyable;
-import org.drools.ide.common.client.modeldriven.brl.ISingleFieldConstraint;
+import org.drools.ide.common.client.modeldriven.brl.BaseSingleFieldConstraint;
 
 import com.google.gwt.user.client.Command;
 import com.google.gwt.user.client.ui.ChangeListener;
@@ -18,16 +18,16 @@
     implements
     IDirtyable {
 
-    public BoundTextBox(final ISingleFieldConstraint c) {
+    public BoundTextBox(final BaseSingleFieldConstraint c) {
         setStyleName( "constraint-value-Editor" ); //NON-NLS
-        if ( c.value == null ) {
+        if ( c.getValue() == null ) {
             setText( "" );
         } else {
-            setText( c.value );
+            setText( c.getValue() );
         }
 
-        String v = c.value;
-        if ( c.value == null || v.length() < 7 ) {
+        String v = c.getValue();
+        if ( c.getValue() == null || v.length() < 7 ) {
             setVisibleLength( 8 );
         } else {
             setVisibleLength( v.length() + 1 );
@@ -35,7 +35,7 @@
 
         addChangeListener( new ChangeListener() {
             public void onChange(Widget w) {
-                c.value = getText();
+                c.setValue(getText());
             }
         } );
 

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/ConstraintValueEditor.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/ConstraintValueEditor.java	2010-06-15 15:54:44 UTC (rev 33511)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/ConstraintValueEditor.java	2010-06-15 16:49:31 UTC (rev 33512)
@@ -26,7 +26,7 @@
 import org.drools.ide.common.client.modeldriven.DropDownData;
 import org.drools.ide.common.client.modeldriven.SuggestionCompletionEngine;
 import org.drools.ide.common.client.modeldriven.brl.FactPattern;
-import org.drools.ide.common.client.modeldriven.brl.ISingleFieldConstraint;
+import org.drools.ide.common.client.modeldriven.brl.BaseSingleFieldConstraint;
 import org.drools.ide.common.client.modeldriven.brl.RuleModel;
 import org.drools.ide.common.client.modeldriven.brl.SingleFieldConstraint;
 
@@ -60,7 +60,7 @@
     private final FactPattern pattern;
     private final String fieldName;
     private final SuggestionCompletionEngine sce;
-    private final ISingleFieldConstraint constraint;
+    private final BaseSingleFieldConstraint constraint;
     private final Panel panel;
     private final RuleModel model;
     private final RuleModeller modeller;
@@ -73,7 +73,7 @@
 
 
     public ConstraintValueEditor(FactPattern pattern, String fieldName,
-    		ISingleFieldConstraint con, RuleModeller modeller, String valueType,
+    		BaseSingleFieldConstraint con, RuleModeller modeller, String valueType,
 			boolean readOnly) {
         this.pattern = pattern;
         this.fieldName = fieldName;
@@ -101,7 +101,7 @@
 	private void refreshEditor() {
         panel.clear();
         Widget constraintWidget = null;
-        if (constraint.constraintValueType == SingleFieldConstraint.TYPE_UNDEFINED) {
+        if (constraint.getConstraintValueType() == SingleFieldConstraint.TYPE_UNDEFINED) {
             Image clickme = new Image("images/edit.gif"); //NON-NLS
             clickme.addClickHandler(new ClickHandler() {
 				
@@ -111,7 +111,7 @@
             });
             constraintWidget = clickme;
         } else {
-            switch (constraint.constraintValueType) {
+            switch (constraint.getConstraintValueType()) {
                 case SingleFieldConstraint.TYPE_LITERAL:
                     if (this.dropDownData != null) {
                         constraintWidget = new EnumDropDownLabel(this.pattern,
@@ -126,23 +126,23 @@
                         });
                     } else if (SuggestionCompletionEngine.TYPE_DATE.equals(this.fieldType)) {
 
-                        DatePickerLabel datePicker = new DatePickerLabel(constraint.value);
+                        DatePickerLabel datePicker = new DatePickerLabel(constraint.getValue());
 
                         // Set the default time
-                        this.constraint.value = datePicker.getDateString();
+                        this.constraint.setValue(datePicker.getDateString());
 
                         if (!this.readOnly) {
                             datePicker.addValueChanged(new ValueChanged() {
 
                                 public void valueChanged(String newValue) {
                                     executeOnValueChangeCommand();
-                                    constraint.value = newValue;
+                                    constraint.setValue(newValue);
                                 }
                             });
 
                             constraintWidget =  datePicker;
                         } else {
-                        	constraintWidget = new SmallLabel(this.constraint.value);
+                        	constraintWidget = new SmallLabel(this.constraint.getValue());
                         }
                     } else {
                         if (!this.readOnly) {
@@ -155,7 +155,7 @@
                                     }
                                 });
                         } else {
-                        	constraintWidget = new SmallLabel(this.constraint.value);
+                        	constraintWidget = new SmallLabel(this.constraint.getValue());
                         }
                     }
                     break;
@@ -168,7 +168,7 @@
                 case SingleFieldConstraint.TYPE_VARIABLE:
                 	constraintWidget = variableEditor();
                     break;
-                case ISingleFieldConstraint.TYPE_TEMPLATE:
+                case BaseSingleFieldConstraint.TYPE_TEMPLATE:
                 	constraintWidget = new DefaultLiteralEditor(this.constraint, false);
                     break;
                 default:
@@ -181,24 +181,24 @@
     private Widget variableEditor() {
 
         if (this.readOnly){
-            return new SmallLabel(this.constraint.value);
+            return new SmallLabel(this.constraint.getValue());
         }
 
         List<String> vars = this.model.getBoundVariablesInScope(this.constraint);
 
         final ListBox box = new ListBox();
 
-        if (this.constraint.value == null) {
+        if (this.constraint.getValue() == null) {
             box.addItem(constants.Choose());
         }
 
         int j = 0;
         for (String var : vars) {
             FactPattern f = model.getBoundFact(var);
-            String fv = model.getFieldConstraint(var);
+            String fv = model.getBindingType(var);
             if ((f != null && f.factType.equals(this.fieldType)) || (fv != null && fv.equals(this.fieldType))) {
                 box.addItem(var);
-                if (this.constraint.value != null && this.constraint.value.equals(var)) {
+                if (this.constraint.getValue() != null && this.constraint.getValue().equals(var)) {
                     box.setSelectedIndex(j);
                 }
                 j++;
@@ -208,7 +208,7 @@
                         this.fieldName);
                 if ((f != null && factCollectionType != null && f.factType.equals(factCollectionType)) || (factCollectionType != null && factCollectionType.equals(fv))) {
                     box.addItem(var);
-                    if (this.constraint.value != null && this.constraint.value.equals(var)) {
+                    if (this.constraint.getValue() != null && this.constraint.getValue().equals(var)) {
                         box.setSelectedIndex(j);
                     }
                     j++;
@@ -220,7 +220,7 @@
 			
 			public void onChange(ChangeEvent event) {
 				executeOnValueChangeCommand();
-                constraint.value = box.getItemText(box.getSelectedIndex());
+                constraint.setValue(box.getItemText(box.getSelectedIndex()));
             }
         });
 
@@ -274,14 +274,14 @@
      * Show a list of possibilities for the value type.
      */
     private void showTypeChoice(Widget w,
-            final ISingleFieldConstraint con) {
+            final BaseSingleFieldConstraint con) {
         final FormStylePopup form = new FormStylePopup("images/newex_wiz.gif",
                 constants.FieldValue());
 
         Button lit = new Button(constants.LiteralValue());
         lit.addClickHandler(new ClickHandler() {
 			public void onClick(ClickEvent event) {
-				con.constraintValueType = SingleFieldConstraint.TYPE_LITERAL;
+				con.setConstraintValueType(SingleFieldConstraint.TYPE_LITERAL);
                 doTypeChosen(form);
             }
         });
@@ -295,7 +295,7 @@
 	        Button templateKeyButton = new Button(templateKeyLabel);
 	        templateKeyButton.addClickHandler(new ClickHandler() {
 				public void onClick(ClickEvent event) {
-	                con.constraintValueType = ISingleFieldConstraint.TYPE_TEMPLATE;
+	                con.setConstraintValueType(BaseSingleFieldConstraint.TYPE_TEMPLATE);
 	                doTypeChosen(form);
 	            }
 	        });
@@ -315,7 +315,7 @@
             boolean foundABouncVariableThatMatches = false;
             for (String var : vars) {
                 FactPattern f = model.getBoundFact(var);
-                String fieldConstraint = model.getFieldConstraint(var);
+                String fieldConstraint = model.getBindingType(var);
 
                 if ((f != null && f.factType != null && this.fieldType != null) 
                 		&& (f.factType.equals(this.fieldType) 
@@ -336,7 +336,7 @@
                 Button variable = new Button(constants.BoundVariable());
                 variable.addClickHandler(new ClickHandler() {
         			public void onClick(ClickEvent event) {
-                        con.constraintValueType = SingleFieldConstraint.TYPE_VARIABLE;
+                        con.setConstraintValueType(SingleFieldConstraint.TYPE_VARIABLE);
                         doTypeChosen(form);
                     }
                 });
@@ -350,7 +350,7 @@
         Button formula = new Button(constants.NewFormula());
         formula.addClickHandler(new ClickHandler() {
 			public void onClick(ClickEvent event) {
-                con.constraintValueType = SingleFieldConstraint.TYPE_RET_VALUE;
+                con.setConstraintValueType(SingleFieldConstraint.TYPE_RET_VALUE);
                 doTypeChosen(form);
             }
         });
@@ -363,7 +363,7 @@
         Button expression = new Button(constants.ExpressionEditor());
         expression.addClickHandler(new ClickHandler() {
 			public void onClick(ClickEvent event) {
-                con.constraintValueType = SingleFieldConstraint.TYPE_EXPR_BUILDER_VALUE;
+                con.setConstraintValueType(SingleFieldConstraint.TYPE_EXPR_BUILDER_VALUE);
                 doTypeChosen(form);
             }
         });

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/DefaultLiteralEditor.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/DefaultLiteralEditor.java	2010-06-15 15:54:44 UTC (rev 33511)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/DefaultLiteralEditor.java	2010-06-15 16:49:31 UTC (rev 33512)
@@ -3,7 +3,7 @@
 import org.drools.guvnor.client.common.ErrorPopup;
 import org.drools.guvnor.client.common.ValueChanged;
 import org.drools.guvnor.client.messages.Constants;
-import org.drools.ide.common.client.modeldriven.brl.ISingleFieldConstraint;
+import org.drools.ide.common.client.modeldriven.brl.BaseSingleFieldConstraint;
 
 import com.google.gwt.core.client.GWT;
 import com.google.gwt.user.client.Command;
@@ -27,7 +27,7 @@
 public class DefaultLiteralEditor extends Composite {
 
     private Constants              constants    = ((Constants) GWT.create( Constants.class ));
-    private ISingleFieldConstraint constraint;
+    private BaseSingleFieldConstraint constraint;
     private final boolean          numericValue;
 
     private Label                  textWidget   = new Label();
@@ -35,7 +35,7 @@
     private final Button           okButton     = new Button( constants.OK() );
     private final ValueChanged     valueChanged = new ValueChanged() {
                                                     public void valueChanged(String newValue) {
-                                                        constraint.value = newValue;
+                                                        constraint.setValue(newValue);
                                                         if (onValueChangeCommand != null){
                                                             onValueChangeCommand.execute();
                                                         }
@@ -45,7 +45,7 @@
 
     private Command onValueChangeCommand;
 
-    public DefaultLiteralEditor(ISingleFieldConstraint constraint,
+    public DefaultLiteralEditor(BaseSingleFieldConstraint constraint,
                                 boolean numericValue) {
         this.constraint = constraint;
         this.numericValue = numericValue;
@@ -58,8 +58,8 @@
             }
         } );
 
-        if ( constraint.value != null && !"".equals( constraint.value ) ) {
-            textWidget.setText( constraint.value );
+        if ( constraint.getValue() != null && !"".equals( constraint.getValue() ) ) {
+            textWidget.setText( constraint.getValue() );
         } else {
             textWidget.setText( constants.Value() );
         }
@@ -77,11 +77,11 @@
         okButton.addClickListener( new ClickListener() {
             public void onClick(Widget arg0) {
 
-                if ( !isValueEmpty( constraint.value ) ) {
+                if ( !isValueEmpty( constraint.getValue() ) ) {
                     if (onValueChangeCommand != null){
                         onValueChangeCommand.execute();
                     }
-                    textWidget.setText( constraint.value );
+                    textWidget.setText( constraint.getValue() );
 
                     popup.hide();
                 }
@@ -123,7 +123,7 @@
                 if ( '\r' == c || '\n' == c ) {
                     valueChanged.valueChanged( box.getText() );
                 } else {
-                    constraint.value = box.getText();
+                    constraint.setValue(box.getText());
                 }
             }
 

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/EnumDropDownLabel.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/EnumDropDownLabel.java	2010-06-15 15:54:44 UTC (rev 33511)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/EnumDropDownLabel.java	2010-06-15 16:49:31 UTC (rev 33512)
@@ -5,7 +5,7 @@
 import org.drools.ide.common.client.modeldriven.DropDownData;
 import org.drools.ide.common.client.modeldriven.SuggestionCompletionEngine;
 import org.drools.ide.common.client.modeldriven.brl.FactPattern;
-import org.drools.ide.common.client.modeldriven.brl.ISingleFieldConstraint;
+import org.drools.ide.common.client.modeldriven.brl.BaseSingleFieldConstraint;
 
 import com.google.gwt.core.client.GWT;
 import com.google.gwt.user.client.Command;
@@ -39,7 +39,7 @@
     public EnumDropDownLabel(FactPattern pattern,
                              String fieldName,
                              SuggestionCompletionEngine sce,
-                             ISingleFieldConstraint constraint) {
+                             BaseSingleFieldConstraint constraint) {
         this.textWidget = getTextLabel();
         this.enumDropDown = getEnumDropDown( constraint,
                                              sce,
@@ -94,7 +94,7 @@
 
     }
 
-    private EnumDropDown getEnumDropDown(final ISingleFieldConstraint constraint,
+    private EnumDropDown getEnumDropDown(final BaseSingleFieldConstraint constraint,
                                          SuggestionCompletionEngine sce,
                                          FactPattern pattern,
                                          String fieldName) {
@@ -109,12 +109,12 @@
                                          fieldName );
         }
 
-        final EnumDropDown box = new EnumDropDown( constraint.value,
+        final EnumDropDown box = new EnumDropDown( constraint.getValue(),
                                                    new DropDownValueChanged() {
                                                        public void valueChanged(String newText,
                                                                                 String newValue) {
                                                            textWidget.setText( newText );
-                                                           constraint.value = newValue;
+                                                           constraint.setValue(newValue);
                                                            okButton.click();
                                                        }
                                                    },

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/ExpressionBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/ExpressionBuilder.java	2010-06-15 15:54:44 UTC (rev 33511)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/ExpressionBuilder.java	2010-06-15 16:49:31 UTC (rev 33512)
@@ -9,6 +9,7 @@
 import java.util.List;
 import java.util.Map;
 
+import org.drools.guvnor.client.common.FormStylePopup;
 import org.drools.guvnor.client.common.SmallLabel;
 import org.drools.guvnor.client.messages.Constants;
 import org.drools.ide.common.client.modeldriven.SuggestionCompletionEngine;
@@ -25,11 +26,17 @@
 import com.google.gwt.core.client.GWT;
 import com.google.gwt.event.dom.client.ChangeEvent;
 import com.google.gwt.event.dom.client.ChangeHandler;
+import com.google.gwt.event.dom.client.ClickEvent;
+import com.google.gwt.event.dom.client.ClickHandler;
 import com.google.gwt.event.shared.HandlerRegistration;
+import com.google.gwt.user.client.Window;
+import com.google.gwt.user.client.ui.Button;
 import com.google.gwt.user.client.ui.HasVerticalAlignment;
 import com.google.gwt.user.client.ui.HorizontalPanel;
 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.gwtext.client.util.Format;
 
 public class ExpressionBuilder extends RuleModellerWidget implements HasExpressionTypeChangeHandlers, HasExpressionChangeHandlers {
 
@@ -39,6 +46,7 @@
 	// private static final String GLOBAL_COLLECTION_VALUE_PREFIX = "gc";
 	private static final String GLOBAL_VARIABLE_VALUE_PREFIX = "gv";
 	private static final String METHOD_VALUE_PREFIX = "mt";
+	private final SmallLabelClickHandler slch = new SmallLabelClickHandler();
 	private Constants constants = ((Constants) GWT.create(Constants.class));
 	// private FlowPanel panel = new FlowPanel();
 	private HorizontalPanel panel = new HorizontalPanel();
@@ -71,14 +79,21 @@
 			}
 		} else {
 			if (this.readOnly) {
-				panel.add(new SmallLabel("<b>" + expression.getText() + "</b>"));
+				panel.add(createSmallLabel("<b>" + getBoundText() + expression.getText(false) + "</b>"));
 			} else {
-				panel.add(new SmallLabel("<b>" + expression.getText() + ".</b>"));
+				panel.add(createSmallLabel("<b>" + getBoundText() + expression.getText(false) + ".</b>"));
 				panel.add(getWidgetForCurrentType());
 			}
 		}
 		initWidget(panel);
 	}
+	
+	private String getBoundText() {
+		if (expression.isBound()) {
+			return "[" + expression.getBinding() + "] ";
+		}
+		return "";
+	}
 
 	private Widget createStartPointWidget() {
 		ListBox startPoint = new ListBox();
@@ -144,7 +159,7 @@
 		w = getWidgetForCurrentType();
 
 		if (!expression.isEmpty()) {
-			panel.add(new SmallLabel("<b>" + expression.getText() + ".</b>"));
+			panel.add(createSmallLabel("<b>" + expression.getText() + ".</b>"));
 		}
 		if (w != null) {
 			panel.add(w);
@@ -238,7 +253,7 @@
 
 		panel.clear();
 		if (!expression.isEmpty()) {
-			panel.add(new SmallLabel("<b>" + expression.getText() + ".</b>"));
+			panel.add(createSmallLabel("<b>" + expression.getText() + ".</b>"));
 		}
 		if (w != null) {
 			panel.add(w);
@@ -366,4 +381,43 @@
 	public HandlerRegistration addExpressionChangeHandler(ExpressionChangeHandler handler) {
 		return addHandler(handler, ExpressionChangeEvent.getType());
 	}
+	
+	private void showBindingPopUp() {
+		final FormStylePopup popup = new FormStylePopup();
+		popup.setWidth(500);
+		final HorizontalPanel vn = new HorizontalPanel();
+		final TextBox varName = new TextBox();
+		final Button ok = new Button(constants.Set());
+		vn.add(varName);
+		vn.add(ok);
+
+		ok.addClickHandler(new ClickHandler() {
+			public void onClick(ClickEvent event) {
+				String var = varName.getText();
+				if (getModeller().isVariableNameUsed(var)) {
+					Window.alert(Format.format(constants.TheVariableName0IsAlreadyTaken(), var));
+					return;
+				}
+				expression.setBinding(var);
+				getModeller().refreshWidget();
+				popup.hide();
+			}
+		});
+
+		popup.addRow(vn);
+		popup.show();
+	}
+	
+	private class SmallLabelClickHandler implements ClickHandler {
+		public void onClick(ClickEvent event) {
+			showBindingPopUp();
+		}
+	}
+	
+	
+	private SmallLabel createSmallLabel(String text) {
+		SmallLabel label = new SmallLabel(text);
+		label.addClickHandler(slch);
+		return label;
+	}
 }

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/FactPatternWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/FactPatternWidget.java	2010-06-15 15:54:44 UTC (rev 33511)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/FactPatternWidget.java	2010-06-15 16:49:31 UTC (rev 33512)
@@ -160,7 +160,7 @@
             FieldConstraint current = sortedConst.get(i);
             if (current instanceof SingleFieldConstraint) {
                 SingleFieldConstraint single = (SingleFieldConstraint) current;
-                FieldConstraint parent = single.parent;
+                FieldConstraint parent = single.getParent();
 
                 for (int j = 0; j < parents.size(); j++) {
                     FieldConstraint storedParent = parents.get(j);
@@ -215,8 +215,8 @@
             FieldConstraint current = constraints[i];
             if (current instanceof SingleFieldConstraint) {
                 SingleFieldConstraint single = (SingleFieldConstraint) current;
-                int index = sortedConst.indexOf(single.parent);
-                if (single.parent == null) {
+                int index = sortedConst.indexOf(single.getParent());
+                if (single.getParent() == null) {
                     sortedConst.add(single);
                 } else if (index >= 0) {
                     sortedConst.add(index + 1, single);
@@ -236,8 +236,8 @@
      * @param fieldConst the constraint to investigate.
      * */
     private void insertSingleFieldConstraint(SingleFieldConstraint fieldConst, List<FieldConstraint> sortedConst) {
-        if (fieldConst.parent instanceof SingleFieldConstraint) {
-            insertSingleFieldConstraint((SingleFieldConstraint) fieldConst.parent, sortedConst);
+        if (fieldConst.getParent() instanceof SingleFieldConstraint) {
+            insertSingleFieldConstraint((SingleFieldConstraint) fieldConst.getParent(), sortedConst);
         }
         sortedConst.add(fieldConst);
     }
@@ -324,7 +324,7 @@
         inner.setWidget(row, 0, new HTML("&nbsp;&nbsp;&nbsp;&nbsp;"));
         //inner.getFlexCellFormatter().setWidth(row, 0, "15%");
         //DOCNHERON
-        if (constraint.constraintValueType != SingleFieldConstraint.TYPE_PREDICATE) {
+        if (constraint.getConstraintValueType() != SingleFieldConstraint.TYPE_PREDICATE) {
 
         	HorizontalPanel ebContainer = null;
         	if (constraint instanceof SingleFieldConstraintEBLeftSide) {
@@ -335,8 +335,8 @@
         		inner.setWidget(row, 0 + col, fieldLabel(constraint, showBinding, tabs * 20));
         	}
             inner.setWidget(row, 1 + col, operatorDropDown(constraint));
-            inner.setWidget(row, 2 + col, valueEditor(constraint, constraint.fieldType));
-            inner.setWidget(row, 3 + col, connectives.connectives(constraint, constraint.fieldType));
+            inner.setWidget(row, 2 + col, valueEditor(constraint, constraint.getFieldType()));
+            inner.setWidget(row, 3 + col, connectives.connectives(constraint, constraint.getFieldType()));
             
             if (ebContainer != null && ebContainer.getWidgetCount() > 0) {
             	if (ebContainer.getWidget(0) instanceof ExpressionBuilder) {
@@ -345,8 +345,8 @@
 						
 						public void onExpressionTypeChanged(ExpressionTypeChangeEvent event) {
 							try {
-								constraint.fieldType = event.getNewType();
-								inner.setWidget(row, 1 + col, operatorDropDown(constraint, constraint.fieldType));
+								constraint.setFieldType(event.getNewType());
+								inner.setWidget(row, 1 + col, operatorDropDown(constraint, constraint.getFieldType()));
 							} catch (Exception e) {
 								e.printStackTrace();
 							}
@@ -369,7 +369,7 @@
             if (!this.readOnly) {
                 inner.setWidget(row, 4 + col, addConnective);
             }
-        } else if (constraint.constraintValueType == SingleFieldConstraint.TYPE_PREDICATE) {
+        } else if (constraint.getConstraintValueType() == SingleFieldConstraint.TYPE_PREDICATE) {
             inner.setWidget(row, 1, predicateEditor(constraint));
             inner.getFlexCellFormatter().setColSpan(row, 1, 5);
         }
@@ -386,26 +386,26 @@
         img.setTitle(constants.FormulaBooleanTip());
 
         pred.add(img);
-        if (c.value == null) {
-            c.value = "";
+        if (c.getValue() == null) {
+            c.setValue("");
         }
 
         final TextBox box = new TextBox();
-        box.setText(c.value);
+        box.setText(c.getValue());
 
         if (!this.readOnly) {
             box.addChangeHandler(new ChangeHandler() {
 				
 				public void onChange(ChangeEvent event) {
 					setModified(true);
-                    c.value = box.getText();
+                    c.setValue(box.getText());
                     getModeller().makeDirty();
                 }
             });
             box.setWidth("100%");
             pred.add(box);
         } else {
-            pred.add(new SmallLabel(c.value));
+            pred.add(new SmallLabel(c.getValue()));
         }
 
         return pred;
@@ -456,7 +456,7 @@
 
     private Widget valueEditor(final SingleFieldConstraint c, String factType) {
         //String type = this.modeller.getSuggestionCompletions().getFieldType( factType, c.fieldName );
-        ConstraintValueEditor constraintValueEditor = new ConstraintValueEditor(pattern, c.fieldName, c, this.getModeller(), c.fieldType,this.readOnly);
+        ConstraintValueEditor constraintValueEditor = new ConstraintValueEditor(pattern, c.getFieldName(), c, this.getModeller(), c.getFieldType(),this.readOnly);
         constraintValueEditor.setOnValueChangeCommand(new Command() {
             public void execute() {
                 setModified(true);
@@ -469,7 +469,7 @@
     
     private Widget operatorDropDown(final SingleFieldConstraint c) {
     	return operatorDropDown(c, connectives.getCompletions()
-    			.getFieldType(pattern.factType, c.fieldName));
+    			.getFieldType(pattern.factType, c.getFieldName()));
     }
     
     private Widget operatorDropDown(final SingleFieldConstraint c, String type) {
@@ -480,7 +480,7 @@
             for (int i = 0; i < ops.length; i++) {
                 String op = ops[i];
                 box.addItem(HumanReadable.getOperatorDisplayName(op), op);
-                if (op.equals(c.operator)) {
+                if (op.equals(c.getOperator())) {
                     box.setSelectedIndex(i + 1);
                 }
 
@@ -490,9 +490,9 @@
 				
 				public void onChange(ChangeEvent event) {
                     setModified(true);
-                    c.operator = box.getValue(box.getSelectedIndex());
-                    if (c.operator.equals("")) {
-                        c.operator = null;
+                    c.setOperator(box.getValue(box.getSelectedIndex()));
+                    if (c.getOperator().equals("")) {
+                        c.setOperator(null);
                     }
                     getModeller().makeDirty();
                 }
@@ -500,7 +500,7 @@
 
             return box;
         } else {
-            SmallLabel sl = new SmallLabel("<b>"+(c.operator==null?constants.pleaseChoose():HumanReadable.getOperatorDisplayName(c.operator))+"</b>");
+            SmallLabel sl = new SmallLabel("<b>"+(c.getOperator()==null?constants.pleaseChoose():HumanReadable.getOperatorDisplayName(c.getOperator()))+"</b>");
             return sl;
         }
 
@@ -512,14 +512,12 @@
 
         if (!con.isBound()) {
             if (bindable && showBinding && !this.readOnly) {
-				ExpressionBuilder eb = new ExpressionBuilder(getModeller(), con.getExpressionLeftSide());
-            	ab.add(eb);
+				ab.add(new ExpressionBuilder(getModeller(), con.getExpressionLeftSide()));
             } else {
                 ab.add(new SmallLabel(con.getExpressionLeftSide().getText()));
             }
         } else {
-            ab.add(new SmallLabel(con.fieldName));
-            ab.add(new SmallLabel(" <b>[" + con.fieldBinding + "]</b>"));       //NON-NLS
+        	ab.add(new ExpressionBuilder(getModeller(), con.getExpressionLeftSide()));
         }
         return ab;
     }
@@ -538,7 +536,7 @@
             	ClickHandler click = new ClickHandler() {
 					
 					public void onClick(ClickEvent event) {
-                        String[] fields = connectives.getCompletions().getFieldCompletions(con.fieldType);
+                        String[] fields = connectives.getCompletions().getFieldCompletions(con.getFieldType());
                         popupCreator.showBindFieldPopup((Widget) event.getSource(), con, fields, popupCreator);
                     }
                 };
@@ -546,17 +544,17 @@
                 Image bind = new ImageButton("images/edit_tiny.gif", constants.GiveFieldVarName()); //NON-NLS
 
                 bind.addClickHandler(click);
-                ClickableLabel cl = new ClickableLabel(con.fieldName, click, !this.readOnly);
+                ClickableLabel cl = new ClickableLabel(con.getFieldName(), click, !this.readOnly);
                 DOM.setStyleAttribute(cl.getElement(), "marginLeft", "" + padding + "pt"); //NON-NLS
                 ab.add(cl);
                 //ab.add( bind );
             } else {
-                ab.add(new SmallLabel(con.fieldName));
+                ab.add(new SmallLabel(con.getFieldName()));
             }
 
         } else {
-            ab.add(new SmallLabel(con.fieldName));
-            ab.add(new SmallLabel(" <b>[" + con.fieldBinding + "]</b>"));       //NON-NLS
+            ab.add(new SmallLabel(con.getFieldName()));
+            ab.add(new SmallLabel(" <b>[" + con.getFieldBinding() + "]</b>"));       //NON-NLS
         }
 
         return ab;

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/GlobalCollectionAddWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/GlobalCollectionAddWidget.java	2010-06-15 15:54:44 UTC (rev 33511)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/GlobalCollectionAddWidget.java	2010-06-15 16:49:31 UTC (rev 33512)
@@ -52,7 +52,7 @@
         super(modeller);
 
         if (readOnly == null) {
-            this.readOnly = !modeller.getSuggestionCompletions().containsFactType(modeller.getModel().getBoundFact(action.factName).factType);
+            this.readOnly = !modeller.getSuggestionCompletions().containsFactType(modeller.getModel().getBindingType(action.factName));
         } else {
             this.readOnly = readOnly;
         }

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/RuleModeller.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/RuleModeller.java	2010-06-15 15:54:44 UTC (rev 33511)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/RuleModeller.java	2010-06-15 16:49:31 UTC (rev 33512)
@@ -67,6 +67,8 @@
 import org.drools.ide.common.client.modeldriven.brl.RuleModel;
 
 import com.google.gwt.core.client.GWT;
+import com.google.gwt.event.dom.client.ClickEvent;
+import com.google.gwt.event.dom.client.ClickHandler;
 import com.google.gwt.user.client.Command;
 import com.google.gwt.user.client.Window;
 import com.google.gwt.user.client.rpc.AsyncCallback;
@@ -149,14 +151,14 @@
 
         if (this.model.metadataList.length == 0) {
             return false;
-        } else {
-            for (RuleMetadata at : this.model.metadataList) {
-                if (at.attributeName.equals(attr)) {
-                    return true;
-                }
-            }
-            return false;
         }
+
+        for (RuleMetadata at : this.model.metadataList) {
+        	if (at.attributeName.equals(attr)) {
+        		return true;
+        	}
+        }
+        return false;
     }
 
     /** return true if we should not allow unfrozen editing of the RHS */
@@ -178,10 +180,10 @@
 
         Image addPattern = new ImageButton("images/new_item.gif");
         addPattern.setTitle(constants.AddAConditionToThisRule());
-        addPattern.addClickListener(new ClickListener() {
-
-            public void onClick(Widget w) {
-                showConditionSelector(w, null);
+        addPattern.addClickHandler(new ClickHandler() {
+			
+			public void onClick(ClickEvent event) {
+                showConditionSelector((Widget) event.getSource(), null);
             }
         });
 
@@ -205,10 +207,10 @@
 
         Image addAction = new ImageButton("images/new_item.gif"); //NON-NLS
         addAction.setTitle(constants.AddAnActionToThisRule());
-        addAction.addClickListener(new ClickListener() {
-
-            public void onClick(Widget w) {
-                showActionSelector(w, null);
+        addAction.addClickHandler(new ClickHandler() {
+			
+			public void onClick(ClickEvent event) {
+                showActionSelector((Widget) event.getSource(), null);
             }
         });
         if (!lockRHS()) {
@@ -225,9 +227,9 @@
 
             final RuleModeller self = this;
             if (!this.showingOptions) {
-                ClickableLabel showMoreOptions = new ClickableLabel("(show options...)", new ClickListener() {
-
-                    public void onClick(Widget sender) {
+                ClickableLabel showMoreOptions = new ClickableLabel("(show options...)", new ClickHandler() {
+        			
+        			public void onClick(ClickEvent event) {
                         showingOptions = true;
                         layout.setWidget(tmp1, 0, new SmallLabel(constants.optionsRuleModeller()));
                         layout.setWidget(tmp1, 2, getAddAttribute());
@@ -268,10 +270,10 @@
         Image add = new ImageButton("images/new_item.gif"); //NON-NLS
         add.setTitle(constants.AddAnOptionToTheRuleToModifyItsBehaviorWhenEvaluatedOrExecuted());
 
-        add.addClickListener(new ClickListener() {
-
-            public void onClick(Widget w) {
-                showAttributeSelector(w);
+        add.addClickHandler(new ClickHandler() {
+			
+			public void onClick(ClickEvent event) {
+                showAttributeSelector((Widget) event.getSource());
             }
         });
         return add;
@@ -287,9 +289,9 @@
 
         list.setSelectedIndex(0);
 
-        list.addChangeListener(new ChangeListener() {
-
-            public void onChange(Widget w) {
+        list.addClickHandler(new ClickHandler() {
+			
+			public void onClick(ClickEvent event) {
                 String attr = list.getItemText(list.getSelectedIndex());
                 if (attr.equals(RuleAttributeWidget.LOCK_LHS) || attr.equals(RuleAttributeWidget.LOCK_RHS)) {
                     model.addMetadata(new RuleMetadata(attr, "true"));
@@ -304,10 +306,10 @@
 
         addbutton.setTitle(constants.AddMetadataToTheRule());
 
-        addbutton.addClickListener(new ClickListener() {
+        addbutton.addClickHandler(new ClickHandler() {
+			
+			public void onClick(ClickEvent event) {
 
-            public void onClick(Widget w) {
-
                 model.addMetadata(new RuleMetadata(box.getText(), ""));
                 refreshWidget();
                 pop.hide();
@@ -325,18 +327,18 @@
         pop.addAttribute(constants.Attribute1(), list);
 
         Button freezeConditions = new Button(constants.Conditions());
-        freezeConditions.addClickListener(new ClickListener() {
-
-            public void onClick(Widget sender) {
+        freezeConditions.addClickHandler(new ClickHandler() {
+			
+			public void onClick(ClickEvent event) {
                 model.addMetadata(new RuleMetadata(RuleAttributeWidget.LOCK_LHS, "true"));
                 refreshWidget();
                 pop.hide();
             }
         });
         Button freezeActions = new Button(constants.Actions());
-        freezeActions.addClickListener(new ClickListener() {
-
-            public void onClick(Widget sender) {
+        freezeActions.addClickHandler(new ClickHandler() {
+			
+			public void onClick(ClickEvent event) {
                 model.addMetadata(new RuleMetadata(RuleAttributeWidget.LOCK_RHS, "true"));
                 refreshWidget();
                 pop.hide();
@@ -387,9 +389,9 @@
             Image remove = new ImageButton("images/delete_faded.gif"); //NON-NLS
             remove.setTitle(constants.RemoveThisAction());
             final int idx = i;
-            remove.addClickListener(new ClickListener() {
-
-                public void onClick(Widget w) {
+            remove.addClickHandler(new ClickHandler() {
+    			
+    			public void onClick(ClickEvent event) {
                     if (Window.confirm(constants.RemoveThisItem())) {
                         model.removeRhsItem(idx);
                         refreshWidget();
@@ -625,8 +627,8 @@
         Button b = new Button(constants.OK());
         hp.add(b);
         b.addClickListener(new ClickListener() {
-
-            public void onClick(final Widget sender) {
+			
+			public void onClick(Widget sender) {
                 cl.onChange(sender);
             }
         });
@@ -649,7 +651,6 @@
     }
 
     protected void showActionSelector(Widget w, Integer position) {
-        //XXX {Bauna} add RHS Actions
         final FormStylePopup popup = new FormStylePopup();
         popup.setWidth(-1);
         popup.setTitle(constants.AddANewAction());
@@ -910,7 +911,12 @@
 
     protected void addModify(String itemText, int position) {
         this.model.addRhsItem(new ActionUpdateField(itemText), position);
-        refreshWidget();
+        
+        try {
+			refreshWidget();
+		} catch (Throwable e) {
+			e.printStackTrace();
+		}
     }
 
     protected void addNewDSLRhs(DSLSentence sentence, int position) {
@@ -1037,9 +1043,9 @@
         final Image remove = new ImageButton("images/delete_faded.gif"); //NON-NLS
         remove.setTitle(constants.RemoveThisENTIREConditionAndAllTheFieldConstraintsThatBelongToIt());
         final int idx = i;
-        remove.addClickListener(new ClickListener() {
-
-            public void onClick(Widget w) {
+        remove.addClickHandler(new ClickHandler() {
+			
+			public void onClick(ClickEvent event) {
                 if (Window.confirm(constants.RemoveThisEntireConditionQ())) {
                     if (model.removeLhsItem(idx)) {
                         refreshWidget();
@@ -1050,7 +1056,6 @@
             }
         });
 
-
         horiz.setWidth("100%");
         w.setWidth("100%");
 

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/factPattern/Connectives.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/factPattern/Connectives.java	2010-06-15 15:54:44 UTC (rev 33511)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/factPattern/Connectives.java	2010-06-15 16:49:31 UTC (rev 33512)
@@ -8,7 +8,7 @@
 import org.drools.ide.common.client.modeldriven.SuggestionCompletionEngine;
 import org.drools.ide.common.client.modeldriven.brl.ConnectiveConstraint;
 import org.drools.ide.common.client.modeldriven.brl.FactPattern;
-import org.drools.ide.common.client.modeldriven.brl.ISingleFieldConstraint;
+import org.drools.ide.common.client.modeldriven.brl.BaseSingleFieldConstraint;
 import org.drools.ide.common.client.modeldriven.brl.SingleFieldConstraint;
 
 import com.google.gwt.core.client.GWT;
@@ -71,8 +71,8 @@
             DirtyableHorizontalPane horiz = new DirtyableHorizontalPane();
             for ( int i = 0; i < c.connectives.length; i++ ) {
                 ConnectiveConstraint con = c.connectives[i];
-                horiz.add( connectiveOperatorDropDown( con, c.fieldName ) );
-                horiz.add( connectiveValueEditor( con, factClass, c.fieldName ) );
+                horiz.add( connectiveOperatorDropDown( con, c.getFieldName() ) );
+                horiz.add( connectiveValueEditor( con, factClass, c.getFieldName() ) );
             }
             return horiz;
         } else {
@@ -82,7 +82,7 @@
 
     }
 
-    private Widget connectiveValueEditor(final ISingleFieldConstraint con, String factClass, String fieldName) {
+    private Widget connectiveValueEditor(final BaseSingleFieldConstraint con, String factClass, String fieldName) {
         String typeNumeric = this.modeller.getSuggestionCompletions().getFieldType( factClass, fieldName );
         return new ConstraintValueEditor(pattern, fieldName, con, this.modeller, typeNumeric,false);
     }

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/factPattern/PopupCreator.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/factPattern/PopupCreator.java	2010-06-15 15:54:44 UTC (rev 33511)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/factPattern/PopupCreator.java	2010-06-15 16:49:31 UTC (rev 33512)
@@ -94,8 +94,6 @@
      * Display a little editor for field bindings.
      */
     public void showBindFieldPopup(final Widget w, final SingleFieldConstraint con, String[] fields, final PopupCreator popupCreator) {
-
-
         final FormStylePopup popup = new FormStylePopup();
         popup.setWidth(500);
         final HorizontalPanel vn = new HorizontalPanel();
@@ -111,19 +109,19 @@
                     Window.alert(Format.format(constants.TheVariableName0IsAlreadyTaken(), var));
                     return;
                 }
-                con.fieldBinding = var;
+                con.setFieldBinding(var);
                 modeller.refreshWidget();
                 popup.hide();
             }
         });
-        popup.addAttribute(Format.format(constants.BindTheFieldCalled0ToAVariable(), con.fieldName), vn);
+        popup.addAttribute(Format.format(constants.BindTheFieldCalled0ToAVariable(), con.getFieldName()), vn);
         if (fields != null) {
             Button sub = new Button(constants.ShowSubFields());
-            popup.addAttribute(Format.format(constants.ApplyAConstraintToASubFieldOf0(), con.fieldName), sub);
+            popup.addAttribute(Format.format(constants.ApplyAConstraintToASubFieldOf0(), con.getFieldName()), sub);
             sub.addClickHandler(new ClickHandler() {
     			public void onClick(ClickEvent event) {
                     popup.hide();
-                    popupCreator.showPatternPopup(w, con.fieldType, con);
+                    popupCreator.showPatternPopup(w, con.getFieldType(), con);
                 }
             });
         }
@@ -247,7 +245,7 @@
             predicate.addClickHandler(new ClickHandler() {
     			public void onClick(ClickEvent event) {
                     SingleFieldConstraint con = new SingleFieldConstraint();
-                    con.constraintValueType = SingleFieldConstraint.TYPE_PREDICATE;
+                    con.setConstraintValueType(SingleFieldConstraint.TYPE_PREDICATE);
                     pattern.addConstraint(con);
                     modeller.refreshWidget();
                     popup.hide();
@@ -260,7 +258,7 @@
             ebBtn.addClickHandler(new ClickHandler() {
     			public void onClick(ClickEvent event) {
                     SingleFieldConstraintEBLeftSide con = new SingleFieldConstraintEBLeftSide();
-                    con.constraintValueType = SingleFieldConstraint.TYPE_UNDEFINED;
+                    con.setConstraintValueType(SingleFieldConstraint.TYPE_UNDEFINED);
                     pattern.addConstraint(con);
                     con.setExpressionLeftSide(new ExpressionFormLine(new ExpressionUnboundFact(pattern)));
                     modeller.refreshWidget();

Modified: labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/ServiceImplementationTest.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/ServiceImplementationTest.java	2010-06-15 15:54:44 UTC (rev 33511)
+++ labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/ServiceImplementationTest.java	2010-06-15 16:49:31 UTC (rev 33512)
@@ -68,7 +68,7 @@
 import org.drools.ide.common.client.modeldriven.brl.ActionFieldValue;
 import org.drools.ide.common.client.modeldriven.brl.ActionSetField;
 import org.drools.ide.common.client.modeldriven.brl.FactPattern;
-import org.drools.ide.common.client.modeldriven.brl.ISingleFieldConstraint;
+import org.drools.ide.common.client.modeldriven.brl.BaseSingleFieldConstraint;
 import org.drools.ide.common.client.modeldriven.brl.PortableObject;
 import org.drools.ide.common.client.modeldriven.brl.RuleModel;
 import org.drools.ide.common.client.modeldriven.brl.SingleFieldConstraint;
@@ -2104,8 +2104,8 @@
         FactPattern pattern = new FactPattern( "Person" );
 
         SingleFieldConstraint con = new SingleFieldConstraint();
-        con.constraintValueType = ISingleFieldConstraint.TYPE_PREDICATE;
-        con.value = "name soundslike 'foobar'";
+        con.setConstraintValueType(BaseSingleFieldConstraint.TYPE_PREDICATE);
+        con.setValue("name soundslike 'foobar'");
         pattern.addConstraint( con );
 
         pattern.boundName = "p";
@@ -2540,10 +2540,10 @@
         FactPattern p = new FactPattern( "Person" );
         p.boundName = "p";
         SingleFieldConstraint con = new SingleFieldConstraint();
-        con.fieldName = "name";
-        con.value = "mark";
-        con.operator = "==";
-        con.constraintValueType = SingleFieldConstraint.TYPE_LITERAL;
+        con.setFieldName("name");
+        con.setValue("mark");
+        con.setOperator("==");
+        con.setConstraintValueType(SingleFieldConstraint.TYPE_LITERAL);
 
         p.addConstraint( con );
 
@@ -3423,7 +3423,7 @@
         GuidedDecisionTable dt = new GuidedDecisionTable();
         ConditionCol col = new ConditionCol();
         col.boundName = "p";
-        col.constraintValueType = ISingleFieldConstraint.TYPE_LITERAL;
+        col.constraintValueType = BaseSingleFieldConstraint.TYPE_LITERAL;
         col.factField = "hair";
         col.factType = "Person";
         col.operator = "==";

Modified: labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/util/BRDRTPersistenceTest.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/util/BRDRTPersistenceTest.java	2010-06-15 15:54:44 UTC (rev 33511)
+++ labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/util/BRDRTPersistenceTest.java	2010-06-15 16:49:31 UTC (rev 33512)
@@ -10,7 +10,7 @@
 import org.drools.ide.common.client.modeldriven.brl.FreeFormLine;
 import org.drools.ide.common.client.modeldriven.brl.IAction;
 import org.drools.ide.common.client.modeldriven.brl.IPattern;
-import org.drools.ide.common.client.modeldriven.brl.ISingleFieldConstraint;
+import org.drools.ide.common.client.modeldriven.brl.BaseSingleFieldConstraint;
 import org.drools.ide.common.client.modeldriven.brl.SingleFieldConstraint;
 import org.drools.ide.common.client.modeldriven.dt.TemplateModel;
 import org.drools.ide.common.server.util.BRLPersistence;
@@ -63,11 +63,11 @@
         fp.boundName = "$p";
         
         SingleFieldConstraint sfc = new SingleFieldConstraint("name");
-        sfc.fieldName = "name";
-        sfc.value = "name";
-        sfc.operator = "==";
+        sfc.setFieldName("name");
+        sfc.setValue("name");
+        sfc.setOperator("==");
         	
-        sfc.constraintValueType = ISingleFieldConstraint.TYPE_TEMPLATE;
+        sfc.setConstraintValueType(BaseSingleFieldConstraint.TYPE_TEMPLATE);
         fp.addConstraint(sfc);
         
         m.lhs[0] = fp;
@@ -110,11 +110,11 @@
 		fp.boundName = "$p";
 
 		SingleFieldConstraint sfc = new SingleFieldConstraint("name");
-		sfc.fieldName = "name";
-		sfc.value = "name";
-		sfc.operator = "==";
+		sfc.setFieldName("name");
+		sfc.setValue("name");
+		sfc.setOperator("==");
 
-		sfc.constraintValueType = ISingleFieldConstraint.TYPE_TEMPLATE;
+		sfc.setConstraintValueType(BaseSingleFieldConstraint.TYPE_TEMPLATE);
 		fp.addConstraint(sfc);
 
 		m.lhs[0] = fp;
@@ -171,11 +171,11 @@
         fp.boundName = "$p";
         
         SingleFieldConstraint sfc = new SingleFieldConstraint("name");
-        sfc.fieldName = "name";
-        sfc.value = "name";
-        sfc.operator = "==";
+        sfc.setFieldName("name");
+        sfc.setValue("name");
+        sfc.setOperator("==");
         	
-        sfc.constraintValueType = ISingleFieldConstraint.TYPE_TEMPLATE;
+        sfc.setConstraintValueType(BaseSingleFieldConstraint.TYPE_TEMPLATE);
         fp.addConstraint(sfc);
         
         m.lhs[0] = fp;
@@ -221,11 +221,11 @@
         fp.boundName = "$p";
         
         SingleFieldConstraint sfc = new SingleFieldConstraint("name");
-        sfc.fieldName = "name";
-        sfc.value = "name";
-        sfc.operator = "==";
+        sfc.setFieldName("name");
+        sfc.setValue("name");
+        sfc.setOperator("==");
         	
-        sfc.constraintValueType = ISingleFieldConstraint.TYPE_TEMPLATE;
+        sfc.setConstraintValueType(BaseSingleFieldConstraint.TYPE_TEMPLATE);
         fp.addConstraint(sfc);
         
         m.lhs[0] = fp;
@@ -265,11 +265,11 @@
         fp.boundName = "$p";
         
         SingleFieldConstraint sfc = new SingleFieldConstraint("name");
-        sfc.fieldName = "name";
-        sfc.value = "name";
-        sfc.operator = "==";
+        sfc.setFieldName("name");
+        sfc.setValue("name");
+        sfc.setOperator("==");
         	
-        sfc.constraintValueType = ISingleFieldConstraint.TYPE_TEMPLATE;
+        sfc.setConstraintValueType(BaseSingleFieldConstraint.TYPE_TEMPLATE);
         fp.addConstraint(sfc);
         
         m.lhs[0] = fp;
@@ -299,18 +299,18 @@
         fp.boundName = "$p";
         
         SingleFieldConstraint sfc = new SingleFieldConstraint("name");
-        sfc.fieldName = "name";
-        sfc.value = "name";
-        sfc.operator = "==";
-        sfc.constraintValueType = ISingleFieldConstraint.TYPE_TEMPLATE;
+        sfc.setFieldName("name");
+        sfc.setValue("name");
+        sfc.setOperator("==");
+        sfc.setConstraintValueType(BaseSingleFieldConstraint.TYPE_TEMPLATE);
         
         fp.addConstraint(sfc);
         
         sfc = new SingleFieldConstraint("age");
-        sfc.fieldName = "age";
-        sfc.value = "age";
-        sfc.operator = "==";
-        sfc.constraintValueType = ISingleFieldConstraint.TYPE_TEMPLATE;
+        sfc.setFieldName("age");
+        sfc.setValue("age");
+        sfc.setOperator("==");
+        sfc.setConstraintValueType(BaseSingleFieldConstraint.TYPE_TEMPLATE);
         
         fp.addConstraint(sfc);
         

Modified: labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/ide/common/client/modeldriven/SuggestionCompletionEngine.java
===================================================================
--- labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/ide/common/client/modeldriven/SuggestionCompletionEngine.java	2010-06-15 15:54:44 UTC (rev 33511)
+++ labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/ide/common/client/modeldriven/SuggestionCompletionEngine.java	2010-06-15 16:49:31 UTC (rev 33512)
@@ -275,12 +275,12 @@
                         if ( con instanceof SingleFieldConstraint ) {
                             SingleFieldConstraint sfc = (SingleFieldConstraint) con;
 
-                            if ( sfc.fieldName.trim().equals( typeField.trim() ) ) {
+                            if ( sfc.getFieldName().trim().equals( typeField.trim() ) ) {
                                 if ( addOpeninColumn ) {
                                     key += "[";
                                     addOpeninColumn = false;
                                 }
-                                key += typeField + "=" + sfc.value;
+                                key += typeField + "=" + sfc.getValue();
 
                                 if ( j != (splitTypeFields.length - 1) ) {
                                     key += ",";
@@ -316,8 +316,8 @@
                         FieldConstraint con = pat.constraintList.constraints[j];
                         if ( con instanceof SingleFieldConstraint ) {
                             SingleFieldConstraint sfc = (SingleFieldConstraint) con;
-                            if ( sfc.fieldName.equals( fieldsNeeded[i] ) ) {
-                                valuePairs[i] = fieldsNeeded[i] + "=" + sfc.value;
+                            if ( sfc.getFieldName().equals( fieldsNeeded[i] ) ) {
+                                valuePairs[i] = fieldsNeeded[i] + "=" + sfc.getValue();
                             }
                         }
                     }

Copied: labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/ide/common/client/modeldriven/brl/BaseSingleFieldConstraint.java (from rev 33493, labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/ide/common/client/modeldriven/brl/ISingleFieldConstraint.java)
===================================================================
--- labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/ide/common/client/modeldriven/brl/BaseSingleFieldConstraint.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/ide/common/client/modeldriven/brl/BaseSingleFieldConstraint.java	2010-06-15 16:49:31 UTC (rev 33512)
@@ -0,0 +1,72 @@
+package org.drools.ide.common.client.modeldriven.brl;
+
+/**
+ * Represents a constraint, which may be part of a direct field constraint or a connective.
+ * @author Michael Neale
+ *
+ */
+public class BaseSingleFieldConstraint
+    implements
+    PortableObject {
+
+    /**
+     * This is used only when constraint is first created.
+     * This means that there is no value yet for the constraint.
+     */
+    public static final int TYPE_UNDEFINED = 0;
+
+    /**
+     * This may be string, or number, anything really.
+     */
+    public static final int TYPE_LITERAL   = 1;
+
+    /**
+     * This is when it is set to a valid previously bound variable.
+     */
+    public static final int TYPE_VARIABLE  = 2;
+
+    /**
+     * This is for a "formula" that calculates a value.
+     */
+    public static final int TYPE_RET_VALUE = 3;
+
+    /**
+     * This is not used yet. ENUMs are not suitable for business rules
+     * until we can get data driven non code enums.
+     */
+    public static final int TYPE_ENUM      = 4;
+
+    /**
+     * The fieldName and fieldBinding is not used in the case of a predicate.
+     */
+    public static final int TYPE_PREDICATE = 5;
+
+    /**
+     * This is for a "expression builder" that calculates a value.
+     */
+    public static final int TYPE_EXPR_BUILDER_VALUE = 6;
+    
+    /**
+     * This is for a field to be a placeholder for a template
+     */
+    public static final int TYPE_TEMPLATE = 7;
+
+    private String           value;
+    private int              constraintValueType;
+    
+	public void setValue(String value) {
+		this.value = value;
+	}
+
+	public String getValue() {
+		return value;
+	}
+
+	public void setConstraintValueType(int constraintValueType) {
+		this.constraintValueType = constraintValueType;
+	}
+
+	public int getConstraintValueType() {
+		return constraintValueType;
+	}
+}

Modified: labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/ide/common/client/modeldriven/brl/ConnectiveConstraint.java
===================================================================
--- labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/ide/common/client/modeldriven/brl/ConnectiveConstraint.java	2010-06-15 15:54:44 UTC (rev 33511)
+++ labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/ide/common/client/modeldriven/brl/ConnectiveConstraint.java	2010-06-15 16:49:31 UTC (rev 33512)
@@ -4,7 +4,7 @@
  * This is for a connective constraint that adds more options to a field constraint. 
  * @author Michael Neale
  */
-public class ConnectiveConstraint extends ISingleFieldConstraint {
+public class ConnectiveConstraint extends BaseSingleFieldConstraint {
 
     public ConnectiveConstraint() {
     }
@@ -16,7 +16,7 @@
     	this.fieldName = fieldName;
     	this.fieldType = fieldType;
         this.operator = opr;
-        this.value = val;
+        this.setValue(val);
     }
 
     public String operator;

Modified: labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/ide/common/client/modeldriven/brl/ExpressionFormLine.java
===================================================================
--- labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/ide/common/client/modeldriven/brl/ExpressionFormLine.java	2010-06-15 15:54:44 UTC (rev 33511)
+++ labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/ide/common/client/modeldriven/brl/ExpressionFormLine.java	2010-06-15 16:49:31 UTC (rev 33512)
@@ -5,7 +5,7 @@
 
 public class ExpressionFormLine implements IAction, IPattern, Cloneable {
 	
-    private String bindVariable = null;
+    private String binding = null;
 	private LinkedList<ExpressionPart> parts = new LinkedList<ExpressionPart>() ;
     
     public ExpressionFormLine() {}
@@ -22,8 +22,14 @@
 		}
 	}
 
+	public String getText(boolean renderBindVariable) {
+		return new ToStringVisitor().buildString(
+				renderBindVariable ? getBinding() : null, 
+						getRootExpression());
+	}
+	
 	public String getText() {
-		return new ToStringVisitor().buildString(getBindVariable(), getRootExpression());
+		return getText(false);
 	}
 	
 	public void appendPart(ExpressionPart part) {
@@ -87,15 +93,15 @@
 	}
 
 	public boolean isBound() {
-		return bindVariable != null;
+		return binding != null;
 	}
 	
-	public String getBindVariable() {
-		return bindVariable;
+	public String getBinding() {
+		return binding;
 	}
 
-	public void setBindVariable(String bindVariable) {
-		this.bindVariable = bindVariable;
+	public void setBinding(String binding) {
+		this.binding = binding;
 	}
 
 	private static class ToStringVisitor implements ExpressionVisitor {
@@ -106,10 +112,10 @@
 			if (exp == null) {
 				return "";
 			}
-			str = new StringBuilder(bindVariable == null ? "" : bindVariable );
+			str = new StringBuilder( );
 			first = true;
 			exp.accept(this);
-			return str.toString();
+			return (bindVariable == null ? "" : bindVariable + ": ") + str.toString();
 		}
 		
 		public void visit(ExpressionPart part) {
@@ -143,7 +149,6 @@
 		public void visit(ExpressionUnboundFact part) {
 			moveNext(part, false);
 		}
-
 		
 		public void visit(ExpressionGlobalVariable part) {
 			str.append(part.getName());
@@ -175,7 +180,7 @@
 			ToStringVisitor stringVisitor = new ToStringVisitor();
 			StringBuilder strParams = new StringBuilder();
 			for (ExpressionFormLine param : params.values()) {
-				strParams.append(", ").append(stringVisitor.buildString(param.getBindVariable(), param.getRootExpression()));
+				strParams.append(", ").append(stringVisitor.buildString(param.getBinding(), param.getRootExpression()));
 			}
 			return strParams.substring(2);
 		}

Deleted: labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/ide/common/client/modeldriven/brl/ISingleFieldConstraint.java
===================================================================
--- labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/ide/common/client/modeldriven/brl/ISingleFieldConstraint.java	2010-06-15 15:54:44 UTC (rev 33511)
+++ labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/ide/common/client/modeldriven/brl/ISingleFieldConstraint.java	2010-06-15 16:49:31 UTC (rev 33512)
@@ -1,63 +0,0 @@
-package org.drools.ide.common.client.modeldriven.brl;
-
-/**
- * Represents a constraint, which may be part of a direct field constraint or a connective.
- * @author Michael Neale
- *
- */
-public class ISingleFieldConstraint
-    implements
-    PortableObject {
-
-    /**
-     * This is used only when constraint is first created.
-     * This means that there is no value yet for the constraint.
-     */
-    public static final int TYPE_UNDEFINED = 0;
-
-    /**
-     * This may be string, or number, anything really.
-     */
-    public static final int TYPE_LITERAL   = 1;
-
-    /**
-     * This is when it is set to a valid previously bound variable.
-     */
-    public static final int TYPE_VARIABLE  = 2;
-
-    /**
-     * This is for a "formula" that calculates a value.
-     */
-    public static final int TYPE_RET_VALUE = 3;
-
-    /**
-     * This is not used yet. ENUMs are not suitable for business rules
-     * until we can get data driven non code enums.
-     */
-    public static final int TYPE_ENUM      = 4;
-
-    /**
-     * The fieldName and fieldBinding is not used in the case of a predicate.
-     */
-    public static final int TYPE_PREDICATE = 5;
-
-    /**
-     * This is for a "expression builder" that calculates a value.
-     */
-    public static final int TYPE_EXPR_BUILDER_VALUE = 6;
-    
-    /**
-     * This is for a field to be a placeholder for a template
-     */
-    public static final int TYPE_TEMPLATE = 7;
-    
-    /**
-     * This is for a "expression builder" in the left side of a constraint.
-     */
-//    public static final int TYPE_EXPR_BUILDER_LEFT_SIDE = 8;
-
-    public String           value;
-    public int              constraintValueType;
-
-
-}

Modified: labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/ide/common/client/modeldriven/brl/RuleModel.java
===================================================================
--- labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/ide/common/client/modeldriven/brl/RuleModel.java	2010-06-15 15:54:44 UTC (rev 33511)
+++ labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/ide/common/client/modeldriven/brl/RuleModel.java	2010-06-15 16:49:31 UTC (rev 33512)
@@ -20,6 +20,7 @@
 
     public RuleModel() {
 	}
+    
     /**
      * This will return the fact pattern that a variable is bound to.
      *
@@ -42,20 +43,23 @@
         return null;
     }
 
-    public String getFieldConstraint(final String var) {
+    public String getBindingType(final String var) {
         if (this.lhs == null) {
             return null;
         }
         for (int i = 0; i < this.lhs.length; i++) {
-
             if (this.lhs[i] instanceof FactPattern) {
                 final FactPattern p = (FactPattern) this.lhs[i];
+                if (p.isBound() && var.equals(p.boundName) ) {
+                	return p.factType;
+                }
                 for (FieldConstraint z : p.getFieldConstraints()) {
-                    return giveFieldBinding(z,
-                            var);
+                    String type = giveFieldBinding(z, var);
+                    if (type != null) {
+                    	return type;
+                    }
                 }
             }
-
         }
         return null;
     }
@@ -64,8 +68,8 @@
             String var) {
         if (f instanceof SingleFieldConstraint) {
             SingleFieldConstraint s = (SingleFieldConstraint) f;
-            if (s.isBound() == true && var.equals(s.fieldBinding)) {
-                return s.fieldType;
+            if (s.isBound() && var.equals(s.getFieldBinding())) {
+                return s.getFieldType();
             }
         }
         if (f instanceof CompositeFieldConstraint) {
@@ -138,7 +142,7 @@
         if (f instanceof SingleFieldConstraint) {
             SingleFieldConstraint sfc = (SingleFieldConstraint) f;
             if (sfc.isBound()) {
-                result.add(sfc.fieldBinding);
+                result.add(sfc.getFieldBinding());
             }
         }
         if (f instanceof CompositeFieldConstraint) {
@@ -474,7 +478,7 @@
      * what bound variables are in scope for a given constraint (including connectives).
      * Does not take into account globals.
      */
-    public List<String> getBoundVariablesInScope(final ISingleFieldConstraint con) {
+    public List<String> getBoundVariablesInScope(final BaseSingleFieldConstraint con) {
         final List<String> result = new ArrayList<String>();
         for (int i = 0; i < this.lhs.length; i++) {
             final IPattern pat = this.lhs[i];
@@ -499,7 +503,7 @@
                                     }
                                 }
                                 if (c.isBound()) {
-                                    result.add(c.fieldBinding);
+                                    result.add(c.getFieldBinding());
                                 }
                             }
                         }
@@ -536,8 +540,18 @@
                     if (fc instanceof SingleFieldConstraint) {
                         SingleFieldConstraint con = (SingleFieldConstraint) fc;
                         if (con.isBound()) {
-                            result.add(con.fieldBinding);
+                            result.add(con.getFieldBinding());
+                        } 
+                        if (con.getExpressionValue() != null && con.getExpressionValue().isBound()) {
+                        	result.add(con.getExpressionValue().getBinding());
                         }
+                        if (con instanceof SingleFieldConstraintEBLeftSide) {
+                        	SingleFieldConstraintEBLeftSide exp = (SingleFieldConstraintEBLeftSide) con;
+                        	if (exp.getExpressionLeftSide() != null && exp.getExpressionLeftSide().isBound()) {
+                            	result.add(exp.getExpressionLeftSide().getBinding());
+                            }
+                        }
+                        
                     }
                 }
             }

Modified: labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/ide/common/client/modeldriven/brl/SingleFieldConstraint.java
===================================================================
--- labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/ide/common/client/modeldriven/brl/SingleFieldConstraint.java	2010-06-15 15:54:44 UTC (rev 33511)
+++ labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/ide/common/client/modeldriven/brl/SingleFieldConstraint.java	2010-06-15 16:49:31 UTC (rev 33512)
@@ -7,13 +7,13 @@
  * Can also include optional "connective constraints" that extend the options for matches.
  * @author Michael Neale
  */
-public class SingleFieldConstraint extends ISingleFieldConstraint implements FieldConstraint {
+public class SingleFieldConstraint extends BaseSingleFieldConstraint implements FieldConstraint {
 
-    public String                 fieldBinding;
-    public String                 fieldName;
-    public String                 operator;
-    public String                 fieldType;
-    public FieldConstraint  parent;
+    private String                 fieldBinding;
+    private String                 fieldName;
+    private String                 operator;
+    private String                 fieldType;
+    private FieldConstraint  parent;
 
     /**
      * Used instead of "value" when constraintValueType = TYPE_EXPR_BUILDER.
@@ -24,36 +24,44 @@
     public ConnectiveConstraint[] connectives;
 
     public SingleFieldConstraint(final String field, final String fieldType, final FieldConstraint parent) {
-        this.fieldName = field;
-        this.fieldType = fieldType;
-        this.parent = parent;
+        this.setFieldName(field);
+        this.setFieldType(fieldType);
+        this.setParent(parent);
     }
 
     public SingleFieldConstraint(final String field) {
-        this.fieldName = field;
-        this.fieldType = "";
-        this.parent = null;
+        this.setFieldName(field);
+        this.setFieldType("");
+        this.setParent(null);
     }
 
     public SingleFieldConstraint() {
-        this.fieldName = null;
-        this.fieldType = "";
-        this.parent = null;
+        this.setFieldName(null);
+        this.setFieldType("");
+        this.setParent(null);
     }
 
-    /**
+    public void setFieldBinding(String fieldBinding) {
+		this.fieldBinding = fieldBinding;
+	}
+
+	public String getFieldBinding() {
+		return fieldBinding;
+	}
+
+	/**
      * This adds a new connective.
      *
      */
     public void addNewConnective() {
         if ( this.connectives == null ) {
-            this.connectives = new ConnectiveConstraint[]{new ConnectiveConstraint(this.fieldName, this.fieldType, null, null)};
+            this.connectives = new ConnectiveConstraint[]{new ConnectiveConstraint(this.getFieldName(), this.getFieldType(), null, null)};
         } else {
             final ConnectiveConstraint[] newList = new ConnectiveConstraint[this.connectives.length + 1];
             for ( int i = 0; i < this.connectives.length; i++ ) {
                 newList[i] = this.connectives[i];
             }
-            newList[this.connectives.length] = new ConnectiveConstraint(this.fieldName, this.fieldType, null, null);
+            newList[this.connectives.length] = new ConnectiveConstraint(this.getFieldName(), this.getFieldType(), null, null);
             this.connectives = newList;
         }
     }
@@ -62,7 +70,7 @@
      * Returns true of there is a field binding.
      */
     public boolean isBound() {
-        return this.fieldBinding != null && this.fieldBinding.length() > 0; 
+        return this.getFieldBinding() != null && this.getFieldBinding().length() > 0; 
     }
 
     public ExpressionFormLine getExpressionValue() {
@@ -72,4 +80,36 @@
     public void setExpressionValue(ExpressionFormLine expression) {
         this.expression = expression;
     }
+
+	public void setFieldName(String fieldName) {
+		this.fieldName = fieldName;
+	}
+
+	public String getFieldName() {
+		return fieldName;
+	}
+
+	public void setOperator(String operator) {
+		this.operator = operator;
+	}
+
+	public String getOperator() {
+		return operator;
+	}
+
+	public void setFieldType(String fieldType) {
+		this.fieldType = fieldType;
+	}
+
+	public String getFieldType() {
+		return fieldType;
+	}
+
+	public void setParent(FieldConstraint parent) {
+		this.parent = parent;
+	}
+
+	public FieldConstraint getParent() {
+		return parent;
+	}
 }

Modified: labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/ide/common/client/modeldriven/brl/SingleFieldConstraintEBLeftSide.java
===================================================================
--- labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/ide/common/client/modeldriven/brl/SingleFieldConstraintEBLeftSide.java	2010-06-15 15:54:44 UTC (rev 33511)
+++ labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/ide/common/client/modeldriven/brl/SingleFieldConstraintEBLeftSide.java	2010-06-15 16:49:31 UTC (rev 33512)
@@ -19,13 +19,12 @@
 	}
 
 	private ExpressionFormLine expLeftSide = new ExpressionFormLine();
-
+	
     /**
      * Returns true of there is a field binding.
      */
     public boolean isBound() {
-        return super.isBound() 
-        	|| (expLeftSide != null && expLeftSide.isBound()) ;
+        return expLeftSide != null && expLeftSide.isBound();
     }
     
     public ExpressionFormLine getExpressionLeftSide() {
@@ -35,4 +34,20 @@
     public void setExpressionLeftSide(ExpressionFormLine expression) {
         this.expLeftSide = expression;
     }
+    
+    @Override
+    public String getFieldBinding() {
+    	return getExpressionLeftSide().getBinding();
+    }
+    
+    @Override
+    public void setFieldBinding(String fieldBinding) {
+    	getExpressionLeftSide().setBinding(fieldBinding);
+    }
+    
+    @Override
+    public String getFieldType() {
+    	return getExpressionLeftSide().getClassType();
+    }
+
 }

Modified: labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/ide/common/client/modeldriven/dt/GuidedDecisionTable.java
===================================================================
--- labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/ide/common/client/modeldriven/dt/GuidedDecisionTable.java	2010-06-15 15:54:44 UTC (rev 33511)
+++ labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/ide/common/client/modeldriven/dt/GuidedDecisionTable.java	2010-06-15 16:49:31 UTC (rev 33512)
@@ -5,7 +5,7 @@
 import java.util.List;
 
 import org.drools.ide.common.client.modeldriven.SuggestionCompletionEngine;
-import org.drools.ide.common.client.modeldriven.brl.ISingleFieldConstraint;
+import org.drools.ide.common.client.modeldriven.brl.BaseSingleFieldConstraint;
 import org.drools.ide.common.client.modeldriven.brl.PortableObject;
 
 /**
@@ -94,8 +94,8 @@
 			// conditions: if its a formula etc, just return String[0],
 			// otherwise check with the sce
 			ConditionCol c = (ConditionCol) col;
-			if (c.constraintValueType == ISingleFieldConstraint.TYPE_RET_VALUE
-					|| c.constraintValueType == ISingleFieldConstraint.TYPE_PREDICATE) {
+			if (c.constraintValueType == BaseSingleFieldConstraint.TYPE_RET_VALUE
+					|| c.constraintValueType == BaseSingleFieldConstraint.TYPE_PREDICATE) {
 				return new String[0];
 			} else {
 				if (c.valueList != null && !"".equals(c.valueList)) {
@@ -142,7 +142,7 @@
 			return "salience".equals(at.attr);
 		} else if (col instanceof ConditionCol) {
 			ConditionCol c = (ConditionCol) col;
-			if (c.constraintValueType == ISingleFieldConstraint.TYPE_LITERAL) {
+			if (c.constraintValueType == BaseSingleFieldConstraint.TYPE_LITERAL) {
 				if (c.operator == null || "".equals(c.operator)) {
 					return false;
 				}

Modified: labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/ide/common/client/modeldriven/dt/TemplateModel.java
===================================================================
--- labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/ide/common/client/modeldriven/dt/TemplateModel.java	2010-06-15 15:54:44 UTC (rev 33511)
+++ labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/ide/common/client/modeldriven/dt/TemplateModel.java	2010-06-15 16:49:31 UTC (rev 33512)
@@ -18,7 +18,7 @@
 import org.drools.ide.common.client.modeldriven.brl.FromCompositeFactPattern;
 import org.drools.ide.common.client.modeldriven.brl.IAction;
 import org.drools.ide.common.client.modeldriven.brl.IPattern;
-import org.drools.ide.common.client.modeldriven.brl.ISingleFieldConstraint;
+import org.drools.ide.common.client.modeldriven.brl.BaseSingleFieldConstraint;
 import org.drools.ide.common.client.modeldriven.brl.PortableObject;
 import org.drools.ide.common.client.modeldriven.brl.RuleModel;
 import org.drools.ide.common.client.modeldriven.brl.SingleFieldConstraint;
@@ -240,8 +240,8 @@
         }
         
 		private void visitSingleFieldConstraint(SingleFieldConstraint sfc) {
-        	if (ISingleFieldConstraint.TYPE_TEMPLATE == sfc.constraintValueType && !vars.containsKey(sfc.value)) {
-        		vars.put(sfc.value, vars.size());
+        	if (BaseSingleFieldConstraint.TYPE_TEMPLATE == sfc.getConstraintValueType() && !vars.containsKey(sfc.getValue())) {
+        		vars.put(sfc.getValue(), vars.size());
         	}
         }
 

Modified: labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/ide/common/server/util/BRDRLPersistence.java
===================================================================
--- labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/ide/common/server/util/BRDRLPersistence.java	2010-06-15 15:54:44 UTC (rev 33511)
+++ labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/ide/common/server/util/BRDRLPersistence.java	2010-06-15 16:49:31 UTC (rev 33512)
@@ -389,42 +389,42 @@
 
         private void generateSingleFieldConstraint(
                 final SingleFieldConstraint constr, StringBuilder buf) {
-            if (constr.constraintValueType == ISingleFieldConstraint.TYPE_PREDICATE) {
+            if (constr.getConstraintValueType() == BaseSingleFieldConstraint.TYPE_PREDICATE) {
                 buf.append("eval( ");
-                buf.append(constr.value);
+                buf.append(constr.getValue());
                 buf.append(" )");
             } else {
-                if (constr.fieldBinding != null) {
-                    buf.append(constr.fieldBinding);
+                if (constr.getFieldBinding() != null) {
+                    buf.append(constr.getFieldBinding());
                     buf.append(" : ");
                 }
-                if ((constr.operator != null && constr.value != null)
-                        || constr.fieldBinding != null 
-                        || constr.constraintValueType == ISingleFieldConstraint.TYPE_EXPR_BUILDER_VALUE
+                if ((constr.getOperator() != null && constr.getValue() != null)
+                        || constr.getFieldBinding() != null 
+                        || constr.getConstraintValueType() == BaseSingleFieldConstraint.TYPE_EXPR_BUILDER_VALUE
                         || constr instanceof SingleFieldConstraintEBLeftSide) {
-                    SingleFieldConstraint parent = (SingleFieldConstraint) constr.parent;
+                    SingleFieldConstraint parent = (SingleFieldConstraint) constr.getParent();
                     StringBuilder parentBuf = new StringBuilder();
                     while (parent != null) {
-                        parentBuf.insert(0, parent.fieldName + ".");
-                        parent = (SingleFieldConstraint) parent.parent;
+                        parentBuf.insert(0, parent.getFieldName() + ".");
+                        parent = (SingleFieldConstraint) parent.getParent();
                     }
                     buf.append(parentBuf);
                     if (constr instanceof SingleFieldConstraintEBLeftSide) {
                     	buf.append(((SingleFieldConstraintEBLeftSide) constr).getExpressionLeftSide().getText());
                     } else {
-                    	buf.append(constr.fieldName);
+                    	buf.append(constr.getFieldName());
                     }
                 }
                 
-                addFieldRestriction(buf, constr.constraintValueType, constr.operator, constr.value, constr
+                addFieldRestriction(buf, constr.getConstraintValueType(), constr.getOperator(), constr.getValue(), constr
                 		.getExpressionValue());
                 
 				// and now do the connectives.
                 if (constr.connectives != null) {
                     for (int j = 0; j < constr.connectives.length; j++) {
                         final ConnectiveConstraint conn = constr.connectives[j];
-                        addFieldRestriction(buf, conn.constraintValueType,
-                                conn.operator, conn.value,null);
+                        addFieldRestriction(buf, conn.getConstraintValueType(),
+                                conn.operator, conn.getValue(),null);
                     }
                 }
             }
@@ -441,12 +441,12 @@
             buf.append(operator);
             buf.append(" ");
             switch (type) {
-                case ISingleFieldConstraint.TYPE_RET_VALUE:
+                case BaseSingleFieldConstraint.TYPE_RET_VALUE:
                     buf.append("( ");
                     buf.append(value);
                     buf.append(" )");
                     break;
-                case ISingleFieldConstraint.TYPE_LITERAL:
+                case BaseSingleFieldConstraint.TYPE_LITERAL:
                     if (operator.equals("in")) {
                         buf.append(value);
                     } else {
@@ -455,12 +455,12 @@
                         buf.append('"');
                     }
                     break;
-                case ISingleFieldConstraint.TYPE_EXPR_BUILDER_VALUE:
+                case BaseSingleFieldConstraint.TYPE_EXPR_BUILDER_VALUE:
                     if (expression!=null){
                         buf.append(expression.getText());
                     }
                     break;
-                case ISingleFieldConstraint.TYPE_TEMPLATE:
+                case BaseSingleFieldConstraint.TYPE_TEMPLATE:
                 	buf.append("@{").append(value).append("}");
                 	break;
                 default:

Modified: labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/ide/common/server/util/GuidedDTDRLPersistence.java
===================================================================
--- labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/ide/common/server/util/GuidedDTDRLPersistence.java	2010-06-15 15:54:44 UTC (rev 33511)
+++ labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/ide/common/server/util/GuidedDTDRLPersistence.java	2010-06-15 16:49:31 UTC (rev 33512)
@@ -12,7 +12,7 @@
 import org.drools.ide.common.client.modeldriven.brl.FactPattern;
 import org.drools.ide.common.client.modeldriven.brl.IAction;
 import org.drools.ide.common.client.modeldriven.brl.IPattern;
-import org.drools.ide.common.client.modeldriven.brl.ISingleFieldConstraint;
+import org.drools.ide.common.client.modeldriven.brl.BaseSingleFieldConstraint;
 import org.drools.ide.common.client.modeldriven.brl.RuleAttribute;
 import org.drools.ide.common.client.modeldriven.brl.RuleMetadata;
 import org.drools.ide.common.client.modeldriven.brl.RuleModel;
@@ -169,38 +169,38 @@
 
 				//now add the constraint from this cell
 				switch (c.constraintValueType) {
-					case ISingleFieldConstraint.TYPE_LITERAL:
-					case ISingleFieldConstraint.TYPE_RET_VALUE:
+					case BaseSingleFieldConstraint.TYPE_LITERAL:
+					case BaseSingleFieldConstraint.TYPE_RET_VALUE:
 						SingleFieldConstraint sfc = new SingleFieldConstraint(c.factField);
 						if (no(c.operator)) {
 
 							String[] a = cell.split("\\s");
 							if (a.length > 1) {
-								sfc.operator = a[0];
-								sfc.value = a[1];
+								sfc.setOperator(a[0]);
+								sfc.setValue(a[1]);
 							} else {
-								sfc.value = cell;
+								sfc.setValue(cell);
 							}
 						} else {
-							sfc.operator = c.operator;
+							sfc.setOperator(c.operator);
                             if (c.operator.equals("in")) {
-                                sfc.value = makeInList(cell);
+                                sfc.setValue(makeInList(cell));
                             } else {
-                                sfc.value = cell;
+                                sfc.setValue(cell);
                             }
 
 						}
-						sfc.constraintValueType = c.constraintValueType;
+						sfc.setConstraintValueType(c.constraintValueType);
 						fp.addConstraint(sfc);
 						break;
-					case ISingleFieldConstraint.TYPE_PREDICATE:
+					case BaseSingleFieldConstraint.TYPE_PREDICATE:
 						SingleFieldConstraint pred = new SingleFieldConstraint();
-						pred.constraintValueType = c.constraintValueType;
+						pred.setConstraintValueType(c.constraintValueType);
                         if (c.factField != null && c.factField.indexOf("$param") > -1) {
                             //handle interpolation
-                            pred.value = c.factField.replace("$param", cell);  
+                            pred.setValue(c.factField.replace("$param", cell));  
                         } else {
-						    pred.value = cell;
+						    pred.setValue(cell);
                         }
 						fp.addConstraint(pred);
 						break;

Modified: labs/jbossrules/trunk/drools-ide-common/src/test/java/org/drools/ide/common/client/modeldriven/SuggestionCompletionEngineTest.java
===================================================================
--- labs/jbossrules/trunk/drools-ide-common/src/test/java/org/drools/ide/common/client/modeldriven/SuggestionCompletionEngineTest.java	2010-06-15 15:54:44 UTC (rev 33511)
+++ labs/jbossrules/trunk/drools-ide-common/src/test/java/org/drools/ide/common/client/modeldriven/SuggestionCompletionEngineTest.java	2010-06-15 16:49:31 UTC (rev 33512)
@@ -113,7 +113,7 @@
 
         FactPattern pat = new FactPattern( "Fact" );
         SingleFieldConstraint f1 = new SingleFieldConstraint( "f1" );
-        f1.value = "a1";
+        f1.setValue("a1");
         pat.addConstraint( f1 );
         pat.addConstraint( new SingleFieldConstraint( "f2" ) );
 
@@ -368,7 +368,7 @@
 
         FactPattern pat = new FactPattern( "Fact" );
         SingleFieldConstraint sfc = new SingleFieldConstraint( "type" );
-        sfc.value = "sex";
+        sfc.setValue("sex");
         pat.addConstraint( sfc );
         String[] result = sce.getEnums( pat,
                                         "value" ).fixedList;
@@ -381,7 +381,7 @@
 
         pat = new FactPattern( "Fact" );
         sfc = new SingleFieldConstraint( "type" );
-        sfc.value = "colour";
+        sfc.setValue("colour");
         pat.addConstraint( sfc );
 
         result = sce.getEnums( pat,
@@ -442,10 +442,10 @@
 
         FactPattern pat = new FactPattern( "Fact" );
         SingleFieldConstraint sfc = new SingleFieldConstraint( "field1" );
-        sfc.value = "a1";
+        sfc.setValue("a1");
         pat.addConstraint( sfc );
         SingleFieldConstraint sfc2 = new SingleFieldConstraint( "field2" );
-        sfc2.value = "b1";
+        sfc2.setValue("b1");
         pat.addConstraint( sfc2 );
 
         String[] result = sce.getEnums( pat,
@@ -479,23 +479,23 @@
 
         FactPattern pat = new FactPattern( "Fact" );
         SingleFieldConstraint sfc = new SingleFieldConstraint( "field1" );
-        sfc.value = "a1";
+        sfc.setValue("a1");
         pat.addConstraint( sfc );
         SingleFieldConstraint sfc2 = new SingleFieldConstraint( "field2" );
-        sfc2.value = "b2";
+        sfc2.setValue("b2");
         pat.addConstraint( sfc2 );
         SingleFieldConstraint sfc3 = new SingleFieldConstraint( "field3" );
-        sfc3.value = "c3";
+        sfc3.setValue("c3");
         pat.addConstraint( sfc3 );
         SingleFieldConstraint sfc4 = new SingleFieldConstraint( "longerField4" );
-        sfc4.value = "d1";
+        sfc4.setValue("d1");
         pat.addConstraint( sfc4 );
 
         assertNull( sce.getEnums( pat,
                                   "field6" ) );
 
         SingleFieldConstraint sfc5 = new SingleFieldConstraint( "field5" );
-        sfc5.value = "e2";
+        sfc5.setValue("e2");
         pat.addConstraint( sfc5 );
 
         String[] result2 = sce.getEnums( pat,
@@ -539,10 +539,10 @@
 
         FactPattern pat = new FactPattern( "Fact" );
         SingleFieldConstraint sfc = new SingleFieldConstraint( "f1" );
-        sfc.value = "f1val";
+        sfc.setValue("f1val");
         pat.addConstraint( sfc );
         sfc = new SingleFieldConstraint( "f2" );
-        sfc.value = "f2val";
+        sfc.setValue("f2val");
         pat.addConstraint( sfc );
 
         DropDownData dd = sce.getEnums( pat,
@@ -618,10 +618,10 @@
         
         FactPattern pat = new FactPattern( "Fact" );
         SingleFieldConstraint sfc = new SingleFieldConstraint( "f1" );
-        sfc.value = "f1val";
+        sfc.setValue("f1val");
         pat.addConstraint( sfc );
         sfc = new SingleFieldConstraint( "f2" );
-        sfc.value = "f2val";
+        sfc.setValue("f2val");
         pat.addConstraint( sfc );
         
         DropDownData dd = sce.getEnums( pat,

Modified: labs/jbossrules/trunk/drools-ide-common/src/test/java/org/drools/ide/common/modeldriven/RuleModelTest.java
===================================================================
--- labs/jbossrules/trunk/drools-ide-common/src/test/java/org/drools/ide/common/modeldriven/RuleModelTest.java	2010-06-15 15:54:44 UTC (rev 33511)
+++ labs/jbossrules/trunk/drools-ide-common/src/test/java/org/drools/ide/common/modeldriven/RuleModelTest.java	2010-06-15 16:49:31 UTC (rev 33512)
@@ -13,7 +13,7 @@
 import org.drools.ide.common.client.modeldriven.brl.FactPattern;
 import org.drools.ide.common.client.modeldriven.brl.IAction;
 import org.drools.ide.common.client.modeldriven.brl.IPattern;
-import org.drools.ide.common.client.modeldriven.brl.ISingleFieldConstraint;
+import org.drools.ide.common.client.modeldriven.brl.BaseSingleFieldConstraint;
 import org.drools.ide.common.client.modeldriven.brl.RuleAttribute;
 import org.drools.ide.common.client.modeldriven.brl.RuleMetadata;
 import org.drools.ide.common.client.modeldriven.brl.RuleModel;
@@ -63,11 +63,11 @@
 
 		SingleFieldConstraint sfc = new SingleFieldConstraint("q");
 		x.addConstraint(sfc);
-		sfc.fieldBinding = "field1";
+		sfc.setFieldBinding("field1");
 
 		SingleFieldConstraint sfc2 = new SingleFieldConstraint("q");
 		x.addConstraint(sfc2);
-		sfc2.fieldBinding = "field2";
+		sfc2.setFieldBinding("field2");
 
 		model.lhs[1] = new CompositeFactPattern();
 
@@ -114,16 +114,16 @@
 		y.constraintList = new CompositeFieldConstraint();
 		y.constraintList.constraints = cons;
 		cons[0] = new SingleFieldConstraint("age");
-		cons[0].fieldBinding = "qbc";
-		cons[0].fieldType = "String";
+		cons[0].setFieldBinding("qbc");
+		cons[0].setFieldType("String");
 		cons[0].connectives = new ConnectiveConstraint[1];
 		cons[0].connectives[0] = new ConnectiveConstraint("age", "String", "&", "x");
-		cons[0].connectives[0].constraintValueType = ISingleFieldConstraint.TYPE_LITERAL;
+		cons[0].connectives[0].setConstraintValueType(BaseSingleFieldConstraint.TYPE_LITERAL);
 		cons[1] = new SingleFieldConstraint("make");
-		cons[1].fieldType = "Long";
+		cons[1].setFieldType("Long");
 		cons[1].connectives = new ConnectiveConstraint[1];
 		cons[1].connectives[0] = new ConnectiveConstraint("make", "Long", "=", "2");
-		cons[1].connectives[0].constraintValueType = ISingleFieldConstraint.TYPE_LITERAL;
+		cons[1].connectives[0].setConstraintValueType(BaseSingleFieldConstraint.TYPE_LITERAL);
 
 
 		final FactPattern other = new FactPattern("House");
@@ -338,10 +338,10 @@
 		y.constraintList.constraints = cons;
 		cons[0] = new SingleFieldConstraint("age");
 		cons[1] = new SingleFieldConstraint("make");
-		cons[0].fieldBinding = "qbc";
+		cons[0].setFieldBinding("qbc");
 		cons[0].connectives = new ConnectiveConstraint[1];
 		cons[0].connectives[0] = new ConnectiveConstraint("age", null, "&", "x");
-		cons[0].connectives[0].constraintValueType = ISingleFieldConstraint.TYPE_LITERAL;
+		cons[0].connectives[0].setConstraintValueType(BaseSingleFieldConstraint.TYPE_LITERAL);
 
 		final FactPattern other = new FactPattern("House");
 		model.lhs[2] = other;
@@ -383,11 +383,11 @@
 		cf.addConstraint(new SingleFieldConstraint("x"));
 		p.addConstraint(cf);
 		SingleFieldConstraint sf = new SingleFieldConstraint("q");
-		sf.fieldBinding = "abc";
+		sf.setFieldBinding("abc");
 
 		p.addConstraint(sf);
 		SingleFieldConstraint sf2 = new SingleFieldConstraint("q");
-		sf2.fieldBinding = "qed";
+		sf2.setFieldBinding("qed");
 		cf.addConstraint(sf2);
 		m.addLhsItem(p);
 
@@ -410,16 +410,16 @@
 		y.constraintList = new CompositeFieldConstraint();
 		y.constraintList.constraints = cons;
 		cons[0] = new SingleFieldConstraint("age");
-		cons[0].fieldBinding = "qbc";
-		cons[0].fieldType = "String";
+		cons[0].setFieldBinding("qbc");
+		cons[0].setFieldType("String");
 		cons[0].connectives = new ConnectiveConstraint[1];
 		cons[0].connectives[0] = new ConnectiveConstraint("age", "String", "&", "x");
-		cons[0].connectives[0].constraintValueType = ISingleFieldConstraint.TYPE_LITERAL;
+		cons[0].connectives[0].setConstraintValueType(BaseSingleFieldConstraint.TYPE_LITERAL);
 		cons[1] = new SingleFieldConstraint("make");
-		cons[1].fieldType = "Long";
+		cons[1].setFieldType("Long");
 		cons[1].connectives = new ConnectiveConstraint[1];
 		cons[1].connectives[0] = new ConnectiveConstraint("make", "Long", "=", "2");
-		cons[1].connectives[0].constraintValueType = ISingleFieldConstraint.TYPE_LITERAL;
+		cons[1].connectives[0].setConstraintValueType(BaseSingleFieldConstraint.TYPE_LITERAL);
 
 		final FactPattern other = new FactPattern("House");
 		model.lhs[2] = other;
@@ -428,9 +428,9 @@
 		cons2[0] = new SingleFieldConstraint();
 		other.constraintList = new CompositeFieldConstraint();
 		other.constraintList.constraints = cons2;
-		String varTypeString = model.getFieldConstraint("qbc");
+		String varTypeString = model.getBindingType("qbc");
 		assertEquals("String", varTypeString);
-		String varTypeLong = model.getFieldConstraint("make");
+		String varTypeLong = model.getBindingType("make");
 		assertEquals(null, varTypeLong);
 		FactPattern varTypeBoat = model.getBoundFact("x");
 		assertEquals("Boat", varTypeBoat.factType);

Added: labs/jbossrules/trunk/drools-ide-common/src/test/java/org/drools/ide/common/modeldriven/brl/ExpressionFormLineTest.java
===================================================================
--- labs/jbossrules/trunk/drools-ide-common/src/test/java/org/drools/ide/common/modeldriven/brl/ExpressionFormLineTest.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-ide-common/src/test/java/org/drools/ide/common/modeldriven/brl/ExpressionFormLineTest.java	2010-06-15 16:49:31 UTC (rev 33512)
@@ -0,0 +1,28 @@
+package org.drools.ide.common.modeldriven.brl;
+
+import org.drools.ide.common.client.modeldriven.SuggestionCompletionEngine;
+import org.drools.ide.common.client.modeldriven.brl.ExpressionFormLine;
+import org.drools.ide.common.client.modeldriven.brl.ExpressionMethod;
+import org.drools.ide.common.client.modeldriven.brl.ExpressionVariable;
+import org.drools.ide.common.client.modeldriven.brl.FactPattern;
+import org.junit.Assert;
+import org.junit.Test;
+
+public class ExpressionFormLineTest {
+
+	@Test
+	public void toStringText() {
+		ExpressionFormLine efl = new ExpressionFormLine();
+		FactPattern fact = new FactPattern();
+		fact.boundName = "$v";
+		fact.factType = "String";
+		efl.appendPart(new ExpressionVariable(fact));
+		efl.appendPart(new ExpressionMethod("size", "int", SuggestionCompletionEngine.TYPE_NUMERIC));
+		Assert.assertEquals("$v.size()", efl.getText());
+		
+		efl.setBinding("$s");
+		
+		Assert.assertEquals("$s: $v.size()", efl.getText(true));
+		
+	}
+}


Property changes on: labs/jbossrules/trunk/drools-ide-common/src/test/java/org/drools/ide/common/modeldriven/brl/ExpressionFormLineTest.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Modified: labs/jbossrules/trunk/drools-ide-common/src/test/java/org/drools/ide/common/modeldriven/dt/GuidedDecisionTableTest.java
===================================================================
--- labs/jbossrules/trunk/drools-ide-common/src/test/java/org/drools/ide/common/modeldriven/dt/GuidedDecisionTableTest.java	2010-06-15 15:54:44 UTC (rev 33511)
+++ labs/jbossrules/trunk/drools-ide-common/src/test/java/org/drools/ide/common/modeldriven/dt/GuidedDecisionTableTest.java	2010-06-15 16:49:31 UTC (rev 33512)
@@ -7,7 +7,7 @@
 import org.drools.ide.common.client.modeldriven.ModelField;
 import org.drools.ide.common.client.modeldriven.SuggestionCompletionEngine;
 import org.drools.ide.common.client.modeldriven.ModelField.FIELD_CLASS_TYPE;
-import org.drools.ide.common.client.modeldriven.brl.ISingleFieldConstraint;
+import org.drools.ide.common.client.modeldriven.brl.BaseSingleFieldConstraint;
 import org.drools.ide.common.client.modeldriven.dt.ActionInsertFactCol;
 import org.drools.ide.common.client.modeldriven.dt.ActionSetFieldCol;
 import org.drools.ide.common.client.modeldriven.dt.AttributeCol;
@@ -81,14 +81,14 @@
         c1.boundName = "c1";
         c1.factType = "Driver";
         c1.factField = "name";
-        c1.constraintValueType = ISingleFieldConstraint.TYPE_LITERAL;
+        c1.constraintValueType = BaseSingleFieldConstraint.TYPE_LITERAL;
         dt.conditionCols.add(c1);
 
         ConditionCol c1_ = new ConditionCol();
         c1_.boundName = "c1";
         c1_.factType = "Driver";
         c1_.factField = "name";
-        c1_.constraintValueType = ISingleFieldConstraint.TYPE_RET_VALUE;
+        c1_.constraintValueType = BaseSingleFieldConstraint.TYPE_RET_VALUE;
 
         dt.conditionCols.add(c1_);
 
@@ -96,7 +96,7 @@
         c1__.boundName = "c1";
         c1__.factType = "Driver";
         c1__.factField = "name";
-        c1__.constraintValueType = ISingleFieldConstraint.TYPE_LITERAL;
+        c1__.constraintValueType = BaseSingleFieldConstraint.TYPE_LITERAL;
         c1__.valueList = "one,two,three";
         dt.conditionCols.add(c1__);
 
@@ -104,7 +104,7 @@
         c2.boundName = "c2";
         c2.factType = "Driver";
         c2.factField = "nothing";
-        c2.constraintValueType = ISingleFieldConstraint.TYPE_LITERAL;
+        c2.constraintValueType = BaseSingleFieldConstraint.TYPE_LITERAL;
         dt.conditionCols.add(c2);
 
 
@@ -230,7 +230,7 @@
         c1.factType = "Driver";
         c1.factField = "name";
         c1.operator = "==";
-        c1.constraintValueType = ISingleFieldConstraint.TYPE_LITERAL;
+        c1.constraintValueType = BaseSingleFieldConstraint.TYPE_LITERAL;
         dt.conditionCols.add(c1);
 
         ConditionCol c1_ = new ConditionCol();
@@ -238,14 +238,14 @@
         c1_.factType = "Driver";
         c1_.factField = "age";
         c1_.operator = "==";
-        c1_.constraintValueType = ISingleFieldConstraint.TYPE_LITERAL;
+        c1_.constraintValueType = BaseSingleFieldConstraint.TYPE_LITERAL;
         dt.conditionCols.add(c1_);
 
         ConditionCol c2 = new ConditionCol();
         c2.boundName = "c1";
         c2.factType = "Driver";
         c2.factField = "age";
-        c2.constraintValueType = ISingleFieldConstraint.TYPE_LITERAL;
+        c2.constraintValueType = BaseSingleFieldConstraint.TYPE_LITERAL;
         dt.conditionCols.add(c2);
 
         ActionSetFieldCol a = new ActionSetFieldCol();
@@ -291,13 +291,13 @@
         ConditionCol c1 = new ConditionCol();
         c1.boundName = "c1";
         c1.factType = "Driver";
-        c1.constraintValueType = ISingleFieldConstraint.TYPE_LITERAL;
+        c1.constraintValueType = BaseSingleFieldConstraint.TYPE_LITERAL;
         dt.conditionCols.add(c1);
 
         ConditionCol c2 = new ConditionCol();
         c2.boundName = "c2";
         c2.factType = "Driver";
-        c2.constraintValueType = ISingleFieldConstraint.TYPE_LITERAL;
+        c2.constraintValueType = BaseSingleFieldConstraint.TYPE_LITERAL;
         c2.valueList = "a,b,c";
         dt.conditionCols.add(c2);
 
@@ -318,7 +318,7 @@
         ConditionCol c1 = new ConditionCol();
         c1.boundName = "c1";
         c1.factType = "Driver";
-        c1.constraintValueType = ISingleFieldConstraint.TYPE_LITERAL;
+        c1.constraintValueType = BaseSingleFieldConstraint.TYPE_LITERAL;
         dt.conditionCols.add(c1);
 
         SuggestionCompletionEngine sce = new SuggestionCompletionEngine();

Modified: labs/jbossrules/trunk/drools-ide-common/src/test/java/org/drools/ide/common/server/util/BRDRLPersistenceTest.java
===================================================================
--- labs/jbossrules/trunk/drools-ide-common/src/test/java/org/drools/ide/common/server/util/BRDRLPersistenceTest.java	2010-06-15 15:54:44 UTC (rev 33511)
+++ labs/jbossrules/trunk/drools-ide-common/src/test/java/org/drools/ide/common/server/util/BRDRLPersistenceTest.java	2010-06-15 16:49:31 UTC (rev 33512)
@@ -17,7 +17,7 @@
 import org.drools.ide.common.client.modeldriven.brl.FreeFormLine;
 import org.drools.ide.common.client.modeldriven.brl.IAction;
 import org.drools.ide.common.client.modeldriven.brl.IPattern;
-import org.drools.ide.common.client.modeldriven.brl.ISingleFieldConstraint;
+import org.drools.ide.common.client.modeldriven.brl.BaseSingleFieldConstraint;
 import org.drools.ide.common.client.modeldriven.brl.RuleAttribute;
 import org.drools.ide.common.client.modeldriven.brl.RuleModel;
 import org.drools.ide.common.client.modeldriven.brl.SingleFieldConstraint;
@@ -165,8 +165,8 @@
 		pat.boundName = "p1";
 		pat.factType = "Person";
 		final SingleFieldConstraint con = new SingleFieldConstraint();
-		con.fieldBinding = "f1";
-		con.fieldName = "age";
+		con.setFieldBinding("f1");
+		con.setFieldName("age");
 		// con.operator = "<";
 		// con.value = "42";
 		pat.addConstraint(con);
@@ -188,10 +188,10 @@
 		pat.boundName = "p1";
 		pat.factType = "Person";
 		final SingleFieldConstraint con = new SingleFieldConstraint();
-		con.fieldBinding = "f1";
-		con.fieldName = "age";
-		con.operator = "<";
-		con.value = "42";
+		con.setFieldBinding("f1");
+		con.setFieldName("age");
+		con.setOperator("<");
+		con.setValue("42");
 		pat.addConstraint(con);
 
 		m.addLhsItem(pat);
@@ -223,16 +223,16 @@
 				CompositeFactPattern.COMPOSITE_TYPE_OR);
 		FactPattern p1 = new FactPattern("Person");
 		SingleFieldConstraint sf1 = new SingleFieldConstraint("age");
-		sf1.operator = "==";
-		sf1.value = "42";
+		sf1.setOperator("==");
+		sf1.setValue("42");
 		p1.addConstraint(sf1);
 
 		cp.addFactPattern(p1);
 
 		FactPattern p2 = new FactPattern("Person");
 		SingleFieldConstraint sf2 = new SingleFieldConstraint("age");
-		sf2.operator = "==";
-		sf2.value = "43";
+		sf2.setOperator("==");
+		sf2.setValue("43");
 		p2.addConstraint(sf2);
 
 		cp.addFactPattern(p2);
@@ -264,8 +264,8 @@
 				CompositeFactPattern.COMPOSITE_TYPE_EXISTS);
 		FactPattern p1 = new FactPattern("Person");
 		SingleFieldConstraint sf1 = new SingleFieldConstraint("age");
-		sf1.operator = "==";
-		sf1.value = "42";
+		sf1.setOperator("==");
+		sf1.setValue("42");
 		p1.addConstraint(sf1);
 
 		cp.addFactPattern(p1);
@@ -284,16 +284,16 @@
 		CompositeFactPattern cp = new CompositeFactPattern(type);
 		FactPattern p1 = new FactPattern("Person");
 		SingleFieldConstraint sf1 = new SingleFieldConstraint("age");
-		sf1.operator = "==";
-		sf1.value = "42";
+		sf1.setOperator("==");
+		sf1.setValue("42");
 		p1.addConstraint(sf1);
 
 		cp.addFactPattern(p1);
 
 		FactPattern p2 = new FactPattern("Person");
 		SingleFieldConstraint sf2 = new SingleFieldConstraint("age");
-		sf2.operator = "==";
-		sf2.value = "43";
+		sf2.setOperator("==");
+		sf2.setValue("43");
 		p2.addConstraint(sf2);
 
 		cp.addFactPattern(p2);
@@ -328,39 +328,39 @@
 		p.addConstraint(comp);
 
 		final SingleFieldConstraint X = new SingleFieldConstraint();
-		X.fieldName = "goo";
-		X.constraintValueType = SingleFieldConstraint.TYPE_LITERAL;
-		X.value = "foo";
-		X.operator = "==";
+		X.setFieldName("goo");
+		X.setConstraintValueType(SingleFieldConstraint.TYPE_LITERAL);
+		X.setValue("foo");
+		X.setOperator("==");
 		X.connectives = new ConnectiveConstraint[1];
 		X.connectives[0] = new ConnectiveConstraint();
-		X.connectives[0].constraintValueType = ConnectiveConstraint.TYPE_LITERAL;
+		X.connectives[0].setConstraintValueType(ConnectiveConstraint.TYPE_LITERAL);
 		X.connectives[0].operator = "|| ==";
-		X.connectives[0].value = "bar";
+		X.connectives[0].setValue("bar");
 		comp.addConstraint(X);
 
 		final SingleFieldConstraint Y = new SingleFieldConstraint();
-		Y.fieldName = "goo2";
-		Y.constraintValueType = SingleFieldConstraint.TYPE_LITERAL;
-		Y.value = "foo";
-		Y.operator = "==";
+		Y.setFieldName("goo2");
+		Y.setConstraintValueType(SingleFieldConstraint.TYPE_LITERAL);
+		Y.setValue("foo");
+		Y.setOperator("==");
 		comp.addConstraint(Y);
 
 		CompositeFieldConstraint comp2 = new CompositeFieldConstraint();
 		comp2.compositeJunctionType = CompositeFieldConstraint.COMPOSITE_TYPE_AND;
 		final SingleFieldConstraint Q1 = new SingleFieldConstraint();
-		Q1.fieldName = "goo";
-		Q1.operator = "==";
-		Q1.value = "whee";
-		Q1.constraintValueType = ISingleFieldConstraint.TYPE_LITERAL;
+		Q1.setFieldName("goo");
+		Q1.setOperator("==");
+		Q1.setValue("whee");
+		Q1.setConstraintValueType(BaseSingleFieldConstraint.TYPE_LITERAL);
 
 		comp2.addConstraint(Q1);
 
 		final SingleFieldConstraint Q2 = new SingleFieldConstraint();
-		Q2.fieldName = "gabba";
-		Q2.operator = "==";
-		Q2.value = "whee";
-		Q2.constraintValueType = ISingleFieldConstraint.TYPE_LITERAL;
+		Q2.setFieldName("gabba");
+		Q2.setOperator("==");
+		Q2.setValue("whee");
+		Q2.setConstraintValueType(BaseSingleFieldConstraint.TYPE_LITERAL);
 
 		comp2.addConstraint(Q2);
 
@@ -368,10 +368,10 @@
 		comp.addConstraint(comp2);
 
 		final SingleFieldConstraint Z = new SingleFieldConstraint();
-		Z.fieldName = "goo3";
-		Z.constraintValueType = SingleFieldConstraint.TYPE_LITERAL;
-		Z.value = "foo";
-		Z.operator = "==";
+		Z.setFieldName("goo3");
+		Z.setConstraintValueType(SingleFieldConstraint.TYPE_LITERAL);
+		Z.setValue("foo");
+		Z.setOperator("==");
 
 		p.addConstraint(Z);
 
@@ -407,7 +407,7 @@
 		assertEqualsIgnoreWhitespace(expected, actual);
 
 		SingleFieldConstraint con = (SingleFieldConstraint) p.constraintList.constraints[0];
-		con.fieldBinding = "q";
+		con.setFieldBinding("q");
 
 		// now it should appear, as we are binding a var to it
 
@@ -426,17 +426,17 @@
 
 		FactPattern p = new FactPattern("Person");
 		SingleFieldConstraint con = new SingleFieldConstraint();
-		con.fieldName = "field1";
-		con.operator = "==";
-		con.value = "goo";
-		con.constraintValueType = SingleFieldConstraint.TYPE_LITERAL;
+		con.setFieldName("field1");
+		con.setOperator("==");
+		con.setValue("goo");
+		con.setConstraintValueType(SingleFieldConstraint.TYPE_LITERAL);
 		p.addConstraint(con);
 
 		SingleFieldConstraint con2 = new SingleFieldConstraint();
-		con2.fieldName = "field2";
-		con2.operator = "==";
-		con2.value = "variableHere";
-		con2.constraintValueType = SingleFieldConstraint.TYPE_VARIABLE;
+		con2.setFieldName("field2");
+		con2.setOperator("==");
+		con2.setValue("variableHere");
+		con2.setConstraintValueType(SingleFieldConstraint.TYPE_VARIABLE);
 		p.addConstraint(con2);
 
 		m.addLhsItem(p);
@@ -457,15 +457,15 @@
 
 		FactPattern p = new FactPattern("Person");
 		SingleFieldConstraint con = new SingleFieldConstraint();
-		con.fieldName = "field1";
+		con.setFieldName("field1");
 		p.addConstraint(con);
 
 		SingleFieldConstraint con2 = new SingleFieldConstraint();
-		con2.fieldName = "field2";
-		con2.operator = "==";
-		con2.value = "variableHere";
-		con2.constraintValueType = SingleFieldConstraint.TYPE_VARIABLE;
-		con2.parent = con;
+		con2.setFieldName("field2");
+		con2.setOperator("==");
+		con2.setValue("variableHere");
+		con2.setConstraintValueType(SingleFieldConstraint.TYPE_VARIABLE);
+		con2.setParent(con);
 		p.addConstraint(con2);
 
 		m.addLhsItem(p);
@@ -493,10 +493,10 @@
 		FactPattern p = new FactPattern();
 
 		SingleFieldConstraint con = new SingleFieldConstraint();
-		con.constraintValueType = SingleFieldConstraint.TYPE_RET_VALUE;
-		con.value = "someFunc(x)";
-		con.operator = "==";
-		con.fieldName = "goo";
+		con.setConstraintValueType(SingleFieldConstraint.TYPE_RET_VALUE);
+		con.setValue("someFunc(x)");
+		con.setOperator("==");
+		con.setFieldName("goo");
 		p.factType = "Goober";
 
 		p.addConstraint(con);
@@ -517,8 +517,8 @@
 		FactPattern p = new FactPattern();
 
 		SingleFieldConstraint con = new SingleFieldConstraint();
-		con.constraintValueType = SingleFieldConstraint.TYPE_PREDICATE;
-		con.value = "field soundslike 'poo'";
+		con.setConstraintValueType(SingleFieldConstraint.TYPE_PREDICATE);
+		con.setValue("field soundslike 'poo'");
 
 		p.factType = "Goober";
 
@@ -540,16 +540,16 @@
 
 		FactPattern p = new FactPattern("Person");
 		SingleFieldConstraint con = new SingleFieldConstraint();
-		con.fieldName = "field1";
-		con.operator = "==";
-		con.value = "goo";
-		con.constraintValueType = SingleFieldConstraint.TYPE_VARIABLE;
+		con.setFieldName("field1");
+		con.setOperator("==");
+		con.setValue("goo");
+		con.setConstraintValueType(SingleFieldConstraint.TYPE_VARIABLE);
 		p.addConstraint(con);
 
 		ConnectiveConstraint connective = new ConnectiveConstraint();
-		connective.constraintValueType = ISingleFieldConstraint.TYPE_LITERAL;
+		connective.setConstraintValueType(BaseSingleFieldConstraint.TYPE_LITERAL);
 		connective.operator = "|| ==";
-		connective.value = "blah";
+		connective.setValue("blah");
 
 		con.connectives = new ConnectiveConstraint[1];
 		con.connectives[0] = connective;

Modified: labs/jbossrules/trunk/drools-ide-common/src/test/java/org/drools/ide/common/server/util/BRLPersistenceTest.java
===================================================================
--- labs/jbossrules/trunk/drools-ide-common/src/test/java/org/drools/ide/common/server/util/BRLPersistenceTest.java	2010-06-15 15:54:44 UTC (rev 33511)
+++ labs/jbossrules/trunk/drools-ide-common/src/test/java/org/drools/ide/common/server/util/BRLPersistenceTest.java	2010-06-15 16:49:31 UTC (rev 33512)
@@ -20,7 +20,7 @@
 import org.drools.ide.common.client.modeldriven.brl.FreeFormLine;
 import org.drools.ide.common.client.modeldriven.brl.IAction;
 import org.drools.ide.common.client.modeldriven.brl.IPattern;
-import org.drools.ide.common.client.modeldriven.brl.ISingleFieldConstraint;
+import org.drools.ide.common.client.modeldriven.brl.BaseSingleFieldConstraint;
 import org.drools.ide.common.client.modeldriven.brl.RuleAttribute;
 import org.drools.ide.common.client.modeldriven.brl.RuleModel;
 import org.drools.ide.common.client.modeldriven.brl.SingleFieldConstraint;
@@ -121,39 +121,39 @@
         p.addConstraint( comp );
 
         final SingleFieldConstraint X = new SingleFieldConstraint();
-        X.fieldName = "goo";
-        X.constraintValueType = SingleFieldConstraint.TYPE_LITERAL;
-        X.value = "foo";
-        X.operator = "==";
+        X.setFieldName("goo");
+        X.setConstraintValueType(SingleFieldConstraint.TYPE_LITERAL);
+        X.setValue("foo");
+        X.setOperator("==");
         X.connectives = new ConnectiveConstraint[1];
         X.connectives[0] = new ConnectiveConstraint();
-        X.connectives[0].constraintValueType = ConnectiveConstraint.TYPE_LITERAL;
+        X.connectives[0].setConstraintValueType(ConnectiveConstraint.TYPE_LITERAL);
         X.connectives[0].operator = "|| ==";
-        X.connectives[0].value = "bar";
+        X.connectives[0].setValue("bar");
         comp.addConstraint( X );
 
         final SingleFieldConstraint Y = new SingleFieldConstraint();
-        Y.fieldName = "goo2";
-        Y.constraintValueType = SingleFieldConstraint.TYPE_LITERAL;
-        Y.value = "foo";
-        Y.operator = "==";
+        Y.setFieldName("goo2");
+        Y.setConstraintValueType(SingleFieldConstraint.TYPE_LITERAL);
+        Y.setValue("foo");
+        Y.setOperator("==");
         comp.addConstraint( Y );
 
         CompositeFieldConstraint comp2 = new CompositeFieldConstraint();
         comp2.compositeJunctionType = CompositeFieldConstraint.COMPOSITE_TYPE_AND;
         final SingleFieldConstraint Q1 = new SingleFieldConstraint();
-        Q1.fieldName = "goo";
-        Q1.operator = "==";
-        Q1.value = "whee";
-        Q1.constraintValueType = ISingleFieldConstraint.TYPE_LITERAL;
+        Q1.setFieldName("goo");
+        Q1.setOperator("==");
+        Q1.setValue("whee");
+        Q1.setConstraintValueType(BaseSingleFieldConstraint.TYPE_LITERAL);
 
         comp2.addConstraint( Q1 );
 
         final SingleFieldConstraint Q2 = new SingleFieldConstraint();
-        Q2.fieldName = "gabba";
-        Q2.operator = "==";
-        Q2.value = "whee";
-        Q2.constraintValueType = ISingleFieldConstraint.TYPE_LITERAL;
+        Q2.setFieldName("gabba");
+        Q2.setOperator("==");
+        Q2.setValue("whee");
+        Q2.setConstraintValueType(BaseSingleFieldConstraint.TYPE_LITERAL);
 
         comp2.addConstraint( Q2 );
 
@@ -163,10 +163,10 @@
 
 
         final SingleFieldConstraint Z = new SingleFieldConstraint();
-        Z.fieldName = "goo3";
-        Z.constraintValueType = SingleFieldConstraint.TYPE_LITERAL;
-        Z.value = "foo";
-        Z.operator = "==";
+        Z.setFieldName("goo3");
+        Z.setConstraintValueType(SingleFieldConstraint.TYPE_LITERAL);
+        Z.setValue("foo");
+        Z.setOperator("==");
 
         p.addConstraint( Z );
 
@@ -258,10 +258,10 @@
         pat.boundName = "p1";
         pat.factType = "Person";
         final SingleFieldConstraint con = new SingleFieldConstraint();
-        con.fieldBinding = "f1";
-        con.fieldName = "age";
-        con.operator = "<";
-        con.value = "42";
+        con.setFieldBinding("f1");
+        con.setFieldName("age");
+        con.setOperator("<");
+        con.setValue("42");
         pat.addConstraint( con );
 
         m.addLhsItem( pat );

Modified: labs/jbossrules/trunk/drools-ide-common/src/test/java/org/drools/ide/common/server/util/GuidedDTDRLPersistenceTest.java
===================================================================
--- labs/jbossrules/trunk/drools-ide-common/src/test/java/org/drools/ide/common/server/util/GuidedDTDRLPersistenceTest.java	2010-06-15 15:54:44 UTC (rev 33511)
+++ labs/jbossrules/trunk/drools-ide-common/src/test/java/org/drools/ide/common/server/util/GuidedDTDRLPersistenceTest.java	2010-06-15 16:49:31 UTC (rev 33512)
@@ -10,7 +10,7 @@
 import org.drools.ide.common.client.modeldriven.brl.ActionRetractFact;
 import org.drools.ide.common.client.modeldriven.brl.ActionSetField;
 import org.drools.ide.common.client.modeldriven.brl.FactPattern;
-import org.drools.ide.common.client.modeldriven.brl.ISingleFieldConstraint;
+import org.drools.ide.common.client.modeldriven.brl.BaseSingleFieldConstraint;
 import org.drools.ide.common.client.modeldriven.brl.RuleAttribute;
 import org.drools.ide.common.client.modeldriven.brl.RuleMetadata;
 import org.drools.ide.common.client.modeldriven.brl.RuleModel;
@@ -40,7 +40,7 @@
 
 		ConditionCol con = new ConditionCol();
 		con.boundName = "f1";
-		con.constraintValueType = ISingleFieldConstraint.TYPE_LITERAL;
+		con.constraintValueType = BaseSingleFieldConstraint.TYPE_LITERAL;
 		con.factField = "age";
 		con.factType = "Driver";
 		con.header = "Driver f1 age";
@@ -49,7 +49,7 @@
 
 		ConditionCol con2 = new ConditionCol();
 		con2.boundName = "f1";
-		con2.constraintValueType = ISingleFieldConstraint.TYPE_LITERAL;
+		con2.constraintValueType = BaseSingleFieldConstraint.TYPE_LITERAL;
 		con2.factField = "name";
 		con2.factType = "Driver";
 		con2.header = "Driver f1 name";
@@ -58,7 +58,7 @@
 
 		ConditionCol con3 = new ConditionCol();
 		con3.boundName = "f1";
-		con3.constraintValueType = ISingleFieldConstraint.TYPE_RET_VALUE;
+		con3.constraintValueType = BaseSingleFieldConstraint.TYPE_RET_VALUE;
 		con3.factField = "rating";
 		con3.factType = "Driver";
 		con3.header = "Driver rating";
@@ -68,7 +68,7 @@
 
 		ConditionCol con4 = new ConditionCol();
 		con4.boundName = "f2";
-		con4.constraintValueType = ISingleFieldConstraint.TYPE_PREDICATE;
+		con4.constraintValueType = BaseSingleFieldConstraint.TYPE_PREDICATE;
 		con4.factType = "Driver";
 		con4.header = "Driver 2 pimp";
         con4.factField = "(not needed)";
@@ -132,7 +132,7 @@
 
         ConditionCol con = new ConditionCol();
         con.boundName = "f1";
-        con.constraintValueType = ISingleFieldConstraint.TYPE_LITERAL;
+        con.constraintValueType = BaseSingleFieldConstraint.TYPE_LITERAL;
         con.factField = "age";
         con.factType = "Driver";
         con.header = "Driver f1 age";
@@ -141,7 +141,7 @@
 
         ConditionCol con2 = new ConditionCol();
         con2.boundName = "f1";
-        con2.constraintValueType = ISingleFieldConstraint.TYPE_LITERAL;
+        con2.constraintValueType = BaseSingleFieldConstraint.TYPE_LITERAL;
         con2.factField = "name";
         con2.factType = "Driver";
         con2.header = "Driver f1 name";
@@ -150,7 +150,7 @@
 
         ConditionCol con3 = new ConditionCol();
         con3.boundName = "f1";
-        con3.constraintValueType = ISingleFieldConstraint.TYPE_RET_VALUE;
+        con3.constraintValueType = BaseSingleFieldConstraint.TYPE_RET_VALUE;
         con3.factField = "rating";
         con3.factType = "Driver";
         con3.header = "Driver rating";
@@ -160,7 +160,7 @@
 
         ConditionCol con4 = new ConditionCol();
         con4.boundName = "f2";
-        con4.constraintValueType = ISingleFieldConstraint.TYPE_PREDICATE;
+        con4.constraintValueType = BaseSingleFieldConstraint.TYPE_PREDICATE;
         con4.factType = "Driver";
         con4.header = "Driver 2 pimp";
         con4.factField = "this.hasSomething($param)";
@@ -224,7 +224,7 @@
 
         ConditionCol con = new ConditionCol();
         con.boundName = "f1";
-        con.constraintValueType = ISingleFieldConstraint.TYPE_LITERAL;
+        con.constraintValueType = BaseSingleFieldConstraint.TYPE_LITERAL;
         con.factField = "age";
         con.factType = "Driver";
         con.header = "Driver f1 age";
@@ -233,7 +233,7 @@
 
         ConditionCol con2 = new ConditionCol();
         con2.boundName = "f1";
-        con2.constraintValueType = ISingleFieldConstraint.TYPE_LITERAL;
+        con2.constraintValueType = BaseSingleFieldConstraint.TYPE_LITERAL;
         con2.factField = "name";
         con2.factType = "Driver";
         con2.header = "Driver f1 name";
@@ -242,7 +242,7 @@
 
         ConditionCol con3 = new ConditionCol();
         con3.boundName = "f1";
-        con3.constraintValueType = ISingleFieldConstraint.TYPE_RET_VALUE;
+        con3.constraintValueType = BaseSingleFieldConstraint.TYPE_RET_VALUE;
         con3.factField = "rating";
         con3.factType = "Driver";
         con3.header = "Driver rating";
@@ -252,7 +252,7 @@
 
         ConditionCol con4 = new ConditionCol();
         con4.boundName = "f2";
-        con4.constraintValueType = ISingleFieldConstraint.TYPE_PREDICATE;
+        con4.constraintValueType = BaseSingleFieldConstraint.TYPE_PREDICATE;
         con4.factType = "Driver";
         con4.header = "Driver 2 pimp";
         con4.factField = "(not needed)";
@@ -403,7 +403,7 @@
 		col.boundName = "p1";
 		col.factType = "Person";
 		col.factField = "name";
-		col.constraintValueType = ISingleFieldConstraint.TYPE_LITERAL;
+		col.constraintValueType = BaseSingleFieldConstraint.TYPE_LITERAL;
 		col.operator = "==";
 		cols.add(col);
 
@@ -411,14 +411,14 @@
 		col2.boundName = "p1";
 		col2.factType = "Person";
 		col2.factField = "age";
-		col2.constraintValueType = ISingleFieldConstraint.TYPE_RET_VALUE;
+		col2.constraintValueType = BaseSingleFieldConstraint.TYPE_RET_VALUE;
 		col2.operator = "<";
 		cols.add(col2);
 
 		ConditionCol col3 = new ConditionCol();
 		col3.boundName = "p1";
 		col3.factType = "Person";
-		col3.constraintValueType = ISingleFieldConstraint.TYPE_PREDICATE;
+		col3.constraintValueType = BaseSingleFieldConstraint.TYPE_PREDICATE;
 		cols.add(col3);
 
 		ConditionCol col4 = new ConditionCol();
@@ -426,7 +426,7 @@
 		col4.factType = "Cheese";
 		col4.factField = "type";
 		col4.operator = "==";
-		col4.constraintValueType = ISingleFieldConstraint.TYPE_LITERAL;
+		col4.constraintValueType = BaseSingleFieldConstraint.TYPE_LITERAL;
 		cols.add(col4);
 
 		RuleModel rm = new RuleModel();
@@ -444,30 +444,30 @@
 		FactPattern person = (FactPattern) rm.lhs[0];
 		assertEquals(3, person.constraintList.constraints.length);
 		SingleFieldConstraint cons = (SingleFieldConstraint) person.constraintList.constraints[0];
-		assertEquals(ISingleFieldConstraint.TYPE_LITERAL, cons.constraintValueType);
-		assertEquals("name", cons.fieldName);
-		assertEquals("==", cons.operator);
-		assertEquals("mike", cons.value);
+		assertEquals(BaseSingleFieldConstraint.TYPE_LITERAL, cons.getConstraintValueType());
+		assertEquals("name", cons.getFieldName());
+		assertEquals("==", cons.getOperator());
+		assertEquals("mike", cons.getValue());
 
 		cons = (SingleFieldConstraint) person.constraintList.constraints[1];
-		assertEquals(ISingleFieldConstraint.TYPE_RET_VALUE, cons.constraintValueType);
-		assertEquals("age", cons.fieldName);
-		assertEquals("<", cons.operator);
-		assertEquals("33 + 1", cons.value);
+		assertEquals(BaseSingleFieldConstraint.TYPE_RET_VALUE, cons.getConstraintValueType());
+		assertEquals("age", cons.getFieldName());
+		assertEquals("<", cons.getOperator());
+		assertEquals("33 + 1", cons.getValue());
 
 		cons = (SingleFieldConstraint) person.constraintList.constraints[2];
-		assertEquals(ISingleFieldConstraint.TYPE_PREDICATE, cons.constraintValueType);
-		assertEquals("age > 6", cons.value);
+		assertEquals(BaseSingleFieldConstraint.TYPE_PREDICATE, cons.getConstraintValueType());
+		assertEquals("age > 6", cons.getValue());
 
 
 		//examine the second pattern
 		FactPattern cheese = (FactPattern) rm.lhs[1];
 		assertEquals(1, cheese.constraintList.constraints.length);
 		cons = (SingleFieldConstraint) cheese.constraintList.constraints[0];
-		assertEquals("type", cons.fieldName);
-		assertEquals("==", cons.operator);
-		assertEquals("stilton", cons.value);
-		assertEquals(ISingleFieldConstraint.TYPE_LITERAL, cons.constraintValueType);
+		assertEquals("type", cons.getFieldName());
+		assertEquals("==", cons.getOperator());
+		assertEquals("stilton", cons.getValue());
+		assertEquals(BaseSingleFieldConstraint.TYPE_LITERAL, cons.getConstraintValueType());
 	}
 
 	public void testRHS() {
@@ -551,7 +551,7 @@
 		ConditionCol c = new ConditionCol();
 		c.boundName = "x";
 		c.factType = "Context";
-		c.constraintValueType = ISingleFieldConstraint.TYPE_LITERAL;
+		c.constraintValueType = BaseSingleFieldConstraint.TYPE_LITERAL;
 		dt.conditionCols.add(c);
 		ActionSetFieldCol asf = new ActionSetFieldCol();
 		asf.boundName = "x";
@@ -587,7 +587,7 @@
 		ConditionCol c = new ConditionCol();
 		c.boundName = "x";
 		c.factType = "Context";
-		c.constraintValueType = ISingleFieldConstraint.TYPE_LITERAL;
+		c.constraintValueType = BaseSingleFieldConstraint.TYPE_LITERAL;
 		dt.conditionCols.add(c);
 		ActionSetFieldCol asf = new ActionSetFieldCol();
 		asf.boundName = "x";
@@ -630,7 +630,7 @@
 		col2.boundName = "p1";
 		col2.factType = "Person";
 		col2.factField = "age";
-		col2.constraintValueType = ISingleFieldConstraint.TYPE_LITERAL;
+		col2.constraintValueType = BaseSingleFieldConstraint.TYPE_LITERAL;
 		col2.operator = "";
 		cols.add(col2);
 



More information about the jboss-svn-commits mailing list