[jboss-svn-commits] JBL Code SVN: r16624 - labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/qa.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Thu Nov 15 02:40:03 EST 2007
Author: michael.neale at jboss.com
Date: 2007-11-15 02:40:02 -0500 (Thu, 15 Nov 2007)
New Revision: 16624
Modified:
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/qa/ScenarioWidget.java
Log:
JBRULES-1271 test scenario editing
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-11-15 06:47:35 UTC (rev 16623)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/qa/ScenarioWidget.java 2007-11-15 07:40:02 UTC (rev 16624)
@@ -67,7 +67,7 @@
}
- private void render() {
+ void render() {
layout.clear();
ScenarioHelper hlp = new ScenarioHelper();
List fixtures = hlp.lumpyMap(scenario.fixtures);
@@ -93,7 +93,7 @@
for (Iterator iterator = facts.entrySet().iterator(); iterator.hasNext();) {
Map.Entry e = (Map.Entry) iterator.next();
List factList = (List) facts.get(e.getKey());
- vert.add(new DataInputWidget((String)e.getKey(), factList, false, scenario));
+ vert.add(new DataInputWidget((String)e.getKey(), factList, false, scenario, sce, this));
}
layout.setWidget(layoutRow, 1, vert);
} else {
@@ -123,7 +123,7 @@
VerticalPanel globalPanel = new VerticalPanel();
for (Iterator iterator = globals.entrySet().iterator(); iterator.hasNext();) {
Map.Entry e = (Map.Entry) iterator.next();
- globalPanel.add(new DataInputWidget((String)e.getKey(), (List) globals.get(e.getKey()), true, scenario));
+ globalPanel.add(new DataInputWidget((String)e.getKey(), (List) globals.get(e.getKey()), true, scenario, sce, this));
}
layout.setWidget(layoutRow, 0, new Label("Globals"));
layoutRow++;
@@ -230,13 +230,19 @@
private Grid outer;
private Scenario scenario;
+ private SuggestionCompletionEngine sce;
+ private String type;
+ private ScenarioWidget parent;
- public DataInputWidget(String factType, List defList, boolean isGlobal, Scenario sc) {
+ public DataInputWidget(String factType, List defList, boolean isGlobal, Scenario sc, SuggestionCompletionEngine sce, ScenarioWidget parent) {
outer = new Grid(2, 1);
scenario = sc;
+ this.sce = sce;
+ this.type = factType;
+ this.parent = parent;
outer.getCellFormatter().setStyleName(0, 0, "modeller-fact-TypeHeader");
outer.getCellFormatter().setAlignment(0, 0, HasHorizontalAlignment.ALIGN_CENTER, HasVerticalAlignment.ALIGN_MIDDLE );
outer.setStyleName("modeller-fact-pattern-Widget");
@@ -261,8 +267,12 @@
private FlexTable render(final List defList) {
DirtyableFlexTable t = new DirtyableFlexTable();
+ if (defList.size() == 0) {
+ parent.render();
+ }
//This will work out what row is for what field, addin labels and remove icons
+
Map fields = new HashMap();
int col = 0;
int totalCols = defList.size();
@@ -291,19 +301,51 @@
int totalRows = fields.size();
+ //now we put in button to add new fields
+ //Image newField = new ImageButton("images/add_field_to_fact.gif", "Add a field.");
+ Button newField = new Button("Add field");
+ newField.addClickListener(new ClickListener() {
+ public void onClick(Widget w) {
+ String[] fields = (String[]) sce.fieldsForType.get(type);
+ final FormStylePopup pop = new FormStylePopup("images/rule_asset.gif", "Choose a field to add");
+ final ListBox b = new ListBox();
+ for (int i = 0; i < fields.length; i++) {
+ b.addItem(fields[i]);
+ }
+ pop.addRow(b);
+ Button ok = new Button("OK");
+ ok.addClickListener(new ClickListener() {
+ public void onClick(Widget w) {
+ String f = b.getItemText(b.getSelectedIndex());
+ for (Iterator iterator = defList.iterator(); iterator.hasNext();) {
+ FactData fd = (FactData) iterator.next();
+ fd.fieldData.add(new FieldData(f, ""));
+ }
+ outer.setWidget(1, 0, render(defList));
+ pop.hide();
+ }
+ });
+ pop.addRow(ok);
+ pop.setPopupPosition(w.getAbsoluteLeft(), w.getAbsoluteTop());
+ pop.show();
+ }
+ });
+ t.setWidget(totalRows + 1, 0, newField);
+ t.getFlexCellFormatter().setHorizontalAlignment(totalRows + 1, 0, HasHorizontalAlignment.ALIGN_RIGHT);
+
//now we go through the facts and the fields, adding them to the grid
//if a fact is missing a FieldData, we will add it in (so people can enter data later on)
col = 0;
for (Iterator iterator = defList.iterator(); iterator.hasNext();) {
final FactData d = (FactData) iterator.next();
t.setWidget(0, ++col, new Label(d.name));
- Image del = new ImageButton("images/delete_item_small.gif", "Remove this row.", new ClickListener() {
+ Image del = new ImageButton("images/delete_item_small.gif", "Remove the column for [" + d.name + "]", new ClickListener() {
public void onClick(Widget w) {
if (scenario.isFactNameUsed(d)) {
Window.alert("Can't remove this column as the name [" + d.name + "] is being used.");
- } else if (Window.confirm("Are you sure you want to remove this row ?")) {
+ } else if (Window.confirm("Are you sure you want to remove this column ?")) {
scenario.removeFixture(d);
defList.remove(d);
outer.setWidget(1, 0, render(defList));
More information about the jboss-svn-commits
mailing list