[jboss-svn-commits] JBL Code SVN: r12525 - in labs/jbossrules/trunk/drools-jbrms: src/main/java/org/drools/brms/client/modeldriven/ui and 2 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Jun 12 22:46:52 EDT 2007


Author: mark.proctor at jboss.com
Date: 2007-06-12 22:46:52 -0400 (Tue, 12 Jun 2007)
New Revision: 12525

Added:
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/ActionInsertFactWidget.java
Removed:
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/ActionAssertFactWidget.java
Modified:
   labs/jbossrules/trunk/drools-jbrms/.classpath
   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/RuleModeller.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/builder/BRMSPackageBuilder.java
   labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/builder/ContentPackageAssemblerTest.java
Log:
JBRULES-922 API change for assert and modify

Modified: labs/jbossrules/trunk/drools-jbrms/.classpath
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/.classpath	2007-06-13 02:46:39 UTC (rev 12524)
+++ labs/jbossrules/trunk/drools-jbrms/.classpath	2007-06-13 02:46:52 UTC (rev 12525)
@@ -1,56 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
 <classpath>
-  <classpathentry kind="src" path="src/main/java"/>
-  <classpathentry kind="src" path="src/main/resources" excluding="**/*.java"/>
-  <classpathentry kind="src" path="src/test/java" output="target/test-classes"/>
-  <classpathentry kind="src" path="src/test/resources" output="target/test-classes" excluding="**/*.java"/>
-  <classpathentry kind="output" path="target/classes"/>
-  <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-  <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-annotations/3.2.1.ga/hibernate-annotations-3.2.1.ga.jar"/>
-  <classpathentry kind="src" path="/drools-compiler"/>
-  <classpathentry kind="var" path="M2_REPO/xstream/xstream/1.1.3/xstream-1.1.3.jar"/>
-  <classpathentry kind="var" path="M2_REPO/javax/servlet/servlet-api/2.3/servlet-api-2.3.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/apache/jackrabbit/jackrabbit-jcr-commons/1.2.2/jackrabbit-jcr-commons-1.2.2.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/slf4j/slf4j-log4j12/1.0/slf4j-log4j12-1.0.jar"/>
-  <classpathentry kind="var" path="M2_REPO/log4j/log4j/1.2.8/log4j-1.2.8.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/antlr/antlr/3.0/antlr-3.0.jar"/>
-  <classpathentry kind="var" path="M2_REPO/javax/el/el-ri/1.2/el-ri-1.2.jar"/>
-  <classpathentry kind="var" path="M2_REPO/commons-collections/commons-collections/3.1/commons-collections-3.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/net/sf/ehcache/ehcache/1.2.3/ehcache-1.2.3.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/apache/lucene/lucene-core/2.0.0/lucene-core-2.0.0.jar"/>
-  <classpathentry kind="src" path="/drools-repository"/>
-  <classpathentry kind="var" path="M2_REPO/jboss/javassist/3.4.ga/javassist-3.4.ga.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/antlr/stringtemplate/3.0/stringtemplate-3.0.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/eclipse/jdt/core/3.2.1.v_677_R32x/core-3.2.1.v_677_R32x.jar"/>
-  <classpathentry kind="var" path="M2_REPO/asm/asm/1.5.3/asm-1.5.3.jar"/>
-  <classpathentry kind="var" path="M2_REPO/google/gwt-servlet/1.3.3/gwt-servlet-1.3.3.jar"/>
-  <classpathentry kind="var" path="M2_REPO/xerces/xercesImpl/2.4.0/xercesImpl-2.4.0.jar"/>
-  <classpathentry kind="var" path="M2_REPO/commons-fileupload/commons-fileupload/1.1.1/commons-fileupload-1.1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/concurrent/concurrent/1.3.4/concurrent-1.3.4.jar"/>
-  <classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/tmatesoft/javasvn/1.1-beta5/javasvn-1.1-beta5.jar"/>
-  <classpathentry kind="var" path="M2_REPO/dom4j/dom4j/1.6.1/dom4j-1.6.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/mvel/mvel14/1.2beta25/mvel14-1.2beta25.jar"/>
-  <classpathentry kind="var" path="M2_REPO/xpp3/xpp3/1.1.3.4.O/xpp3-1.1.3.4.O.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate/3.2.1.ga/hibernate-3.2.1.ga.jar"/>
-  <classpathentry kind="var" path="M2_REPO/javax/transaction/jta/1.0.1B/jta-1.0.1B.jar"/>
-  <classpathentry kind="var" path="M2_REPO/xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.jar"/>
-  <classpathentry kind="src" path="/drools-core"/>
-  <classpathentry kind="var" path="M2_REPO/javax/el/el-api/1.2/el-api-1.2.jar"/>
-  <classpathentry kind="var" path="M2_REPO/javax/persistence/persistence-api/1.0/persistence-api-1.0.jar"/>
-  <classpathentry kind="var" path="M2_REPO/javax/jms/jms/1.1/jms-1.1.jar"/>
-  <classpathentry kind="src" path="/drools-decisiontables"/>
-  <classpathentry kind="var" path="M2_REPO/jboss/seam/jboss-seam/1.2.0.GA/jboss-seam-1.2.0.GA.jar"/>
-  <classpathentry kind="var" path="M2_REPO/commons-io/commons-io/1.1/commons-io-1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/apache/geronimo/specs/geronimo-jta_1.0.1B_spec/1.0.1/geronimo-jta_1.0.1B_spec-1.0.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/javax/jcr/jcr/1.0/jcr-1.0.jar"/>
-  <classpathentry kind="var" path="M2_REPO/jexcelapi/jxl/2.4.2/jxl-2.4.2.jar"/>
-  <classpathentry kind="var" path="M2_REPO/antlr/antlr/2.7.6/antlr-2.7.6.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/apache/jackrabbit/jackrabbit-core/1.2.2/jackrabbit-core-1.2.2.jar"/>
-  <classpathentry kind="var" path="M2_REPO/jboss/seam/profiles/seam-nopersistence/1.2.0.GA/seam-nopersistence-1.2.0.GA.jar"/>
-  <classpathentry kind="var" path="M2_REPO/cglib/cglib/2.1_3/cglib-2.1_3.jar"/>
-  <classpathentry kind="var" path="M2_REPO/commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.jar"/>
-  <classpathentry kind="var" path="M2_REPO/asm/asm-attrs/1.5.3/asm-attrs-1.5.3.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/apache/derby/derby/10.2.1.6/derby-10.2.1.6.jar"/>
-  <classpathentry kind="var" path="M2_REPO/janino/janino/2.5.7/janino-2.5.7.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/apache/jackrabbit/jackrabbit-api/1.2.2/jackrabbit-api-1.2.2.jar"/>
-</classpath>
\ No newline at end of file
+	<classpathentry kind="src" path="src/main/java"/>
+	<classpathentry excluding="**/*.java" kind="src" path="src/main/resources"/>
+	<classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
+	<classpathentry excluding="**/*.java" kind="src" output="target/test-classes" path="src/test/resources"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jdk1.5.0_10"/>
+	<classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-annotations/3.2.1.ga/hibernate-annotations-3.2.1.ga.jar"/>
+	<classpathentry kind="src" path="/drools-compiler"/>
+	<classpathentry kind="var" path="M2_REPO/xstream/xstream/1.1.3/xstream-1.1.3.jar"/>
+	<classpathentry kind="var" path="M2_REPO/javax/servlet/servlet-api/2.3/servlet-api-2.3.jar"/>
+	<classpathentry kind="var" path="M2_REPO/org/apache/jackrabbit/jackrabbit-jcr-commons/1.2.2/jackrabbit-jcr-commons-1.2.2.jar"/>
+	<classpathentry kind="var" path="M2_REPO/org/slf4j/slf4j-log4j12/1.0/slf4j-log4j12-1.0.jar"/>
+	<classpathentry kind="var" path="M2_REPO/log4j/log4j/1.2.8/log4j-1.2.8.jar"/>
+	<classpathentry kind="var" path="M2_REPO/org/antlr/antlr/3.0/antlr-3.0.jar"/>
+	<classpathentry kind="var" path="M2_REPO/javax/el/el-ri/1.2/el-ri-1.2.jar"/>
+	<classpathentry kind="var" path="M2_REPO/commons-collections/commons-collections/3.1/commons-collections-3.1.jar"/>
+	<classpathentry kind="var" path="M2_REPO/net/sf/ehcache/ehcache/1.2.3/ehcache-1.2.3.jar"/>
+	<classpathentry kind="var" path="M2_REPO/org/apache/lucene/lucene-core/2.0.0/lucene-core-2.0.0.jar"/>
+	<classpathentry kind="src" path="/drools-repository"/>
+	<classpathentry kind="var" path="M2_REPO/jboss/javassist/3.4.ga/javassist-3.4.ga.jar"/>
+	<classpathentry kind="var" path="M2_REPO/org/antlr/stringtemplate/3.0/stringtemplate-3.0.jar"/>
+	<classpathentry kind="var" path="M2_REPO/org/eclipse/jdt/core/3.2.1.v_677_R32x/core-3.2.1.v_677_R32x.jar"/>
+	<classpathentry kind="var" path="M2_REPO/asm/asm/1.5.3/asm-1.5.3.jar"/>
+	<classpathentry kind="var" path="M2_REPO/google/gwt-servlet/1.3.3/gwt-servlet-1.3.3.jar"/>
+	<classpathentry kind="var" path="M2_REPO/xerces/xercesImpl/2.4.0/xercesImpl-2.4.0.jar"/>
+	<classpathentry kind="var" path="M2_REPO/commons-fileupload/commons-fileupload/1.1.1/commons-fileupload-1.1.1.jar"/>
+	<classpathentry kind="var" path="M2_REPO/concurrent/concurrent/1.3.4/concurrent-1.3.4.jar"/>
+	<classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar"/>
+	<classpathentry kind="var" path="M2_REPO/org/tmatesoft/javasvn/1.1-beta5/javasvn-1.1-beta5.jar"/>
+	<classpathentry kind="var" path="M2_REPO/dom4j/dom4j/1.6.1/dom4j-1.6.1.jar"/>
+	<classpathentry kind="var" path="M2_REPO/org/mvel/mvel14/1.2beta25/mvel14-1.2beta25.jar"/>
+	<classpathentry kind="var" path="M2_REPO/xpp3/xpp3/1.1.3.4.O/xpp3-1.1.3.4.O.jar"/>
+	<classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate/3.2.1.ga/hibernate-3.2.1.ga.jar"/>
+	<classpathentry kind="var" path="M2_REPO/javax/transaction/jta/1.0.1B/jta-1.0.1B.jar"/>
+	<classpathentry kind="var" path="M2_REPO/xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.jar"/>
+	<classpathentry kind="src" path="/drools-core"/>
+	<classpathentry kind="var" path="M2_REPO/javax/el/el-api/1.2/el-api-1.2.jar"/>
+	<classpathentry kind="var" path="M2_REPO/javax/persistence/persistence-api/1.0/persistence-api-1.0.jar"/>
+	<classpathentry kind="var" path="M2_REPO/javax/jms/jms/1.1/jms-1.1.jar"/>
+	<classpathentry kind="src" path="/drools-decisiontables"/>
+	<classpathentry kind="var" path="M2_REPO/jboss/seam/jboss-seam/1.2.0.GA/jboss-seam-1.2.0.GA.jar"/>
+	<classpathentry kind="var" path="M2_REPO/commons-io/commons-io/1.1/commons-io-1.1.jar"/>
+	<classpathentry kind="var" path="M2_REPO/org/apache/geronimo/specs/geronimo-jta_1.0.1B_spec/1.0.1/geronimo-jta_1.0.1B_spec-1.0.1.jar"/>
+	<classpathentry kind="var" path="M2_REPO/javax/jcr/jcr/1.0/jcr-1.0.jar"/>
+	<classpathentry kind="var" path="M2_REPO/jexcelapi/jxl/2.4.2/jxl-2.4.2.jar"/>
+	<classpathentry kind="var" path="M2_REPO/antlr/antlr/2.7.6/antlr-2.7.6.jar"/>
+	<classpathentry kind="var" path="M2_REPO/org/apache/jackrabbit/jackrabbit-core/1.2.2/jackrabbit-core-1.2.2.jar"/>
+	<classpathentry kind="var" path="M2_REPO/jboss/seam/profiles/seam-nopersistence/1.2.0.GA/seam-nopersistence-1.2.0.GA.jar"/>
+	<classpathentry kind="var" path="M2_REPO/cglib/cglib/2.1_3/cglib-2.1_3.jar"/>
+	<classpathentry kind="var" path="M2_REPO/commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.jar"/>
+	<classpathentry kind="var" path="M2_REPO/asm/asm-attrs/1.5.3/asm-attrs-1.5.3.jar"/>
+	<classpathentry kind="var" path="M2_REPO/org/apache/derby/derby/10.2.1.6/derby-10.2.1.6.jar"/>
+	<classpathentry kind="var" path="M2_REPO/janino/janino/2.5.7/janino-2.5.7.jar"/>
+	<classpathentry kind="var" path="M2_REPO/org/apache/jackrabbit/jackrabbit-api/1.2.2/jackrabbit-api-1.2.2.jar"/>
+	<classpathentry kind="output" path="target/classes"/>
+</classpath>

Deleted: 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	2007-06-13 02:46:39 UTC (rev 12524)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/ActionAssertFactWidget.java	2007-06-13 02:46:52 UTC (rev 12525)
@@ -1,178 +0,0 @@
-package org.drools.brms.client.modeldriven.ui;
-
-import org.drools.brms.client.common.DirtyableComposite;
-import org.drools.brms.client.common.DirtyableFlexTable;
-import org.drools.brms.client.common.FormStylePopup;
-import org.drools.brms.client.common.ImageButton;
-import org.drools.brms.client.common.Lbl;
-import org.drools.brms.client.common.YesNoDialog;
-import org.drools.brms.client.modeldriven.HumanReadable;
-import org.drools.brms.client.modeldriven.SuggestionCompletionEngine;
-import org.drools.brms.client.modeldriven.brxml.ActionAssertFact;
-import org.drools.brms.client.modeldriven.brxml.ActionAssertLogicalFact;
-import org.drools.brms.client.modeldriven.brxml.ActionFieldValue;
-
-import com.google.gwt.user.client.Command;
-import com.google.gwt.user.client.ui.ChangeListener;
-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.HorizontalPanel;
-import com.google.gwt.user.client.ui.Image;
-import com.google.gwt.user.client.ui.KeyboardListener;
-import com.google.gwt.user.client.ui.Label;
-import com.google.gwt.user.client.ui.ListBox;
-import com.google.gwt.user.client.ui.TextBox;
-import com.google.gwt.user.client.ui.Widget;
-
-/**
- * This is used when asserting a new fact into working memory. 
- * 
- * @author Michael Neale
- *
- */
-public class ActionAssertFactWidget extends DirtyableComposite {
-
-    private DirtyableFlexTable layout;
-    private ActionAssertFact model;
-    private SuggestionCompletionEngine completions;
-    private String[] fieldCompletions;
-    private RuleModeller modeller;
-    
-    public ActionAssertFactWidget(RuleModeller mod, ActionAssertFact set, SuggestionCompletionEngine com) {
-        this.model = set;
-        this.completions = com;
-        this.layout = new DirtyableFlexTable();
-        this.modeller = mod;
-        this.fieldCompletions = this.completions.getFieldCompletions( set.factType );
-        
-        layout.setStyleName( "model-builderInner-Background" );
-        
-        doLayout();
-        
-        initWidget(this.layout);
-    }
-
-    private void doLayout() {
-        layout.clear();
-        layout.setWidget( 0, 0, getAssertLabel() );
-        
-        DirtyableFlexTable inner = new DirtyableFlexTable();
-        
-        for ( int i = 0; i < model.fieldValues.length; i++ ) {
-            ActionFieldValue val = model.fieldValues[i];
-            
-            inner.setWidget( i, 0, fieldSelector(val) );
-            inner.setWidget( i, 1, valueEditor(val) );
-            final int idx = i;
-            Image remove = new ImageButton("images/delete_item_small.gif");
-            remove.addClickListener( new ClickListener() {
-                public void onClick(Widget w) {
-                    YesNoDialog diag = new YesNoDialog("Remove this item?", new Command() {
-                        public void execute() {
-                            model.removeField( idx );
-                            modeller.refreshWidget();
-                        }                        
-                    });
-                    diag.setPopupPosition( w.getAbsoluteLeft(), w.getAbsoluteTop() );
-                    diag.show();
-                }                
-            });
-            inner.setWidget( i, 2, remove );
-            
-        }
-        
-        layout.setWidget( 0, 1, inner );
-        
-                
-    }
-
-    private Widget valueEditor(final ActionFieldValue val) {
-        final TextBox box = new TextBox();
-        box.setText( val.value );
-        box.addChangeListener( new ChangeListener() {
-            public void onChange(Widget w) {
-                val.value = box.getText();
-                modeller.refreshWidget();
-            }            
-        });
-        
-        if (val.type.equals( SuggestionCompletionEngine.TYPE_NUMERIC )) {
-            box.addKeyboardListener( new KeyboardListener() {
-    
-                public void onKeyDown(Widget arg0, char arg1, int arg2) {
-
-                }
-    
-                public void onKeyPress(Widget w, char c, int i) {
-                    if (Character.isLetter( c )) {
-                        ((TextBox) w).cancelKey();
-                    } 
-                }
-    
-                public void onKeyUp(Widget arg0, char arg1, int arg2) {
-                }
-                
-            });
-        }        
-        return box;
-    }
-
-    private Widget fieldSelector(final ActionFieldValue val) {
-        return new Label(val.field);    
-    }
-
-    private Widget getAssertLabel() {   
-        HorizontalPanel horiz = new HorizontalPanel();
-        
-        
-        Image edit = new ImageButton("images/add_field_to_fact.gif");
-        edit.setTitle( "Add another field to this so you can set its value." );
-        edit.addClickListener( new ClickListener() {
-            public void onClick(Widget w) {
-                showAddFieldPopup(w);
-            }
-        } );
-            
-
-        String assertType = "assert";
-        if (this.model instanceof ActionAssertLogicalFact) {
-            assertType = "assertLogical";
-        }
-        horiz.add( new Lbl(HumanReadable.getActionDisplayName(assertType) + " " + this.model.factType, "modeller-action-Label") );
-        horiz.add( edit );
-        return horiz;
-        
-    }
-    
-    protected void showAddFieldPopup(Widget w) {
-        final FormStylePopup popup = new FormStylePopup("images/newex_wiz.gif", "Add a field");
-        popup.setStyleName( "ks-popups-Popup" );
-        final ListBox box = new ListBox();
-        box.addItem( "..." );
-
-        for ( int i = 0; i < fieldCompletions.length; i++ ) {
-            box.addItem( fieldCompletions[i] );
-        }
-        
-        box.setSelectedIndex( 0 );
-        
-        popup.addAttribute( "Add field", box );
-        box.addChangeListener( new ChangeListener() {
-            public void onChange(Widget w) {
-                String fieldName = box.getItemText( box.getSelectedIndex() );
-                String fieldType = completions.getFieldType( model.factType, fieldName );
-                model.addFieldValue( new ActionFieldValue( fieldName, "", fieldType ) );
-                modeller.refreshWidget();
-                popup.hide();
-            }
-        });
-        
-
-        
-        popup.setPopupPosition( w.getAbsoluteLeft(), w.getAbsoluteTop() );
-        popup.show();
- 
-    }    
-    
-}

Copied: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/ActionInsertFactWidget.java (from rev 12523, 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/ActionInsertFactWidget.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/ActionInsertFactWidget.java	2007-06-13 02:46:52 UTC (rev 12525)
@@ -0,0 +1,178 @@
+package org.drools.brms.client.modeldriven.ui;
+
+import org.drools.brms.client.common.DirtyableComposite;
+import org.drools.brms.client.common.DirtyableFlexTable;
+import org.drools.brms.client.common.FormStylePopup;
+import org.drools.brms.client.common.ImageButton;
+import org.drools.brms.client.common.Lbl;
+import org.drools.brms.client.common.YesNoDialog;
+import org.drools.brms.client.modeldriven.HumanReadable;
+import org.drools.brms.client.modeldriven.SuggestionCompletionEngine;
+import org.drools.brms.client.modeldriven.brxml.ActionFieldValue;
+import org.drools.brms.client.modeldriven.brxml.ActionInsertFact;
+import org.drools.brms.client.modeldriven.brxml.ActionInsertLogicalFact;
+
+import com.google.gwt.user.client.Command;
+import com.google.gwt.user.client.ui.ChangeListener;
+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.HorizontalPanel;
+import com.google.gwt.user.client.ui.Image;
+import com.google.gwt.user.client.ui.KeyboardListener;
+import com.google.gwt.user.client.ui.Label;
+import com.google.gwt.user.client.ui.ListBox;
+import com.google.gwt.user.client.ui.TextBox;
+import com.google.gwt.user.client.ui.Widget;
+
+/**
+ * This is used when asserting a new fact into working memory. 
+ * 
+ * @author Michael Neale
+ *
+ */
+public class ActionInsertFactWidget extends DirtyableComposite {
+
+    private DirtyableFlexTable layout;
+    private ActionInsertFact model;
+    private SuggestionCompletionEngine completions;
+    private String[] fieldCompletions;
+    private RuleModeller modeller;
+    
+    public ActionInsertFactWidget(RuleModeller mod, ActionInsertFact set, SuggestionCompletionEngine com) {
+        this.model = set;
+        this.completions = com;
+        this.layout = new DirtyableFlexTable();
+        this.modeller = mod;
+        this.fieldCompletions = this.completions.getFieldCompletions( set.factType );
+        
+        layout.setStyleName( "model-builderInner-Background" );
+        
+        doLayout();
+        
+        initWidget(this.layout);
+    }
+
+    private void doLayout() {
+        layout.clear();
+        layout.setWidget( 0, 0, getAssertLabel() );
+        
+        DirtyableFlexTable inner = new DirtyableFlexTable();
+        
+        for ( int i = 0; i < model.fieldValues.length; i++ ) {
+            ActionFieldValue val = model.fieldValues[i];
+            
+            inner.setWidget( i, 0, fieldSelector(val) );
+            inner.setWidget( i, 1, valueEditor(val) );
+            final int idx = i;
+            Image remove = new ImageButton("images/delete_item_small.gif");
+            remove.addClickListener( new ClickListener() {
+                public void onClick(Widget w) {
+                    YesNoDialog diag = new YesNoDialog("Remove this item?", new Command() {
+                        public void execute() {
+                            model.removeField( idx );
+                            modeller.refreshWidget();
+                        }                        
+                    });
+                    diag.setPopupPosition( w.getAbsoluteLeft(), w.getAbsoluteTop() );
+                    diag.show();
+                }                
+            });
+            inner.setWidget( i, 2, remove );
+            
+        }
+        
+        layout.setWidget( 0, 1, inner );
+        
+                
+    }
+
+    private Widget valueEditor(final ActionFieldValue val) {
+        final TextBox box = new TextBox();
+        box.setText( val.value );
+        box.addChangeListener( new ChangeListener() {
+            public void onChange(Widget w) {
+                val.value = box.getText();
+                modeller.refreshWidget();
+            }            
+        });
+        
+        if (val.type.equals( SuggestionCompletionEngine.TYPE_NUMERIC )) {
+            box.addKeyboardListener( new KeyboardListener() {
+    
+                public void onKeyDown(Widget arg0, char arg1, int arg2) {
+
+                }
+    
+                public void onKeyPress(Widget w, char c, int i) {
+                    if (Character.isLetter( c )) {
+                        ((TextBox) w).cancelKey();
+                    } 
+                }
+    
+                public void onKeyUp(Widget arg0, char arg1, int arg2) {
+                }
+                
+            });
+        }        
+        return box;
+    }
+
+    private Widget fieldSelector(final ActionFieldValue val) {
+        return new Label(val.field);    
+    }
+
+    private Widget getAssertLabel() {   
+        HorizontalPanel horiz = new HorizontalPanel();
+        
+        
+        Image edit = new ImageButton("images/add_field_to_fact.gif");
+        edit.setTitle( "Add another field to this so you can set its value." );
+        edit.addClickListener( new ClickListener() {
+            public void onClick(Widget w) {
+                showAddFieldPopup(w);
+            }
+        } );
+            
+
+        String assertType = "assert";
+        if (this.model instanceof ActionInsertLogicalFact) {
+            assertType = "assertLogical";
+        }
+        horiz.add( new Lbl(HumanReadable.getActionDisplayName(assertType) + " " + this.model.factType, "modeller-action-Label") );
+        horiz.add( edit );
+        return horiz;
+        
+    }
+    
+    protected void showAddFieldPopup(Widget w) {
+        final FormStylePopup popup = new FormStylePopup("images/newex_wiz.gif", "Add a field");
+        popup.setStyleName( "ks-popups-Popup" );
+        final ListBox box = new ListBox();
+        box.addItem( "..." );
+
+        for ( int i = 0; i < fieldCompletions.length; i++ ) {
+            box.addItem( fieldCompletions[i] );
+        }
+        
+        box.setSelectedIndex( 0 );
+        
+        popup.addAttribute( "Add field", box );
+        box.addChangeListener( new ChangeListener() {
+            public void onChange(Widget w) {
+                String fieldName = box.getItemText( box.getSelectedIndex() );
+                String fieldType = completions.getFieldType( model.factType, fieldName );
+                model.addFieldValue( new ActionFieldValue( fieldName, "", fieldType ) );
+                modeller.refreshWidget();
+                popup.hide();
+            }
+        });
+        
+
+        
+        popup.setPopupPosition( w.getAbsoluteLeft(), w.getAbsoluteTop() );
+        popup.show();
+ 
+    }    
+    
+}

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	2007-06-13 02:46:39 UTC (rev 12524)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/ActionSetFieldWidget.java	2007-06-13 02:46:52 UTC (rev 12525)
@@ -10,7 +10,7 @@
 import org.drools.brms.client.modeldriven.HumanReadable;
 import org.drools.brms.client.modeldriven.SuggestionCompletionEngine;
 import org.drools.brms.client.modeldriven.brxml.ActionFieldValue;
-import org.drools.brms.client.modeldriven.brxml.ActionModifyField;
+import org.drools.brms.client.modeldriven.brxml.ActionUpdateField;
 import org.drools.brms.client.modeldriven.brxml.ActionSetField;
 import org.drools.brms.client.modeldriven.brxml.FactPattern;
 import org.drools.brms.client.modeldriven.brxml.RuleModel;
@@ -115,7 +115,7 @@
             }
         } );
         String modifyType = "set";
-        if (this.model instanceof ActionModifyField) {
+        if (this.model instanceof ActionUpdateField) {
             modifyType = "modify";
         }
         horiz.add( new Lbl(HumanReadable.getActionDisplayName(modifyType) + " [" + model.variable + "]", "modeller-action-Label") );

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	2007-06-13 02:46:39 UTC (rev 12524)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/RuleModeller.java	2007-06-13 02:46:52 UTC (rev 12525)
@@ -13,9 +13,9 @@
 import org.drools.brms.client.common.YesNoDialog;
 import org.drools.brms.client.modeldriven.HumanReadable;
 import org.drools.brms.client.modeldriven.SuggestionCompletionEngine;
-import org.drools.brms.client.modeldriven.brxml.ActionAssertFact;
-import org.drools.brms.client.modeldriven.brxml.ActionAssertLogicalFact;
-import org.drools.brms.client.modeldriven.brxml.ActionModifyField;
+import org.drools.brms.client.modeldriven.brxml.ActionInsertFact;
+import org.drools.brms.client.modeldriven.brxml.ActionInsertLogicalFact;
+import org.drools.brms.client.modeldriven.brxml.ActionUpdateField;
 import org.drools.brms.client.modeldriven.brxml.ActionRetractFact;
 import org.drools.brms.client.modeldriven.brxml.ActionSetField;
 import org.drools.brms.client.modeldriven.brxml.CompositeFactPattern;
@@ -155,8 +155,8 @@
             Widget w = null;            
             if (action instanceof ActionSetField) {                
                 w =  new ActionSetFieldWidget(this, this.model, (ActionSetField) action, completions ) ; 
-            } else if (action instanceof ActionAssertFact) {
-                w = new ActionAssertFactWidget(this, (ActionAssertFact) action, completions );
+            } else if (action instanceof ActionInsertFact) {
+                w = new ActionInsertFactWidget(this, (ActionInsertFact) action, completions );
             } else if (action instanceof ActionRetractFact) {
                 w = new ActionRetractFactWidget(this.completions, (ActionRetractFact) action );
             } else if (action instanceof DSLSentence) {
@@ -367,7 +367,7 @@
         factsToAssert.addChangeListener( new ChangeListener() {
             public void onChange(Widget w) {
                String fact = factsToAssert.getItemText( factsToAssert.getSelectedIndex() );
-               model.addRhsItem( new ActionAssertFact(fact) );
+               model.addRhsItem( new ActionInsertFact(fact) );
                refreshWidget();
                popup.hide();
                 
@@ -377,7 +377,7 @@
         factsToLogicallyAssert.addChangeListener( new ChangeListener() {
             public void onChange(Widget w) {
                String fact = factsToLogicallyAssert.getItemText( factsToLogicallyAssert.getSelectedIndex() );
-               model.addRhsItem( new ActionAssertLogicalFact(fact) );
+               model.addRhsItem( new ActionInsertLogicalFact(fact) );
                refreshWidget();
                popup.hide();
                 
@@ -426,7 +426,7 @@
 
 
     protected void addModify(String itemText) {
-        this.model.addRhsItem(new ActionModifyField(itemText));
+        this.model.addRhsItem(new ActionUpdateField(itemText));
         refreshWidget(); 
         
     }

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/builder/BRMSPackageBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/builder/BRMSPackageBuilder.java	2007-06-13 02:46:39 UTC (rev 12524)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/builder/BRMSPackageBuilder.java	2007-06-13 02:46:52 UTC (rev 12525)
@@ -62,7 +62,8 @@
         }
 
         PackageBuilderConfiguration config = new PackageBuilderConfiguration();
-        config.setClassLoader( loader );
+        //config.setClassLoader( loader );
+        Thread.currentThread().setContextClassLoader( loader );
         config.setCompiler( PackageBuilderConfiguration.JANINO );
 
         return new BRMSPackageBuilder( config );

Modified: labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/builder/ContentPackageAssemblerTest.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/builder/ContentPackageAssemblerTest.java	2007-06-13 02:46:39 UTC (rev 12524)
+++ labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/builder/ContentPackageAssemblerTest.java	2007-06-13 02:46:52 UTC (rev 12525)
@@ -432,8 +432,8 @@
         Driver driver = new Driver();
         Policy policy = new Policy();
         
-        wm.assertObject(driver);
-        wm.assertObject(policy);
+        wm.insert(driver);
+        wm.insert(policy);
         
         wm.fireAllRules();
         




More information about the jboss-svn-commits mailing list