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

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Jul 21 06:45:41 EDT 2010


Author: jervisliu
Date: 2010-07-21 06:45:40 -0400 (Wed, 21 Jul 2010)
New Revision: 34089

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/messages/Constants.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/messages/Constants.properties
   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/test/java/org/drools/ide/common/modeldriven/dt/GuidedDecisionTableTest.java
Log:
https://jira.jboss.org/browse/GUVNOR-191  : Display the data type of the condition property after selecting field in web-guided decision tables. 

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-07-21 09:46:17 UTC (rev 34088)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/decisiontable/GuidedDecisionTableWidget.java	2010-07-21 10:45:40 UTC (rev 34089)
@@ -26,6 +26,7 @@
 import org.drools.guvnor.client.common.ErrorPopup;
 import org.drools.guvnor.client.common.FormStylePopup;
 import org.drools.guvnor.client.common.ImageButton;
+import org.drools.guvnor.client.common.InfoPopup;
 import org.drools.guvnor.client.common.PrettyFormLayout;
 import org.drools.guvnor.client.common.SmallLabel;
 import org.drools.guvnor.client.messages.Constants;
@@ -1260,9 +1261,15 @@
                            getSCE() ) ) {
             box.addKeyboardListener( ActionValueEditor.getNumericFilter( box ) );
         }
-
+        
+        
         Panel p = new Panel();
         p.add( box );
+        String typeDescription = dt.getType(colConf, getSCE());
+        if(typeDescription != null) {
+            p.add( new InfoPopup( constants.CategoryParentRules(), Format.format(constants.FillInColumnWithValue(), typeDescription)));       	
+        }
+
         w.add( p );
         w.setBorder( false );
 

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/messages/Constants.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/messages/Constants.java	2010-07-21 09:46:17 UTC (rev 34088)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/messages/Constants.java	2010-07-21 10:45:40 UTC (rev 34089)
@@ -2083,4 +2083,6 @@
     String ActivateRuleFlowGroup();
 
     String CantRemoveThisBlockAsOneOfTheNamesIsBeingUsed();
+    
+    String FillInColumnWithValue();
 }

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/messages/Constants.properties
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/messages/Constants.properties	2010-07-21 09:46:17 UTC (rev 34088)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/messages/Constants.properties	2010-07-21 10:45:40 UTC (rev 34089)
@@ -1027,3 +1027,4 @@
 TemplateEditor=Template Editor
 TemplateData=Template Data
 ActivateRuleFlowGroup=Activate rule flow group 
+FillInColumnWithValue=Please fill in this column with a {0} value.
\ No newline at end of file

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-07-21 09:46:17 UTC (rev 34088)
+++ labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/ide/common/client/modeldriven/dt/GuidedDecisionTable.java	2010-07-21 10:45:40 UTC (rev 34089)
@@ -142,6 +142,25 @@
 		return new String[0];
 	}
 
+	public String getType(DTColumnConfig col, SuggestionCompletionEngine sce) {
+		String type = null;
+		if (col instanceof AttributeCol) {
+			AttributeCol at = (AttributeCol) col;
+			type = at.attr;
+		} else if (col instanceof ConditionCol) {
+			ConditionCol c = (ConditionCol) col;
+			type = sce.getFieldType(c.factType, c.factField);
+		} else if (col instanceof ActionSetFieldCol) {
+			ActionSetFieldCol c = (ActionSetFieldCol) col;
+			type = sce.getFieldType(getBoundFactType(c.boundName), c.factField);
+		} else if (col instanceof ActionInsertFactCol) {
+			ActionInsertFactCol c = (ActionInsertFactCol) col;
+			type = sce.getFieldType(c.factType, c.factField);
+		}
+		
+		return type;
+	}
+	
 	private String getBoundFactType(String boundName) {
 		for (Iterator<ConditionCol> iterator = conditionCols.iterator(); iterator.hasNext();) {
 			ConditionCol c = iterator.next();

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-07-21 09:46:17 UTC (rev 34088)
+++ labs/jbossrules/trunk/drools-ide-common/src/test/java/org/drools/ide/common/modeldriven/dt/GuidedDecisionTableTest.java	2010-07-21 10:45:40 UTC (rev 34089)
@@ -16,6 +16,7 @@
 
 package org.drools.ide.common.modeldriven.dt;
 
+import java.util.Date;
 import java.util.HashMap;
 
 import junit.framework.TestCase;
@@ -295,11 +296,107 @@
         assertFalse(dt.isNumeric(ins, sce));
         assertTrue(dt.isNumeric(ins_, sce));
         assertFalse(dt.isNumeric(c2, sce));
+    }
+    
+    public void testGetType() {
+        SuggestionCompletionEngine sce = new SuggestionCompletionEngine();
 
+        sce.setFieldsForTypes(new HashMap<String, ModelField[]>() {
+            {
+                put("Driver",
+                        new ModelField[]{
+                            new ModelField("age", Integer.class.getName(), FIELD_CLASS_TYPE.REGULAR_CLASS, SuggestionCompletionEngine.TYPE_NUMERIC),
+                            new ModelField("name", String.class.getName(), FIELD_CLASS_TYPE.REGULAR_CLASS, SuggestionCompletionEngine.TYPE_STRING),
+                            new ModelField("date", Date.class.getName(), FIELD_CLASS_TYPE.REGULAR_CLASS, SuggestionCompletionEngine.TYPE_DATE),
+                            new ModelField("approved", Boolean.class.getName(), FIELD_CLASS_TYPE.REGULAR_CLASS, SuggestionCompletionEngine.TYPE_BOOLEAN)
+                       });
+            }
+        });
 
+        GuidedDecisionTable dt = new GuidedDecisionTable();
 
+        AttributeCol salienceAttribute = new AttributeCol();
+        salienceAttribute.attr = "salience";
+        AttributeCol enabledAttribute = new AttributeCol();
+        enabledAttribute.attr = "enabled";
+
+        dt.attributeCols.add(salienceAttribute);
+        dt.attributeCols.add(enabledAttribute);
+
+        ConditionCol conditionColName = new ConditionCol();
+        conditionColName.boundName = "c1";
+        conditionColName.factType = "Driver";
+        conditionColName.factField = "name";
+        conditionColName.operator = "==";
+        conditionColName.constraintValueType = BaseSingleFieldConstraint.TYPE_LITERAL;
+        dt.conditionCols.add(conditionColName);
+
+        ConditionCol conditionColAge = new ConditionCol();
+        conditionColAge.boundName = "c1";
+        conditionColAge.factType = "Driver";
+        conditionColAge.factField = "age";
+        conditionColAge.operator = "==";
+        conditionColAge.constraintValueType = BaseSingleFieldConstraint.TYPE_LITERAL;
+        dt.conditionCols.add(conditionColAge);
+
+        ConditionCol conditionColDate = new ConditionCol();
+        conditionColDate.boundName = "c1";
+        conditionColDate.factType = "Driver";
+        conditionColDate.factField = "date";
+        conditionColDate.operator = "==";
+        conditionColDate.constraintValueType = BaseSingleFieldConstraint.TYPE_LITERAL;
+        dt.conditionCols.add(conditionColDate);
+
+        ConditionCol conditionColApproved = new ConditionCol();
+        conditionColApproved.boundName = "c1";
+        conditionColApproved.factType = "Driver";
+        conditionColApproved.factField = "approved";
+        conditionColApproved.operator = "==";
+        conditionColApproved.constraintValueType = BaseSingleFieldConstraint.TYPE_LITERAL;
+        dt.conditionCols.add(conditionColApproved);
+
+        ConditionCol conditionColAge2 = new ConditionCol();
+        conditionColAge2.boundName = "c1";
+        conditionColAge2.factType = "Driver";
+        conditionColAge2.factField = "age";
+        conditionColAge2.constraintValueType = BaseSingleFieldConstraint.TYPE_LITERAL;
+        dt.conditionCols.add(conditionColAge2);
+
+        ActionSetFieldCol a = new ActionSetFieldCol();
+        a.boundName = "c1";
+        a.factField = "name";
+        dt.actionCols.add(a);
+
+        ActionSetFieldCol a2 = new ActionSetFieldCol();
+        a2.boundName = "c1";
+        a2.factField = "age";
+        dt.actionCols.add(a2);
+
+        ActionInsertFactCol ins = new ActionInsertFactCol();
+        ins.boundName = "x";
+        ins.factType = "Driver";
+        ins.factField = "name";
+        dt.actionCols.add(ins);
+
+        ActionInsertFactCol ins_ = new ActionInsertFactCol();
+        ins_.boundName = "x";
+        ins_.factType = "Driver";
+        ins_.factField = "age";
+        dt.actionCols.add(ins_);
+
+        assertEquals("salience", dt.getType(salienceAttribute, sce));
+        assertEquals("enabled", dt.getType(enabledAttribute, sce));
+        assertEquals(SuggestionCompletionEngine.TYPE_STRING, dt.getType(conditionColName, sce));
+        assertEquals(SuggestionCompletionEngine.TYPE_NUMERIC, dt.getType(conditionColAge, sce));
+        assertEquals(SuggestionCompletionEngine.TYPE_DATE, dt.getType(conditionColDate, sce));
+        assertEquals(SuggestionCompletionEngine.TYPE_BOOLEAN, dt.getType(conditionColApproved, sce));
+        assertEquals(SuggestionCompletionEngine.TYPE_STRING, dt.getType(a, sce));
+        assertEquals(SuggestionCompletionEngine.TYPE_NUMERIC, dt.getType(a2, sce));
+        assertEquals(SuggestionCompletionEngine.TYPE_STRING, dt.getType(ins, sce));
+        assertEquals(SuggestionCompletionEngine.TYPE_NUMERIC, dt.getType(ins_, sce));
+        assertEquals(SuggestionCompletionEngine.TYPE_NUMERIC, dt.getType(conditionColAge2, sce));
     }
-
+    
     public void testNoConstraintLists() {
         GuidedDecisionTable dt = new GuidedDecisionTable();
 



More information about the jboss-svn-commits mailing list