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

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Dec 15 12:06:31 EST 2006


Author: michael.neale at jboss.com
Date: 2006-12-15 12:06:24 -0500 (Fri, 15 Dec 2006)
New Revision: 8352

Added:
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/breditor/package.html
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/EditorLauncher.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/package.html
Modified:
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/RulesFeature.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/main/java/org/drools/brms/client/ruleeditor/RuleViewer.java
Log:
merged in the rule modeller

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/RulesFeature.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/RulesFeature.java	2006-12-15 16:20:16 UTC (rev 8351)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/RulesFeature.java	2006-12-15 17:06:24 UTC (rev 8352)
@@ -69,7 +69,7 @@
             public void open(String key,
                              String type,
                              String name) {                  
-                RuleViewer view = new RuleViewer(parent, key, type, name);
+                RuleViewer view = new RuleViewer(parent, key, name);
                 
                 String displayName = name;
                 if (name.length() > 10) {

Added: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/breditor/package.html
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/breditor/package.html	2006-12-15 16:20:16 UTC (rev 8351)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/breditor/package.html	2006-12-15 17:06:24 UTC (rev 8352)
@@ -0,0 +1,8 @@
+<body>
+This package was a first attempt at a business rule editor.
+
+The functionality here has basically been rolled into the rule modeller.
+Some useful items are to be able to move expressions up and down, and also to have a list box
+selected for DSL sentences.
+
+</body>
\ No newline at end of file


Property changes on: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/breditor/package.html
___________________________________________________________________
Name: svn:eol-style
   + native

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-15 16:20:16 UTC (rev 8351)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/FactPatternWidget.java	2006-12-15 17:06:24 UTC (rev 8352)
@@ -239,6 +239,12 @@
     private Widget valueEditor(final Constraint c) {
         final TextBox box = new TextBox();
         box.setText( c.value );
+        if (c.value == null || c.value.length() < 5) {
+            box.setVisibleLength( 3 );
+        } else {
+            box.setVisibleLength( c.value.length() - 1 );
+        }
+        
         box.addChangeListener( new ChangeListener() {
             public void onChange(Widget w) {
                 c.value = box.getText();                

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-15 16:20:16 UTC (rev 8351)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/RuleModeller.java	2006-12-15 17:06:24 UTC (rev 8352)
@@ -50,7 +50,8 @@
         refreshWidget();
         
         layout.setStyleName( "model-builder-Background" );
-        initWidget( layout );        
+        initWidget( layout );  
+        setWidth( "100%" );
     }
 
     /**

Added: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/EditorLauncher.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/EditorLauncher.java	2006-12-15 16:20:16 UTC (rev 8351)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/EditorLauncher.java	2006-12-15 17:06:24 UTC (rev 8352)
@@ -0,0 +1,164 @@
+package org.drools.brms.client.ruleeditor;
+
+import org.drools.brms.client.modeldriven.SuggestionCompletionEngine;
+import org.drools.brms.client.modeldriven.model.ActionAssertFact;
+import org.drools.brms.client.modeldriven.model.ActionFieldValue;
+import org.drools.brms.client.modeldriven.model.ActionRetractFact;
+import org.drools.brms.client.modeldriven.model.ActionSetField;
+import org.drools.brms.client.modeldriven.model.CompositeFactPattern;
+import org.drools.brms.client.modeldriven.model.Constraint;
+import org.drools.brms.client.modeldriven.model.DSLSentence;
+import org.drools.brms.client.modeldriven.model.DSLSentenceFragment;
+import org.drools.brms.client.modeldriven.model.FactPattern;
+import org.drools.brms.client.modeldriven.model.IAction;
+import org.drools.brms.client.modeldriven.model.IPattern;
+import org.drools.brms.client.modeldriven.model.RuleModel;
+import org.drools.brms.client.modeldriven.ui.RuleModeller;
+import org.drools.brms.client.rpc.RuleAsset;
+
+import com.google.gwt.user.client.ui.Widget;
+
+/**
+ * This launches the appropriate editor for the asset type.
+ * 
+ * @author Michael Neale
+ */
+public class EditorLauncher {
+
+    public static Widget getWidget(RuleAsset asset) {
+        //depending on the format, load the appropriate editor
+        if ( asset.metaData.format.equals( "DSL" ) ) {
+
+            return new RuleModeller( getSuggestionCompletionEngine(asset), getRuleModel(asset) );
+
+        } else {
+            return new DefaultRuleContentWidget( asset );
+        }
+
+    }
+
+    private static RuleModel getRuleModel(RuleAsset asset) {
+        RuleModel model = new RuleModel();
+        
+        model.lhs = new IPattern[3];
+        
+        FactPattern p1 = new FactPattern();
+        FactPattern p2 = new FactPattern();
+        CompositeFactPattern p3 = new CompositeFactPattern();
+        
+        
+        model.lhs[0] = p1;
+        model.lhs[1] = p2;
+        model.lhs[2] = p3;
+        
+        DSLSentence dsl = new DSLSentence();
+        dsl.elements = new DSLSentenceFragment[2];
+        dsl.elements[0] = new DSLSentenceFragment("There is a Storm alert of type", false);
+        dsl.elements[1] = new DSLSentenceFragment("(code here)", true);
+        
+        model.addLhsItem( dsl );
+        
+        dsl = new DSLSentence();
+        dsl.elements = new DSLSentenceFragment[2];
+        dsl.elements[0] = new DSLSentenceFragment("- severity rating is not more than", false);
+        dsl.elements[1] = new DSLSentenceFragment("(code here)", true);
+        
+        model.addLhsItem( dsl );
+            
+        
+        
+        
+        p1.factType = "Person";
+        p1.constraints = new Constraint[2];
+        p1.constraints[0] = new Constraint();
+        p1.constraints[1] = new Constraint();
+        p1.constraints[0].fieldName = "age";
+        p1.constraints[0].operator = "<";
+        p1.constraints[0].value = "42";
+
+        p1.constraints[1].fieldName = "name";
+        p1.constraints[1].operator = "==";
+        p1.constraints[1].value = "Bob";
+        p1.constraints[1].fieldBinding = "n";
+  
+        
+        
+        p2.factType = "Vehicle";
+        p2.boundName = "car1";
+        p2.constraints = new Constraint[1];
+        p2.constraints[0] = new Constraint();
+        p2.constraints[0].fieldName = "type";
+        p2.constraints[0].operator = "!=";
+        
+        p3.type = "not";
+        p3.patterns = new FactPattern[1];
+        FactPattern i1 = new FactPattern("Vehicle");
+        i1.constraints = new Constraint[1];
+        i1.constraints[0] = new Constraint();
+        i1.constraints[0].fieldName = "type";
+        i1.constraints[0].operator = "==";
+        
+        p3.patterns[0] = i1;
+        
+        ActionSetField set = new ActionSetField();
+        set.variable = "car1";
+        set.fieldValues = new ActionFieldValue[1];
+        set.fieldValues[0] = new ActionFieldValue();
+        set.fieldValues[0].field = "type";
+        
+        ActionAssertFact fact = new ActionAssertFact();
+        fact.factType = "Person";
+        fact.fieldValues = new ActionFieldValue[2];
+        fact.fieldValues[0] = new ActionFieldValue("name", "Mike");
+        fact.fieldValues[1] = new ActionFieldValue("age", "42");
+        
+        ActionRetractFact retract = new ActionRetractFact("car1");
+        
+        model.rhs = new IAction[3];
+        model.rhs[0] = set;
+        model.rhs[1] = fact;
+        model.rhs[2] = retract;
+        
+        return model;
+    }
+
+    private static SuggestionCompletionEngine getSuggestionCompletionEngine(RuleAsset asset) {
+        SuggestionCompletionEngine com = new SuggestionCompletionEngine();
+        
+        com.addFact( "Person", new String[] {"age", "name"}  );
+        com.addFact("Vehicle", new String[] {"type", "make"} );
+        com.addOperators( "Person", "name", new String[] {"==", "!="});
+        com.addOperators( "Person", "age", new String[] {"==", "!=", "<", ">", "<=", ">="});
+        com.addOperators( "Vehicle", "age", new String[] {"==", "!=", "<", ">"});
+        com.addOperators( "Vehicle", "type", new String[] {"==", "!=", "<", ">"});
+
+        com.addConnectiveOperators( "Person", "name", new String[] {"|=", "!="});
+
+        
+        com.addConnectiveOperators( "Vehicle", "make", new String[] {"|="});
+        
+        DSLSentence sen = new DSLSentence();
+        sen.elements = new DSLSentenceFragment[2];
+        sen.elements[0] = new DSLSentenceFragment("This is a dsl expression", false);
+        sen.elements[1] = new DSLSentenceFragment("(something)", true);
+        com.addDSLCondition( sen );
+
+        
+        sen = new DSLSentence();
+        sen.elements = new DSLSentenceFragment[3];
+        sen.elements[0] = new DSLSentenceFragment("Send an email to [", false);
+        sen.elements[1] = new DSLSentenceFragment("(someone)", true);
+        sen.elements[2] = new DSLSentenceFragment("]", false);
+        com.addDSLAction( sen );
+        
+        sen = new DSLSentence();
+        sen.elements = new DSLSentenceFragment[1];
+        sen.elements[0] = new DSLSentenceFragment("do nothing", false);        
+        com.addDSLAction( sen );
+        
+        
+        
+        return com;
+    }
+
+}


Property changes on: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/EditorLauncher.java
___________________________________________________________________
Name: svn:eol-style
   + native

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/RuleViewer.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/RuleViewer.java	2006-12-15 16:20:16 UTC (rev 8351)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/RuleViewer.java	2006-12-15 17:06:24 UTC (rev 8352)
@@ -1,30 +1,20 @@
 package org.drools.brms.client.ruleeditor;
 
-import java.util.HashMap;
-import java.util.Map;
-
 import org.drools.brms.client.RulesFeature;
 import org.drools.brms.client.breditor.BREditor;
 import org.drools.brms.client.common.ErrorPopup;
 import org.drools.brms.client.common.WarningPopup;
-import org.drools.brms.client.rpc.MetaData;
 import org.drools.brms.client.rpc.RepositoryServiceFactory;
 import org.drools.brms.client.rpc.RuleAsset;
-import org.drools.brms.client.rpc.TextData;
 
 import com.google.gwt.user.client.Command;
 import com.google.gwt.user.client.rpc.AsyncCallback;
-import com.google.gwt.user.client.ui.Button;
-import com.google.gwt.user.client.ui.ClickListener;
 import com.google.gwt.user.client.ui.Composite;
 import com.google.gwt.user.client.ui.FlexTable;
 import com.google.gwt.user.client.ui.HasHorizontalAlignment;
 import com.google.gwt.user.client.ui.HasVerticalAlignment;
-import com.google.gwt.user.client.ui.Image;
 import com.google.gwt.user.client.ui.Label;
-import com.google.gwt.user.client.ui.Panel;
 import com.google.gwt.user.client.ui.SimplePanel;
-import com.google.gwt.user.client.ui.Widget;
 import com.google.gwt.user.client.ui.FlexTable.FlexCellFormatter;
 
 /**
@@ -36,7 +26,6 @@
 
     private final String      resourceUUID;
     private final String      name;
-    private final String      format;
     private Command           closeCommand;
 
     final private SimplePanel panel = new SimplePanel();
@@ -49,11 +38,9 @@
      */
     public RuleViewer(RulesFeature parent,
                       String UUID,
-                      String format,
                       String name) {
         this.resourceUUID = UUID;
         this.name = name;
-        this.format = format;
 
         //just pad it out a bit, so it gets the layout right - it will be loaded later.
         FlexTable layout = new FlexTable();
@@ -127,18 +114,8 @@
         //REMEMBER: subsequent rows have only one column, doh that is confusing ! 
         //GAAAAAAAAAAAAAAAAAAAAAAAAAAH
 
-        //depending on the format, load the appropriate editor
-        if ( asset.metaData.format.equals( "DSL" ) ) {
-            BREditor ed = new BREditor( asset );
-            layout.setWidget( 1,
-                              0,
-                              ed );
-        } else {
-            DefaultRuleContentWidget ed = new DefaultRuleContentWidget( asset );
-            layout.setWidget( 1,
-                              0,
-                              ed );
-        }
+        layout.setWidget( 1, 0, EditorLauncher.getWidget(asset));
+        
 
         //the document widget
         final RuleDocumentWidget doco = new RuleDocumentWidget();

Added: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/package.html
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/package.html	2006-12-15 16:20:16 UTC (rev 8351)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/package.html	2006-12-15 17:06:24 UTC (rev 8352)
@@ -0,0 +1,3 @@
+<body>
+	This package is holds the main rule/asset editor. It pulls in various other editors/viewers as necessary.
+</body>
\ No newline at end of file


Property changes on: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/package.html
___________________________________________________________________
Name: svn:eol-style
   + native




More information about the jboss-svn-commits mailing list