[jboss-svn-commits] JBL Code SVN: r12643 - labs/jbossrules/trunk/drools-eclipse/drools-guided-editor-plugin/src/org/drools/eclipse/rulebuilder/ui.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Sun Jun 17 17:10:58 EDT 2007


Author: arhan
Date: 2007-06-17 17:10:57 -0400 (Sun, 17 Jun 2007)
New Revision: 12643

Added:
   labs/jbossrules/trunk/drools-eclipse/drools-guided-editor-plugin/src/org/drools/eclipse/rulebuilder/ui/AssignFieldVariableDialog.java
Modified:
   labs/jbossrules/trunk/drools-eclipse/drools-guided-editor-plugin/src/org/drools/eclipse/rulebuilder/ui/FactPatternWidget.java
Log:
variable bining for field

Added: labs/jbossrules/trunk/drools-eclipse/drools-guided-editor-plugin/src/org/drools/eclipse/rulebuilder/ui/AssignFieldVariableDialog.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/drools-guided-editor-plugin/src/org/drools/eclipse/rulebuilder/ui/AssignFieldVariableDialog.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-eclipse/drools-guided-editor-plugin/src/org/drools/eclipse/rulebuilder/ui/AssignFieldVariableDialog.java	2007-06-17 21:10:57 UTC (rev 12643)
@@ -0,0 +1,80 @@
+package org.drools.eclipse.rulebuilder.ui;
+
+import org.drools.brms.client.modeldriven.brxml.SingleFieldConstraint;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Listener;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+
+public class AssignFieldVariableDialog extends RuleDialog {
+
+	private final FormToolkit toolkit;
+
+	private RuleModeller modeller;
+	
+	private SingleFieldConstraint con;
+
+	public AssignFieldVariableDialog(Shell parent, FormToolkit toolkit,
+			RuleModeller modeller, SingleFieldConstraint con) {
+		super(parent, "Bind the field called [" + con.fieldName
+				+ "] to a variable.",
+				"Type the variable name and hit the button.");
+		
+		this.toolkit = toolkit;
+		this.modeller = modeller;
+		this.con = con;
+	}
+	
+	protected Control createDialogArea(final Composite parent) {
+		Composite composite = (Composite) super.createDialogArea(parent);
+		
+		GridLayout l = new GridLayout();
+		l.numColumns = 5;
+		l.marginBottom = 0;
+		l.marginHeight = 0;
+		l.marginLeft = 0;
+		l.marginRight = 0;
+		l.marginTop = 0;
+		l.marginWidth = 0;
+		composite.setLayout(l);
+
+		
+		
+		createVariableBindingRow(composite);
+		toolkit.paintBordersFor(composite);
+		return composite;
+	}
+	
+	private void createVariableBindingRow(Composite composite) {
+		toolkit.createLabel(composite, "Variable name");
+		final Text variableText = toolkit.createText(composite, "");
+
+		if (con.fieldBinding != null) {
+			variableText.setText(con.fieldBinding);
+		}
+
+		GridData gd = new GridData(GridData.FILL_HORIZONTAL);
+		gd.horizontalSpan = 3;
+		
+		variableText.setLayoutData(gd);
+		
+		Button varButton = toolkit.createButton(composite, "Set", SWT.PUSH);
+		varButton.addListener(SWT.Selection, new Listener() {
+			public void handleEvent(Event event) {
+				con.fieldBinding = variableText.getText();
+				modeller.reloadLhs();
+				modeller.setDirty(true);
+				close();
+			}
+		});
+	}
+
+
+}

Modified: labs/jbossrules/trunk/drools-eclipse/drools-guided-editor-plugin/src/org/drools/eclipse/rulebuilder/ui/FactPatternWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/drools-guided-editor-plugin/src/org/drools/eclipse/rulebuilder/ui/FactPatternWidget.java	2007-06-17 20:53:28 UTC (rev 12642)
+++ labs/jbossrules/trunk/drools-eclipse/drools-guided-editor-plugin/src/org/drools/eclipse/rulebuilder/ui/FactPatternWidget.java	2007-06-17 21:10:57 UTC (rev 12643)
@@ -45,7 +45,7 @@
 	private final FactPattern pattern;
 
 	private boolean bindable;
-	
+
 	public FactPatternWidget(FormToolkit toolkit, Composite parent,
 			RuleModeller mod, FactPattern factPattern,
 			CompositeFactPattern parentPattern, int idx, boolean canBind) {
@@ -55,7 +55,7 @@
 		this.pattern = factPattern;
 		this.parentPattern = parentPattern;
 		this.bindable = canBind;
-		
+
 		GridLayout l = new GridLayout();
 		l.numColumns = 4;
 		l.marginBottom = 0;
@@ -167,7 +167,8 @@
 			toolkit.createLabel(constraintComposite, "Any of:");
 		}
 
-		addRemoveButton(constraintComposite, parentConstraint, row, "icons/delete_obj.gif", nested);
+		addRemoveButton(constraintComposite, parentConstraint, row,
+				"icons/delete_obj.gif", nested);
 
 		// button "add"
 		ImageHyperlink link = addImage(constraintComposite,
@@ -226,23 +227,26 @@
 	}
 
 	private void renderSingleFieldConstraint(Composite constraintComposite,
-			int row, FieldConstraint constraint,CompositeFieldConstraint parentConstraint, boolean showBinding, boolean nested) {
+			int row, FieldConstraint constraint,
+			CompositeFieldConstraint parentConstraint, boolean showBinding,
+			boolean nested) {
 		final SingleFieldConstraint c = (SingleFieldConstraint) constraint;
 		if (c.constraintValueType != SingleFieldConstraint.TYPE_PREDICATE) {
-			createConstraintRow(constraintComposite, parentConstraint, row, c, showBinding, nested);
+			createConstraintRow(constraintComposite, parentConstraint, row, c,
+					showBinding, nested);
 		} else {
 			createPredicateConstraintRow(constraintComposite, row, c);
 		}
 	}
 
-	private void createConstraintRow(Composite constraintComposite, CompositeFieldConstraint parentConstraint, 
-			int row, final SingleFieldConstraint c, boolean showBinding, boolean nested) {
+	private void createConstraintRow(Composite constraintComposite,
+			CompositeFieldConstraint parentConstraint, int row,
+			final SingleFieldConstraint c, boolean showBinding, boolean nested) {
+		addBindingField(constraintComposite, c, showBinding);
 		toolkit.createLabel(constraintComposite, c.fieldName);
-		
-		addBindingField( constraintComposite,  c,  showBinding) ;
-		
 		if (c.connectives == null || c.connectives.length == 0) {
-			addRemoveButton(constraintComposite, parentConstraint, row, "icons/delete_item_small.gif", nested);
+			addRemoveButton(constraintComposite, parentConstraint, row,
+					"icons/delete_item_small.gif", nested);
 		} else {
 			toolkit.createLabel(constraintComposite, "");
 		}
@@ -252,26 +256,45 @@
 		addConnectiveAction(constraintComposite, c);
 	}
 
-	private void addBindingField(Composite constraintComposite, SingleFieldConstraint c, boolean showBinding) {
+	private void addBindingField(Composite constraintComposite,
+			final SingleFieldConstraint c, boolean showBinding) {
 		if (!c.isBound()) {
 			if (bindable && showBinding) {
-				addImage(constraintComposite, "icons/new_item.gif");
-			}else{
+				ImageHyperlink link = addImage(constraintComposite,
+						"icons/new_item.gif");
+				link.addHyperlinkListener(new IHyperlinkListener() {
+					public void linkActivated(HyperlinkEvent e) {
+						RuleDialog popup = new AssignFieldVariableDialog(
+								parent.getShell(), toolkit, getModeller(), c);
+						popup.open();
+					}
+
+					public void linkEntered(HyperlinkEvent e) {
+					}
+
+					public void linkExited(HyperlinkEvent e) {
+					}
+				});
+
+			} else {
 				toolkit.createLabel(constraintComposite, "");
 			}
-		}else{
-			toolkit.createLabel(constraintComposite, "[" + c.fieldBinding + "]");
+		} else {
+			toolkit
+					.createLabel(constraintComposite, "[" + c.fieldBinding
+							+ "]");
 		}
-		
+
 	}
-	
+
 	private void createPredicateConstraintRow(Composite constraintComposite,
 			int row, final SingleFieldConstraint c) {
 		GridData gd = new GridData(GridData.FILL_HORIZONTAL);
 		gd.horizontalSpan = 6;
 		addImage(constraintComposite, "icons/function_assets.gif");
 		formulaValueEditor(constraintComposite, c, gd);
-		addRemoveButton(constraintComposite, null, row, "icons/delete_item_small.gif", false);
+		addRemoveButton(constraintComposite, null, row,
+				"icons/delete_item_small.gif", false);
 	}
 
 	private void createConnectives(Composite parent, SingleFieldConstraint c) {
@@ -314,18 +337,20 @@
 	private void addRemoveButton(Composite constraintComposite,
 			final CompositeFieldConstraint parentConstraint, final int row,
 			String iconRef, boolean nested) {
-		if(nested){
-			addNestedConstraintDeleteAction(constraintComposite, parentConstraint, row, iconRef);
-		}else{
+		if (nested) {
+			addNestedConstraintDeleteAction(constraintComposite,
+					parentConstraint, row, iconRef);
+		} else {
 			addRemoveFieldAction(constraintComposite, row, iconRef);
 		}
 
 	}
 
 	private void addNestedConstraintDeleteAction(Composite constraintComposite,
-			final CompositeFieldConstraint parentConstraint, final int row, String iconRef) {
+			final CompositeFieldConstraint parentConstraint, final int row,
+			String iconRef) {
 		ImageHyperlink delLink = addImage(constraintComposite, iconRef);
-				//"icons/delete_obj.gif");
+		// "icons/delete_obj.gif");
 		delLink.addHyperlinkListener(new IHyperlinkListener() {
 			public void linkActivated(HyperlinkEvent e) {
 				MessageBox dialog = new MessageBox(Display.getCurrent()




More information about the jboss-svn-commits mailing list