[jboss-svn-commits] JBL Code SVN: r23508 - in labs/jbossrules/trunk: drools-compiler/src/main/java/org/drools/guvnor/server/util and 3 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Sat Oct 18 13:46:54 EDT 2008


Author: tirelli
Date: 2008-10-18 13:46:54 -0400 (Sat, 18 Oct 2008)
New Revision: 23508

Added:
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/guvnor/client/modeldriven/dt/MetadataCol.java
Modified:
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/guvnor/client/modeldriven/dt/GuidedDecisionTable.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/guvnor/server/util/GuidedDTDRLPersistence.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/guvnor/server/util/GuidedDTXMLPersistence.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/guvnor/server/util/GuidedDTDRLPersistenceTest.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/guvnor/server/util/GuidedDTXMLPersistenceTest.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/decisiontable/GuidedDecisionTableWidget.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/RuleAttributeWidget.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/RuleModeller.java
Log:
JBRULES-1806 Metadata in Guvnor DT, more cleanup and tests

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/guvnor/client/modeldriven/dt/GuidedDecisionTable.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/guvnor/client/modeldriven/dt/GuidedDecisionTable.java	2008-10-18 17:10:06 UTC (rev 23507)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/guvnor/client/modeldriven/dt/GuidedDecisionTable.java	2008-10-18 17:46:54 UTC (rev 23508)
@@ -25,6 +25,8 @@
 	 */
 	public String tableName;
 
+	public List<MetadataCol> metadataCols = new ArrayList<MetadataCol>();
+	
 	public List<AttributeCol> attributeCols = new ArrayList<AttributeCol>();
 
 	public List<ConditionCol> conditionCols = new ArrayList<ConditionCol>();

Added: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/guvnor/client/modeldriven/dt/MetadataCol.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/guvnor/client/modeldriven/dt/MetadataCol.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/guvnor/client/modeldriven/dt/MetadataCol.java	2008-10-18 17:46:54 UTC (rev 23508)
@@ -0,0 +1,13 @@
+package org.drools.guvnor.client.modeldriven.dt;
+
+
+/**
+ * This is a rule metadata - eg @foo(bar) etc.
+ * @author Michael Rhoden
+ *
+ */
+public class MetadataCol extends DTColumnConfig {
+
+	public String attr;
+
+}

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/guvnor/server/util/GuidedDTDRLPersistence.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/guvnor/server/util/GuidedDTDRLPersistence.java	2008-10-18 17:10:06 UTC (rev 23507)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/guvnor/server/util/GuidedDTDRLPersistence.java	2008-10-18 17:46:54 UTC (rev 23508)
@@ -12,6 +12,7 @@
 import org.drools.guvnor.client.modeldriven.brl.IPattern;
 import org.drools.guvnor.client.modeldriven.brl.ISingleFieldConstraint;
 import org.drools.guvnor.client.modeldriven.brl.RuleAttribute;
+import org.drools.guvnor.client.modeldriven.brl.RuleMetadata;
 import org.drools.guvnor.client.modeldriven.brl.RuleModel;
 import org.drools.guvnor.client.modeldriven.brl.SingleFieldConstraint;
 import org.drools.guvnor.client.modeldriven.dt.ActionCol;
@@ -21,6 +22,7 @@
 import org.drools.guvnor.client.modeldriven.dt.AttributeCol;
 import org.drools.guvnor.client.modeldriven.dt.ConditionCol;
 import org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable;
+import org.drools.guvnor.client.modeldriven.dt.MetadataCol;
 
 /**
  * This takes care of converting GuidedDT object to DRL (via the RuleModel).
@@ -45,9 +47,10 @@
 			RuleModel rm = new RuleModel();
 			rm.name = getName(dt.tableName, num);
 
-			doAttribs(dt.attributeCols, row, rm);
-			doConditions(dt.attributeCols.size(), dt.conditionCols, row, rm);
-			doActions(dt.attributeCols.size() + dt.conditionCols.size(), dt.actionCols, row, rm);
+			doMetadata(dt.metadataCols, row, rm);
+			doAttribs(dt.metadataCols.size(), dt.attributeCols, row, rm);
+			doConditions(dt.metadataCols.size() + dt.attributeCols.size(), dt.conditionCols, row, rm);
+			doActions(dt.metadataCols.size() +dt.attributeCols.size() + dt.conditionCols.size(), dt.actionCols, row, rm);
 
 			sb.append("#from row number: " + (i + 1) + "\n");
 			String rule = BRDRLPersistence.getInstance().marshal(rm);
@@ -119,13 +122,13 @@
 		return null;
 	}
 
-	void doConditions(int numOfAttributes, List<ConditionCol> conditionCols, String[] row, RuleModel rm) {
+	void doConditions(int numOfAttributesAndMeta, List<ConditionCol> conditionCols, String[] row, RuleModel rm) {
 
 		List<FactPattern> patterns = new ArrayList<FactPattern>();
 
 		for (int i = 0; i < conditionCols.size(); i++) {
 			ConditionCol c = (ConditionCol) conditionCols.get(i);
-			String cell = row[i + 2 + numOfAttributes];
+			String cell = row[i + 2 + numOfAttributesAndMeta];
 			if (validCell(cell)) {
 
 				//get or create the pattern it belongs too
@@ -188,11 +191,11 @@
 		return null;
 	}
 
-	void doAttribs(List<AttributeCol> attributeCols, String[] row, RuleModel rm) {
+	void doAttribs(int numOfMeta, List<AttributeCol> attributeCols, String[] row, RuleModel rm) {
 		List<RuleAttribute> attribs = new ArrayList<RuleAttribute>();
 		for (int j = 0; j < attributeCols.size(); j++) {
 			AttributeCol at = attributeCols.get(j);
-			String cell = row[j + 2];
+			String cell = row[j + 2 + numOfMeta];
 			if (validCell(cell)) {
 				attribs.add(new RuleAttribute(at.attr, cell));
 			}
@@ -201,6 +204,20 @@
 			rm.attributes = attribs.toArray(new RuleAttribute[attribs.size()]);
 		}
 	}
+	
+	void doMetadata(List<MetadataCol> metadataCols, String[] row, RuleModel rm) {
+		List<RuleMetadata> metadataList = new ArrayList<RuleMetadata>();
+		for (int j = 0; j < metadataCols.size(); j++) {
+			MetadataCol meta = metadataCols.get(j);
+			String cell = row[j + 2];
+			if (validCell(cell)) {
+				metadataList.add(new RuleMetadata(meta.attr, cell));
+			}
+		}
+		if (metadataList.size() > 0) {
+			rm.metadataList = metadataList.toArray(new RuleMetadata[metadataList.size()]);
+		}
+	}
 
 	String getName(String tableName, String num) {
 		return "Row " + num + " " + tableName;

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/guvnor/server/util/GuidedDTXMLPersistence.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/guvnor/server/util/GuidedDTXMLPersistence.java	2008-10-18 17:10:06 UTC (rev 23507)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/guvnor/server/util/GuidedDTXMLPersistence.java	2008-10-18 17:46:54 UTC (rev 23508)
@@ -6,6 +6,7 @@
 import org.drools.guvnor.client.modeldriven.dt.AttributeCol;
 import org.drools.guvnor.client.modeldriven.dt.ConditionCol;
 import org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable;
+import org.drools.guvnor.client.modeldriven.dt.MetadataCol;
 
 import com.thoughtworks.xstream.XStream;
 import com.thoughtworks.xstream.io.xml.DomDriver;
@@ -18,6 +19,7 @@
     private GuidedDTXMLPersistence() {
     	xt = new XStream(new DomDriver());
     	xt.alias("decision-table", GuidedDecisionTable.class);
+    	xt.alias("metadata-column", MetadataCol.class);
     	xt.alias("attribute-column", AttributeCol.class);
     	xt.alias("condition-column", ConditionCol.class);
     	xt.alias("set-field-col", ActionSetFieldCol.class);

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/guvnor/server/util/GuidedDTDRLPersistenceTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/guvnor/server/util/GuidedDTDRLPersistenceTest.java	2008-10-18 17:10:06 UTC (rev 23507)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/guvnor/server/util/GuidedDTDRLPersistenceTest.java	2008-10-18 17:46:54 UTC (rev 23508)
@@ -12,6 +12,7 @@
 import org.drools.guvnor.client.modeldriven.brl.FactPattern;
 import org.drools.guvnor.client.modeldriven.brl.ISingleFieldConstraint;
 import org.drools.guvnor.client.modeldriven.brl.RuleAttribute;
+import org.drools.guvnor.client.modeldriven.brl.RuleMetadata;
 import org.drools.guvnor.client.modeldriven.brl.RuleModel;
 import org.drools.guvnor.client.modeldriven.brl.SingleFieldConstraint;
 import org.drools.guvnor.client.modeldriven.dt.ActionCol;
@@ -21,8 +22,7 @@
 import org.drools.guvnor.client.modeldriven.dt.AttributeCol;
 import org.drools.guvnor.client.modeldriven.dt.ConditionCol;
 import org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable;
-import org.drools.guvnor.server.util.BRDRLPersistence;
-import org.drools.guvnor.server.util.GuidedDTDRLPersistence;
+import org.drools.guvnor.client.modeldriven.dt.MetadataCol;
 
 public class GuidedDTDRLPersistenceTest extends TestCase {
 
@@ -133,7 +133,7 @@
 		List<AttributeCol> attributeCols = new ArrayList<AttributeCol>();
 		RuleModel rm = new RuleModel();
 		RuleAttribute[] orig = rm.attributes;
-		p.doAttribs(attributeCols, row, rm);
+		p.doAttribs(0,attributeCols, row, rm);
 
 		assertSame(orig, rm.attributes);
 
@@ -144,14 +144,14 @@
 		attributeCols.add(col1);
 		attributeCols.add(col2);
 
-		p.doAttribs(attributeCols, row, rm);
+		p.doAttribs(0, attributeCols, row, rm);
 
 		assertEquals(1, rm.attributes.length);
 		assertEquals("salience", rm.attributes[0].attributeName);
 		assertEquals("a", rm.attributes[0].value);
 
 		row = new String[] {"1", "desc", "a", "b"};
-		p.doAttribs(attributeCols, row, rm);
+		p.doAttribs(0, attributeCols, row, rm);
 		assertEquals(2, rm.attributes.length);
 		assertEquals("salience", rm.attributes[0].attributeName);
 		assertEquals("a", rm.attributes[0].value);
@@ -160,6 +160,43 @@
 
 	}
 
+	public void testMetaData() {
+		GuidedDTDRLPersistence p = new GuidedDTDRLPersistence();
+		String[] row = new String[] {"1", "desc", "bar", ""};
+
+		List<MetadataCol> metadataCols = new ArrayList<MetadataCol>();
+		RuleModel rm = new RuleModel();
+		RuleMetadata[] orig = rm.metadataList;
+//		RuleAttribute[] orig = rm.attributes;
+		p.doMetadata(metadataCols, row, rm);
+//		p.doAttribs(0,metadataCols, row, rm);
+
+		assertSame(orig, rm.metadataList);
+
+		MetadataCol col1 = new MetadataCol();
+		col1.attr = "foo";
+		MetadataCol col2 = new MetadataCol();
+		col2.attr = "foo2";
+		metadataCols.add(col1);
+		metadataCols.add(col2);
+
+		p.doMetadata(metadataCols, row, rm);
+//		p.doAttribs(0, metadataCols, row, rm);
+
+		assertEquals(1, rm.metadataList.length);
+		assertEquals("foo", rm.metadataList[0].attributeName);
+		assertEquals("bar", rm.metadataList[0].value);
+
+		row = new String[] {"1", "desc", "bar1", "bar2"};
+		p.doMetadata(metadataCols, row, rm);
+		assertEquals(2, rm.metadataList.length);
+		assertEquals("foo", rm.metadataList[0].attributeName);
+		assertEquals("bar1", rm.metadataList[0].value);
+		assertEquals("foo2", rm.metadataList[1].attributeName);
+		assertEquals("bar2", rm.metadataList[1].value);
+
+	}
+	
 	public void testLHS() {
 		GuidedDTDRLPersistence p = new GuidedDTDRLPersistence();
 		String[] row = new String[] {"1", "desc", "a", "mike", "33 + 1", "age > 6", "stilton"};

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/guvnor/server/util/GuidedDTXMLPersistenceTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/guvnor/server/util/GuidedDTXMLPersistenceTest.java	2008-10-18 17:10:06 UTC (rev 23507)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/guvnor/server/util/GuidedDTXMLPersistenceTest.java	2008-10-18 17:46:54 UTC (rev 23508)
@@ -1,20 +1,21 @@
 package org.drools.guvnor.server.util;
 
+import junit.framework.TestCase;
+
 import org.drools.guvnor.client.modeldriven.dt.ActionInsertFactCol;
 import org.drools.guvnor.client.modeldriven.dt.ActionSetFieldCol;
 import org.drools.guvnor.client.modeldriven.dt.AttributeCol;
 import org.drools.guvnor.client.modeldriven.dt.ConditionCol;
 import org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable;
-import org.drools.guvnor.server.util.GuidedDTXMLPersistence;
+import org.drools.guvnor.client.modeldriven.dt.MetadataCol;
 
-import junit.framework.TestCase;
-
 public class GuidedDTXMLPersistenceTest extends TestCase {
 
 	public void testRoundTrip() {
 		GuidedDecisionTable dt = new GuidedDecisionTable();
 		dt.actionCols.add(new ActionInsertFactCol());
 		dt.actionCols.add(new ActionSetFieldCol());
+		dt.metadataCols.add(new MetadataCol());
 		dt.attributeCols.add(new AttributeCol());
 		dt.conditionCols.add(new ConditionCol());
 		dt.data = new String[][] {
@@ -33,6 +34,7 @@
 		assertNotNull(dt_);
 		assertEquals(42, dt_.descriptionWidth);
 		assertEquals("blah", dt_.tableName);
+		assertEquals(1, dt_.metadataCols.size());
 		assertEquals(1, dt_.attributeCols.size());
 		assertEquals(2, dt_.actionCols.size());
 		assertEquals(1, dt_.conditionCols.size());

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/decisiontable/GuidedDecisionTableWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/decisiontable/GuidedDecisionTableWidget.java	2008-10-18 17:10:06 UTC (rev 23507)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/decisiontable/GuidedDecisionTableWidget.java	2008-10-18 17:46:54 UTC (rev 23508)
@@ -1,5 +1,6 @@
 package org.drools.guvnor.client.decisiontable;
 
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
@@ -12,8 +13,6 @@
 import org.drools.guvnor.client.common.SmallLabel;
 import org.drools.guvnor.client.modeldriven.SuggestionCompletionEngine;
 import org.drools.guvnor.client.modeldriven.brl.ISingleFieldConstraint;
-import org.drools.guvnor.client.modeldriven.brl.RuleAttribute;
-import org.drools.guvnor.client.modeldriven.brl.RuleMetadata;
 import org.drools.guvnor.client.modeldriven.dt.ActionCol;
 import org.drools.guvnor.client.modeldriven.dt.ActionInsertFactCol;
 import org.drools.guvnor.client.modeldriven.dt.ActionSetFieldCol;
@@ -21,12 +20,13 @@
 import org.drools.guvnor.client.modeldriven.dt.ConditionCol;
 import org.drools.guvnor.client.modeldriven.dt.DTColumnConfig;
 import org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable;
+import org.drools.guvnor.client.modeldriven.dt.MetadataCol;
 import org.drools.guvnor.client.modeldriven.ui.ActionValueEditor;
 import org.drools.guvnor.client.modeldriven.ui.RuleAttributeWidget;
 import org.drools.guvnor.client.packages.SuggestionCompletionCache;
 import org.drools.guvnor.client.rpc.RuleAsset;
+import org.drools.guvnor.client.ruleeditor.RuleViewer;
 import org.drools.guvnor.client.ruleeditor.SaveEventListener;
-import org.drools.guvnor.client.ruleeditor.RuleViewer;
 
 import com.google.gwt.user.client.Command;
 import com.google.gwt.user.client.ui.Button;
@@ -153,6 +153,16 @@
 		final ListBox list = new ListBox();
 
 		list.addItem("Description", "desc");
+		if(dt.metadataCols == null){
+			dt.metadataCols = new ArrayList<MetadataCol>();
+		}
+		for (Iterator iterator = dt.metadataCols.iterator(); iterator.hasNext();) {
+			MetadataCol c = (MetadataCol) iterator.next();
+			list.addItem(c.attr, c.attr);
+			if (c.attr.equals(dt.groupField)) {
+				list.setSelectedIndex(list.getItemCount() - 1);
+			}
+		}
 		for (Iterator iterator = dt.attributeCols.iterator(); iterator.hasNext();) {
 			AttributeCol c = (AttributeCol) iterator.next();
 			list.addItem(c.attr, c.attr);
@@ -287,7 +297,7 @@
 
 					private void newActionAdded() {
 						//want to add in a blank row into the data
-						scrapeData(dt.attributeCols.size() + dt.conditionCols.size() + dt.actionCols.size() + 1);
+						scrapeData(dt.metadataCols.size() + dt.attributeCols.size() + dt.conditionCols.size() + dt.actionCols.size() + 1);
 						refreshGrid();
 						refreshActionsWidget();
 
@@ -349,7 +359,7 @@
 				GuidedDTColumnConfig dialog = new GuidedDTColumnConfig(getSCE(), dt, new Command() {
 					public void execute() {
 						//want to add in a blank row into the data
-						scrapeData(dt.attributeCols.size() + dt.conditionCols.size() + 1);
+						scrapeData(dt.metadataCols.size() + dt.attributeCols.size() + dt.conditionCols.size() + 1);
 						refreshGrid();
 						refreshConditionsWidget();
 					}
@@ -406,9 +416,31 @@
 	private void refreshAttributeWidget() {
 		this.attributeConfigWidget.clear();
 		attributeConfigWidget.add(newAttr());
+		if(dt.metadataCols.size() > 0){
+			HorizontalPanel hp = new HorizontalPanel();
+			hp.add(new HTML("&nbsp;&nbsp;"));
+			hp.add(new SmallLabel("Metadata: "));
+			attributeConfigWidget.add(hp);
+		}
+		for (int i = 0; i < dt.metadataCols.size(); i++) {
+			MetadataCol at = (MetadataCol) dt.metadataCols.get(i);
+			HorizontalPanel hp = new HorizontalPanel();
+			hp.add(new HTML("&nbsp;&nbsp;&nbsp;&nbsp;"));
+			hp.add(removeMeta(at));
+			hp.add(new SmallLabel(at.attr));
+			attributeConfigWidget.add(hp);
+		}
+		if(dt.attributeCols.size() > 0){
+			HorizontalPanel hp = new HorizontalPanel();
+			hp.add(new HTML("&nbsp;&nbsp;"));
+			hp.add(new SmallLabel("Attributes: "));
+			attributeConfigWidget.add(hp);
+		}
+		
 		for (int i = 0; i < dt.attributeCols.size(); i++) {
 			AttributeCol at = (AttributeCol) dt.attributeCols.get(i);
 			HorizontalPanel hp = new HorizontalPanel();
+			hp.add(new HTML("&nbsp;&nbsp;&nbsp;&nbsp;"));
 			hp.add(removeAttr(at));
 			hp.add(new SmallLabel(at.attr));
 			attributeConfigWidget.add(hp);
@@ -435,7 +467,7 @@
 						attr.attr = list.getItemText(list.getSelectedIndex());
 						
 						dt.attributeCols.add(attr);
-						scrapeData(dt.attributeCols.size() + 1);
+						scrapeData(dt.metadataCols.size() + dt.attributeCols.size() + 1);
 						refreshGrid();
 						refreshAttributeWidget();
 						pop.hide();
@@ -467,10 +499,13 @@
 
 		        addbutton.addClickListener( new ClickListener() {
 		            public void onClick(Widget w) {
-		            	
-//		            	model.addMetadata( new RuleMetadata(box.getText(), "") );
-//		            	refreshWidget();
-		                pop.hide();
+		            	MetadataCol met = new MetadataCol();
+		            	met.attr = box.getText();
+		            	dt.metadataCols.add(met);
+		            	scrapeData(dt.metadataCols.size() + 1);
+						refreshGrid();
+						refreshAttributeWidget();
+						pop.hide();
 		            }
 		        });
 		        DirtyableHorizontalPane horiz = new DirtyableHorizontalPane();
@@ -524,6 +559,21 @@
 		return del;
 	}
 
+	private Widget removeMeta(final MetadataCol md) {
+		Image del = new ImageButton("images/delete_item_small.gif", "Remove this metadata", new ClickListener() {
+			public void onClick(Widget w) {
+				if (com.google.gwt.user.client.Window.confirm("Are you sure you want to delete the column for " + md.attr + " - all data in that column will be removed?")) {
+					dt.metadataCols.remove(md);
+					removeField(md.attr);
+					scrapeData(-1);
+					refreshGrid();
+					refreshAttributeWidget();
+				}
+			}
+		});
+
+		return del;
+	}
 	/**
 	 * Here we read the record data from the grid into the data in the model.
 	 * if we have an insertCol - then a new empty column of data will be added in that
@@ -603,7 +653,7 @@
 
 	private GridPanel doGrid() {
 
-		fds = new FieldDef[dt.attributeCols.size() + dt.actionCols.size() + dt.conditionCols.size() + 2]; //its +2 as we have counter and description data
+		fds = new FieldDef[dt.metadataCols.size() + dt.attributeCols.size() + dt.actionCols.size() + dt.conditionCols.size() + 2]; //its +2 as we have counter and description data
 
 		colMap = new HashMap();
 
@@ -639,7 +689,25 @@
 			}
 		};
 		colCount++;
+		
+		//now to metadata
+		for (int i = 0; i < dt.metadataCols.size(); i++) {
+			final MetadataCol attr = (MetadataCol) dt.metadataCols.get(i);
+			fds[colCount] = new StringFieldDef(attr.attr);
+			cols[colCount] = new ColumnConfig() {
+				{
+					setHeader(attr.attr);
+					setDataIndex(attr.attr);
+					setSortable(true);
+					if (attr.width != -1) {
+						setWidth(attr.width);
+					}
 
+				}
+			};
+			colMap.put(attr.attr, attr);
+			colCount++;
+		}
 
 		//now to attributes
 		for (int i = 0; i < dt.attributeCols.size(); i++) {

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/RuleAttributeWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/RuleAttributeWidget.java	2008-10-18 17:10:06 UTC (rev 23507)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/RuleAttributeWidget.java	2008-10-18 17:46:54 UTC (rev 23508)
@@ -20,6 +20,7 @@
 import org.drools.guvnor.client.common.DirtyableComposite;
 import org.drools.guvnor.client.common.DirtyableHorizontalPane;
 import org.drools.guvnor.client.common.FormStyleLayout;
+import org.drools.guvnor.client.common.SmallLabel;
 import org.drools.guvnor.client.modeldriven.brl.RuleAttribute;
 import org.drools.guvnor.client.modeldriven.brl.RuleMetadata;
 import org.drools.guvnor.client.modeldriven.brl.RuleModel;
@@ -28,6 +29,8 @@
 import com.google.gwt.user.client.ui.ChangeListener;
 import com.google.gwt.user.client.ui.CheckBox;
 import com.google.gwt.user.client.ui.ClickListener;
+import com.google.gwt.user.client.ui.HTML;
+import com.google.gwt.user.client.ui.HorizontalPanel;
 import com.google.gwt.user.client.ui.Image;
 import com.google.gwt.user.client.ui.KeyboardListener;
 import com.google.gwt.user.client.ui.ListBox;
@@ -54,11 +57,25 @@
         layout = new FormStyleLayout();
         //Adding metadata here, seems redundant to add a new widget for metadata. Model does handle meta data separate.
         RuleMetadata[] meta = model.metadataList;
+        if(meta.length > 0){
+			HorizontalPanel hp = new HorizontalPanel();
+			//hp.add(new HTML("&nbsp;&nbsp;"));
+			hp.add(new SmallLabel("Metadata: "));
+			//attributeConfigWidget.add(hp);
+			layout.addRow(hp);
+		}
         for ( int i = 0; i < meta.length; i++ ) {
             RuleMetadata rmd = meta[i];
             layout.addAttribute( rmd.attributeName, getEditorWidget(rmd, i));
         }
         RuleAttribute[] attrs = model.attributes;
+        if(attrs.length > 0){
+			HorizontalPanel hp = new HorizontalPanel();
+			//hp.add(new HTML("&nbsp;&nbsp;"));
+			hp.add(new SmallLabel("Attributes: "));
+			//attributeConfigWidget.add(hp);
+			layout.addRow(hp);
+		}
         for ( int i = 0; i < attrs.length; i++ ) {
             RuleAttribute at = attrs[i];
             layout.addAttribute( at.attributeName, getEditorWidget(at, i));

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/RuleModeller.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/RuleModeller.java	2008-10-18 17:10:06 UTC (rev 23507)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/RuleModeller.java	2008-10-18 17:46:54 UTC (rev 23508)
@@ -141,6 +141,7 @@
         layout.setWidget( 4, 0, new SmallLabel("(options)") );
         layout.setWidget( 4, 2, getAddAttribute() );
         layout.setWidget( 5, 1, new RuleAttributeWidget(this, this.model) );
+        
     }
 
     public void refreshWidget() {




More information about the jboss-svn-commits mailing list