[jboss-svn-commits] JBL Code SVN: r11080 - in labs/jbossrules/trunk/drools-jbrms/src: main/java/org/drools/brms/client/modeldriven/ui and 1 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Apr 17 22:03:13 EDT 2007
Author: michael.neale at jboss.com
Date: 2007-04-17 22:03:13 -0400 (Tue, 17 Apr 2007)
New Revision: 11080
Modified:
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/ImageButton.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/test/java/org/drools/brms/server/builder/ContentPackageAssemblerTest.java
Log:
JBRULES-802 Bound fields
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/ImageButton.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/ImageButton.java 2007-04-18 02:02:44 UTC (rev 11079)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/ImageButton.java 2007-04-18 02:03:13 UTC (rev 11080)
@@ -14,4 +14,10 @@
setStyleName( "image-Button" );
}
+ public ImageButton(String img, String tooltip) {
+ super(img);
+ setStyleName( "image-Button" );
+ setTitle( tooltip );
+ }
+
}
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 2007-04-18 02:02:44 UTC (rev 11079)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/FactPatternWidget.java 2007-04-18 02:03:13 UTC (rev 11080)
@@ -14,6 +14,8 @@
import org.drools.brms.client.modeldriven.brxml.IPattern;
import com.google.gwt.user.client.Command;
+import com.google.gwt.user.client.Window;
+import com.google.gwt.user.client.ui.AbsolutePanel;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.ChangeListener;
import com.google.gwt.user.client.ui.ClickListener;
@@ -219,6 +221,11 @@
Button bindVar = new Button( "Set" );
bindVar.addClickListener( new ClickListener() {
public void onClick(Widget w) {
+ String var = varTxt.getText();
+ if (modeller.isVariableNameUsed( var )) {
+ Window.alert( "The variable name [" + var + "] is already taken." );
+ return;
+ }
pattern.boundName = varTxt.getText();
modeller.refreshWidget();
popup.hide();
@@ -300,8 +307,59 @@
return box;
}
+ /**
+ * get the field widget. This may be a simple label, or it may
+ * be bound (and show the var name) or a icon to create a binding.
+ */
private Widget fieldLabel(final Constraint con) {//, final Command onChange) {
- return new Label( con.fieldName );
+ HorizontalPanel ab = new HorizontalPanel();
+ ab.setStyleName( "modeller-field-Label" );
+ if (!con.isBound()) {
+ if (bindable) {
+ Image bind = new ImageButton( "images/add_field_to_fact.gif", "Give this field a variable name that can be used elsewhere." );
+ bind.addClickListener( new ClickListener() {
+ public void onClick(Widget w) {
+ showBindFieldPopup(w, con);
+ }
+ });
+ ab.add( bind );
+ }
+ } else {
+ ab.add( new Label("[" + con.fieldBinding + "]") );
+ }
+
+ ab.add(new Label( con.fieldName ));
+ return ab;
}
+ /**
+ * Display a little editor for field bindings.
+ */
+ private void showBindFieldPopup(final Widget w, final Constraint con) {
+ final FormStylePopup popup = new FormStylePopup( "images/newex_wiz.gif",
+ "Bind the field called [" + con.fieldName + "] to a variable." );
+ final AbsolutePanel vn = new AbsolutePanel();
+ final TextBox varName = new TextBox();
+ final Button ok = new Button("Set");
+ vn.add( varName );
+ vn.add( ok );
+
+ ok.addClickListener( new ClickListener() {
+ public void onClick(Widget w) {
+ String var = varName.getText();
+ if (modeller.isVariableNameUsed( var )) {
+ Window.alert( "The variable name [" + var + "] is already taken.");
+ return;
+ }
+ con.fieldBinding = var;
+ modeller.refreshWidget();
+ popup.hide();
+ }
+ } );
+ popup.addAttribute( "Variable name", vn );
+ popup.setPopupPosition( w.getAbsoluteLeft(), w.getAbsoluteTop() );
+ popup.show();
+ }
+
+
}
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-04-18 02:02:44 UTC (rev 11079)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/RuleModeller.java 2007-04-18 02:03:13 UTC (rev 11080)
@@ -560,6 +560,14 @@
public RuleModel getModel() {
return model;
}
+
+ /**
+ * Returns true is a var name has already been used
+ * either by the rule, or as a global.
+ */
+ public boolean isVariableNameUsed(String name) {
+ return model.isVariableNameUsed( name ) || completions.isGlobalVariable( name );
+ }
}
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-04-18 02:02:44 UTC (rev 11079)
+++ labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/builder/ContentPackageAssemblerTest.java 2007-04-18 02:03:13 UTC (rev 11080)
@@ -4,6 +4,7 @@
import org.drools.brms.client.common.AssetFormats;
import org.drools.brms.client.ruleeditor.CheckinPopup;
+import org.drools.brms.server.util.TestEnvironmentSessionHelper;
import org.drools.repository.AssetItem;
import org.drools.repository.PackageItem;
import org.drools.repository.RepositorySessionUtil;
@@ -15,9 +16,11 @@
public class ContentPackageAssemblerTest extends TestCase {
+
+
public void testPackageConfig() throws Exception {
//test the config, no rule assets yet
- RulesRepository repo = RepositorySessionUtil.getRepository();
+ RulesRepository repo = getRepo();
PackageItem pkg = repo.createPackage( "testBuilderPackageConfig", "x" );
pkg.updateHeader( "import java.util.List" );
AssetItem func = pkg.addAsset( "func1", "a function" );
@@ -64,6 +67,10 @@
}
+
+ private RulesRepository getRepo() throws Exception {
+ return new RulesRepository( TestEnvironmentSessionHelper.getSession() );
+ }
public void FIXME_testSimplePackage() throws Exception {
PackageItem pkg = null;
More information about the jboss-svn-commits
mailing list