[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