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

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Mar 15 04:04:59 EDT 2007


Author: michael.neale at jboss.com
Date: 2007-03-15 04:04:58 -0400 (Thu, 15 Mar 2007)
New Revision: 10216

Added:
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/ChoiceList.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/ListUtil.java
Removed:
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/DSLRuleData.java
Modified:
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/DSLRuleEditor.java
   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/server/contenthandler/DSLRuleContentHandler.java
   labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/ServiceImplementationTest.java
Log:
JBRULES-714

Deleted: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/DSLRuleData.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/DSLRuleData.java	2007-03-15 06:06:48 UTC (rev 10215)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/DSLRuleData.java	2007-03-15 08:04:58 UTC (rev 10216)
@@ -1,18 +0,0 @@
-package org.drools.brms.client.rpc;
-
-import com.google.gwt.user.client.rpc.IsSerializable;
-
-/**
- * Used to transfer the payload for a simple DSL based rule.
- * 
- * @author Michael Neale
- */
-public class DSLRuleData
-    implements
-    IsSerializable {
-
-    public String[] lhsSuggestions;
-    public String[] rhsSuggestions;    
-    public RuleContentText text;
-    
-}

Added: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/ChoiceList.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/ChoiceList.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/ChoiceList.java	2007-03-15 08:04:58 UTC (rev 10216)
@@ -0,0 +1,109 @@
+package org.drools.brms.client.ruleeditor;
+
+import java.util.List;
+
+import org.drools.brms.client.modeldriven.brxml.DSLSentence;
+
+import com.google.gwt.user.client.ui.Button;
+import com.google.gwt.user.client.ui.ClickListener;
+import com.google.gwt.user.client.ui.KeyboardListener;
+import com.google.gwt.user.client.ui.ListBox;
+import com.google.gwt.user.client.ui.PopupPanel;
+import com.google.gwt.user.client.ui.TextBox;
+import com.google.gwt.user.client.ui.VerticalPanel;
+import com.google.gwt.user.client.ui.Widget;
+
+/**
+ * This is a popup list for "content assistance" - although on the web, 
+ * its not assistance - its mandatory ;)
+ */
+public class ChoiceList extends PopupPanel {
+
+    private ListBox list;
+    private final DSLSentence[] sentences;    
+    
+    private TextBox filter;
+    
+
+        /**
+     * Pass in a list of suggestions for the popup lists.
+     * Set a click listener to get notified when the OK button is clicked.
+     */
+    public ChoiceList(final DSLSentence[] sen, final DSLRuleEditor self) {
+        super( true );
+        
+        this.sentences = sen;
+        filter = new TextBox();
+        filter.addKeyboardListener( new KeyboardListener() {
+
+            public void onKeyDown(Widget arg0,
+                                  char arg1,
+                                  int arg2) {
+                
+            }
+
+            public void onKeyPress(Widget arg0,
+                                   char arg1,
+                                   int arg2) {
+            }
+
+            public void onKeyUp(Widget arg0,
+                                char arg1,
+                                int arg2) {
+                if (arg1 == KEY_ENTER) {
+                    applyChoice( self );
+                } else {
+                    populateList( ListUtil.filter(sentences, filter.getText()) );
+                }
+            }
+            
+        });
+        filter.setFocus( true );
+        
+        
+        VerticalPanel panel = new VerticalPanel();
+        panel.add( filter );
+        
+        list = new ListBox();
+        list.setVisibleItemCount( 5 );
+        
+        populateList( ListUtil.filter( this.sentences, "" ));        
+        
+        
+        panel.add( list );
+        
+        Button ok = new Button("ok");
+        ok.addClickListener( new ClickListener() {
+            public void onClick(Widget btn) {                
+                applyChoice( self );
+            }
+
+
+            
+        });
+        panel.add( ok );        
+        add( panel );      
+        setStyleName( "ks-popups-Popup" );
+        
+    }
+
+    private void applyChoice(final DSLRuleEditor self) {
+        self.insertText( getSelectedItem() );
+        hide();
+    }
+    
+    private void populateList(List filtered) {
+        list.clear();
+        for (int i = 0; i < filtered.size(); i++) {
+            list.addItem(((DSLSentence)filtered.get( i )).sentence);
+        }        
+    }
+    
+
+    
+    public String getSelectedItem() {
+        return list.getItemText( list.getSelectedIndex() );
+    }
+    
+    
+}


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

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/DSLRuleEditor.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/DSLRuleEditor.java	2007-03-15 06:06:48 UTC (rev 10215)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/DSLRuleEditor.java	2007-03-15 08:04:58 UTC (rev 10216)
@@ -1,5 +1,9 @@
 package org.drools.brms.client.ruleeditor;
 
+import org.drools.brms.client.modeldriven.SuggestionCompletionEngine;
+import org.drools.brms.client.modeldriven.brxml.DSLSentence;
+import org.drools.brms.client.packages.SuggestionCompletionCache;
+import org.drools.brms.client.rpc.RuleAsset;
 import org.drools.brms.client.rpc.RuleContentText;
 
 import com.google.gwt.user.client.ui.ChangeListener;
@@ -26,22 +30,25 @@
     
     private TextArea text;
     final private RuleContentText data;
-    private String[] conditions;
-    private String[] actions;
+    private DSLSentence[] conditions;
+    private DSLSentence[] actions;
     
 
     
-    public DSLRuleEditor(RuleContentText tex, final String[] dslConditions, final String[] dslActions) {
+    public DSLRuleEditor(RuleAsset asset) {
         
-        this.data = tex;
+        RuleContentText cont = (RuleContentText) asset.content;
+        
+        this.data = cont;
         text = new TextArea();
         text.setWidth("100%");
         text.setHeight("100%");
         text.setVisibleLines(10);
-        text.setText(tex.content);
-
-        this.conditions = dslConditions;
-        this.actions = dslActions;       
+        text.setText(data.content);
+        SuggestionCompletionEngine eng = SuggestionCompletionCache.getInstance().getEngineFromCache( asset.metaData.packageName );
+        this.actions = eng.actionDSLSentences;
+        this.conditions = eng.conditionDSLSentences;
+      
         
         text.setStyleName( "dsl-text-Editor" );
         
@@ -58,11 +65,8 @@
 
         text.addKeyboardListener( new KeyboardListenerAdapter() {
 
-            
-            
 
 
-
             public void onKeyDown(Widget arg0,
                                    char arg1,
                                    int arg2) {
@@ -84,7 +88,7 @@
         lhsOptions.setTitle( msg );
         lhsOptions.addClickListener( new ClickListener() {
             public void onClick(Widget w) {
-                showOptions( dslConditions, w, msg );
+                showSuggestions( conditions );
             }
         });        
         
@@ -93,7 +97,7 @@
         rhsOptions.setTitle( msg2 );
         rhsOptions.addClickListener( new ClickListener() {
             public void onClick(Widget w) {
-                showOptions( dslActions, w, msg2 );
+                showSuggestions( actions );
             }
         });   
         
@@ -114,28 +118,22 @@
     protected void showInTextOptions() {
         String prev = text.getText().substring( 0, this.text.getCursorPos() );
         if (prev.indexOf( "then" ) > -1) {
-            PickList pick = new PickList("Choose an action", actions , this);
-            pick.setPopupPosition( text.getAbsoluteLeft(), text.getAbsoluteTop() );
-            pick.show();
-            
+            showSuggestions(this.actions);
         } else {
-            PickList pick = new PickList("Choose a condition", conditions , this);
-            pick.setPopupPosition( text.getAbsoluteLeft(), text.getAbsoluteTop() );
-            pick.show();
-            
+            showSuggestions(this.conditions);
         }
         
     }
-    
 
-    private void showOptions(final String[] items,
-                             Widget w, String message) {
-        PickList pick = new PickList(message, items, this);
-        pick.setPopupPosition( w.getAbsoluteLeft() - 250, w.getAbsoluteTop() );
-        pick.show();
-    }    
+    private void showSuggestions(DSLSentence[] items) {
+        ChoiceList choice = new ChoiceList(items, this);
+        choice.setPopupPosition( text.getAbsoluteLeft() + 20, text.getAbsoluteTop() + 20 );
+        choice.show();        
+    }
     
-    private void insertText(String ins) {
+  
+    
+    void insertText(String ins) {
         int i = text.getCursorPos();
         String left = text.getText().substring( 0, i );
         String right = text.getText().substring( i, text.getText().length() );

Modified: 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	2007-03-15 06:06:48 UTC (rev 10215)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/EditorLauncher.java	2007-03-15 08:04:58 UTC (rev 10216)
@@ -5,11 +5,9 @@
 import org.drools.brms.client.common.AssetFormats;
 import org.drools.brms.client.common.GenericCallback;
 import org.drools.brms.client.common.LoadingPopup;
-import org.drools.brms.client.modeldriven.brxml.RuleModel;
 import org.drools.brms.client.modeldriven.ui.RuleModeller;
 import org.drools.brms.client.packages.ModelAttachmentFileWidget;
 import org.drools.brms.client.packages.SuggestionCompletionCache;
-import org.drools.brms.client.rpc.DSLRuleData;
 import org.drools.brms.client.rpc.RepositoryServiceFactory;
 import org.drools.brms.client.rpc.RuleAsset;
 
@@ -40,10 +38,7 @@
         if ( asset.metaData.format.equals( AssetFormats.BUSINESS_RULE ) ) {
             return new RuleModeller( asset  );
         } else if ( asset.metaData.format.equals( AssetFormats.DSL_TEMPLATE_RULE ) ) {
-            DSLRuleData data = (DSLRuleData) asset.content;
-            return new DSLRuleEditor( data.text,
-                                      data.lhsSuggestions,
-                                      data.rhsSuggestions );
+            return new DSLRuleEditor( asset );
         } else if ( asset.metaData.format.equals( AssetFormats.MODEL ) ) {
             return new ModelAttachmentFileWidget( asset,
                                                   viewer );

Added: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/ListUtil.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/ListUtil.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/ListUtil.java	2007-03-15 08:04:58 UTC (rev 10216)
@@ -0,0 +1,23 @@
+package org.drools.brms.client.ruleeditor;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.drools.brms.client.modeldriven.brxml.DSLSentence;
+
+public class ListUtil {
+
+    public static List filter(DSLSentence[] source,
+                             String filterVal) {
+
+        ArrayList filteredList = new ArrayList();
+        for ( int i = 0; i < source.length; i++ ) {
+            DSLSentence item = source[i];
+            if (filterVal.equals( "" ) || item.sentence.startsWith( filterVal )) {
+                filteredList.add( item );
+            } 
+        }
+        return filteredList;
+    }
+
+}


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

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/contenthandler/DSLRuleContentHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/contenthandler/DSLRuleContentHandler.java	2007-03-15 06:06:48 UTC (rev 10215)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/contenthandler/DSLRuleContentHandler.java	2007-03-15 08:04:58 UTC (rev 10216)
@@ -1,6 +1,5 @@
 package org.drools.brms.server.contenthandler;
 
-import org.drools.brms.client.rpc.DSLRuleData;
 import org.drools.brms.client.rpc.RuleAsset;
 import org.drools.brms.client.rpc.RuleContentText;
 import org.drools.repository.AssetItem;
@@ -17,30 +16,18 @@
         RuleContentText text = new RuleContentText();
         text.content = item.getContent();
         
-        //TODO: make this read in the DSL files in the current package.
-        DSLRuleData data = getDummyDSLSuggestions();
-        data.text = text;
 
-        asset.content = data;
+        asset.content = text;
         
     }
 
     public void storeAssetContent(RuleAsset asset,
                                   AssetItem repoAsset) throws SerializableException {
-        DSLRuleData data = (DSLRuleData) asset.content;
-        repoAsset.updateContent( data.text.content );
 
+        RuleContentText text = (RuleContentText) asset.content;
+        repoAsset.updateContent( text.content );
+
     }
     
-    private DSLRuleData getDummyDSLSuggestions() {
-        DSLRuleData data = new DSLRuleData();
-        data.lhsSuggestions = new String[] {"The surboard cosmetic configuration", "- colour1 is {colour}", "- colour2 is {colour}", "- colour3 is {colour}", "- graphic is large", "- graphic is normal",
-                                            "The surfboard shape", "- full malibu", "- mini mal", "- standard short", "- long short", "- stunt"};
-        data.rhsSuggestions = new String[] {"Reject configuration", 
-                                            "Send notification to manufacturing '{email}'",
-                                            "Accept configuration",
-                                            "Send notification to sales '{email}'"};                                                   
-        return data;
-    }    
 
 }

Modified: labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/ServiceImplementationTest.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/ServiceImplementationTest.java	2007-03-15 06:06:48 UTC (rev 10215)
+++ labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/ServiceImplementationTest.java	2007-03-15 08:04:58 UTC (rev 10216)
@@ -198,6 +198,9 @@
       asset = impl.loadRuleAsset( uuid );
       assertTrue(asset.content instanceof RuleModel);
       
+      uuid = impl.createNewRule( "testLoadRuleAssetBRL", "description", "testLoadRuleAsset", "testLoadRuleAsset", AssetFormats.DSL_TEMPLATE_RULE );
+      asset = impl.loadRuleAsset( uuid );
+      assertTrue(asset.content instanceof RuleContentText);
   }
   
   public void testLoadAssetHistoryAndRestore() throws Exception {




More information about the jboss-svn-commits mailing list