[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