[jboss-svn-commits] JBL Code SVN: r12637 - 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 06:58:30 EDT 2007


Author: arhan
Date: 2007-06-17 06:58:29 -0400 (Sun, 17 Jun 2007)
New Revision: 12637

Added:
   labs/jbossrules/trunk/drools-eclipse/drools-guided-editor-plugin/src/org/drools/eclipse/rulebuilder/ui/AddCompositeConstraintOptionDialog.java
Modified:
   labs/jbossrules/trunk/drools-eclipse/drools-guided-editor-plugin/src/org/drools/eclipse/rulebuilder/ui/FactPatternWidget.java
Log:
layout is fixed
todo: delete actions

Added: labs/jbossrules/trunk/drools-eclipse/drools-guided-editor-plugin/src/org/drools/eclipse/rulebuilder/ui/AddCompositeConstraintOptionDialog.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/drools-guided-editor-plugin/src/org/drools/eclipse/rulebuilder/ui/AddCompositeConstraintOptionDialog.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-eclipse/drools-guided-editor-plugin/src/org/drools/eclipse/rulebuilder/ui/AddCompositeConstraintOptionDialog.java	2007-06-17 10:58:29 UTC (rev 12637)
@@ -0,0 +1,115 @@
+package org.drools.eclipse.rulebuilder.ui;
+
+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;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Combo;
+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.ui.forms.widgets.FormToolkit;
+
+public class AddCompositeConstraintOptionDialog extends RuleDialog {
+	
+	private final FormToolkit toolkit;
+
+	private RuleModeller modeller;
+	
+	private FactPattern pattern;
+	
+	private final CompositeFieldConstraint constraint;
+	
+	public AddCompositeConstraintOptionDialog(Shell parent, FormToolkit toolkit,
+			RuleModeller modeller, CompositeFieldConstraint constraint, FactPattern pattern) {
+		super(parent, "Add fields to this constriant", "Pick the value from combo.");
+		
+		this.toolkit = toolkit;
+		this.modeller = modeller;
+		this.constraint = constraint;
+		this.pattern = pattern;
+	}
+
+	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);
+
+		GridData gd = new GridData(GridData.FILL_HORIZONTAL);
+		gd.horizontalSpan = 2;
+
+		createFieldRestrictionCombo(composite, gd);
+		createMultiFieldCombo(composite, gd);
+
+		return composite;
+	}
+	
+	private void createFieldRestrictionCombo(Composite composite, GridData gd) {
+		toolkit.createLabel(composite, "Add a restriction on a field");
+		final Combo combo = new Combo(composite, SWT.READ_ONLY);
+		combo.setLayoutData(gd);
+		combo.add("...");
+		String[] fields = this.modeller.getSuggestionCompletionEngine().getFieldCompletions( this.pattern.factType );
+        for ( int i = 0; i < fields.length; i++ ) {
+            combo.add( fields[i] );
+        }
+		combo.select(0);
+		
+		combo.addListener(SWT.Selection, new Listener() {
+			public void handleEvent(Event event) {
+				if (combo.getSelectionIndex() == 0) {
+					return;
+				}
+				
+				constraint.addConstraint( new SingleFieldConstraint( combo.getText() ));
+				modeller.setDirty(true);
+				modeller.reloadLhs();
+				close();
+			}
+		});
+
+	}
+	
+	private void createMultiFieldCombo(Composite composite, GridData gd) {
+		toolkit.createLabel(composite, "Multiple field constraint");
+		final Combo combo = new Combo(composite, SWT.READ_ONLY);
+		combo.setLayoutData(gd);
+		combo.add("...");
+		combo.add("All of (And)");
+		combo.add("Any of (Or)");
+		combo.setData("All of (And)",
+				CompositeFieldConstraint.COMPOSITE_TYPE_AND);
+		combo.setData("Any of (Or)",
+				CompositeFieldConstraint.COMPOSITE_TYPE_OR);
+		combo.select(0);
+		
+		combo.addListener(SWT.Selection, new Listener() {
+			public void handleEvent(Event event) {
+				if (combo.getSelectionIndex() == 0) {
+					return;
+				}
+				CompositeFieldConstraint comp = new CompositeFieldConstraint();
+                comp.compositeJunctionType = combo.getText();
+                constraint.addConstraint( comp );
+                
+				modeller.setDirty(true);
+				modeller.reloadLhs();
+				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 03:47:09 UTC (rev 12636)
+++ labs/jbossrules/trunk/drools-eclipse/drools-guided-editor-plugin/src/org/drools/eclipse/rulebuilder/ui/FactPatternWidget.java	2007-06-17 10:58:29 UTC (rev 12637)
@@ -72,7 +72,7 @@
 		addMoreOptionsAction();
 		Composite constraintComposite = toolkit.createComposite(parent);
 		GridLayout constraintLayout = new GridLayout();
-		constraintLayout.numColumns = 6;
+		constraintLayout.numColumns = 8;
 		constraintComposite.setLayout(constraintLayout);
 
 		for (int row = 0; row < pattern.getFieldConstraints().length; row++) {
@@ -158,6 +158,32 @@
 			toolkit.createLabel(constraintComposite, "Any of:");
 		}
 
+//		button "delete"
+		ImageHyperlink delLink = addImage(constraintComposite,
+				"icons/delete_obj.gif");
+		
+		final int currectRow = row;
+		
+		delLink.addHyperlinkListener(new IHyperlinkListener() {
+			public void linkActivated(HyperlinkEvent e) {
+				MessageBox dialog = new MessageBox(Display.getCurrent()
+						.getActiveShell(), SWT.YES | SWT.NO | SWT.ICON_WARNING);
+				dialog.setMessage("Remove this (nested) restriction.");
+				dialog.setText("Remove this item from nested constraint?");
+				if (dialog.open() == SWT.YES) {
+					pattern.removeConstraint(currectRow);
+					getModeller().reloadLhs();
+					getModeller().setDirty(true);
+				}
+			}
+
+			public void linkEntered(HyperlinkEvent e) {
+			}
+
+			public void linkExited(HyperlinkEvent e) {
+			}
+		});
+		
 		//button "add"
 		ImageHyperlink link = addImage(constraintComposite,
 				"icons/new_item.gif");
@@ -176,63 +202,36 @@
 			}
 		});
 		
-		// Nested elements
-		
-		
+		// Nested elementss
 		FieldConstraint[] nested = constraint.constraints;
 		if (nested != null) {
+			Composite nestedComposite = toolkit.createComposite(constraintComposite);
+			GridData gd = new GridData(GridData.FILL_HORIZONTAL);
+			gd.horizontalSpan = 5;
+			nestedComposite.setLayoutData(gd);
+			
+			GridLayout l = new GridLayout();
+			l.numColumns = 8;
+			l.marginBottom = 0;
+			l.marginHeight = 0;
+			l.marginLeft = 0;
+			l.marginRight = 0;
+			l.marginTop = 0;
+			l.marginWidth = 0;
+			l.verticalSpacing = 0;
+			nestedComposite.setLayout(l);
+			
 			for (int i = 0; i < nested.length; i++) {
-				Composite nestedComposite = toolkit.createComposite(constraintComposite);
-				
-				GridLayout l = new GridLayout();
-				l.numColumns = 6;
-				l.marginBottom = 0;
-				l.marginHeight = 0;
-				l.marginLeft = 0;
-				l.marginRight = 0;
-				l.marginTop = 0;
-				l.marginWidth = 0;
-				l.verticalSpacing = 0;
-				nestedComposite.setLayout(l);
-				
-				GridData gd = new GridData(GridData.FILL_HORIZONTAL);
-				gd.horizontalSpan = 3;
-				nestedComposite.setLayoutData(gd);
-				
 				renderFieldConstraints(nestedComposite, nested[i], i, false);
+				toolkit.paintBordersFor(nestedComposite);
 			}
 		}else{
-			toolkit.createLabel(constraintComposite, ""); // dummy
-			toolkit.createLabel(constraintComposite, ""); // dummy
-			toolkit.createLabel(constraintComposite, ""); // dummy			
+			toolkit.createLabel(constraintComposite, "1"); // dummy
+			toolkit.createLabel(constraintComposite, "2"); // dummy	
+			toolkit.createLabel(constraintComposite, "3"); // dummy
+			toolkit.createLabel(constraintComposite, "4"); // dummy
+			toolkit.createLabel(constraintComposite, "5"); // dummy
 		}
-		
-		//button "delete"
-		ImageHyperlink delLink = addImage(constraintComposite,
-				"icons/delete_item_small.gif");
-		
-		final int currectRow = row;
-		
-		delLink.addHyperlinkListener(new IHyperlinkListener() {
-			public void linkActivated(HyperlinkEvent e) {
-				MessageBox dialog = new MessageBox(Display.getCurrent()
-						.getActiveShell(), SWT.YES | SWT.NO | SWT.ICON_WARNING);
-				dialog.setMessage("Remove this (nested) restriction.");
-				dialog.setText("Remove this item from nested constraint?");
-				if (dialog.open() == SWT.YES) {
-					pattern.removeConstraint(currectRow);
-					getModeller().reloadLhs();
-					getModeller().setDirty(true);
-				}
-			}
-
-			public void linkEntered(HyperlinkEvent e) {
-			}
-
-			public void linkExited(HyperlinkEvent e) {
-			}
-		});
-		toolkit.createLabel(constraintComposite, ""); // dummy
 	}
 
 	private void renderSingleFieldConstraint(Composite constraintComposite,
@@ -274,8 +273,9 @@
 
 				toolkit.createLabel(parent, ""); // dummy
 				toolkit.createLabel(parent, ""); // dummy
-				// toolkit.createLabel(parent, ""); // dummy
 
+				//toolkit.createLabel(parent, ""); // dummy
+
 				ConnectiveConstraint con = c.connectives[i];
 				addRemoveConstraintAction(parent, c, con);
 				connectiveOperatorDropDown(parent, con, c.fieldName);
@@ -395,7 +395,9 @@
 				box.select(i);
 			}
 		}
-		box.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+		GridData gridData = new GridData(GridData.FILL_HORIZONTAL);
+		gridData.horizontalSpan = 3;
+		box.setLayoutData(gridData);
 		box.addListener(SWT.Selection, new Listener() {
 			public void handleEvent(Event event) {
 				c.operator = HumanReadable.getOperatorName(box.getText());
@@ -417,7 +419,9 @@
 				box.select(i);
 			}
 		}
-		box.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+		GridData gridData = new GridData(GridData.FILL_HORIZONTAL);
+		gridData.horizontalSpan = 3;
+		box.setLayoutData(gridData);
 		box.addModifyListener(new ModifyListener() {
 			public void modifyText(ModifyEvent e) {
 				con.operator = HumanReadable.getOperatorName(box.getText());
@@ -459,7 +463,8 @@
 						GridData.FILL_HORIZONTAL));
 				break;
 			case SingleFieldConstraint.TYPE_VARIABLE:
-				variableEditor(parent, c);
+				variableEditor(parent, c, new GridData(
+						GridData.FILL_HORIZONTAL));
 				break;
 			default:
 				break;
@@ -468,11 +473,13 @@
 	}
 
 	private void variableEditor(Composite composite,
-			final ISingleFieldConstraint c) {
+			final ISingleFieldConstraint c, GridData gd) {
 		List vars = getModeller().getModel().getBoundVariablesInScope(c);
 
 		final Combo combo = new Combo(composite, SWT.READ_ONLY);
 
+		gd.horizontalSpan = 1;
+		combo.setLayoutData(gd);
 		if (c.value == null) {
 			combo.add("Choose ...");
 		}
@@ -521,6 +528,7 @@
 			box.setText(c.value);
 		}
 
+		gd.horizontalSpan = 1;
 		box.setLayoutData(gd);
 
 		box.addModifyListener(new ModifyListener() {




More information about the jboss-svn-commits mailing list