[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