[jboss-svn-commits] JBL Code SVN: r19420 - in labs/jbossrules/trunk: drools-compiler/src/main/java/org/drools/brms/client/modeldriven/dt and 17 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Fri Apr 4 13:08:32 EDT 2008
Author: tirelli
Date: 2008-04-04 13:08:31 -0400 (Fri, 04 Apr 2008)
New Revision: 19420
Added:
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/header.css
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/header_logo.gif
Removed:
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/welcome.html
Modified:
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/brl/RuleAttribute.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/dt/GuidedDecisionTable.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/ExecutionTrace.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/VerifyFact.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/server/util/GuidedDTDRLPersistence.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/server/util/ScenarioXMLPersistence.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/testframework/ScenarioRunner.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/testframework/TestingEventListener.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/brms/server/rules/SuggestionCompletionLoaderTest.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/brms/server/util/BRDRLPersistenceTest.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/brms/server/util/GuidedDTDRLPersistenceTest.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/brms/server/util/ScenarioXMLPersistenceTest.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/MockWorkingMemory.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/ScenarioRunnerTest.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/TestingEventListenerTest.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/LoggedInUserInfo.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/ErrorPopup.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/decisiontable/ActionInsertColumn.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/decisiontable/ActionSetColumn.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/decisiontable/GuidedDTColumnConfig.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/decisiontable/GuidedDecisionTableWidget.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/explorer/ExplorerLayoutManager.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/explorer/ExplorerNodeConfig.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/ConstraintValueEditor.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/FactPatternWidget.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/qa/BulkRunResultWidget.java
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/ruleeditor/DSLRuleEditor.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/DefaultRuleContentWidget.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/RuleValidatorWrapper.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/RuleViewer.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/JBRMS.css
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/JBRMS.html
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/ServiceImplementation.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/jboss/seam/remoting/gwt/GWTToSeamAdapter.java
labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/ServiceImplementationTest.java
Log:
JBRULES-1545: merging changes from revisions #19227-#19386 from mic's branch into trunk
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/brl/RuleAttribute.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/brl/RuleAttribute.java 2008-04-04 14:38:23 UTC (rev 19419)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/brl/RuleAttribute.java 2008-04-04 17:08:31 UTC (rev 19420)
@@ -11,6 +11,7 @@
private static final String NOLOOP = "no-loop";
private static final String SALIENCE = "salience";
+ private static final String ENABLED = "enabled";
public RuleAttribute(final String name,
final String value) {
@@ -32,7 +33,7 @@
if ( NOLOOP.equals( attributeName ) ) {
ret.append( " " );
ret.append( this.value == null ? "true" : this.value );
- } else if ( SALIENCE.equals( this.attributeName ) ) {
+ } else if ( SALIENCE.equals( this.attributeName ) || ENABLED.equals(this.attributeName) ) {
ret.append( " " );
ret.append( this.value );
} else if ( this.value != null ) {
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/dt/GuidedDecisionTable.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/dt/GuidedDecisionTable.java 2008-04-04 14:38:23 UTC (rev 19419)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/dt/GuidedDecisionTable.java 2008-04-04 17:08:31 UTC (rev 19420)
@@ -53,6 +53,8 @@
*/
public int descriptionWidth = -1;
+ public String groupField;
+
//TODO: add in precondition(s)
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/ExecutionTrace.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/ExecutionTrace.java 2008-04-04 14:38:23 UTC (rev 19419)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/ExecutionTrace.java 2008-04-04 17:08:31 UTC (rev 19420)
@@ -28,6 +28,11 @@
*/
public Long numberOfRulesFired;
+ /**
+ * A summary of the rules fired.
+ */
+ public String[] rulesFired;
+
public ExecutionTrace() {}
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/VerifyFact.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/VerifyFact.java 2008-04-04 14:38:23 UTC (rev 19419)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/VerifyFact.java 2008-04-04 17:08:31 UTC (rev 19420)
@@ -17,18 +17,30 @@
public String name;
public String description;
+ /**
+ * This is true if it isn't a named fact, but it will just search working memory to verify.
+ */
+ public boolean anonymous = false;
+
public VerifyFact() {}
- public VerifyFact(String factName, List fieldValues) {
+ public VerifyFact(String factName, List fieldValues, boolean anonymous) {
this.name = factName;
this.fieldValues = fieldValues;
+ this.anonymous = anonymous;
}
+ public VerifyFact(String factName, List fieldValues) {
+ this(factName, fieldValues, false);
+ }
+
+
+
public boolean wasSuccessful() {
for (int i = 0; i < fieldValues.size(); i++) {
VerifyField vf = (VerifyField) fieldValues.get(i);
- if (! vf.successResult.booleanValue()) {
+ if (!vf.successResult.booleanValue()) {
return false;
}
}
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/server/util/GuidedDTDRLPersistence.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/server/util/GuidedDTDRLPersistence.java 2008-04-04 14:38:23 UTC (rev 19419)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/server/util/GuidedDTDRLPersistence.java 2008-04-04 17:08:31 UTC (rev 19420)
@@ -43,7 +43,7 @@
String desc = row[1];
RuleModel rm = new RuleModel();
- rm.name = getName(dt.tableName, num, desc);
+ rm.name = getName(dt.tableName, num);
doAttribs(dt.attributeCols, row, rm);
doConditions(dt.attributeCols.size(), dt.conditionCols, row, rm);
@@ -185,8 +185,8 @@
}
}
- String getName(String tableName, String num, String desc) {
- return (validCell(desc)) ? num + "_" + desc : num + "_" + tableName;
+ String getName(String tableName, String num) {
+ return "Row " + num + " " + tableName;
}
boolean validCell(String c) {
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/server/util/ScenarioXMLPersistence.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/server/util/ScenarioXMLPersistence.java 2008-04-04 14:38:23 UTC (rev 19419)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/server/util/ScenarioXMLPersistence.java 2008-04-04 17:08:31 UTC (rev 19420)
@@ -36,6 +36,7 @@
xt.alias("expect-fact", VerifyFact.class);
xt.alias("expect-field", VerifyField.class);
xt.alias("expect-rule", VerifyRuleFired.class);
+ xt.omitField(ExecutionTrace.class, "rulesFired");
}
public static ScenarioXMLPersistence getInstance() {
@@ -46,7 +47,12 @@
public String marshal(Scenario sc) {
if (sc.fixtures.size() > 1 && sc.fixtures.get(sc.fixtures.size() - 1) instanceof ExecutionTrace) {
- sc.fixtures.remove(sc.fixtures.size() - 1);
+ Object f = sc.fixtures.get(sc.fixtures.size() - 2);
+
+ if (f instanceof Expectation) {
+ sc.fixtures.remove(sc.fixtures.size() - 1);
+ }
+
}
return xt.toXML(sc);
}
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/testframework/ScenarioRunner.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/testframework/ScenarioRunner.java 2008-04-04 14:38:23 UTC (rev 19419)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/testframework/ScenarioRunner.java 2008-04-04 17:08:31 UTC (rev 19420)
@@ -116,7 +116,9 @@
wm.fireAllRules(listener.getAgendaFilter(ruleList, scenario.inclusive),scenario.maxRuleFirings);
executionTrace.executionTimeResult = System.currentTimeMillis() - time;
executionTrace.numberOfRulesFired = listener.totalFires;
+ executionTrace.rulesFired = listener.getRulesFiredSummary();
+
} else if (fx instanceof Expectation) {
Expectation assertion = (Expectation) fx;
if (assertion instanceof VerifyFact) {
@@ -193,8 +195,29 @@
void verify(VerifyFact value) {
- Object fact = this.populatedData.get(value.name);
- if (fact == null) fact = this.globalData.get(value.name);
+
+ if (!value.anonymous) {
+ Object fact = this.populatedData.get(value.name);
+ if (fact == null) fact = this.globalData.get(value.name);
+ checkFact(value, fact);
+ } else {
+ Iterator obs = this.workingMemory.iterateObjects();
+ while(obs.hasNext()) {
+ Object fact = obs.next();
+ if (fact.getClass().getSimpleName().equals(value.name)) {
+ checkFact(value, fact);
+ if (value.wasSuccessful()) return;
+ }
+ }
+ for (Iterator iterator = value.fieldValues.iterator(); iterator.hasNext();) {
+ VerifyField vfl = (VerifyField) iterator.next();
+ vfl.successResult = Boolean.FALSE;
+ vfl.actualResult = "Not found";
+ }
+ }
+ }
+
+ private void checkFact(VerifyFact value, Object fact) {
for (int i = 0; i < value.fieldValues.size(); i++) {
VerifyField fld = (VerifyField) value.fieldValues.get(i);
Map<String, Object> st = new HashMap<String, Object>();
@@ -233,6 +256,8 @@
}
}
+
+
Object populateFields(FactData fact, Map<String, Object> factData, Object factObject) {
for (int i = 0; i < fact.fieldData.size(); i++) {
FieldData field = (FieldData) fact.fieldData.get(i);
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/testframework/TestingEventListener.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/testframework/TestingEventListener.java 2008-04-04 14:38:23 UTC (rev 19419)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/testframework/TestingEventListener.java 2008-04-04 17:08:31 UTC (rev 19420)
@@ -5,7 +5,9 @@
import java.io.ObjectOutput;
import java.util.HashMap;
import java.util.HashSet;
+import java.util.Iterator;
import java.util.Map;
+import java.util.Map.Entry;
import org.drools.WorkingMemory;
import org.drools.event.ActivationCancelledEvent;
@@ -153,8 +155,23 @@
return this.firingCounts;
}
+ /**
+ * Return a list of the rules fired, for display purposes.
+ */
+ public String[] getRulesFiredSummary() {
+ String[] r = new String[firingCounts.size()];
+ int i = 0;
+ for (Iterator iterator = firingCounts.entrySet().iterator(); iterator.hasNext();) {
+ Entry<String, Integer> e = (Entry<String, Integer>) iterator.next();
+ r[i] = e.getKey() + " [" + e.getValue() + "]";
+ i++;
+ }
+ return r;
+ }
+
+
}
class NilConsequence implements Consequence {
Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/brms/server/rules/SuggestionCompletionLoaderTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/brms/server/rules/SuggestionCompletionLoaderTest.java 2008-04-04 14:38:23 UTC (rev 19419)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/brms/server/rules/SuggestionCompletionLoaderTest.java 2008-04-04 17:08:31 UTC (rev 19420)
@@ -41,6 +41,8 @@
assertEquals(1, eng.getGlobalVariables().length);
assertEquals("p", eng.getGlobalVariables()[0]);
assertEquals("Person", eng.globalTypes.get("p"));
+ String[] flds = (String[]) eng.fieldsForType.get("Person");
+ assertNotNull(flds);
}
Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/brms/server/util/BRDRLPersistenceTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/brms/server/util/BRDRLPersistenceTest.java 2008-04-04 14:38:23 UTC (rev 19419)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/brms/server/util/BRDRLPersistenceTest.java 2008-04-04 17:08:31 UTC (rev 19420)
@@ -54,6 +54,16 @@
drl );
}
+ public void testAttr() {
+ RuleModel m = new RuleModel();
+ m.attributes = new RuleAttribute[1];
+ m.attributes[0] = new RuleAttribute("enabled", "true");
+ final String drl = p.marshal( m );
+
+ assertTrue(drl.indexOf("enabled true") > 0);
+
+ }
+
public void testMoreComplexRendering() {
final RuleModel m = getComplexModel();
String expected = "rule \"Complex Rule\"\n" +
Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/brms/server/util/GuidedDTDRLPersistenceTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/brms/server/util/GuidedDTDRLPersistenceTest.java 2008-04-04 14:38:23 UTC (rev 19419)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/brms/server/util/GuidedDTDRLPersistenceTest.java 2008-04-04 17:08:31 UTC (rev 19420)
@@ -120,8 +120,8 @@
public void testName() {
GuidedDTDRLPersistence p = new GuidedDTDRLPersistence();
- assertEquals("42_hey", p.getName("XXX", "42", "hey"));
- assertEquals("42_XXX", p.getName("XXX", "42", ""));
+ assertEquals("Row 42 XXX", p.getName("XXX", "42"));
+ assertEquals("Row 42 YYY", p.getName("YYY", "42"));
}
public void testAttribs() {
Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/brms/server/util/ScenarioXMLPersistenceTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/brms/server/util/ScenarioXMLPersistenceTest.java 2008-04-04 14:38:23 UTC (rev 19419)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/brms/server/util/ScenarioXMLPersistenceTest.java 2008-04-04 17:08:31 UTC (rev 19420)
@@ -41,12 +41,13 @@
Scenario orig = getDemo();
sc.fixtures.add(new ExecutionTrace());
+ int origSize = orig.fixtures.size();
- assertEquals(orig.fixtures.size() + 1, sc.fixtures.size());
+ assertEquals(origSize + 1, sc.fixtures.size());
String xml = ScenarioXMLPersistence.getInstance().marshal(sc);
Scenario sc_ = ScenarioXMLPersistence.getInstance().unmarshal(xml);
- assertEquals(orig.fixtures.size(), sc_.fixtures.size());
+ assertEquals(origSize, sc_.fixtures.size());
@@ -55,6 +56,27 @@
}
+
+ public void testNewScenario() {
+ FactData d1 = new FactData("Driver", "d1", ls(new FieldData[] {new FieldData("age", "42"), new FieldData("name", "david")}), false);
+ Scenario sc = new Scenario();
+ sc.fixtures.add(d1);
+ sc.fixtures.add(new ExecutionTrace());
+
+ int size = sc.fixtures.size();
+
+ String xml = ScenarioXMLPersistence.getInstance().marshal(sc);
+ Scenario sc_ = ScenarioXMLPersistence.getInstance().unmarshal(xml);
+
+ assertEquals(size, sc_.fixtures.size());
+
+ sc = new Scenario();
+ sc.fixtures.add(new ExecutionTrace());
+ xml = ScenarioXMLPersistence.getInstance().marshal(sc);
+ sc_ = ScenarioXMLPersistence.getInstance().unmarshal(xml);
+ assertEquals(1, sc_.fixtures.size());
+ }
+
private Scenario getDemo() {
//Sample data
FactData d1 = new FactData("Driver", "d1", ls(new FieldData[] {new FieldData("age", "42"), new FieldData("name", "david")}), false);
Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/MockWorkingMemory.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/MockWorkingMemory.java 2008-04-04 14:38:23 UTC (rev 19419)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/MockWorkingMemory.java 2008-04-04 17:08:31 UTC (rev 19420)
@@ -295,8 +295,7 @@
}
public Iterator iterateObjects() {
- // TODO Auto-generated method stub
- return null;
+ return this.facts.iterator();
}
public Iterator iterateObjects(ObjectFilter filter) {
Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/ScenarioRunnerTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/ScenarioRunnerTest.java 2008-04-04 14:38:23 UTC (rev 19419)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/ScenarioRunnerTest.java 2008-04-04 17:08:31 UTC (rev 19420)
@@ -232,6 +232,43 @@
}
+ public void testVerifyAnonymousFacts() throws Exception {
+ MockWorkingMemory wm = new MockWorkingMemory();
+ ScenarioRunner runner = new ScenarioRunner( new Scenario(),
+ null,
+ wm );
+
+ Cheese c = new Cheese();
+ c.setPrice(42);
+ c.setType("stilton");
+
+ wm.facts.add(c);
+
+ VerifyFact vf = new VerifyFact("Cheese", new ArrayList(), true);
+ vf.fieldValues.add(new VerifyField("price", "42", "=="));
+ vf.fieldValues.add(new VerifyField("type", "stilton", "=="));
+
+ runner.verify(vf);
+
+ assertTrue(vf.wasSuccessful());
+
+ vf = new VerifyFact("Person", new ArrayList(), true);
+ vf.fieldValues.add(new VerifyField("age", "42", "=="));
+
+ runner.verify(vf);
+
+ assertFalse(vf.wasSuccessful());
+
+ vf = new VerifyFact("Cheese", new ArrayList(), true);
+ vf.fieldValues.add(new VerifyField("price", "43", "=="));
+ vf.fieldValues.add(new VerifyField("type", "stilton", "=="));
+
+ runner.verify(vf);
+
+ assertFalse(vf.wasSuccessful());
+
+ }
+
public void testVerifyFactsWithOperator() throws Exception {
ScenarioRunner runner = new ScenarioRunner( new Scenario(),
null,
@@ -671,9 +708,13 @@
Thread.sleep( 50 );
+
+
assertTrue( (new Date()).after( sc.lastRunResult ) );
assertTrue( executionTrace.executionTimeResult != null );
+ assertTrue(executionTrace.rulesFired.length > 0);
+
}
public void testIntgerationStateful() throws Exception {
Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/TestingEventListenerTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/TestingEventListenerTest.java 2008-04-04 14:38:23 UTC (rev 19419)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/TestingEventListenerTest.java 2008-04-04 17:08:31 UTC (rev 19420)
@@ -86,6 +86,12 @@
assertEquals(new Integer(1), (Integer) ls.firingCounts.get("rule1"));
assertEquals(new Integer(1), (Integer) ls.firingCounts.get("rule2"));
assertEquals(new Integer(1), (Integer) ls.firingCounts.get("rule3"));
+
+ String[] summary = ls.getRulesFiredSummary();
+ assertEquals(3, summary.length);
+ assertNotNull(summary[0]);
+ assertFalse(summary[1].equals(""));
+
assertEquals(1, list.size());
}
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/LoggedInUserInfo.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/LoggedInUserInfo.java 2008-04-04 14:38:23 UTC (rev 19419)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/LoggedInUserInfo.java 2008-04-04 17:08:31 UTC (rev 19420)
@@ -42,7 +42,7 @@
public void setUserName(String userName) {
StringBuffer content = new StringBuffer();
- content.append( "<div id='user_info' class='headerBarblue'>" );
+ content.append( "<div class='headerUserInfo'>" );
content.append( "<small>Welcome: " + userName );
content.append( " <a href='logout.jsp'>[Sign Out]</a></small>" );
content.append( "</div>" );
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/ErrorPopup.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/ErrorPopup.java 2008-04-04 14:38:23 UTC (rev 19419)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/ErrorPopup.java 2008-04-04 17:08:31 UTC (rev 19420)
@@ -43,7 +43,7 @@
Window w = new Window();
w.setTitle("Error");
w.setWidth(500);
- w.setHeight((longMessage != null) ? 500 : 150);
+ w.setHeight((longMessage != null) ? 300 : 150);
w.setModal(true);
w.setShadow(true);
w.setClosable(true);
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/decisiontable/ActionInsertColumn.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/decisiontable/ActionInsertColumn.java 2008-04-04 14:38:23 UTC (rev 19419)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/decisiontable/ActionInsertColumn.java 2008-04-04 17:08:31 UTC (rev 19420)
@@ -35,7 +35,7 @@
private SuggestionCompletionEngine sce;
private ActionInsertFactCol editingCol;
private SmallLabel patternLabel = new SmallLabel();
- private SmallLabel fieldLabel = new SmallLabel();
+ private TextBox fieldLabel = getFieldLabel();
public ActionInsertColumn(SuggestionCompletionEngine sce, final GuidedDecisionTable dt, final Command refreshGrid, final ActionInsertFactCol col, final boolean isNew) {
this.setModal(false);
@@ -51,13 +51,6 @@
setTitle("Action column configuration (inserting a new fact)");
- final TextBox header = new TextBox();
- header.setText(col.header);
- header.addChangeListener(new ChangeListener() {
- public void onChange(Widget w) {
- editingCol.header = header.getText();
- } });
- addAttribute("Column header (description):", header);
HorizontalPanel pattern = new HorizontalPanel();
@@ -96,6 +89,15 @@
vl.add(new InfoPopup("Value list", "Value lists are an optional comma separated list of values to show as a drop down."));
addAttribute("(optional) value list:", vl);
+ final TextBox header = new TextBox();
+ header.setText(col.header);
+ header.addChangeListener(new ChangeListener() {
+ public void onChange(Widget w) {
+ editingCol.header = header.getText();
+ } });
+ addAttribute("Column header (description):", header);
+
+
Button apply = new Button("Apply changes");
apply.addClickListener(new ClickListener() {
public void onClick(Widget w) {
@@ -117,6 +119,16 @@
}
+ private TextBox getFieldLabel() {
+ final TextBox box = new TextBox();
+ box.addChangeListener(new ChangeListener() {
+ public void onChange(Widget w) {
+ editingCol.factField = box.getText();
+ }
+ });
+ return box;
+ }
+
private void showFieldChange() {
final FormStylePopup pop = new FormStylePopup();
pop.setModal(false);
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/decisiontable/ActionSetColumn.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/decisiontable/ActionSetColumn.java 2008-04-04 14:38:23 UTC (rev 19419)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/decisiontable/ActionSetColumn.java 2008-04-04 17:08:31 UTC (rev 19420)
@@ -27,7 +27,7 @@
private ActionSetFieldCol editingCol;
private SmallLabel bindingLabel = new SmallLabel();
- private SmallLabel fieldLabel = new SmallLabel();
+ private TextBox fieldLabel = getFieldLabel();
private GuidedDecisionTable dt;
private SuggestionCompletionEngine sce;
@@ -44,14 +44,8 @@
super.setModal(false);
setTitle("Column configuration (set a field on a fact)");
- final TextBox header = new TextBox();
- header.setText(col.header);
- header.addChangeListener(new ChangeListener() {
- public void onChange(Widget w) {
- editingCol.header = header.getText();
- } });
- addAttribute("Column header (description):", header);
+
HorizontalPanel pattern = new HorizontalPanel();
pattern.add(bindingLabel);
doBindingLabel();
@@ -88,6 +82,15 @@
vl.add(new InfoPopup("Value list", "Value lists are an optional comma separated list of values to show as a drop down."));
addAttribute("(optional) value list:", vl);
+ final TextBox header = new TextBox();
+ header.setText(col.header);
+ header.addChangeListener(new ChangeListener() {
+ public void onChange(Widget w) {
+ editingCol.header = header.getText();
+ } });
+ addAttribute("Column header (description):", header);
+
+
Button apply = new Button("Apply changes");
apply.addClickListener(new ClickListener() {
public void onClick(Widget w) {
@@ -111,6 +114,16 @@
}
+ private TextBox getFieldLabel() {
+ final TextBox box = new TextBox();
+ box.addChangeListener(new ChangeListener() {
+ public void onChange(Widget w) {
+ editingCol.factField = box.getText();
+ }
+ });
+ return box;
+ }
+
private void showFieldChange() {
final FormStylePopup pop = new FormStylePopup();
pop.setModal(false);
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/decisiontable/GuidedDTColumnConfig.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/decisiontable/GuidedDTColumnConfig.java 2008-04-04 14:38:23 UTC (rev 19419)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/decisiontable/GuidedDTColumnConfig.java 2008-04-04 17:08:31 UTC (rev 19420)
@@ -36,7 +36,7 @@
private SuggestionCompletionEngine sce;
private ConditionCol editingCol;
private SmallLabel patternLabel = new SmallLabel();
- private SmallLabel fieldLabel = new SmallLabel();
+ private TextBox fieldLabel = getFieldLabel();
private SmallLabel operatorLabel = new SmallLabel();
/**
@@ -59,13 +59,6 @@
setTitle("Condition column configuration");
- final TextBox header = new TextBox();
- header.setText(col.header);
- header.addChangeListener(new ChangeListener() {
- public void onChange(Widget w) {
- editingCol.header = header.getText();
- } });
- addAttribute("Column header (description):", header);
HorizontalPanel pattern = new HorizontalPanel();
@@ -159,6 +152,15 @@
vl.add(new InfoPopup("Value list", "Value lists are an optional comma separated list of values to show as a drop down."));
addAttribute("(optional) value list:", vl);
+ final TextBox header = new TextBox();
+ header.setText(col.header);
+ header.addChangeListener(new ChangeListener() {
+ public void onChange(Widget w) {
+ editingCol.header = header.getText();
+ } });
+ addAttribute("Column header (description):", header);
+
+
Button apply = new Button("Apply changes");
apply.addClickListener(new ClickListener() {
public void onClick(Widget w) {
@@ -186,6 +188,16 @@
}
+ private TextBox getFieldLabel() {
+ final TextBox box = new TextBox();
+ box.addChangeListener(new ChangeListener() {
+ public void onChange(Widget w) {
+ editingCol.factField = box.getText();
+ }
+ });
+ return box;
+ }
+
private void applyConsTypeChange(int newType) {
editingCol.constraintValueType = newType;
doFieldLabel();
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/decisiontable/GuidedDecisionTableWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/decisiontable/GuidedDecisionTableWidget.java 2008-04-04 14:38:23 UTC (rev 19419)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/decisiontable/GuidedDecisionTableWidget.java 2008-04-04 17:08:31 UTC (rev 19420)
@@ -83,6 +83,7 @@
private VerticalPanel actionsConfigWidget;
private Map colMap;
private SuggestionCompletionEngine sce;
+ private GroupingStore store;
public GuidedDecisionTableWidget(RuleAsset asset) {
@@ -123,7 +124,13 @@
actions.add(getActions());
config.add(actions);
+ FieldSet grouping = new FieldSet("(options)");
+ grouping.setCollapsible(true);
+ grouping.setCollapsed(true);
+ grouping.add(getGrouping());
+ config.add(grouping);
+
layout.add(config);
refreshGrid();
@@ -132,6 +139,55 @@
initWidget(layout);
}
+ private Widget getGrouping() {
+ final ListBox list = new ListBox();
+
+ list.addItem("Description", "desc");
+ for (Iterator iterator = dt.attributeCols.iterator(); iterator.hasNext();) {
+ AttributeCol c = (AttributeCol) iterator.next();
+ list.addItem(c.attr, c.attr);
+ if (c.attr.equals(dt.groupField)) {
+ list.setSelectedIndex(list.getItemCount() - 1);
+ }
+ }
+ for (Iterator iterator = dt.conditionCols.iterator(); iterator.hasNext();) {
+ ConditionCol c = (ConditionCol) iterator.next();
+ list.addItem(c.header, c.header);
+ if (c.header.equals(dt.groupField)) {
+ list.setSelectedIndex(list.getItemCount() - 1);
+ }
+ }
+ for (Iterator iterator = dt.actionCols.iterator(); iterator.hasNext();) {
+ ActionCol c = (ActionCol) iterator.next();
+ list.addItem(c.header, c.header);
+ if (c.header.equals(dt.groupField)) {
+ list.setSelectedIndex(list.getItemCount() - 1);
+ }
+ }
+
+ list.addItem("-- none --", "");
+ if (dt.groupField == null) {
+ list.setSelectedIndex(list.getItemCount() - 1);
+ }
+
+ HorizontalPanel h = new HorizontalPanel();
+ h.add(new SmallLabel("Group by column: "));
+ h.add(list);
+
+ Button ok = new Button("Apply");
+ ok.addClickListener(new ClickListener() {
+ public void onClick(Widget w) {
+ dt.groupField = list.getValue(list.getSelectedIndex());
+ scrapeData(-1);
+ refreshGrid();
+ }
+ });
+
+ h.add(ok);
+
+ return h;
+ }
+
private Widget getActions() {
actionsConfigWidget = new VerticalPanel();
refreshActionsWidget();
@@ -456,6 +512,10 @@
}
}
}
+// String groupF = store.getGroupField();
+// if (groupF == null || groupF.equals("")) {
+// dt.groupField = groupF;
+// }
}
/**
@@ -533,6 +593,9 @@
setDataIndex("desc");
setSortable(true);
setHeader("Description");
+ if (dt.descriptionWidth != -1) {
+ setWidth(dt.descriptionWidth);
+ }
}
};
colCount++;
@@ -623,11 +686,14 @@
ColumnModel cm = new ColumnModel(cols);
- final GroupingStore store = new GroupingStore();
+ store = new GroupingStore();
store.setReader(reader);
store.setDataProxy(proxy);
store.setSortInfo(new SortState("num", SortDir.ASC));
- store.setGroupField("desc");
+ if (this.dt.groupField != null) {
+ store.setGroupField(dt.groupField);
+ }
+
store.load();
@@ -640,6 +706,7 @@
gv.setForceFit(true);
gv.setGroupTextTpl("{text} ({[values.rs.length]} {[values.rs.length > 1 ? \"Items\" : \"Item\"]})");
+
grid.setView(gv);
@@ -648,6 +715,7 @@
grid.setHeight(500);
+
grid.addGridCellListener(new GridCellListenerAdapter() {
public void onCellDblClick(GridPanel grid, int rowIndex,
int colIndex, EventObject e) {
@@ -744,7 +812,7 @@
w.setPlain(true);
w.setBodyBorder(false);
w.setAutoDestroy(true);
- w.setTitle("Select value for " + dataIdx);
+ w.setTitle(dataIdx);
final ListBox drop = new ListBox();
for (int i = 0; i < vals.length; i++) {
String v = vals[i].trim();
@@ -802,7 +870,7 @@
w.setAutoDestroy(true);
w.setPlain(true);
w.setBodyBorder(false);
- w.setTitle("Set value for " + dta);
+ w.setTitle(dta);
final TextBox box = new TextBox();
box.setText(val);
box.addKeyboardListener(new KeyboardListenerAdapter() {
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/explorer/ExplorerLayoutManager.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/explorer/ExplorerLayoutManager.java 2008-04-04 14:38:23 UTC (rev 19419)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/explorer/ExplorerLayoutManager.java 2008-04-04 17:08:31 UTC (rev 19420)
@@ -102,6 +102,9 @@
westLayoutData.setMaxSize(350);
westLayoutData.setSplit(true);
+
+
+
//create the west panel and add it to the main panel applying the west region layout properties
Panel westPanel = new Panel();
westPanel.setId("side-nav");
@@ -113,8 +116,6 @@
westPanel.add(accordion);
mainPanel.add(westPanel, westLayoutData);
-
-
centerPanelWrappper.add(centertabbedPanel.getPanel());
mainPanel.add(centerPanelWrappper, centerLayoutData);
@@ -138,14 +139,15 @@
northPanel = new Panel();
DockPanel dock = new DockPanel();
dock.setVerticalAlignment(DockPanel.ALIGN_MIDDLE);
- dock.add(new HTML("<div class='headerBarBlue'><img src='images/hdrlogo_drools50px.gif' /></div>"),DockPanel.WEST);
+ dock.add(new HTML("<div class='header'><img src='header_logo.gif' /></div>"),DockPanel.WEST);
dock.add(uif, DockPanel.EAST);
- dock.setStyleName("headerBarblue");
+ dock.setStyleName("header");
dock.setWidth("100%");
+
northPanel.add(dock);
northPanel.setHeight(50);
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/explorer/ExplorerNodeConfig.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/explorer/ExplorerNodeConfig.java 2008-04-04 14:38:23 UTC (rev 19419)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/explorer/ExplorerNodeConfig.java 2008-04-04 17:08:31 UTC (rev 19420)
@@ -202,7 +202,7 @@
final TreeNode scenarios = new TreeNode();
scenarios.setText("Test Scenarios in packages:");
- scenarios.setIcon("images/scenario_conf.gif");
+ scenarios.setIcon("images/test_manager.gif");
final EditItemEvent edit = new EditItemEvent() {
public void open(String key) {centerPanel.openAsset(key);}
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/ConstraintValueEditor.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/ConstraintValueEditor.java 2008-04-04 14:38:23 UTC (rev 19419)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/ConstraintValueEditor.java 2008-04-04 17:08:31 UTC (rev 19420)
@@ -225,7 +225,7 @@
}
}
- if (currentValue != null && !selected) {
+ if (currentValue != null && !"".equals(currentValue) && !selected) {
//need to add this value
box.addItem( currentValue, currentValue );
box.setSelectedIndex( enumeratedValues.length );
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/FactPatternWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/FactPatternWidget.java 2008-04-04 14:38:23 UTC (rev 19419)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/FactPatternWidget.java 2008-04-04 17:08:31 UTC (rev 19420)
@@ -148,7 +148,7 @@
//HorizontalPanel ab = new HorizontalPanel();
//ab.setStyleName( "composite-fact-pattern" );
horiz.add( edit );
- horiz.add( new HTML("<i>" + desc + " </i>") );
+ horiz.add( new SmallLabel(desc) );
//horiz.add( ab );
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/qa/BulkRunResultWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/qa/BulkRunResultWidget.java 2008-04-04 14:38:23 UTC (rev 19419)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/qa/BulkRunResultWidget.java 2008-04-04 17:08:31 UTC (rev 19420)
@@ -167,7 +167,12 @@
Panel err = new SimplePanel();
PackageBuilderWidget.showBuilderErrors(errors, err, editEvent);
+ layout.startSection("Build errors - unable to run scenarios");
+
layout.addRow(err);
+
+
+ layout.endSection();
}
}
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 2008-04-04 14:38:23 UTC (rev 19419)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/qa/ScenarioWidget.java 2008-04-04 17:08:31 UTC (rev 19420)
@@ -222,34 +222,30 @@
final FormStylePopup pop = new FormStylePopup("images/rule_asset.gif", "New global");
final ListBox factTypes = new ListBox();
- for (int i = 0; i < sce.factTypes.length; i++) {
- factTypes.addItem(sce.factTypes[i]);
- }
- final TextBox factName = new TextBox();
- factName.setVisibleLength(5);
+ for (Iterator iterator = sce.globalTypes.keySet().iterator(); iterator
+ .hasNext();) {
+ String g = (String) iterator.next();
+ factTypes.addItem(g);
+ }
Button add = new Button("Add");
add.addClickListener(new ClickListener() {
public void onClick(Widget w) {
- String fn = ("" + factName.getText()).trim();
- if (fn.equals("")
- || factName.getText().indexOf(' ') > -1) {
- Window.alert("You must enter a valid name.");
- } else {
+ String fn = factTypes.getItemText(factTypes.getSelectedIndex());
if (scenario.isFactNameExisting(fn)) {
Window.alert("The name [" + fn + "] is already in use. Please choose another name.");
} else {
- scenario.globals.add(new FactData(factTypes.getItemText(factTypes.getSelectedIndex()), factName.getText(), new ArrayList(), false ));
+ FactData ng = new FactData((String) sce.globalTypes.get(fn), fn, new ArrayList(), false);
+ scenario.globals.add(ng);
renderEditor();
pop.hide();
}
- }
}
});
HorizontalPanel insertFact = new HorizontalPanel();
- insertFact.add(factTypes); insertFact.add(new SmallLabel("Fact name:")); insertFact.add(factName); insertFact.add(add);
- pop.addAttribute("New global:", insertFact);
+ insertFact.add(factTypes); insertFact.add(add);
+ pop.addAttribute("Global:", insertFact);
pop.show();
}
@@ -384,11 +380,37 @@
}
});
+
+
HorizontalPanel h = new HorizontalPanel();
h.add(facts);
h.add(ok);
pop.addAttribute("Fact value:", h);
+ //add in list box for anon facts
+ final ListBox factTypes = new ListBox();
+ for (int i = 0; i < sce.factTypes.length; i++) {
+ String ft = sce.factTypes[i];
+ factTypes.addItem(ft);
+ }
+
+ ok = new Button("Add");
+ ok.addClickListener(new ClickListener() {
+ public void onClick(Widget w) {
+ String t = factTypes.getItemText(factTypes.getSelectedIndex());
+ sc.insertAfter(ex, new VerifyFact(t, new ArrayList(), true));
+ renderEditor();
+ pop.hide();
+ }
+
+ });
+
+ h = new HorizontalPanel();
+ h.add(factTypes);
+ h.add(ok);
+ pop.addAttribute("Any fact that matches:", h);
+
+
pop.show();
}
});
@@ -586,6 +608,7 @@
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 );
@@ -953,8 +976,28 @@
if (showResults && ext.executionTimeResult != null
&& ext.numberOfRulesFired != null) {
HTML rep = new HTML("<i><small>" + ext.numberOfRulesFired.longValue() + " rules fired in " + ext.executionTimeResult.longValue() + "ms.</small></i>");
+
+
+ final HorizontalPanel h = new HorizontalPanel();
+ h.add(rep);
+ vert.add(h);
+
+ final Button show = new Button("Show rules fired");
+ show.addClickListener(new ClickListener() {
+ public void onClick(Widget w) {
+ ListBox rules = new ListBox(true);
+ for (int i = 0; i < ext.rulesFired.length; i++) {
+ rules.addItem(ext.rulesFired[i]);
+ }
+ h.add(new SmallLabel(" :Rules fired:"));
+ h.add(rules);
+ show.setVisible(false);
+ }
+ });
+ h.add(show);
+
+
vert.add(p);
- vert.add(rep);
initWidget(vert);
} else {
initWidget(p);
@@ -1023,8 +1066,13 @@
outer.setStyleName("modeller-fact-pattern-Widget");
this.sce = sce;
HorizontalPanel ab = new HorizontalPanel();
- type = (String) sc.getVariableTypes().get(vf.name);
- ab.add(new SmallLabel(type + " [" + vf.name + "] has values:"));
+ if (!vf.anonymous) {
+ type = (String) sc.getVariableTypes().get(vf.name);
+ ab.add(new SmallLabel(type + " [" + vf.name + "] has values:"));
+ } else {
+ type = vf.name;
+ ab.add(new SmallLabel("A fact of type [" + vf.name + "] has values:"));
+ }
this.showResults = showResults;
Image add = new ImageButton("images/add_field_to_fact.gif", "Add a field to this expectation.", new ClickListener() {
@@ -1193,6 +1241,7 @@
String s = b.getValue(b.getSelectedIndex());
if (s.equals("y") || s.equals("n")) {
num.setVisible(false);
+ v.expectedFire = (s.equals("y")) ? Boolean.TRUE : Boolean.FALSE;
v.expectedCount = null;
} else {
num.setVisible(true);
@@ -1202,6 +1251,8 @@
}
});
+ b.addItem("Choose...");
+
num.addChangeListener(new ChangeListener() {
public void onChange(Widget w) {
v.expectedCount = new Integer(num.getText());
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/DSLRuleEditor.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/DSLRuleEditor.java 2008-04-04 14:38:23 UTC (rev 19419)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/DSLRuleEditor.java 2008-04-04 17:08:31 UTC (rev 19420)
@@ -27,6 +27,8 @@
import com.google.gwt.user.client.ui.ChangeListener;
import com.google.gwt.user.client.ui.ClickListener;
import com.google.gwt.user.client.ui.FlexTable;
+import com.google.gwt.user.client.ui.HasHorizontalAlignment;
+import com.google.gwt.user.client.ui.HasVerticalAlignment;
import com.google.gwt.user.client.ui.Image;
import com.google.gwt.user.client.ui.KeyboardListenerAdapter;
import com.google.gwt.user.client.ui.TextArea;
@@ -53,9 +55,9 @@
this.data = cont;
text = new TextArea();
-// text.setWidth( "100%" );
+ text.setWidth( "100%" );
// text.setHeight( "100%" );
- text.setVisibleLines( 10 );
+ text.setVisibleLines( 16 );
text.setText( data.content );
text.setTitle( "Hint: press control+space for popup assistance, or use one of the icons to the right." );
@@ -123,9 +125,11 @@
layout.getCellFormatter().setWidth( 0,
0,
"95%" );
+ layout.getFlexCellFormatter().setAlignment(0, 0, HasHorizontalAlignment.ALIGN_LEFT, HasVerticalAlignment.ALIGN_TOP);
layout.getCellFormatter().setWidth( 0,
1,
"5%" );
+ layout.getFlexCellFormatter().setAlignment(0, 1, HasHorizontalAlignment.ALIGN_CENTER, HasVerticalAlignment.ALIGN_MIDDLE);
layout.setWidth( "100%" );
layout.setHeight( "100%" );
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/DefaultRuleContentWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/DefaultRuleContentWidget.java 2008-04-04 14:38:23 UTC (rev 19419)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/DefaultRuleContentWidget.java 2008-04-04 17:08:31 UTC (rev 19420)
@@ -46,9 +46,9 @@
text = new TextArea();
-// text.setWidth( "100%" );
+ text.setWidth( "100%" );
// text.setHeight( "100%" );
- text.setVisibleLines( 10 );
+ text.setVisibleLines( 16 );
text.setText( data.content );
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/RuleValidatorWrapper.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/RuleValidatorWrapper.java 2008-04-04 14:38:23 UTC (rev 19419)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/RuleValidatorWrapper.java 2008-04-04 17:08:31 UTC (rev 19420)
@@ -129,7 +129,7 @@
public static void showBuilderErrors(BuilderResult[] results) {
FormStylePopup pop = new FormStylePopup("images/package_builder.png", "Validation results");
if (results == null || results.length == 0) {
- pop.addRow( new HTML("<img src='images/tick_green.gif'/><i>Rule built successfully.</i>") );
+ pop.addRow( new HTML("<img src='images/tick_green.gif'/><i>Item validated.</i>") );
} else {
FlexTable errTable = new FlexTable();
errTable.setStyleName( "build-Results" );
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/RuleViewer.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/RuleViewer.java 2008-04-04 14:38:23 UTC (rev 19419)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/RuleViewer.java 2008-04-04 17:08:31 UTC (rev 19420)
@@ -280,6 +280,7 @@
hsp.remove(metaWidget);
doMetaWidget();
hsp.add(metaWidget);
+ hsp.setCellWidth(metaWidget, "25%");
LoadingPopup.close();
}
});
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/JBRMS.css
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/JBRMS.css 2008-04-04 14:38:23 UTC (rev 19419)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/JBRMS.css 2008-04-04 17:08:31 UTC (rev 19420)
@@ -9,16 +9,10 @@
code {
font-size:small;
}
-.headerBarGrey {
- height:70px;
- background:url(images/jbossrules_hdrbkg_grey.gif) repeat-x;
-}
-.headerBarBlue {
- height:50px;
- background:url(images/jbossrules_hdrbkg_blue.gif) repeat-x;
-}
+
+
.VerticalSplitPanel .vsplitter
{
background-color : #f3f2e7;
@@ -454,21 +448,12 @@
margin:0;
padding:0;
}
-#user_info {
- position:absolute;
- right:1em;
- top:0;
- color:#fff;
- font-size:.9em;
-}
-#user_info a {
- color:#fff;
-}
+
a,a:visited {
color:#00008B;
}
.gwt-CheckBox,.gwt-RadioButton,.gwt-Tree .gwt-TreeItem,.small-Text,.global-Font {
- font-size:smaller;
+ #font-size:smaller;
}
select:focus,input:focus,input:active,.constraint-value-Editor:focus,.constraint-value-Editor:active {
color:#000;
@@ -502,14 +487,7 @@
background:#aa9;
}
.rule-viewer-Documentation,.dsl-text-Editor,.default-text-Area {
- font-family:Arial,sans-serif;
-
border:1px solid #aa9;
- width:100%;
- -moz-border-radius:.7em;
- -webkit-border-radius:.7em;
- -khtml-border-radius:.7em;
- border-radius:.7em;
background:#FFFFF0;
}
.rule-ListEvenRow,.DatePicker .weekheader {
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/JBRMS.html
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/JBRMS.html 2008-04-04 14:38:23 UTC (rev 19419)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/JBRMS.html 2008-04-04 17:08:31 UTC (rev 19420)
@@ -37,6 +37,7 @@
</style>
<link rel="stylesheet" href="JBRMS.css">
+ <link rel="stylesheet" href="header.css">
</head>
<body>
<iframe id="__gwt_historyFrame" style="width:0;height:0;border:0"></iframe>
Copied: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/header.css (from rev 19386, labs/jbossrules/branches/mic_20080325/drools-jbrms/src/main/java/org/drools/brms/public/header.css)
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/header.css (rev 0)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/header.css 2008-04-04 17:08:31 UTC (rev 19420)
@@ -0,0 +1,16 @@
+.header {
+ height:50px;
+ background:url(images/jbossrules_hdrbkg_blue.gif) repeat-x;
+}
+
+.headerUserInfo {
+ position:absolute;
+ right:1em;
+ top:0;
+ color:#fff;
+ font-size:.9em;
+}
+
+.headerUserInfo a {
+ color:#fff;
+}
\ No newline at end of file
Copied: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/header_logo.gif (from rev 19386, labs/jbossrules/branches/mic_20080325/drools-jbrms/src/main/java/org/drools/brms/public/header_logo.gif)
===================================================================
(Binary files differ)
Deleted: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/welcome.html
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/welcome.html 2008-04-04 14:38:23 UTC (rev 19419)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/welcome.html 2008-04-04 17:08:31 UTC (rev 19420)
@@ -1,16 +0,0 @@
-<html>
- <head>
- <link rel='stylesheet' href='JBRMS.css'>
- </head>
- <body>
- <h3>
- <i>Welcome to JBoss Rules management system</i>
- </h3>
- <ul>
- <li><a href="http://www.jboss.com/products/rules" target="_blank">Product home page</a></li>
- <li><a href="http://labs.jboss.com/jbossrules" target="_blank">Community home page</a></li>
- <li><a href="http://wiki.jboss.org/wiki/Wiki.jsp?page=JBossRules" target="_blank">Wiki</a></li>
- <li><a href="http://jira.jboss.com/jira/browse/JBRULES" target="_blank">Bugs and feature requests</li>
- </ul>
- </body>
-</html>
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/ServiceImplementation.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/ServiceImplementation.java 2008-04-04 14:38:23 UTC (rev 19419)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/ServiceImplementation.java 2008-04-04 17:08:31 UTC (rev 19420)
@@ -32,6 +32,7 @@
import java.util.Iterator;
import java.util.List;
import java.util.Map;
+import java.util.Set;
import java.util.jar.JarEntry;
import java.util.jar.JarInputStream;
import java.util.regex.Matcher;
@@ -42,6 +43,7 @@
import org.apache.commons.io.IOUtils;
import org.apache.log4j.Logger;
+import org.drools.FactHandle;
import org.drools.RuleBase;
import org.drools.RuleBaseConfiguration;
import org.drools.RuleBaseFactory;
@@ -848,7 +850,7 @@
repository.loadCategory( categoryPath ).remove();
repository.save();
} catch (RulesRepositoryException e) {
- throw new SerializableException( e.getMessage() );
+ throw new DetailedSerializableException("Unable to remove category. It is probably still used (even by archived items).", e.getMessage());
}
}
@@ -1019,7 +1021,10 @@
try {
AssetItem item = repository.loadAssetByUUID( uuid );
item.archiveItem( value );
- item.checkin( "unarchived" );
+ PackageItem pkg = item.getPackage();
+ pkg.updateBinaryUpToDate(false);
+ this.ruleBaseCache.remove(pkg.getUUID());
+ item.checkin( "unarchived" );
} catch (RulesRepositoryException e) {
log.error( e );
@@ -1176,7 +1181,17 @@
RuleBase rb = ruleBaseCache.get(item.getUUID());
Package bin = rb.getPackages()[0];
- ClassTypeResolver res = new ClassTypeResolver(bin.getImports().keySet(), cl);
+
+ Set<String> imps = bin.getImports().keySet();
+ Set<String> allImps = new HashSet<String>(imps);
+ if (bin.getGlobals() != null) {
+ for (Iterator iterator = bin.getGlobals().keySet().iterator(); iterator.hasNext();) {
+ Class c = (Class) bin.getGlobals().get(iterator.next());
+ allImps.add(c.getName());
+ }
+ }
+
+ ClassTypeResolver res = new ClassTypeResolver(allImps, cl);
InternalWorkingMemory workingMemory = (InternalWorkingMemory) rb.newStatefulSession(false);
return runScenario(scenario, res, workingMemory);
}
@@ -1245,6 +1260,13 @@
RuleAsset asset = loadAsset((AssetItem) it.next());
Scenario sc = (Scenario) asset.content;
sc = runScenario(sc, res, workingMemory).scenario;
+
+ //clean out WM
+ Iterator<FactHandle> fhs = workingMemory.iterateFactHandles();
+ while(fhs.hasNext()) {
+ workingMemory.retract(fhs.next());
+ }
+
int[] totals = sc.countFailuresTotal();
resultSummaries.add(new ScenarioResultSummary(totals[0], totals[1], asset.metaData.name, asset.metaData.description, asset.uuid));
}
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/jboss/seam/remoting/gwt/GWTToSeamAdapter.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/jboss/seam/remoting/gwt/GWTToSeamAdapter.java 2008-04-04 14:38:23 UTC (rev 19419)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/jboss/seam/remoting/gwt/GWTToSeamAdapter.java 2008-04-04 17:08:31 UTC (rev 19420)
@@ -85,8 +85,11 @@
StringWriter sw = new StringWriter();
PrintWriter w = new PrintWriter(sw);
cause.printStackTrace( w );
- DetailedSerializableException det = new DetailedSerializableException("An error occurred executing the action.", sw.toString());
- throw new InvocationTargetException(det);
+ if (cause instanceof DetailedSerializableException) {
+ throw new InvocationTargetException(cause);
+ } else {
+ throw new InvocationTargetException(new DetailedSerializableException("An error occurred executing the action.", sw.toString()));
+ }
}
}
Modified: labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/ServiceImplementationTest.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/ServiceImplementationTest.java 2008-04-04 14:38:23 UTC (rev 19419)
+++ labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/ServiceImplementationTest.java 2008-04-04 17:08:31 UTC (rev 19420)
@@ -820,10 +820,13 @@
String[] children = impl.loadChildCategories("/");
impl.createCategory("/", "testRemoveCategory", "foo");
+
impl.removeCategory("testRemoveCategory");
String[] _children = impl.loadChildCategories("/");
assertEquals(children.length, _children.length);
+
+
}
public void testRemoveAsset() throws Exception {
@@ -1503,7 +1506,7 @@
RulesRepository repo = impl.repository;
PackageItem pkg = repo.createPackage("testScenarioRun", "");
- pkg.updateHeader("import org.drools.Person");
+ pkg.updateHeader("import org.drools.Person\n global org.drools.Cheese cheese\n");
AssetItem rule1 = pkg.addAsset("rule_1", "");
rule1.updateFormat(AssetFormats.DRL);
rule1
@@ -1529,6 +1532,12 @@
vf.fieldValues.add(new VerifyField("age", "42", "=="));
sc.fixtures.add(vf);
+ FactData cheese = new FactData();
+ cheese.name = "cheese";
+ cheese.type = "Cheese";
+ cheese.fieldData.add(new FieldData("price", "42"));
+ sc.globals.add(cheese);
+
ScenarioRunResult res = impl.runScenario(pkg.getName(), sc);
assertEquals(null, res.errors);
assertNotNull(res.scenario);
More information about the jboss-svn-commits
mailing list