[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