[jboss-svn-commits] JBL Code SVN: r32412 - in labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor: client/rpc and 2 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Mon Apr 5 10:23:52 EDT 2010


Author: eaa
Date: 2010-04-05 10:23:51 -0400 (Mon, 05 Apr 2010)
New Revision: 32412

Modified:
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/ActionCallMethodWidget.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/ActionInsertFactWidget.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/ActionRetractFactWidget.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/ActionSetFieldWidget.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/CompositeFactPatternWidget.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/DSLSentenceWidget.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/ExpressionBuilder.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/FactPatternWidget.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/FreeFormLineWidget.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/FromAccumulateCompositeFactPatternWidget.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/FromCollectCompositeFactPatternWidget.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/FromCompositeFactPatternWidget.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/GlobalCollectionAddWidget.java
   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/RuleModellerWidget.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/AnalysisReportLine.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/RepositoryService.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/RepositoryServiceAsync.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/RepositoryServiceServlet.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/ServiceImplementation.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/util/VerifierReportCreator.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/util/VerifierRunner.java
Log:
RuleModellerWidget now has a reference to RuleModeller.
RuleModeller support marking warnings and errors in real time (it is commented)

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/ActionCallMethodWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/ActionCallMethodWidget.java	2010-04-05 14:21:17 UTC (rev 32411)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/ActionCallMethodWidget.java	2010-04-05 14:23:51 UTC (rev 32412)
@@ -6,7 +6,6 @@
 import java.util.ArrayList;
 import java.util.List;
 
-import org.drools.guvnor.client.common.DirtyableComposite;
 import org.drools.guvnor.client.common.DirtyableFlexTable;
 import org.drools.guvnor.client.common.FormStylePopup;
 import org.drools.guvnor.client.common.ImageButton;
@@ -45,7 +44,6 @@
 
     private String[]                         fieldCompletionTexts;
     private String[]                         fieldCompletionValues;
-    final private RuleModeller               modeller;
     private String                           variableClass;
     private Constants                        constants   = GWT.create( Constants.class );
 
@@ -58,13 +56,13 @@
 
     public ActionCallMethodWidget(RuleModeller mod,
                                   ActionCallMethod set, Boolean readOnly) {
+        super(mod);
         this.model = set;
         this.layout = new DirtyableFlexTable();
-        this.modeller = mod;
 
         layout.setStyleName( "model-builderInner-Background" ); // NON-NLS
 
-        SuggestionCompletionEngine completions = modeller.getSuggestionCompletions();
+        SuggestionCompletionEngine completions = this.getModeller().getSuggestionCompletions();
         if ( completions.isGlobalVariable( set.variable ) ) {
 
             List<MethodInfo> infos = completions.getMethodInfosForGlobalVariable( set.variable );
@@ -185,7 +183,7 @@
 
     protected void showAddFieldPopup(Widget w) {
 
-        final SuggestionCompletionEngine completions = modeller.getSuggestionCompletions();
+        final SuggestionCompletionEngine completions = this.getModeller().getSuggestionCompletions();
 
         final FormStylePopup popup = new FormStylePopup( "images/newex_wiz.gif",
                                                          constants.ChooseAMethodToInvoke() ); // NON-NLS
@@ -224,7 +222,7 @@
                     i++;
                 }
 
-                modeller.refreshWidget();
+                getModeller().refreshWidget();
                 popup.hide();
             }
         } );
@@ -236,17 +234,17 @@
 
     private Widget valueEditor(final ActionFieldFunction val) {
 
-        SuggestionCompletionEngine completions = modeller.getSuggestionCompletions();
+        SuggestionCompletionEngine completions = this.getModeller().getSuggestionCompletions();
 
         String type = "";
         if ( completions.isGlobalVariable( this.model.variable ) ) {
             type = (String) completions.getGlobalVariable( this.model.variable );
         } else {
-            if ( this.modeller.getModel().getBoundFact( this.model.variable ) != null ) {
-                type = this.modeller.getModel().getBoundFact( this.model.variable ).factType;
+            if ( this.getModeller().getModel().getBoundFact( this.model.variable ) != null ) {
+                type = this.getModeller().getModel().getBoundFact( this.model.variable ).factType;
             } else {
-                if ( this.modeller.getModel().getRhsBoundFact( this.model.variable ) != null ) {
-                    type = this.modeller.getModel().getRhsBoundFact( this.model.variable ).factType;
+                if ( this.getModeller().getModel().getRhsBoundFact( this.model.variable ) != null ) {
+                    type = this.getModeller().getModel().getRhsBoundFact( this.model.variable ).factType;
                 }
             }
         }
@@ -256,7 +254,7 @@
                                                         val.field );
         return new MethodParameterValueEditor( val,
                                                enums,
-                                               modeller,
+                                               this.getModeller(),
                                                val.type );
     }
 
@@ -296,7 +294,7 @@
     }
 
     private Widget actionSelector(final ActionFieldFunction val) {
-        SuggestionCompletionEngine completions = modeller.getSuggestionCompletions();
+        SuggestionCompletionEngine completions = this.getModeller().getSuggestionCompletions();
         
         final ListBox box = new ListBox();
         final String fieldType = val.type;

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/ActionInsertFactWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/ActionInsertFactWidget.java	2010-04-05 14:21:17 UTC (rev 32411)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/ActionInsertFactWidget.java	2010-04-05 14:23:51 UTC (rev 32412)
@@ -44,7 +44,6 @@
     private final DirtyableFlexTable layout;
     private final ActionInsertFact model;
     private final String[] fieldCompletions;
-    private final RuleModeller modeller;
     private final String factType;
     private Constants constants = GWT.create(Constants.class);
     private boolean readOnly;
@@ -54,12 +53,12 @@
     }
 
     public ActionInsertFactWidget(RuleModeller mod, ActionInsertFact set,Boolean readOnly) {
+        super(mod);
         this.model = set;
         this.layout = new DirtyableFlexTable();
-        this.modeller = mod;
         this.factType = set.factType;
 
-        SuggestionCompletionEngine completions = modeller.getSuggestionCompletions();
+        SuggestionCompletionEngine completions = this.getModeller().getSuggestionCompletions();
         this.fieldCompletions = completions.getFieldCompletions( FieldAccessorsAndMutators.MUTATOR,
                                                                       set.factType );
 
@@ -100,7 +99,7 @@
                 public void onClick(Widget w) {
                 	if (Window.confirm(constants.RemoveThisItem())) {
                             model.removeField( idx );
-                            modeller.refreshWidget();
+                            getModeller().refreshWidget();
                 	};
                 }
             });
@@ -116,9 +115,9 @@
     }
 
     private Widget valueEditor(final ActionFieldValue val) {
-        SuggestionCompletionEngine completions = modeller.getSuggestionCompletions();
+        SuggestionCompletionEngine completions = this.getModeller().getSuggestionCompletions();
     	DropDownData enums = completions.getEnums(this.factType, this.model.fieldValues, val.field);
-    	return new ActionValueEditor(val, enums,modeller,val.type,this.readOnly);
+    	return new ActionValueEditor(val, enums,this.getModeller(),val.type,this.readOnly);
     }
 
     private Widget fieldSelector(final ActionFieldValue val) {
@@ -149,7 +148,7 @@
     }
 
     protected void showAddFieldPopup(Widget w) {
-        final SuggestionCompletionEngine completions = modeller.getSuggestionCompletions();
+        final SuggestionCompletionEngine completions = this.getModeller().getSuggestionCompletions();
         final FormStylePopup popup = new FormStylePopup( "images/newex_wiz.gif",
                                                          constants.AddAField() );
         final ListBox box = new ListBox();
@@ -171,7 +170,7 @@
                 model.addFieldValue( new ActionFieldValue( fieldName,
                                                            "",
                                                            fieldType ) );
-                modeller.refreshWidget();
+                getModeller().refreshWidget();
                 popup.hide();
             }
         } );
@@ -191,13 +190,13 @@
         ok.addClickListener( new ClickListener() {
             public void onClick(Widget w) {
                 String var = varName.getText();
-                if ( modeller.isVariableNameUsed( var ) && ((model.getBoundName() != null && model.getBoundName().equals( var ) == false) || model.getBoundName() == null) ) {
+                if ( getModeller().isVariableNameUsed( var ) && ((model.getBoundName() != null && model.getBoundName().equals( var ) == false) || model.getBoundName() == null) ) {
                     Window.alert( Format.format( constants.TheVariableName0IsAlreadyTaken(),
                                                  var ) );
                     return;
                 }
                 model.setBoundName( var );
-                modeller.refreshWidget();
+                getModeller().refreshWidget();
                 popup.hide();
             }
         } );

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/ActionRetractFactWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/ActionRetractFactWidget.java	2010-04-05 14:21:17 UTC (rev 32411)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/ActionRetractFactWidget.java	2010-04-05 14:23:51 UTC (rev 32412)
@@ -21,7 +21,6 @@
 import org.drools.guvnor.client.modeldriven.HumanReadable;
 import org.drools.guvnor.client.modeldriven.brl.ActionRetractFact;
 
-import com.google.gwt.user.client.ui.HTML;
 import com.google.gwt.user.client.ui.HorizontalPanel;
 
 /**
@@ -39,7 +38,7 @@
     }
 
     public ActionRetractFactWidget(RuleModeller modeller, ActionRetractFact model, Boolean readOnly) {
-
+        super(modeller);
         layout = new HorizontalPanel();
         layout.setWidth("100%");
         layout.setStyleName( "model-builderInner-Background" );

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/ActionSetFieldWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/ActionSetFieldWidget.java	2010-04-05 14:21:17 UTC (rev 32411)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/ActionSetFieldWidget.java	2010-04-05 14:23:51 UTC (rev 32412)
@@ -49,7 +49,6 @@
     final private DirtyableFlexTable layout;
     private boolean isBoundFact = false;
     private String[] fieldCompletions;
-    final private RuleModeller modeller;
     private String variableClass;
     private Constants constants = GWT.create(Constants.class);
     private boolean readOnly;
@@ -59,13 +58,13 @@
     }
 
     public ActionSetFieldWidget(RuleModeller mod, ActionSetField set, Boolean readOnly) {
+        super(mod);
         this.model = set;
         this.layout = new DirtyableFlexTable();
-        this.modeller = mod;
 
         layout.setStyleName("model-builderInner-Background");
 
-        SuggestionCompletionEngine completions = modeller.getSuggestionCompletions();
+        SuggestionCompletionEngine completions = this.getModeller().getSuggestionCompletions();
 
         if (completions.isGlobalVariable(set.variable)) {
             this.fieldCompletions = completions.getFieldCompletionsForGlobalVariable(set.variable);
@@ -124,7 +123,7 @@
                 public void onClick(Widget w) {
                     if (Window.confirm(constants.RemoveThisItem())) {
                         model.removeField(idx);
-                        modeller.refreshWidget();
+                        getModeller().refreshWidget();
                     }
                 }
             });
@@ -181,16 +180,16 @@
 
 
 
-        FactPattern fp = this.modeller.getModel().getBoundFact(model.variable);
+        FactPattern fp = this.getModeller().getModel().getBoundFact(model.variable);
 
-        String descFact = (fp != null) ? this.modeller.getModel().getBoundFact(model.variable).factType + " <b>[" + model.variable + "]</b>" : model.variable;
+        String descFact = (fp != null) ? this.getModeller().getModel().getBoundFact(model.variable).factType + " <b>[" + model.variable + "]</b>" : model.variable;
 
         String sl = Format.format(constants.setterLabel(), new String[]{HumanReadable.getActionDisplayName(modifyType), descFact});
         return new ClickableLabel(sl, clk, !this.readOnly);//HumanReadable.getActionDisplayName(modifyType) + " value of <b>[" + model.variable + "]</b>", clk);
     }
 
     protected void showAddFieldPopup(Widget w) {
-        final SuggestionCompletionEngine completions = modeller.getSuggestionCompletions();
+        final SuggestionCompletionEngine completions = this.getModeller().getSuggestionCompletions();
         final FormStylePopup popup = new FormStylePopup("images/newex_wiz.gif", constants.AddAField());
 
         final ListBox box = new ListBox();
@@ -210,7 +209,7 @@
 
                 String fieldType = completions.getFieldType(variableClass, fieldName);
                 model.addFieldValue(new ActionFieldValue(fieldName, "", fieldType));
-                modeller.refreshWidget();
+                getModeller().refreshWidget();
                 popup.hide();
             }
         });
@@ -221,22 +220,22 @@
     }
 
     private Widget valueEditor(final ActionFieldValue val) {
-        SuggestionCompletionEngine completions = modeller.getSuggestionCompletions();
+        SuggestionCompletionEngine completions = this.getModeller().getSuggestionCompletions();
         String type = "";
         if (completions.isGlobalVariable(this.model.variable)) {
             type = (String) completions.getGlobalVariable(this.model.variable);
         } else {
-            type = this.modeller.getModel().getBoundFact(this.model.variable).factType;
+            type = this.getModeller().getModel().getBoundFact(this.model.variable).factType;
             /*
              * to take in account if the using a rhs bound variable
              */
             if (type == null) {
-                type = this.modeller.getModel().getRhsBoundFact(this.model.variable).factType;
+                type = this.getModeller().getModel().getRhsBoundFact(this.model.variable).factType;
             }
         }
 
         DropDownData enums = completions.getEnums(type, this.model.fieldValues, val.field);
-        return new ActionValueEditor(val, enums, modeller, val.type, this.readOnly);
+        return new ActionValueEditor(val, enums, this.getModeller(), val.type, this.readOnly);
     }
 
     private Widget fieldSelector(final ActionFieldValue val) {

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/CompositeFactPatternWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/CompositeFactPatternWidget.java	2010-04-05 14:21:17 UTC (rev 32411)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/CompositeFactPatternWidget.java	2010-04-05 14:23:51 UTC (rev 32412)
@@ -42,7 +42,6 @@
     protected final SuggestionCompletionEngine completions;
     protected CompositeFactPattern             pattern;
     protected DirtyableFlexTable                             layout;
-    protected RuleModeller                     modeller;
     protected Constants constants = ((Constants) GWT.create(Constants.class));
     protected boolean readOnly;
 
@@ -54,9 +53,9 @@
     public CompositeFactPatternWidget(RuleModeller modeller,
                                       CompositeFactPattern pattern,
                                       Boolean readOnly) {
+        super(modeller);
         this.completions = modeller.getSuggestionCompletions();
         this.pattern = pattern;
-        this.modeller = modeller;
 
         this.layout = new DirtyableFlexTable();
         this.layout.setStyleName( "model-builderInner-Background" );
@@ -98,7 +97,7 @@
             DirtyableVerticalPane vert = new DirtyableVerticalPane();
             FactPattern[] facts = pattern.patterns;
             for ( int i = 0; i < facts.length; i++ ) {
-                vert.add( new FactPatternWidget( modeller,
+                vert.add( new FactPatternWidget( this.getModeller(),
                                                  facts[i],
                                                  false,this.readOnly ) );
             }
@@ -145,7 +144,7 @@
         box.addChangeListener( new ChangeListener() {
             public void onChange(Widget w) {
                 pattern.addFactPattern( new FactPattern( box.getItemText( box.getSelectedIndex() ) ) );
-                modeller.refreshWidget();
+                getModeller().refreshWidget();
                 popup.hide();
             }
         } );

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/DSLSentenceWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/DSLSentenceWidget.java	2010-04-05 14:21:17 UTC (rev 32411)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/DSLSentenceWidget.java	2010-04-05 14:23:51 UTC (rev 32412)
@@ -55,7 +55,6 @@
     private final DSLSentence          sentence;
     private final VerticalPanel        layout;
     private HorizontalPanel            currentRow;
-    private RuleModeller               modeller;
     private boolean readOnly;
 
     public DSLSentenceWidget(RuleModeller modeller, DSLSentence sentence) {
@@ -63,8 +62,8 @@
     }
 
     public DSLSentenceWidget(RuleModeller modeller, DSLSentence sentence, Boolean readOnly) {
+        super (modeller);
         widgets = new ArrayList();
-        this.modeller = modeller;
         this.sentence = sentence;
 
         if (readOnly == null){
@@ -352,7 +351,7 @@
     }
 
     class DSLDropDown extends DirtyableComposite {
-        final SuggestionCompletionEngine completions = modeller.getSuggestionCompletions();
+        final SuggestionCompletionEngine completions = getModeller().getSuggestionCompletions();
         ListBox        resultWidget = null;
         // Format for the dropdown def is <varName>:<type>:<Fact.field>
         private String varName      = "";

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/ExpressionBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/ExpressionBuilder.java	2010-04-05 14:21:17 UTC (rev 32411)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/ExpressionBuilder.java	2010-04-05 14:23:51 UTC (rev 32412)
@@ -39,7 +39,6 @@
     private Constants constants = ((Constants) GWT.create(Constants.class));
     //private FlowPanel panel = new FlowPanel();
     private HorizontalPanel panel = new HorizontalPanel();
-    private RuleModeller modeller;
     private ExpressionFormLine expression;
     private boolean readOnly;
 
@@ -50,7 +49,7 @@
 
     public ExpressionBuilder(RuleModeller modeller,
             ExpressionFormLine expression, Boolean readOnly) {
-        super();
+        super(modeller);
 
         if (readOnly == null){
             this.readOnly = !modeller.getSuggestionCompletions().containsFactType(modeller.getSuggestionCompletions().getFactNameFromType(this.expression.getRootExpression().getClassType()));
@@ -59,7 +58,6 @@
         }
 
         this.expression = expression;
-        this.modeller = modeller;
         if (expression == null || expression.getText().length() == 0) {
             if (this.readOnly) {
                 panel.add(new SmallLabel("<b>-</b"));
@@ -319,11 +317,11 @@
     }
 
     private RuleModel getRuleModel() {
-        return modeller.getModel();
+        return this.getModeller().getModel();
     }
 
     private SuggestionCompletionEngine getCompletionEngine() {
-        return modeller.getSuggestionCompletions();
+        return this.getModeller().getSuggestionCompletions();
     }
 
     private String getCurrentClassType() {

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/FactPatternWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/FactPatternWidget.java	2010-04-05 14:21:17 UTC (rev 32411)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/FactPatternWidget.java	2010-04-05 14:23:51 UTC (rev 32412)
@@ -49,7 +49,6 @@
 
     private FactPattern pattern;
     private SuggestionCompletionEngine completions;
-    private RuleModeller modeller;
     private DirtyableFlexTable layout = new DirtyableFlexTable();
     private Connectives connectives;
     private PopupCreator popupCreator;
@@ -86,20 +85,20 @@
      */
     public FactPatternWidget(RuleModeller mod, IPattern p,
             String customLabel, boolean canBind, Boolean readOnly) {
+        super(mod);
         this.pattern = (FactPattern) p;
         this.completions = mod.getSuggestionCompletions();
-        this.modeller = mod;
         this.bindable = canBind;
 
         this.connectives = new Connectives();
         this.connectives.setCompletions(completions);
-        this.connectives.setModeller(modeller);
+        this.connectives.setModeller(mod);
         this.connectives.setPattern(pattern);
 
         this.popupCreator = new PopupCreator();
         this.popupCreator.setBindable(bindable);
         this.popupCreator.setCompletions(completions);
-        this.popupCreator.setModeller(modeller);
+        this.popupCreator.setModeller(mod);
         this.popupCreator.setPattern(pattern);
 
         this.customLabel = customLabel;
@@ -182,7 +181,7 @@
                 public void onClick(Widget w) {
                     if (Window.confirm(constants.RemoveThisItem())) {
                         pattern.removeConstraint(currentRow);
-                        modeller.refreshWidget();
+                        getModeller().refreshWidget();
                     }
                 }
             });
@@ -240,7 +239,7 @@
     private void renderFieldConstraint(final DirtyableFlexTable inner, int row, FieldConstraint constraint, boolean showBinding, int tabs) {
         //if nesting, or predicate, then it will need to span 5 cols.
         if (constraint instanceof SingleFieldConstraint) {
-            renderSingleFieldConstraint(modeller, inner, row, (SingleFieldConstraint) constraint, showBinding, tabs);
+            renderSingleFieldConstraint(this.getModeller(), inner, row, (SingleFieldConstraint) constraint, showBinding, tabs);
         } else if (constraint instanceof CompositeFieldConstraint) {
             inner.setWidget(row, 1, compositeFieldConstraintEditor((CompositeFieldConstraint) constraint));
             inner.getFlexCellFormatter().setColSpan(row, 1, 5);
@@ -289,7 +288,7 @@
                     public void onClick(Widget w) {
                         if (Window.confirm(constants.RemoveThisItemFromNestedConstraint())) {
                             constraint.removeConstraint(currentRow);
-                            modeller.refreshWidget();
+                            getModeller().refreshWidget();
                         }
                     }
                 });
@@ -365,7 +364,7 @@
 
                 public void onChange(Widget w) {
                     c.value = box.getText();
-                    modeller.makeDirty();
+                    getModeller().makeDirty();
                 }
             });
             box.setWidth("100%");
@@ -424,7 +423,7 @@
 
     private Widget valueEditor(final SingleFieldConstraint c, String factType) {
         //String type = this.modeller.getSuggestionCompletions().getFieldType( factType, c.fieldName );
-        return new ConstraintValueEditor(pattern, c.fieldName, c, this.modeller, c.fieldType,this.readOnly);
+        return new ConstraintValueEditor(pattern, c.fieldName, c, this.getModeller(), c.fieldType,this.readOnly);
     }
 
     private Widget operatorDropDown(final SingleFieldConstraint c) {
@@ -448,7 +447,7 @@
                     if (c.operator.equals("")) {
                         c.operator = null;
                     }
-                    modeller.makeDirty();
+                    getModeller().makeDirty();
                 }
             });
 

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/FreeFormLineWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/FreeFormLineWidget.java	2010-04-05 14:21:17 UTC (rev 32411)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/FreeFormLineWidget.java	2010-04-05 14:23:51 UTC (rev 32412)
@@ -15,7 +15,6 @@
  * limitations under the License.
  */
 
-
 import org.drools.guvnor.client.common.DirtyableFlexTable;
 import org.drools.guvnor.client.messages.Constants;
 
@@ -49,11 +48,12 @@
      */
     public FreeFormLineWidget(RuleModeller mod, FreeFormLine p,
             Boolean readOnly) {
+        super(mod);
         this.action = p;
 
-        if (readOnly == null){
+        if (readOnly == null) {
             this.readOnly = false;
-        }else{
+        } else {
             this.readOnly = readOnly;
         }
 
@@ -74,14 +74,23 @@
         tb.setText(this.action.text);
         tb.setTitle(constants.ThisIsADrlExpressionFreeForm());
 
-        if (!this.readOnly){
-        tb.addChangeListener(new ChangeListener() {
+        if (!this.readOnly) {
+            tb.addChangeListener(new ChangeListener() {
 
-            public void onChange(Widget arg0) {
-                action.text = tb.getText();
-            }
-        });
-        } else{
+                public void onChange(Widget arg0) {
+                    action.text = tb.getText();
+                }
+            });
+
+            tb.addFocusListener(new FocusListenerAdapter() {
+
+                @Override
+                public void onLostFocus(Widget sender) {
+                    getModeller().verifyRule();
+                }
+
+            });
+        } else {
             tb.setEnabled(false);
         }
         return tb;

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/FromAccumulateCompositeFactPatternWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/FromAccumulateCompositeFactPatternWidget.java	2010-04-05 14:21:17 UTC (rev 32411)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/FromAccumulateCompositeFactPatternWidget.java	2010-04-05 14:23:51 UTC (rev 32412)
@@ -76,13 +76,13 @@
 
             Widget patternWidget = null;
             if (rPattern instanceof FactPattern) {
-                patternWidget = new FactPatternWidget(modeller, rPattern, constants.All0with(), true,this.readOnly);
+                patternWidget = new FactPatternWidget(this.getModeller(), rPattern, constants.All0with(), true,this.readOnly);
             } else if (rPattern instanceof FromAccumulateCompositeFactPattern) {
-                patternWidget = new FromAccumulateCompositeFactPatternWidget(modeller, (FromAccumulateCompositeFactPattern) rPattern,this.readOnly);
+                patternWidget = new FromAccumulateCompositeFactPatternWidget(this.getModeller(), (FromAccumulateCompositeFactPattern) rPattern,this.readOnly);
             } else if (rPattern instanceof FromCollectCompositeFactPattern) {
-                patternWidget = new FromCollectCompositeFactPatternWidget(modeller, (FromCollectCompositeFactPattern) rPattern,this.readOnly);
+                patternWidget = new FromCollectCompositeFactPatternWidget(this.getModeller(), (FromCollectCompositeFactPattern) rPattern,this.readOnly);
             } else if (rPattern instanceof FromCompositeFactPattern) {
-                patternWidget = new FromCompositeFactPatternWidget(modeller, (FromCompositeFactPattern) rPattern,this.readOnly);
+                patternWidget = new FromCompositeFactPatternWidget(this.getModeller(), (FromCompositeFactPattern) rPattern,this.readOnly);
             } else {
                 throw new IllegalArgumentException("Unsuported pattern " + rPattern + " for right side of FROM ACCUMULATE");
             }
@@ -94,7 +94,7 @@
                 public void onClick(Widget sender) {
                     if (Window.confirm(constants.RemoveThisBlockOfData())) {
                         getFromAccumulatePattern().setSourcePattern(null);
-                        modeller.refreshWidget();
+                        getModeller().refreshWidget();
                     }
                 }
             }));
@@ -225,7 +225,7 @@
     @Override
     protected void showFactTypeSelector(final Widget w) {
         final ListBox box = new ListBox();
-        SuggestionCompletionEngine completions = modeller.getSuggestionCompletions();
+        SuggestionCompletionEngine completions = this.getModeller().getSuggestionCompletions();
         String[] facts = completions.getFactTypes();
 
         box.addItem(constants.Choose());
@@ -244,7 +244,7 @@
 
             public void onChange(Widget w) {
                 pattern.setFactPattern(new FactPattern(box.getItemText(box.getSelectedIndex())));
-                modeller.refreshWidget();
+                getModeller().refreshWidget();
                 popup.hide();
             }
         });
@@ -257,7 +257,7 @@
      */
     protected void showSourcePatternSelector(final Widget w) {
         final ListBox box = new ListBox();
-        SuggestionCompletionEngine completions = modeller.getSuggestionCompletions();
+        SuggestionCompletionEngine completions = this.getModeller().getSuggestionCompletions();
         String[] facts = completions.getFactTypes();
 
         box.addItem(constants.Choose());
@@ -275,7 +275,7 @@
 
             public void onChange(Widget w) {
                 getFromAccumulatePattern().setSourcePattern(new FactPattern(box.getItemText(box.getSelectedIndex())));
-                modeller.refreshWidget();
+                getModeller().refreshWidget();
                 popup.hide();
             }
         });
@@ -301,7 +301,7 @@
                     throw new IllegalArgumentException("Unknown sender: " + sender);
                 }
 
-                modeller.refreshWidget();
+                getModeller().refreshWidget();
                 popup.hide();
             }
         };

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/FromCollectCompositeFactPatternWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/FromCollectCompositeFactPatternWidget.java	2010-04-05 14:21:17 UTC (rev 32411)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/FromCollectCompositeFactPatternWidget.java	2010-04-05 14:23:51 UTC (rev 32412)
@@ -72,13 +72,13 @@
 
             Widget patternWidget = null;
             if (rPattern instanceof FactPattern) {
-                patternWidget = new FactPatternWidget(modeller, rPattern, constants.All0with(), true, this.readOnly);
+                patternWidget = new FactPatternWidget(this.getModeller(), rPattern, constants.All0with(), true, this.readOnly);
             } else if (rPattern instanceof FromAccumulateCompositeFactPattern) {
-                patternWidget = new FromAccumulateCompositeFactPatternWidget(modeller, (FromAccumulateCompositeFactPattern) rPattern,this.readOnly);
+                patternWidget = new FromAccumulateCompositeFactPatternWidget(this.getModeller(), (FromAccumulateCompositeFactPattern) rPattern,this.readOnly);
             } else if (rPattern instanceof FromCollectCompositeFactPattern) {
-                patternWidget = new FromCollectCompositeFactPatternWidget(modeller, (FromCollectCompositeFactPattern) rPattern,this.readOnly);
+                patternWidget = new FromCollectCompositeFactPatternWidget(this.getModeller(), (FromCollectCompositeFactPattern) rPattern,this.readOnly);
             } else if (rPattern instanceof FromCompositeFactPattern) {
-                patternWidget = new FromCompositeFactPatternWidget(modeller, (FromCompositeFactPattern) rPattern,this.readOnly);
+                patternWidget = new FromCompositeFactPatternWidget(this.getModeller(), (FromCompositeFactPattern) rPattern,this.readOnly);
             } else {
                 throw new IllegalArgumentException("Unsuported pattern " + rPattern + " for right side of FROM COLLECT");
             }
@@ -91,7 +91,7 @@
                 public void onClick(Widget sender) {
                     if (Window.confirm(constants.RemoveThisBlockOfData())) {
                         getFromCollectPattern().setRightPattern(null);
-                        modeller.refreshWidget();
+                        getModeller().refreshWidget();
                     }
                 }
             }));
@@ -125,7 +125,7 @@
 
             public void onChange(Widget w) {
                 pattern.setFactPattern(new FactPattern(box.getItemText(box.getSelectedIndex())));
-                modeller.refreshWidget();
+                getModeller().refreshWidget();
                 popup.hide();
             }
         });
@@ -141,7 +141,7 @@
      */
     protected void showRightPatternSelector(final Widget w) {
         final ListBox box = new ListBox();
-        SuggestionCompletionEngine completions = modeller.getSuggestionCompletions();
+        SuggestionCompletionEngine completions = this.getModeller().getSuggestionCompletions();
         String[] facts = completions.getFactTypes();
 
         box.addItem(constants.Choose());
@@ -159,7 +159,7 @@
 
             public void onChange(Widget w) {
                 getFromCollectPattern().setRightPattern(new FactPattern(box.getItemText(box.getSelectedIndex())));
-                modeller.refreshWidget();
+                getModeller().refreshWidget();
                 popup.hide();
             }
         });
@@ -183,7 +183,7 @@
                     throw new IllegalArgumentException("Unknown sender: " + sender);
                 }
 
-                modeller.refreshWidget();
+                getModeller().refreshWidget();
                 popup.hide();
             }
         };

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/FromCompositeFactPatternWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/FromCompositeFactPatternWidget.java	2010-04-05 14:21:17 UTC (rev 32411)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/FromCompositeFactPatternWidget.java	2010-04-05 14:23:51 UTC (rev 32412)
@@ -27,7 +27,6 @@
 
     protected FromCompositeFactPattern pattern;
     protected DirtyableFlexTable layout;
-    protected RuleModeller modeller;
     protected Constants constants = ((Constants) GWT.create(Constants.class));
     protected boolean readOnly;
 
@@ -38,8 +37,8 @@
 
     public FromCompositeFactPatternWidget(RuleModeller modeller,
             FromCompositeFactPattern pattern, Boolean readOnly) {
+        super(modeller);
         this.pattern = pattern;
-        this.modeller = modeller;
 
         //if readOnly is null, the readOnly attribute is calculated.
         if (readOnly == null) {
@@ -70,11 +69,11 @@
 
                 if (this.readOnly) {
                     //creates a new read-only FactPatternWidget
-                    FactPatternWidget factPatternWidget = new FactPatternWidget(modeller, fact, false, true);
+                    FactPatternWidget factPatternWidget = new FactPatternWidget(this.getModeller(), fact, false, true);
                     this.layout.setWidget(r,
                             0, factPatternWidget);
                 } else {
-                    FactPatternWidget factPatternWidget = new FactPatternWidget(modeller, fact, true);
+                    FactPatternWidget factPatternWidget = new FactPatternWidget(this.getModeller(), fact, true);
                     this.layout.setWidget(r,
                             0,
                             addRemoveButton(factPatternWidget, new ClickListener() {
@@ -82,7 +81,7 @@
                         public void onClick(Widget w) {
                             if (Window.confirm(constants.RemoveThisEntireConditionQ())) {
                                 pattern.setFactPattern(null);
-                                modeller.refreshWidget();
+                                getModeller().refreshWidget();
                             }
                         }
                     }));
@@ -118,7 +117,7 @@
 
 
         panel.setWidget(r, 0, new HTML(lbl));
-        panel.setWidget(r, 1, new ExpressionBuilder(modeller, this.pattern.getExpression(), this.readOnly));
+        panel.setWidget(r, 1, new ExpressionBuilder(this.getModeller(), this.pattern.getExpression(), this.readOnly));
 
 
         return panel;
@@ -128,7 +127,7 @@
      * Pops up the fact selector.
      */
     protected void showFactTypeSelector(final Widget w) {
-        SuggestionCompletionEngine completions = modeller.getSuggestionCompletions();
+        SuggestionCompletionEngine completions = this.getModeller().getSuggestionCompletions();
         final ListBox box = new ListBox();
         String[] facts = completions.getFactTypes();
 
@@ -148,7 +147,7 @@
 
             public void onChange(Widget w) {
                 pattern.setFactPattern(new FactPattern(box.getItemText(box.getSelectedIndex())));
-                modeller.refreshWidget();
+                getModeller().refreshWidget();
                 popup.hide();
             }
         });
@@ -180,7 +179,7 @@
 
     protected void calculateReadOnly() {
         if (this.pattern.factPattern != null) {
-            this.readOnly = !modeller.getSuggestionCompletions().containsFactType(this.pattern.factPattern.factType);
+            this.readOnly = !this.getModeller().getSuggestionCompletions().containsFactType(this.pattern.factPattern.factType);
         }
     }
 

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/GlobalCollectionAddWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/GlobalCollectionAddWidget.java	2010-04-05 14:21:17 UTC (rev 32411)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/GlobalCollectionAddWidget.java	2010-04-05 14:23:51 UTC (rev 32412)
@@ -49,6 +49,8 @@
     public GlobalCollectionAddWidget(RuleModeller modeller, ActionGlobalCollectionAdd action,
             Boolean readOnly) {
 
+        super(modeller);
+
         if (readOnly == null) {
             this.readOnly = !modeller.getSuggestionCompletions().containsFactType(modeller.getModel().getBoundFact(action.factName).factType);
         } else {

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	2010-04-05 14:21:17 UTC (rev 32411)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/RuleModeller.java	2010-04-05 14:23:51 UTC (rev 32412)
@@ -62,7 +62,7 @@
 import com.google.gwt.core.client.GWT;
 import com.google.gwt.user.client.Command;
 import com.google.gwt.user.client.Window;
-import com.google.gwt.user.client.rpc.SerializationException;
+import com.google.gwt.user.client.rpc.AsyncCallback;
 import com.google.gwt.user.client.ui.Button;
 import com.google.gwt.user.client.ui.ChangeListener;
 import com.google.gwt.user.client.ui.ClickListener;
@@ -80,6 +80,14 @@
 import com.google.gwt.user.client.ui.Widget;
 import com.gwtext.client.core.ExtElement;
 import com.gwtext.client.util.Format;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Set;
+import org.drools.guvnor.client.common.LoadingPopup;
+import org.drools.guvnor.client.packages.WorkingSetManager;
+import org.drools.guvnor.client.rpc.AnalysisReport;
+import org.drools.guvnor.client.rpc.AnalysisReportLine;
+import org.drools.guvnor.client.rpc.RepositoryServiceFactory;
 
 /**
  * This is the parent widget that contains the model based rule builder.
@@ -95,12 +103,14 @@
     private boolean showingOptions = false;
     private int currentLayoutRow = 0;
     private String packageName;
+    private RuleAsset asset;
     
     public RuleModeller(RuleAsset asset, RuleViewer viewer) {
         this(asset);
     }
 
     public RuleModeller(RuleAsset asset) {
+        this.asset = asset;
         this.model = (RuleModel) asset.content;
         this.packageName = asset.metaData.packageName;
 
@@ -989,7 +999,7 @@
             vert.add(spacerWidget());
 
 
-            layout.setHTML(currentLayoutRow, 0, "<div class='x-form-field'>" + (i + 1) + ".</div>");
+            layout.setWidget(currentLayoutRow, 0, this.wrapLineNumber(i+1, true));
             layout.getFlexCellFormatter().setHorizontalAlignment(currentLayoutRow, 0, HasHorizontalAlignment.ALIGN_CENTER);
             layout.getFlexCellFormatter().setVerticalAlignment(currentLayoutRow, 0, HasVerticalAlignment.ALIGN_MIDDLE);
 
@@ -1069,6 +1079,48 @@
         return horiz;
     }
 
+    private Widget wrapLineNumber(int number, boolean isLHSLine){
+        String id = "rhsLine";
+        if (isLHSLine){
+            id="lhsLine";
+        }
+        id+=number;
+
+        DirtyableHorizontalPane horiz = new DirtyableHorizontalPane();
+        horiz.add(new HTML("<div class='x-form-field' id='"+id+"'>" + number + ".</div>"));
+
+        return horiz;
+    }
+
+    private void addLineIcon(int row, String img, String title){
+        Widget widget = layout.getWidget(row, 0);
+        if (widget instanceof DirtyableHorizontalPane){
+            DirtyableHorizontalPane horiz = (DirtyableHorizontalPane)widget;
+            final Image icon = new ImageButton(img);
+            icon.setTitle(title);
+            horiz.add(icon);
+        }
+    }
+
+    private void clearLineIcons(int row){
+        if (layout.getCellCount(row)<=0){
+            return;
+        }
+        Widget widget = layout.getWidget(row, 0);
+        if (widget instanceof DirtyableHorizontalPane){
+            DirtyableHorizontalPane horiz = (DirtyableHorizontalPane)widget;
+            while (horiz.getWidgetCount() > 1){
+                horiz.remove(horiz.getWidgetCount()-1);
+            }
+        }
+    }
+
+    private void clearLinesIcons(){
+        for (int i = 0; i < layout.getRowCount(); i++) {
+            this.clearLineIcons(i);
+        }
+    }
+
     private void addActionsButtonsToLayout(String title, ClickListener addBelowListener, ClickListener moveDownListener, ClickListener moveUpListener) {
 
         DirtyableHorizontalPane hp = new DirtyableHorizontalPane();
@@ -1138,4 +1190,51 @@
     public SuggestionCompletionEngine getSuggestionCompletions() {
         return SuggestionCompletionCache.getInstance().getEngineFromCache(packageName);
     }
+
+
+    private List<AnalysisReportLine> errors;
+    private List<AnalysisReportLine> warnings;
+
+    private void showWarningsAndErrors(){
+        this.clearLinesIcons();
+        if (this.warnings != null){
+            for (AnalysisReportLine warning : this.warnings) {
+                if (warning.patternOrderNumber != null){
+                    this.addLineIcon(warning.patternOrderNumber+1, "images/warning.gif", warning.description);
+                }
+            }
+        }
+        if (this.errors != null){
+            for (AnalysisReportLine error : this.errors) {
+                if (error.patternOrderNumber != null){
+                    this.addLineIcon(error.patternOrderNumber+1, "images/error.gif", error.description);
+                }
+            }
+        }
+    }
+
+    public void verifyRule(){
+//        LoadingPopup.showMessage( constants.VerifyingItemPleaseWait() );
+//        Set<String> activeWorkingSets = WorkingSetManager.getInstance().getActiveAssetUUIDs(asset.metaData.packageName);
+//        RepositoryServiceFactory.getService().verifyAssetWithoutVerifiersRules( this.asset, activeWorkingSets,
+//                                                                new AsyncCallback<AnalysisReport>() {
+//
+//                                                               public void onSuccess(AnalysisReport report) {
+//                                                                   LoadingPopup.close();
+//                                                                   errors = new ArrayList<AnalysisReportLine>();
+//                                                                   warnings = new ArrayList<AnalysisReportLine>();
+//
+//                                                                   errors = Arrays.asList(report.errors);
+//                                                                   warnings = Arrays.asList(report.warnings);
+//
+//                                                                   showWarningsAndErrors();
+//                                                               }
+//
+//                                                               public void onFailure(Throwable arg0) {
+//                                                                   // TODO Auto-generated method stub
+//
+//                                                               }
+//                                                           }  );
+
+    }
 }

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/RuleModellerWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/RuleModellerWidget.java	2010-04-05 14:21:17 UTC (rev 32411)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/RuleModellerWidget.java	2010-04-05 14:23:51 UTC (rev 32412)
@@ -8,6 +8,12 @@
  */
 public abstract class RuleModellerWidget extends DirtyableComposite {
 
+    private RuleModeller modeller;
+
+    public RuleModellerWidget(RuleModeller modeller) {
+        this.modeller = modeller;
+    }
+
     /**
      * Dictates if the widget's state is RO or not. Sometimes RuleModeller will
      * force this state (i.e. when lockLHS() or lockRHS()), but some other times,
@@ -15,4 +21,8 @@
      * @return
      */
     public abstract boolean isReadOnly();
+
+    public RuleModeller getModeller() {
+        return modeller;
+    }
 }

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/AnalysisReportLine.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/AnalysisReportLine.java	2010-04-05 14:21:17 UTC (rev 32411)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/AnalysisReportLine.java	2010-04-05 14:23:51 UTC (rev 32412)
@@ -13,6 +13,7 @@
 
     public String              description;
     public String              reason;
+    public Integer                patternOrderNumber;
     public Cause[]             causes;
     public Map<String, String> impactedRules;
 

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/RepositoryService.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/RepositoryService.java	2010-04-05 14:21:17 UTC (rev 32411)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/RepositoryService.java	2010-04-05 14:23:51 UTC (rev 32412)
@@ -575,4 +575,6 @@
                                           String secondSnapshotName);
     
     public AnalysisReport verifyAsset(RuleAsset asset, Set<String> activeWorkingSets) throws SerializableException;
+
+    public AnalysisReport verifyAssetWithoutVerifiersRules(RuleAsset asset, Set<String> activeWorkingSets) throws SerializableException;
 }
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/RepositoryServiceAsync.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/RepositoryServiceAsync.java	2010-04-05 14:21:17 UTC (rev 32411)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/RepositoryServiceAsync.java	2010-04-05 14:23:51 UTC (rev 32412)
@@ -114,4 +114,5 @@
 	void unLockAsset(java.lang.String uuid, com.google.gwt.user.client.rpc.AsyncCallback<java.lang.Void> arg2);
 	void updateUserPermissions(java.lang.String userName, java.util.Map<java.lang.String, java.util.List<java.lang.String>> perms, com.google.gwt.user.client.rpc.AsyncCallback<java.lang.Void> arg3);
 	void verifyAsset(org.drools.guvnor.client.rpc.RuleAsset asset, java.util.Set<String> sactiveWorkingSets, com.google.gwt.user.client.rpc.AsyncCallback<org.drools.guvnor.client.rpc.AnalysisReport> arg2);
+	void verifyAssetWithoutVerifiersRules(org.drools.guvnor.client.rpc.RuleAsset asset, java.util.Set<String> sactiveWorkingSets, com.google.gwt.user.client.rpc.AsyncCallback<org.drools.guvnor.client.rpc.AnalysisReport> arg2);
 }
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/RepositoryServiceServlet.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/RepositoryServiceServlet.java	2010-04-05 14:21:17 UTC (rev 32411)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/RepositoryServiceServlet.java	2010-04-05 14:23:51 UTC (rev 32412)
@@ -347,6 +347,10 @@
         return getService().verifyAsset( asset, activeWorkingSets );
     }
 
+    public AnalysisReport verifyAssetWithoutVerifiersRules(RuleAsset asset, Set<String> activeWorkingSets) throws SerializableException{
+        return getService().verifyAssetWithoutVerifiersRules(asset, activeWorkingSets);
+    }
+
     
 
 

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/ServiceImplementation.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/ServiceImplementation.java	2010-04-05 14:21:17 UTC (rev 32411)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/ServiceImplementation.java	2010-04-05 14:23:51 UTC (rev 32412)
@@ -2830,6 +2830,16 @@
 	@WebRemote
 	@Restrict("#{identity.loggedIn}")
 	public AnalysisReport verifyAsset(RuleAsset asset, Set<String> activeWorkingSets) throws SerializableException {
+            return this.performAssetVerification(asset, true, activeWorkingSets);
+        }
+
+        @WebRemote
+	@Restrict("#{identity.loggedIn}")
+	public AnalysisReport verifyAssetWithoutVerifiersRules(RuleAsset asset, Set<String> activeWorkingSets) throws SerializableException {
+            return this.performAssetVerification(asset, false, activeWorkingSets);
+        }
+
+        private AnalysisReport performAssetVerification(RuleAsset asset, boolean useVerifierDefaultConfig, Set<String> activeWorkingSets) throws SerializableException{
 		if (Contexts.isSessionContextActive()) {
 			Identity.instance().checkPermission(new PackageNameType(asset.metaData.packageName),
 					RoleTypes.PACKAGE_DEVELOPER);
@@ -2839,8 +2849,10 @@
 				+ getDroolsHeader(repository.loadPackage(asset.metaData.packageName)) + "\n"
 				+ this.buildAssetSource(asset);
 
-        VerifierRunner runner = new VerifierRunner();
+                VerifierRunner runner = new VerifierRunner();
 
+                runner.setUseDefaultConfig(useVerifierDefaultConfig);
+
 		RuleAsset[] workingSets = loadRuleAssets(activeWorkingSets);
 		List<String> constraintRules = new LinkedList<String>();
 		if (workingSets != null) {

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/util/VerifierReportCreator.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/util/VerifierReportCreator.java	2010-04-05 14:21:17 UTC (rev 32411)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/util/VerifierReportCreator.java	2010-04-05 14:23:51 UTC (rev 32412)
@@ -14,6 +14,8 @@
 import org.drools.guvnor.client.rpc.Cause;
 import org.drools.verifier.components.Field;
 import org.drools.verifier.components.ObjectType;
+import org.drools.verifier.components.PatternComponent;
+import org.drools.verifier.components.Restriction;
 import org.drools.verifier.components.VerifierComponentType;
 import org.drools.verifier.components.VerifierRule;
 import org.drools.verifier.data.VerifierData;
@@ -90,6 +92,9 @@
             line.description = message.getMessage();
             if ( message.getFaulty() != null ) {
                 line.reason = message.getFaulty().toString();
+                if (message.getFaulty() instanceof PatternComponent){
+                    line.patternOrderNumber = ((PatternComponent)message.getFaulty()).getPatternOrderNumber();
+                }
             }
 
             line.impactedRules = message.getImpactedRules();

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/util/VerifierRunner.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/util/VerifierRunner.java	2010-04-05 14:21:17 UTC (rev 32411)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/util/VerifierRunner.java	2010-04-05 14:23:51 UTC (rev 32412)
@@ -17,6 +17,7 @@
 import org.drools.verifier.DefaultVerifierConfiguration;
 import org.drools.verifier.Verifier;
 import org.drools.verifier.VerifierConfiguration;
+import org.drools.verifier.VerifierConfigurationImpl;
 import org.drools.verifier.builder.VerifierBuilderFactory;
 import org.drools.verifier.data.VerifierReport;
 
@@ -24,6 +25,7 @@
 
     private Verifier    verifier;
     private PackageItem packageItem;
+    private boolean useDefaultConfig = true;
 
 	public AnalysisReport verify(String drl, String scope) {
 		return verify(drl, scope, null);
@@ -73,6 +75,12 @@
 
     private void initVerifier(String scope, Collection<String> additionalVerifierRules) {
         VerifierConfiguration conf = new DefaultVerifierConfiguration();
+        if(useDefaultConfig){
+            conf = new DefaultVerifierConfiguration();
+        }else{
+            conf = new VerifierConfigurationImpl();
+        }
+
         conf.getVerifyingScopes().clear();
         conf.getVerifyingScopes().add( scope );
         conf.setAcceptRulesWithoutVerifiyingScope( true );
@@ -125,4 +133,14 @@
         }
     }
 
+    public boolean isUseDefaultConfig() {
+        return useDefaultConfig;
+    }
+
+    public void setUseDefaultConfig(boolean useDefaultConfig) {
+        this.useDefaultConfig = useDefaultConfig;
+    }
+
+
+
 }



More information about the jboss-svn-commits mailing list