[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