[jboss-svn-commits] JBL Code SVN: r16127 - in labs/jbossrules/trunk/drools-jbrms/src: test/java/org/drools/brms/client and 1 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Mon Oct 29 00:10:56 EDT 2007


Author: michael.neale at jboss.com
Date: 2007-10-29 00:10:56 -0400 (Mon, 29 Oct 2007)
New Revision: 16127

Added:
   labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/client/qa/
   labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/client/qa/ScenarioWidgetTest.java
Modified:
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/qa/ScenarioWidget.java
Log:
JBRULES-1271 testing framework GUI

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/qa/ScenarioWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/qa/ScenarioWidget.java	2007-10-29 02:56:40 UTC (rev 16126)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/qa/ScenarioWidget.java	2007-10-29 04:10:56 UTC (rev 16127)
@@ -7,18 +7,25 @@
 import java.util.List;
 import java.util.Map;
 
+import org.drools.brms.client.common.DirtyableFlexTable;
 import org.drools.brms.client.modeldriven.testing.FactData;
 import org.drools.brms.client.modeldriven.testing.FieldData;
 import org.drools.brms.client.modeldriven.testing.Scenario;
 
+import com.google.gwt.user.client.ui.ChangeListener;
 import com.google.gwt.user.client.ui.Composite;
+import com.google.gwt.user.client.ui.DisclosurePanel;
 import com.google.gwt.user.client.ui.FlexTable;
 import com.google.gwt.user.client.ui.Label;
+import com.google.gwt.user.client.ui.TextBox;
+import com.google.gwt.user.client.ui.VerticalPanel;
+import com.google.gwt.user.client.ui.Widget;
 
 public class ScenarioWidget extends Composite {
 
 	public ScenarioWidget() {
 
+		DirtyableFlexTable layout  = new DirtyableFlexTable();
 
 
 
@@ -37,7 +44,39 @@
 		//we want facts and globs separate, but grouped by type
 		Map facts = new HashMap();
 		Map globals = new HashMap();
+		breakUpFactData(factData, facts, globals);
 
+		//now we have them grouped by type and global/fact, so we can render them appropriately.
+		//maps are a map of Type => List of FactData
+
+
+
+		VerticalPanel factPanel = new VerticalPanel();
+		for (Iterator iterator = facts.entrySet().iterator(); iterator.hasNext();) {
+			Map.Entry e = (Map.Entry) iterator.next();
+			factPanel.add(new FactInput((String)e.getKey(), facts, false));
+		}
+		VerticalPanel globalPanel = new VerticalPanel();
+		for (Iterator iterator = globals.entrySet().iterator(); iterator.hasNext();) {
+			Map.Entry e = (Map.Entry) iterator.next();
+			globalPanel.add(new FactInput((String)e.getKey(), globals, true));
+		}
+
+
+		layout.setWidget(0, 0, factPanel);
+		layout.setWidget(1, 0, globalPanel);
+
+
+		layout.setStyleName("model-builder-Background");
+		initWidget(layout);
+
+	}
+
+	/**
+	 * Separate out the elements into the appropriate types.
+	 * Will be keyed on the type name.
+	 */
+    static void breakUpFactData(List factData, Map facts, Map globals) {
 		for (Iterator iterator = factData.iterator(); iterator.hasNext();) {
 			Object f = (Object) iterator.next();
 			if (f instanceof FactData) {
@@ -49,17 +88,9 @@
 				}
 			}
 		}
-
-		//now we have them grouped by type and global/fact, so we can render them appropriately.
-		//maps are a map of Type => List of FactData
-
-
-		initWidget(new FactInput("Driver", facts));
-
-
 	}
 
-	private void addToMap(Map globals, FactData fd) {
+	private static void addToMap(Map globals, FactData fd) {
 		if (!globals.containsKey(fd.type)) {
 			globals.put(fd.type, new ArrayList());
 		}
@@ -76,11 +107,15 @@
  */
 class FactInput extends Composite {
 	final FlexTable t = new FlexTable();
-	public FactInput(String factType, Map facts) {
+	public FactInput(String factType, Map facts, boolean isGlobal) {
 		//need to keep track of what fields are in what row in the table.
 		Map fields = new HashMap();
-		t.setWidget(0, 0, new Label("Insert " + factType));
-		int col = 0, row = 0;
+		if (isGlobal) {
+			t.setWidget(0, 0, new Label("Global: " + factType));
+		} else {
+			t.setWidget(0, 0, new Label("Insert: " + factType));
+		}
+		int col = 0;
 		List defList = (List) facts.get(factType);
 		for (Iterator iterator = defList.iterator(); iterator.hasNext();) {
 			FactData d = (FactData) iterator.next();
@@ -93,11 +128,23 @@
 					t.setWidget(idx, 0, new Label(fd.name));
 				}
 				int fldRow = ((Integer) fields.get(fd.name)).intValue();
-				t.setWidget(fldRow, col, new Label(fd.value));
+				t.setWidget(fldRow, col, editableCell(fd));
 			}
 		}
 
 		initWidget(t);
 	}
+
+	private Widget editableCell(final FieldData fd) {
+		final TextBox tb = new TextBox();
+		tb.setText(fd.value);
+		tb.setTitle("Value for: " + fd.name);
+		tb.addChangeListener(new ChangeListener() {
+			public void onChange(Widget w) {
+				fd.value = tb.getText();
+			}
+		});
+		return tb;
+	}
 }
 

Added: labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/client/qa/ScenarioWidgetTest.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/client/qa/ScenarioWidgetTest.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/client/qa/ScenarioWidgetTest.java	2007-10-29 04:10:56 UTC (rev 16127)
@@ -0,0 +1,38 @@
+package org.drools.brms.client.qa;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+
+import org.drools.brms.client.modeldriven.testing.FactData;
+
+import junit.framework.TestCase;
+
+public class ScenarioWidgetTest extends TestCase {
+
+    public void testMapSeparate() {
+        List l = new ArrayList();
+        FactData fd1 = new FactData("Driver", "d1", null, false);
+        FactData fd2 = new FactData("Driver", "d2", null, false);
+        FactData fd3 = new FactData("Driver", "d3", null, true);
+        l.add(fd1); l.add(fd2); l.add(fd3);
+
+        HashMap facts = new HashMap();
+        HashMap globals = new HashMap();
+
+        ScenarioWidget.breakUpFactData(l, facts, globals);
+
+        assertEquals(1, facts.size());
+        assertEquals(1, globals.size());
+
+        List fl = (List) facts.get("Driver");
+        assertEquals(2, fl.size());
+        assertEquals(fd1, fl.get(0));
+        assertEquals(fd2, fl.get(1));
+
+        List gl = (List) globals.get("Driver");
+        assertEquals(1, gl.size());
+        assertEquals(fd3, gl.get(0));
+    }
+
+}


Property changes on: labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/client/qa/ScenarioWidgetTest.java
___________________________________________________________________
Name: svn:eol-style
   + native




More information about the jboss-svn-commits mailing list