[jboss-svn-commits] JBL Code SVN: r8243 - in labs/jbossrules/trunk/drools-jbrms/src: main/java/org/drools/brms/client main/java/org/drools/brms/client/modeldriven main/java/org/drools/brms/client/modeldriven/ui test/java/org/drools/brms/client/modeldriven

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Mon Dec 11 16:38:36 EST 2006


Author: michael.neale at jboss.com
Date: 2006-12-11 16:38:12 -0500 (Mon, 11 Dec 2006)
New Revision: 8243

Modified:
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/Packages.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/SuggestionCompletionEngine.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/ActionAssertFactWidget.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/ActionRetractFactWidget.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/ActionSetFieldWidget.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/CompositeFactPatternWidget.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/FactPatternWidget.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/RuleModeller.java
   labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/client/modeldriven/SuggestionCompletionTest.java
Log:
more human readable UI now

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/Packages.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/Packages.java	2006-12-11 21:23:16 UTC (rev 8242)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/Packages.java	2006-12-11 21:38:12 UTC (rev 8243)
@@ -108,7 +108,7 @@
         p2.constraints[0].fieldName = "type";
         p2.constraints[0].operator = "!=";
         
-        p3.type = "Not";
+        p3.type = "not";
         p3.patterns = new FactPattern[1];
         FactPattern i1 = new FactPattern("Vehicle");
         i1.constraints = new Constraint[1];

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/SuggestionCompletionEngine.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/SuggestionCompletionEngine.java	2006-12-11 21:23:16 UTC (rev 8242)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/SuggestionCompletionEngine.java	2006-12-11 21:38:12 UTC (rev 8243)
@@ -13,6 +13,8 @@
  * being fed into it.
  * TODO: also make this include type info for the fields (for display, but may be needed
  * for rendering DRL).
+ * TODO: MAYBE make operator suggestions based on type of field, not field/fact as it is now?
+ * (may make it more efficient and easier? )
  *  
  * @author Michael Neale
  */
@@ -23,6 +25,9 @@
     private Map factFieldToOperator = new HashMap();
     private Map factFieldToConnectiveOperator = new HashMap();
     private Map globals = new HashMap();
+    private Map operatorMap = new HashMap();
+    private HashMap ceMap = new HashMap();
+    private HashMap actionMap = new HashMap();
 
     /**
      * For bulk loading up the data (from a previous rule save)
@@ -49,10 +54,54 @@
 
     }
     
-    public SuggestionCompletionEngine() {        
+    public SuggestionCompletionEngine() {  
+        //load the default operator map
+        defaultMappings();
+        
+        
     }
+
+    /**
+     * This loads the default mappings for verbalisation
+     *
+     */
+    private void defaultMappings() {
+        this.operatorMap.put( "==", "is equal to" );
+        this.operatorMap.put( "!=", "is not equal to" );
+        this.operatorMap.put( "<", "is less than" );
+        this.operatorMap.put( "<=", "less than or equal to" );
+        this.operatorMap.put( ">", "greater than" );
+        this.operatorMap.put( ">=", "greater than or equal to" );
+        
+        this.operatorMap.put( "|==", "or equal to" );
+        this.operatorMap.put( "|!=", "or not equal to" );
+        this.operatorMap.put( "&!=", "and not equal to" );
+        this.operatorMap.put( "&>", "and greater than" );
+        
+        
+        
+        this.ceMap.put( "not", "There is no" );
+        this.ceMap.put( "exists", "There exists" );
+        this.ceMap.put( "or", "Any of" );
+        
+        this.actionMap.put( "assert", "Assert" );
+        this.actionMap.put( "retract", "Retract" );
+        this.actionMap.put( "set", "Set" );
+        
+        
+    }
     
+    /**
+     * This will use the given operator map rather then the default verbalisation.
+     */
+    public void addOperatorDisplayValuesMap(Map operatorMap) {
+        this.operatorMap = operatorMap;
+    }
     
+    
+    
+    
+    
     /**
      * Add a fact, with the applicable fields.
      */
@@ -132,7 +181,35 @@
      * Returns a list of First order logic prefixes
      */
     public String[] getListOfCEs() {
-        return new String[] {"There is no", "There exists", "Any one of"};
+        return new String[] {"not", "exists", "or"};
     }
+
     
+    /**
+     * Returns display names for operators. 
+     */
+    public String getOperatorDisplayName(String op) {
+        if (this.operatorMap.containsKey(op)) {
+            return (String) operatorMap.get(op);
+        } else {
+            return op;
+        }
+    }
+    
+    public String getCEDisplayName(String ce) {
+        if (this.ceMap.containsKey(ce)) {
+            return (String) ceMap.get(ce);
+        } else {
+            return ce;
+        }
+    }
+    
+    public String getActionDisplayName(String action) {
+        if (this.actionMap.containsKey(action)) {
+            return (String) actionMap.get(action);
+        } else {
+            return action;
+        }
+    }
+    
 }

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/ActionAssertFactWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/ActionAssertFactWidget.java	2006-12-11 21:23:16 UTC (rev 8242)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/ActionAssertFactWidget.java	2006-12-11 21:38:12 UTC (rev 8243)
@@ -107,7 +107,7 @@
         } );
         
         horiz.add( edit );
-        horiz.add( new Label("Assert " + this.model.factType) );
+        horiz.add( new Label(completions.getActionDisplayName("assert") + " " + this.model.factType) );
         return horiz;
         
     }

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/ActionRetractFactWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/ActionRetractFactWidget.java	2006-12-11 21:23:16 UTC (rev 8242)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/ActionRetractFactWidget.java	2006-12-11 21:38:12 UTC (rev 8243)
@@ -1,5 +1,6 @@
 package org.drools.brms.client.modeldriven.ui;
 
+import org.drools.brms.client.modeldriven.SuggestionCompletionEngine;
 import org.drools.brms.client.modeldriven.model.ActionRetractFact;
 
 import com.google.gwt.user.client.ui.Composite;
@@ -16,12 +17,12 @@
     private FlexTable layout;
 
     
-    public ActionRetractFactWidget(ActionRetractFact model) {
+    public ActionRetractFactWidget(SuggestionCompletionEngine com, ActionRetractFact model) {
         layout = new FlexTable();
         
         layout.setStyleName( "model-builderInner-Background" );
         
-        layout.setWidget( 0, 0, new Label("Retract ") );
+        layout.setWidget( 0, 0, new Label(com.getActionDisplayName( "retract" )) );
         layout.setWidget( 0, 1, new Label(model.variableName) );
         
         initWidget( layout );

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/ActionSetFieldWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/ActionSetFieldWidget.java	2006-12-11 21:23:16 UTC (rev 8242)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/ActionSetFieldWidget.java	2006-12-11 21:38:12 UTC (rev 8243)
@@ -105,7 +105,7 @@
         } );
         
         horiz.add( edit );
-        horiz.add( new Label("Set " + model.variable) );
+        horiz.add( new Label(completions.getActionDisplayName("set") + " " + model.variable) );
         
         return horiz;
     }

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/CompositeFactPatternWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/CompositeFactPatternWidget.java	2006-12-11 21:23:16 UTC (rev 8242)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/CompositeFactPatternWidget.java	2006-12-11 21:38:12 UTC (rev 8243)
@@ -75,7 +75,7 @@
         } );
 
         horiz.add( edit );
-        horiz.add( new Label( pattern.type ) );
+        horiz.add( new Label( completions.getCEDisplayName( pattern.type ) ) );
         return horiz;
     }
 

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/FactPatternWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/FactPatternWidget.java	2006-12-11 21:23:16 UTC (rev 8242)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/FactPatternWidget.java	2006-12-11 21:38:12 UTC (rev 8243)
@@ -217,8 +217,9 @@
         String[] ops = completions.getConnectiveOperatorCompletions( pattern.factType, fieldName );
         final ListBox box = new ListBox();
         for ( int i = 0; i < ops.length; i++ ) {
-            box.addItem( ops[i] );
-            if (ops[i].equals( con.operator )) {
+            String op = ops[i];
+            box.addItem(completions.getOperatorDisplayName( op ), op );
+            if (op.equals( con.operator )) {
                 box.setSelectedIndex( i );
             }
 
@@ -226,7 +227,7 @@
         
         box.addChangeListener( new ChangeListener() {
             public void onChange(Widget w) {
-                con.operator = box.getItemText( box.getSelectedIndex() );                
+                con.operator = box.getValue( box.getSelectedIndex() );                
             }            
         });
         
@@ -251,8 +252,9 @@
         String[] ops = completions.getOperatorCompletions( pattern.factType, c.fieldName );
         final ListBox box = new ListBox();
         for ( int i = 0; i < ops.length; i++ ) {
-            box.addItem( ops[i] );
-            if (ops[i].equals( c.operator )) {
+            String op = ops[i];
+            box.addItem( completions.getOperatorDisplayName( op ) , op );
+            if (op.equals( c.operator )) {
                 box.setSelectedIndex( i );
             }
 
@@ -260,7 +262,7 @@
         
         box.addChangeListener( new ChangeListener() {
             public void onChange(Widget w) {
-                c.operator = box.getItemText( box.getSelectedIndex() );                
+                c.operator = box.getValue( box.getSelectedIndex() );                
             }            
         });
         

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/RuleModeller.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/RuleModeller.java	2006-12-11 21:23:16 UTC (rev 8242)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/RuleModeller.java	2006-12-11 21:38:12 UTC (rev 8243)
@@ -61,7 +61,7 @@
         Image addPattern = new Image( "images/new_item.gif" );
         addPattern.addClickListener( new ClickListener() {
             public void onClick(Widget w) {
-                showPatternSelector(w);               
+                showAddConditionSelector(w);               
             }            
         });
         
@@ -98,7 +98,7 @@
             } else if (action instanceof ActionAssertFact) {
                 w = new ActionAssertFactWidget(this, (ActionAssertFact) action, completions );
             } else if (action instanceof ActionRetractFact) {
-                w = new ActionRetractFactWidget((ActionRetractFact) action);
+                w = new ActionRetractFactWidget(this.completions, (ActionRetractFact) action);
             }
             
             HorizontalPanel horiz = new HorizontalPanel();
@@ -131,8 +131,8 @@
     /**
      * Pops up the fact selector.
      */
-    protected void showPatternSelector(final Widget w) {
-        final FormStylePopup popup = new FormStylePopup("images/new_fact.gif", "New fact pattern...");
+    protected void showAddConditionSelector(final Widget w) {
+        final FormStylePopup popup = new FormStylePopup("images/new_fact.gif", "Add a condition to the rule...");
 
         
 
@@ -165,14 +165,15 @@
         final ListBox ceBox = new ListBox();
         ceBox.addItem( "Choose condition type...", "IGNORE" ); 
         for ( int i = 0; i < ces.length; i++ ) {
-            ceBox.addItem( ces[i] );
+            String ce = ces[i];
+            ceBox.addItem( completions.getCEDisplayName( ce ), ce );
         }
         ceBox.setSelectedIndex( 0 );
         
         popup.addAttribute( "Condition type", ceBox );
         ceBox.addChangeListener( new ChangeListener() {
             public void onChange(Widget w) {
-                String s = ceBox.getItemText( ceBox.getSelectedIndex() );
+                String s = ceBox.getValue( ceBox.getSelectedIndex() );
                 if (!s.equals( "IGNORE" )) {
                     addNewCE(s);
                     popup.hide();

Modified: labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/client/modeldriven/SuggestionCompletionTest.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/client/modeldriven/SuggestionCompletionTest.java	2006-12-11 21:23:16 UTC (rev 8242)
+++ labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/client/modeldriven/SuggestionCompletionTest.java	2006-12-11 21:38:12 UTC (rev 8243)
@@ -107,14 +107,35 @@
     }
 
 
+    public void testOperatorMapping() {
+        SuggestionCompletionEngine com = new SuggestionCompletionEngine();
+        assertEquals("is not", com.getOperatorDisplayName("!="));
+        assertEquals("is", com.getOperatorDisplayName("=="));        
+        assertEquals("xxx", com.getOperatorDisplayName("xxx"));
+    }
     
+    public void testCEMapping() {
+        SuggestionCompletionEngine com = new SuggestionCompletionEngine();
+        assertEquals("There is no", com.getCEDisplayName( "not" ));
+        assertEquals("There exists", com.getCEDisplayName( "exists" ));
+        assertEquals("Any of", com.getCEDisplayName( "or" ));
+        assertEquals("xxx", com.getCEDisplayName( "xxx" ));
+        
+    }
+    
+    public void testActionMapping() {
+        SuggestionCompletionEngine com = new SuggestionCompletionEngine();
+        assertEquals("Assert", com.getActionDisplayName( "assert" ));
+        assertEquals("foo", com.getActionDisplayName( "foo" ));
+    }
+    
+    
     public void testGlobalAndFacts() {
         SuggestionCompletionEngine com = new SuggestionCompletionEngine();
 
         com.addGlobal( "y", new String[] {"a"} );
         
-        assertFalse(com.isGlobalVariable( "x" ));
-        
+        assertFalse(com.isGlobalVariable( "x" ));        
         assertTrue(com.isGlobalVariable( "y" ));
     }
     




More information about the jboss-svn-commits mailing list