[jboss-svn-commits] JBL Code SVN: r7986 - in labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms: client client/modeldriven/model client/modeldriven/ui public public/images
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Thu Nov 30 11:21:48 EST 2006
Author: michael.neale at jboss.com
Date: 2006-11-30 11:21:35 -0500 (Thu, 30 Nov 2006)
New Revision: 7986
Added:
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/CompositeFactPattern.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/public/images/connective_constraint_add.gif
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/images/new_fact.gif
Removed:
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/Exist.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/Not.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/Or.java
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/model/ActionSetField.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/FactPattern.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/public/JBRMS.css
Log:
improvements to the model driven editor
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-11-30 15:53:29 UTC (rev 7985)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/Packages.java 2006-11-30 16:21:35 UTC (rev 7986)
@@ -1,11 +1,13 @@
package org.drools.brms.client;
import org.drools.brms.client.modeldriven.SuggestionCompletionEngine;
+import org.drools.brms.client.modeldriven.model.CompositeFactPattern;
import org.drools.brms.client.modeldriven.model.ConnectiveConstraint;
import org.drools.brms.client.modeldriven.model.Constraint;
import org.drools.brms.client.modeldriven.model.FactPattern;
import org.drools.brms.client.modeldriven.model.IPattern;
import org.drools.brms.client.modeldriven.model.RuleModel;
+import org.drools.brms.client.modeldriven.ui.CompositeFactPatternWidget;
import org.drools.brms.client.modeldriven.ui.RuleModeller;
import com.google.gwt.user.client.ui.Image;
@@ -65,13 +67,16 @@
private RuleModel getDummyData() {
RuleModel model = new RuleModel();
- model.lhs = new IPattern[2];
+ 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;
p1.factType = "Person";
p1.constraints = new Constraint[2];
@@ -97,7 +102,15 @@
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;
return model;
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/ActionSetField.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/ActionSetField.java 2006-11-30 15:53:29 UTC (rev 7985)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/ActionSetField.java 2006-11-30 16:21:35 UTC (rev 7986)
@@ -1,5 +1,10 @@
package org.drools.brms.client.modeldriven.model;
+/**
+ * For setting a field on a bound LHS variable or a global.
+ * @author Michael Neale
+ *
+ */
public class ActionSetField implements IAction {
public String variable;
Added: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/CompositeFactPattern.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/CompositeFactPattern.java 2006-11-30 15:53:29 UTC (rev 7985)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/CompositeFactPattern.java 2006-11-30 16:21:35 UTC (rev 7986)
@@ -0,0 +1,18 @@
+package org.drools.brms.client.modeldriven.model;
+
+
+/**
+ * Represents first order logic like Or, Not, Exists.
+ *
+ * @author Michael Neale
+ */
+public class CompositeFactPattern implements IPattern {
+
+ /**
+ * this will one of: [Not, Exist, Or]
+ */
+ public String type;
+ public FactPattern[] patterns;
+
+
+}
Deleted: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/Exist.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/Exist.java 2006-11-30 15:53:29 UTC (rev 7985)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/Exist.java 2006-11-30 16:21:35 UTC (rev 7986)
@@ -1,9 +0,0 @@
-package org.drools.brms.client.modeldriven.model;
-
-public class Exist
- implements
- IPattern {
-
- FactPattern[] factPattern;
-
-}
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/FactPattern.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/FactPattern.java 2006-11-30 15:53:29 UTC (rev 7985)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/FactPattern.java 2006-11-30 16:21:35 UTC (rev 7986)
@@ -2,6 +2,15 @@
public class FactPattern implements IPattern {
+ public FactPattern() {
+ this.constraints = new Constraint[0];
+ }
+
+ public FactPattern(String factType) {
+ this.factType = factType;
+ this.constraints = new Constraint[0];
+ }
+
public Constraint[] constraints;
public String factType;
public String boundName;
Deleted: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/Not.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/Not.java 2006-11-30 15:53:29 UTC (rev 7985)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/Not.java 2006-11-30 16:21:35 UTC (rev 7986)
@@ -1,9 +0,0 @@
-package org.drools.brms.client.modeldriven.model;
-
-public class Not
- implements
- IPattern {
-
- FactPattern[] factPatterns;
-
-}
Deleted: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/Or.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/Or.java 2006-11-30 15:53:29 UTC (rev 7985)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/model/Or.java 2006-11-30 16:21:35 UTC (rev 7986)
@@ -1,7 +0,0 @@
-package org.drools.brms.client.modeldriven.model;
-
-public class Or implements IPattern {
-
- FactPattern[] factPatterns;
-
-}
Added: 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-11-30 15:53:29 UTC (rev 7985)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/CompositeFactPatternWidget.java 2006-11-30 16:21:35 UTC (rev 7986)
@@ -0,0 +1,46 @@
+package org.drools.brms.client.modeldriven.ui;
+
+import org.drools.brms.client.modeldriven.SuggestionCompletionEngine;
+import org.drools.brms.client.modeldriven.model.CompositeFactPattern;
+import org.drools.brms.client.modeldriven.model.FactPattern;
+
+import com.google.gwt.user.client.ui.Composite;
+import com.google.gwt.user.client.ui.Grid;
+import com.google.gwt.user.client.ui.Label;
+import com.google.gwt.user.client.ui.VerticalPanel;
+
+public class CompositeFactPatternWidget extends Composite {
+
+ private final SuggestionCompletionEngine completions;
+ private CompositeFactPattern pattern;
+ private Grid layout;
+
+ public CompositeFactPatternWidget(CompositeFactPattern pattern,
+ SuggestionCompletionEngine completions) {
+ this.completions = completions;
+ this.pattern = pattern;
+
+ this.layout = new Grid(1, 2);
+ this.layout.setStyleName( "model-builderInner-Background" );
+
+ doLayout( );
+
+
+ initWidget( layout );
+ }
+
+ private void doLayout() {
+ VerticalPanel vert = new VerticalPanel();
+
+ FactPattern[] facts = pattern.patterns;
+ for ( int i = 0; i < facts.length; i++ ) {
+ vert.add( new FactPatternWidget(facts[i], this.completions) );
+ }
+
+ this.layout.setWidget( 0, 0, new Label(pattern.type) );
+ this.layout.setWidget( 0, 1, vert );
+ }
+
+
+
+}
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-11-30 15:53:29 UTC (rev 7985)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/FactPatternWidget.java 2006-11-30 16:21:35 UTC (rev 7986)
@@ -51,10 +51,9 @@
inner.setWidget( row, 3, connectives(c) );
}
- layout.setStyleName( "model-builder-Background" );
+ layout.setStyleName( "model-builderInner-Background" );
initWidget( layout );
-
}
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-11-30 15:53:29 UTC (rev 7985)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/RuleModeller.java 2006-11-30 16:21:35 UTC (rev 7986)
@@ -1,15 +1,19 @@
package org.drools.brms.client.modeldriven.ui;
+import org.drools.brms.client.common.FormStylePopup;
import org.drools.brms.client.modeldriven.SuggestionCompletionEngine;
+import org.drools.brms.client.modeldriven.model.CompositeFactPattern;
import org.drools.brms.client.modeldriven.model.FactPattern;
import org.drools.brms.client.modeldriven.model.IPattern;
import org.drools.brms.client.modeldriven.model.RuleModel;
+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.Image;
import com.google.gwt.user.client.ui.Label;
+import com.google.gwt.user.client.ui.ListBox;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.user.client.ui.Widget;
@@ -20,7 +24,7 @@
*
*/
public class RuleModeller extends Composite {
-
+
private FlexTable layout;
private SuggestionCompletionEngine completions;
private RuleModel model;
@@ -30,14 +34,24 @@
this.completions = com;
layout = new FlexTable();
+
+ doLayout();
+
layout.setStyleName( "model-builder-Background" );
-
initWidget( layout );
+ }
+
+ private void doLayout() {
+ layout.clear();
+
+
+
+
Image addPattern = new Image( "images/new_item.gif" );
addPattern.addClickListener( new ClickListener() {
public void onClick(Widget w) {
- showFactTypeSelector();
+ showFactTypeSelector(w);
}
});
@@ -49,14 +63,51 @@
layout.setWidget( 1, 1, renderLhs(this.model) );
layout.setWidget( 2, 0, new Label("THEN") );
layout.setWidget( 3, 1, new Label("<Rhs here>") );
+ }
+
+ /**
+ * Pops up the fact selector.
+ */
+ protected void showFactTypeSelector(final Widget w) {
+ final ListBox box = new ListBox();
+ String[] facts = completions.getFactTypes();
+ for ( int i = 0; i < facts.length; i++ ) {
+ box.addItem( facts[i] );
+ }
+ final FormStylePopup popup = new FormStylePopup("images/new_fact.gif", "New fact pattern...");
+ popup.addAttribute( "choose type", box );
+ Button ok = new Button("OK");
+ popup.addAttribute( "", ok );
+ ok.addClickListener( new ClickListener() {
+ public void onClick(Widget w) {
+ addNewFact(box.getItemText( box.getSelectedIndex() ));
+ popup.hide();
+
+ }
+ });
+ popup.setStyleName( "ks-popups-Popup" );
-
+ popup.setPopupPosition( w.getAbsoluteLeft() - 400, w.getAbsoluteTop() );
+ popup.show();
}
- protected void showFactTypeSelector() {
- // TODO Auto-generated method stub
+ /**
+ * Adds a fact to the model, and then refreshes the display.
+ */
+ protected void addNewFact(String itemText) {
+ IPattern[] list = this.model.lhs;
+ IPattern[] newList = new IPattern[list.length + 1];
+
+ for ( int i = 0; i < list.length; i++ ) {
+ newList[i] = list[i];
+ }
+ newList[list.length] = new FactPattern(itemText);
+
+ this.model.lhs = newList;
+
+ doLayout();
}
private Widget renderLhs(RuleModel model) {
@@ -65,6 +116,10 @@
IPattern pattern = model.lhs[i];
if (pattern instanceof FactPattern) {
vert.add( new FactPatternWidget(pattern, completions) );
+ } else if (pattern instanceof CompositeFactPattern) {
+ vert.add( new CompositeFactPatternWidget((CompositeFactPattern) pattern, completions) );
+ } else {
+ throw new RuntimeException("I don't know what type of pattern that is.");
}
//TODO: add stuff for removing pattern here.
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/JBRMS.css
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/JBRMS.css 2006-11-30 15:53:29 UTC (rev 7985)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/JBRMS.css 2006-11-30 16:21:35 UTC (rev 7986)
@@ -118,6 +118,11 @@
border: 1px solid #87B3FF;
}
+.model-builderInner-Background {
+ background-color: #FDFCDC;
+ border: 1px solid #87B3FF;
+}
+
.gwt-TabBar {
background-color: #B8B8B8;
font-size: smaller;
Added: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/images/connective_constraint_add.gif
===================================================================
(Binary files differ)
Property changes on: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/images/connective_constraint_add.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/images/new_fact.gif
===================================================================
(Binary files differ)
Property changes on: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/images/new_fact.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
More information about the jboss-svn-commits
mailing list