[jboss-svn-commits] JBL Code SVN: r31266 - labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Jan 27 14:50:51 EST 2010


Author: eaa
Date: 2010-01-27 14:50:51 -0500 (Wed, 27 Jan 2010)
New Revision: 31266

Modified:
   labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/ConstraintValueEditor.java
Log:
Guided Editor:
	Field Constraint now support expression builder on right side

Modified: labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/ConstraintValueEditor.java
===================================================================
--- labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/ConstraintValueEditor.java	2010-01-27 19:10:42 UTC (rev 31265)
+++ labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/ConstraintValueEditor.java	2010-01-27 19:50:51 UTC (rev 31266)
@@ -43,6 +43,7 @@
 import com.google.gwt.user.client.ui.SimplePanel;
 import com.google.gwt.user.client.ui.TextBox;
 import com.google.gwt.user.client.ui.Widget;
+import org.drools.guvnor.client.modeldriven.brl.ExpressionFormLine;
 
 /**
  * This is an editor for constraint values.
@@ -60,6 +61,7 @@
     private final ISingleFieldConstraint     constraint;
     private final Panel                      panel;
     private final RuleModel                  model;
+    private final RuleModeller               modeller;
     private final boolean                    numericValue;
     private DropDownData                     dropDownData;
     private Constants                        constants = ((Constants) GWT.create( Constants.class ));
@@ -93,6 +95,7 @@
         }
 
         this.model = modeller.getModel();
+        this.modeller = modeller;
 
         panel = new SimplePanel();
         refreshEditor();
@@ -143,6 +146,9 @@
                 case SingleFieldConstraint.TYPE_RET_VALUE :
                     panel.add( returnValueEditor() );
                     break;
+                case SingleFieldConstraint.TYPE_EXPR_BUILDER :
+                    panel.add( expressionEditor() );
+                    break;
                 case SingleFieldConstraint.TYPE_VARIABLE :
                     panel.add( variableEditor() );
                     break;
@@ -209,6 +215,17 @@
         return ed;
     }
 
+    private Widget expressionEditor() {
+        if (!(this.constraint instanceof SingleFieldConstraint)){
+            throw new IllegalArgumentException("Expected SingleFieldConstraint, but "+constraint.getClass().getName()+" found.");
+        }
+        ExpressionBuilder builder = new ExpressionBuilder(this.modeller, ((SingleFieldConstraint)this.constraint).getExpression());
+        String msg = constants.ExpressionEditor();
+        Widget ed = widgets( new HTML("="),
+                             builder );
+        return ed;
+    }
+
     /**
      * Show a list of possibilities for the value type.
      */
@@ -283,6 +300,20 @@
                                     new InfoPopup( constants.AFormula(),
                                                    constants.FormulaExpressionTip() ) ) );
 
+        Button expression = new Button( constants.ExpressionEditor() );
+        expression.addClickListener( new ClickListener() {
+            public void onClick(Widget w) {
+                con.constraintValueType = SingleFieldConstraint.TYPE_EXPR_BUILDER;
+                doTypeChosen( form );
+            }
+        } );
+
+        form.addAttribute( constants.ExpressionEditor() + ":",
+                           widgets( expression,
+                                    new InfoPopup(  constants.ExpressionEditor(),
+                                                    constants.ExpressionEditor() ) ) );
+
+
         form.show();
     }
 



More information about the jboss-svn-commits mailing list