[jboss-svn-commits] JBL Code SVN: r12593 - 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
Thu Jun 14 17:12:03 EDT 2007


Author: arhan
Date: 2007-06-14 17:12:03 -0400 (Thu, 14 Jun 2007)
New Revision: 12593

Modified:
   labs/jbossrules/trunk/drools-eclipse/drools-guided-editor-plugin/src/org/drools/eclipse/rulebuilder/ui/AddNewFieldConstraintDialog.java
Log:
a new feature for constraints: multiple field constraint

Modified: labs/jbossrules/trunk/drools-eclipse/drools-guided-editor-plugin/src/org/drools/eclipse/rulebuilder/ui/AddNewFieldConstraintDialog.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/drools-guided-editor-plugin/src/org/drools/eclipse/rulebuilder/ui/AddNewFieldConstraintDialog.java	2007-06-14 21:10:56 UTC (rev 12592)
+++ labs/jbossrules/trunk/drools-eclipse/drools-guided-editor-plugin/src/org/drools/eclipse/rulebuilder/ui/AddNewFieldConstraintDialog.java	2007-06-14 21:12:03 UTC (rev 12593)
@@ -1,6 +1,7 @@
 package org.drools.eclipse.rulebuilder.ui;
 
 import org.drools.brms.client.modeldriven.SuggestionCompletionEngine;
+import org.drools.brms.client.modeldriven.brxml.CompositeFieldConstraint;
 import org.drools.brms.client.modeldriven.brxml.FactPattern;
 import org.drools.brms.client.modeldriven.brxml.SingleFieldConstraint;
 import org.eclipse.swt.SWT;
@@ -25,136 +26,152 @@
  */
 public class AddNewFieldConstraintDialog extends RuleDialog {
 
-    private final FormToolkit toolkit;
+	private final FormToolkit toolkit;
 
-    private RuleModeller      modeller;
+	private RuleModeller modeller;
 
-    private FactPattern       pattern;
+	private FactPattern pattern;
 
-    private boolean           isNested;
+	private boolean isNested;
 
-    public AddNewFieldConstraintDialog(Shell parent,
-                                       FormToolkit toolkit,
-                                       RuleModeller modeller,
-                                       FactPattern pattern,
-                                       boolean isNested) {
-        super( parent,
-               "Update constraints",
-               "Pick the values from combos and confirm the selection." );
-        this.toolkit = toolkit;
-        this.modeller = modeller;
-        this.pattern = pattern;
-        this.isNested = isNested;
-    }
+	public AddNewFieldConstraintDialog(Shell parent, FormToolkit toolkit,
+			RuleModeller modeller, FactPattern pattern, boolean isNested) {
+		super(parent, "Update constraints",
+				"Pick the values from combos and confirm the selection.");
+		this.toolkit = toolkit;
+		this.modeller = modeller;
+		this.pattern = pattern;
+		this.isNested = isNested;
+	}
 
-    protected Control createDialogArea(final Composite parent) {
-        Composite composite = (Composite) super.createDialogArea( parent );
+	protected Control createDialogArea(final Composite parent) {
+		Composite composite = (Composite) super.createDialogArea(parent);
 
-        GridLayout l = new GridLayout();
-        l.numColumns = 3;
-        l.marginBottom = 0;
-        l.marginHeight = 0;
-        l.marginLeft = 0;
-        l.marginRight = 0;
-        l.marginTop = 0;
-        l.marginWidth = 0;
-        composite.setLayout( l );
+		GridLayout l = new GridLayout();
+		l.numColumns = 3;
+		l.marginBottom = 0;
+		l.marginHeight = 0;
+		l.marginLeft = 0;
+		l.marginRight = 0;
+		l.marginTop = 0;
+		l.marginWidth = 0;
+		composite.setLayout(l);
 
-        GridData gd = new GridData( GridData.FILL_HORIZONTAL );
-        gd.horizontalSpan = 2;
+		GridData gd = new GridData(GridData.FILL_HORIZONTAL);
+		gd.horizontalSpan = 2;
 
-        createFieldRestrictionCombo( composite,
-                                     gd );
-        createFormulaRow( composite,
-                          gd );
-        if ( !isNested ) {
-            createVariableBindingRow( composite );
-        }
+		createFieldRestrictionCombo(composite, gd);
+		createMultipleRestrictionCombo(composite, gd);
+		createFormulaRow(composite, gd);
+		if (!isNested) {
+			createVariableBindingRow(composite);
+		}
 
-        toolkit.paintBordersFor( composite );
-        return composite;
-    }
+		toolkit.paintBordersFor(composite);
+		return composite;
+	}
 
-    private void createVariableBindingRow(Composite composite) {
-        toolkit.createLabel( composite,
-                             "Variable name" );
-        final Text variableText = toolkit.createText( composite,
-                                                      "" );
+	private void createMultipleRestrictionCombo(Composite composite, GridData gd) {
+		toolkit.createLabel(composite, "Multiple field constriant");
+		final Combo composites = new Combo(composite, SWT.READ_ONLY);
 
-        if ( pattern.boundName != null ) {
-            variableText.setText( pattern.boundName );
-        }
+		composites.setLayoutData(gd);
 
-        Button varButton = toolkit.createButton( composite,
-                                                 "Set",
-                                                 SWT.PUSH );
-        varButton.addListener( SWT.Selection,
-                               new Listener() {
-                                   public void handleEvent(Event event) {                                                                              
-                                       pattern.boundName = variableText.getText();
-                                       modeller.reloadLhs(); 
-                                       modeller.setDirty( true );
-                                       close();
-                                   }
-                               } );
-    }
+		composites.add("...");
+		composites.add("All of (And)");
+		composites.add("Any of (Or)");
+		composites.setData("All of (And)",
+				CompositeFieldConstraint.COMPOSITE_TYPE_AND);
+		composites.setData("Any of (Or)",
+				CompositeFieldConstraint.COMPOSITE_TYPE_OR);
+		composites.select(0);
 
-    private void createFormulaRow(Composite composite,
-                                  GridData gd) {
-        toolkit.createLabel( composite,
-                             "Add a new formula style expression" );
-        Button formulaButton = toolkit.createButton( composite,
-                                                     "New formula",
-                                                     SWT.PUSH );
+		composites.addListener(SWT.Selection, new Listener() {
+			public void handleEvent(Event event) {
+				if (composites.getSelectionIndex() == 0) {
+					return;
+				}
 
-       formulaButton.addListener( SWT.Selection,
-                                   new Listener() {
-                                       public void handleEvent(Event event) {
-                                    	   SingleFieldConstraint con = new SingleFieldConstraint();
-                                           con.constraintValueType = SingleFieldConstraint.TYPE_PREDICATE;
-                                           pattern.addConstraint( con );
-                                           modeller.setDirty( true );
-                                           modeller.reloadLhs();
-                                           close();
-                                       }
-                                   } );
+				CompositeFieldConstraint comp = new CompositeFieldConstraint();
+				comp.compositeJunctionType = (String) composites
+						.getData(composites.getText());
 
-        formulaButton.setLayoutData( gd );
-    }
+				pattern.addConstraint(comp);
+				modeller.reloadLhs();    //TODO:review, perhaps should be another order of these calls
+				modeller.setDirty(true); 
+				close();
+			}
+		});
+	}
 
-    private void createFieldRestrictionCombo(Composite composite,
-                                             GridData gd) {
-        toolkit.createLabel( composite,
-                             "Add a restriction on a field" );
-        String[] fieldCompletitions = getCompletion().getFieldCompletions( pattern.factType );
-        final Combo fieldsCombo = new Combo( composite,
-                                             SWT.READ_ONLY );
-        fieldsCombo.setLayoutData( gd );
-        fieldsCombo.add( "..." );
-        for ( int i = 0; i < fieldCompletitions.length; i++ ) {
-            fieldsCombo.add( fieldCompletitions[i] );
-        }
-        fieldsCombo.select( 0 );
+	private void createFieldRestrictionCombo(Composite composite, GridData gd) {
+		toolkit.createLabel(composite, "Add a restriction on a field");
+		String[] fieldCompletitions = getCompletion().getFieldCompletions(
+				pattern.factType);
+		final Combo fieldsCombo = new Combo(composite, SWT.READ_ONLY);
+		fieldsCombo.setLayoutData(gd);
+		fieldsCombo.add("...");
+		for (int i = 0; i < fieldCompletitions.length; i++) {
+			fieldsCombo.add(fieldCompletitions[i]);
+		}
+		fieldsCombo.select(0);
 
-        fieldsCombo.addListener( SWT.Selection,
-                                 new Listener() {
-                                     public void handleEvent(Event event) {
-                                         if ( fieldsCombo.getSelectionIndex() == 0 ) {
-                                             return;
-                                         }
+		fieldsCombo.addListener(SWT.Selection, new Listener() {
+			public void handleEvent(Event event) {
+				if (fieldsCombo.getSelectionIndex() == 0) {
+					return;
+				}
 
-                                         SingleFieldConstraint constraint = new SingleFieldConstraint();
-                                         constraint.fieldName = fieldsCombo.getText();
-                                         pattern.addConstraint( constraint );
-                                         modeller.setDirty( true );
-                                         modeller.reloadLhs();
-                                         close();
-                                     }
-                                 } );
-    }
+				SingleFieldConstraint constraint = new SingleFieldConstraint();
+				constraint.fieldName = fieldsCombo.getText();
+				pattern.addConstraint(constraint);
+				modeller.setDirty(true);
+				modeller.reloadLhs();
+				close();
+			}
+		});
+	}
 
-    private SuggestionCompletionEngine getCompletion() {
-        return modeller.getSuggestionCompletionEngine();
-    }
+	private void createFormulaRow(Composite composite, GridData gd) {
+		toolkit.createLabel(composite, "Add a new formula style expression");
+		Button formulaButton = toolkit.createButton(composite, "New formula",
+				SWT.PUSH);
 
+		formulaButton.addListener(SWT.Selection, new Listener() {
+			public void handleEvent(Event event) {
+				SingleFieldConstraint con = new SingleFieldConstraint();
+				con.constraintValueType = SingleFieldConstraint.TYPE_PREDICATE;
+				pattern.addConstraint(con);
+				modeller.setDirty(true);
+				modeller.reloadLhs();
+				close();
+			}
+		});
+
+		formulaButton.setLayoutData(gd);
+	}
+
+	private void createVariableBindingRow(Composite composite) {
+		toolkit.createLabel(composite, "Variable name");
+		final Text variableText = toolkit.createText(composite, "");
+
+		if (pattern.boundName != null) {
+			variableText.setText(pattern.boundName);
+		}
+
+		Button varButton = toolkit.createButton(composite, "Set", SWT.PUSH);
+		varButton.addListener(SWT.Selection, new Listener() {
+			public void handleEvent(Event event) {
+				pattern.boundName = variableText.getText();
+				modeller.reloadLhs();
+				modeller.setDirty(true);
+				close();
+			}
+		});
+	}
+
+	private SuggestionCompletionEngine getCompletion() {
+		return modeller.getSuggestionCompletionEngine();
+	}
+
 }




More information about the jboss-svn-commits mailing list