[jboss-svn-commits] JBL Code SVN: r36731 - labs/jbossrules/soa_branches/BRMS-5.1.x/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
Thu Feb 24 17:45:39 EST 2011


Author: tsurdilovic
Date: 2011-02-24 17:45:38 -0500 (Thu, 24 Feb 2011)
New Revision: 36731

Modified:
   labs/jbossrules/soa_branches/BRMS-5.1.x/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/ConstraintValueEditor.java
Log:
BRMS-536 Enum support in Guvnor is not functional

Modified: labs/jbossrules/soa_branches/BRMS-5.1.x/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/ConstraintValueEditor.java
===================================================================
--- labs/jbossrules/soa_branches/BRMS-5.1.x/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/ConstraintValueEditor.java	2011-02-24 22:36:26 UTC (rev 36730)
+++ labs/jbossrules/soa_branches/BRMS-5.1.x/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/ConstraintValueEditor.java	2011-02-24 22:45:38 UTC (rev 36731)
@@ -89,6 +89,7 @@
     private String fieldType;
     private boolean readOnly;
     private Command onValueChangeCommand;
+    private boolean isDropDownDataEnum;    
 
     public ConstraintValueEditor(FactPattern pattern, String fieldName,
             BaseSingleFieldConstraint con, RuleModeller modeller, String valueType,
@@ -101,15 +102,31 @@
         this.model = modeller.getModel();
         this.modeller = modeller;
 
-        valueType = sce.getFieldType(pattern.factType, fieldName);
-        this.fieldType = valueType;
+        if(con instanceof SingleFieldConstraint){
+        	this.fieldType = ((SingleFieldConstraint)con).getFieldType();
+        }else{
+        	this.fieldType = sce.getFieldType(pattern.factType, fieldName);        	
+        }	
         this.numericValue = SuggestionCompletionEngine.TYPE_NUMERIC.equals(valueType);
 
         this.readOnly = readOnly;
         if (SuggestionCompletionEngine.TYPE_BOOLEAN.equals(valueType)) {
+        	
             this.dropDownData = DropDownData.create(new String[]{"true", "false"}); //NON-NLS
-        } else {
+            isDropDownDataEnum = false;
+            
+        } else if(con instanceof SingleFieldConstraint && ((SingleFieldConstraint)con).getParent() !=null
+        	&& ((SingleFieldConstraint)con).getParent() instanceof SingleFieldConstraint){
+        	
+        	SingleFieldConstraint subFact =(SingleFieldConstraint) ((SingleFieldConstraint)con).getParent();
+            this.dropDownData = DropDownData.create(sce.getEnumValues(subFact.getFieldType(),fieldName));
+            isDropDownDataEnum = true;
+            
+        }else{
+        	
             this.dropDownData = sce.getEnums(pattern, fieldName);
+            isDropDownDataEnum = true;
+            
         }
 
         refreshEditor();
@@ -131,6 +148,7 @@
         } else {
             switch (constraint.getConstraintValueType()) {
                 case SingleFieldConstraint.TYPE_LITERAL:
+                case SingleFieldConstraint.TYPE_ENUM : 
 
                     if (this.constraint instanceof SingleFieldConstraint) {
                         final SingleFieldConstraint con = (SingleFieldConstraint) this.constraint;
@@ -344,7 +362,12 @@
         lit.addClickHandler(new ClickHandler() {
 
             public void onClick(ClickEvent event) {
-                con.setConstraintValueType(SingleFieldConstraint.TYPE_LITERAL);
+            	//it is necessary look for "Comparable" to distinguish java enum of BRMS Enumeration
+            	if(isDropDownDataEnum && fieldType.equals("Comparable")){
+            		con.setConstraintValueType( SingleFieldConstraint.TYPE_ENUM );
+            	}else{
+            		con.setConstraintValueType( SingleFieldConstraint.TYPE_LITERAL );
+            	}
                 doTypeChosen(form);
             }
         });



More information about the jboss-svn-commits mailing list