[jboss-svn-commits] JBL Code SVN: r32036 - in labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client: packages and 1 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Mar 11 08:28:03 EST 2010


Author: eaa
Date: 2010-03-11 08:28:02 -0500 (Thu, 11 Mar 2010)
New Revision: 32036

Modified:
   labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/ActionCallMethodWidget.java
   labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/ActionInsertFactWidget.java
   labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/ActionRetractFactWidget.java
   labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/ActionSetFieldWidget.java
   labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/DSLSentenceWidget.java
   labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/FromAccumulateCompositeFactPatternWidget.java
   labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/FromCollectCompositeFactPatternWidget.java
   labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/FromCompositeFactPatternWidget.java
   labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/RuleModeller.java
   labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/packages/SuggestionCompletionCache.java
   labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/WorkingSetSelectorPopup.java
Log:
While editing a rule you can select the active WorkingSets.
RuleModeller doesn't keeps an instance of SCE anymore. Anytime it needs SCE, it goes to SCECache. This way we can apply WS filters in real-time.
Action and From Widgets doesn't keeps an instance of SCE anymore. They use RuleModeller to get an updated SCE from SCECache.

Modified: labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/ActionCallMethodWidget.java
===================================================================
--- labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/ActionCallMethodWidget.java	2010-03-11 13:04:58 UTC (rev 32035)
+++ labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/ActionCallMethodWidget.java	2010-03-11 13:28:02 UTC (rev 32036)
@@ -5,7 +5,6 @@
 
 import java.util.ArrayList;
 import java.util.List;
-import java.util.Map;
 
 import org.drools.guvnor.client.common.DirtyableComposite;
 import org.drools.guvnor.client.common.DirtyableFlexTable;
@@ -41,7 +40,6 @@
 public class ActionCallMethodWidget extends DirtyableComposite {
 
     final private ActionCallMethod           model;
-    final private SuggestionCompletionEngine completions;
     final private DirtyableFlexTable         layout;
     private boolean                          isBoundFact = false;
 
@@ -52,14 +50,14 @@
     private Constants                        constants   = GWT.create( Constants.class );
 
     public ActionCallMethodWidget(RuleModeller mod,
-                                  ActionCallMethod set,
-                                  SuggestionCompletionEngine com) {
+                                  ActionCallMethod set) {
         this.model = set;
-        this.completions = com;
         this.layout = new DirtyableFlexTable();
         this.modeller = mod;
 
         layout.setStyleName( "model-builderInner-Background" ); // NON-NLS
+
+        SuggestionCompletionEngine completions = modeller.getSuggestionCompletions();
         if ( completions.isGlobalVariable( set.variable ) ) {
 
             List<MethodInfo> infos = completions.getMethodInfosForGlobalVariable( set.variable );
@@ -165,6 +163,9 @@
     }
 
     protected void showAddFieldPopup(Widget w) {
+
+        final SuggestionCompletionEngine completions = modeller.getSuggestionCompletions();
+
         final FormStylePopup popup = new FormStylePopup( "images/newex_wiz.gif",
                                                          constants.ChooseAMethodToInvoke() ); // NON-NLS
         final ListBox box = new ListBox();
@@ -214,9 +215,11 @@
 
     private Widget valueEditor(final ActionFieldFunction val) {
 
+        SuggestionCompletionEngine completions = modeller.getSuggestionCompletions();
+
         String type = "";
-        if ( this.completions.isGlobalVariable( this.model.variable ) ) {
-            type = (String) this.completions.getGlobalVariable( this.model.variable );
+        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;
@@ -227,7 +230,7 @@
             }
         }
 
-        DropDownData enums = this.completions.getEnums( type,
+        DropDownData enums = completions.getEnums( type,
                                                         this.model.fieldValues,
                                                         val.field );
         return new MethodParameterValueEditor( val,
@@ -272,9 +275,11 @@
     }
 
     private Widget actionSelector(final ActionFieldFunction val) {
+        SuggestionCompletionEngine completions = modeller.getSuggestionCompletions();
+        
         final ListBox box = new ListBox();
         final String fieldType = val.type;
-        final String[] modifiers = this.completions.getModifiers( fieldType );
+        final String[] modifiers = completions.getModifiers( fieldType );
 
         if ( modifiers != null ) {
             for ( int i = 0; i < modifiers.length; i++ ) {

Modified: labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/ActionInsertFactWidget.java
===================================================================
--- labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/ActionInsertFactWidget.java	2010-03-11 13:04:58 UTC (rev 32035)
+++ labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/ActionInsertFactWidget.java	2010-03-11 13:28:02 UTC (rev 32036)
@@ -43,19 +43,19 @@
 
     private final DirtyableFlexTable layout;
     private final ActionInsertFact model;
-    private final SuggestionCompletionEngine completions;
     private final String[] fieldCompletions;
     private final RuleModeller modeller;
     private final String factType;
     private Constants constants = GWT.create(Constants.class);
 
-    public ActionInsertFactWidget(RuleModeller mod, ActionInsertFact set, SuggestionCompletionEngine com) {
+    public ActionInsertFactWidget(RuleModeller mod, ActionInsertFact set) {
         this.model = set;
-        this.completions = com;
         this.layout = new DirtyableFlexTable();
         this.modeller = mod;
         this.factType = set.factType;
-        this.fieldCompletions = this.completions.getFieldCompletions( FieldAccessorsAndMutators.MUTATOR,
+
+        SuggestionCompletionEngine completions = modeller.getSuggestionCompletions();
+        this.fieldCompletions = completions.getFieldCompletions( FieldAccessorsAndMutators.MUTATOR,
                                                                       set.factType );
 
         layout.setStyleName( "model-builderInner-Background" );  //NON-NLS
@@ -101,7 +101,8 @@
     }
 
     private Widget valueEditor(final ActionFieldValue val) {
-    	DropDownData enums = this.completions.getEnums(this.factType, this.model.fieldValues, val.field);
+        SuggestionCompletionEngine completions = modeller.getSuggestionCompletions();
+    	DropDownData enums = completions.getEnums(this.factType, this.model.fieldValues, val.field);
     	return new ActionValueEditor(val, enums,modeller,val.type);
     }
 
@@ -133,6 +134,7 @@
     }
 
     protected void showAddFieldPopup(Widget w) {
+        final SuggestionCompletionEngine completions = modeller.getSuggestionCompletions();
         final FormStylePopup popup = new FormStylePopup( "images/newex_wiz.gif",
                                                          constants.AddAField() );
         final ListBox box = new ListBox();

Modified: labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/ActionRetractFactWidget.java
===================================================================
--- labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/ActionRetractFactWidget.java	2010-03-11 13:04:58 UTC (rev 32035)
+++ labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/ActionRetractFactWidget.java	2010-03-11 13:28:02 UTC (rev 32036)
@@ -19,9 +19,7 @@
 
 import org.drools.guvnor.client.common.SmallLabel;
 import org.drools.guvnor.client.modeldriven.HumanReadable;
-import org.drools.guvnor.client.modeldriven.SuggestionCompletionEngine;
 import org.drools.guvnor.client.modeldriven.brl.ActionRetractFact;
-import org.drools.guvnor.client.modeldriven.brl.RuleModel;
 
 import com.google.gwt.user.client.ui.Composite;
 import com.google.gwt.user.client.ui.FlexTable;
@@ -36,14 +34,14 @@
     private FlexTable layout;
 
 
-    public ActionRetractFactWidget(SuggestionCompletionEngine com, ActionRetractFact model, RuleModel ruleModel) {
+    public ActionRetractFactWidget(RuleModeller modeller, ActionRetractFact model) {
         layout = new FlexTable();
 
         layout.setStyleName( "model-builderInner-Background" );
 
         layout.setWidget( 0, 0, new SmallLabel(HumanReadable.getActionDisplayName( "retract" ))  );
 
-        String desc = ruleModel.getBoundFact(model.variableName).factType + " [" + model.variableName + "]";
+        String desc = modeller.getModel().getBoundFact(model.variableName).factType + " [" + model.variableName + "]";
         layout.setWidget( 0, 1, new SmallLabel("<b>"  + desc  + "</b>") );
 
         initWidget( layout );

Modified: labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/ActionSetFieldWidget.java
===================================================================
--- labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/ActionSetFieldWidget.java	2010-03-11 13:04:58 UTC (rev 32035)
+++ labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/ActionSetFieldWidget.java	2010-03-11 13:28:02 UTC (rev 32036)
@@ -49,7 +49,6 @@
 public class ActionSetFieldWidget extends DirtyableComposite {
 
     final private ActionSetField model;
-    final private SuggestionCompletionEngine completions;
     final private DirtyableFlexTable layout;
     private boolean isBoundFact = false;
 
@@ -59,13 +58,15 @@
     private Constants constants = GWT.create(Constants.class);
 
 
-    public ActionSetFieldWidget(RuleModeller mod,  ActionSetField set, SuggestionCompletionEngine com) {
+    public ActionSetFieldWidget(RuleModeller mod,  ActionSetField set) {
         this.model = set;
-        this.completions = com;
         this.layout = new DirtyableFlexTable();
         this.modeller = mod;
 
         layout.setStyleName( "model-builderInner-Background" );
+
+        SuggestionCompletionEngine completions = modeller.getSuggestionCompletions();
+
         if (completions.isGlobalVariable( set.variable )) {
             this.fieldCompletions = completions.getFieldCompletionsForGlobalVariable( set.variable );
             this.variableClass = (String) completions.getGlobalVariable( set.variable );
@@ -174,6 +175,7 @@
 
 
     protected void showAddFieldPopup(Widget w) {
+        final SuggestionCompletionEngine completions = modeller.getSuggestionCompletions();
         final FormStylePopup popup = new FormStylePopup("images/newex_wiz.gif", constants.AddAField());
 
         final ListBox box = new ListBox();
@@ -204,10 +206,10 @@
 
 
     private Widget valueEditor(final ActionFieldValue val) {
-
+        SuggestionCompletionEngine completions = modeller.getSuggestionCompletions();
     	String type = "";
-    	if (this.completions.isGlobalVariable(this.model.variable)) {
-    		type = (String) this.completions.getGlobalVariable(this.model.variable);
+    	if (completions.isGlobalVariable(this.model.variable)) {
+    		type = (String) completions.getGlobalVariable(this.model.variable);
     	} else {
     		type = this.modeller.getModel().getBoundFact(this.model.variable).factType;
     		/*
@@ -218,7 +220,7 @@
     		}
     	}
 
-    	DropDownData enums = this.completions.getEnums(type, this.model.fieldValues, val.field);
+    	DropDownData enums = completions.getEnums(type, this.model.fieldValues, val.field);
     	return new ActionValueEditor(val, enums,modeller,val.type);
     }
 

Modified: labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/DSLSentenceWidget.java
===================================================================
--- labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/DSLSentenceWidget.java	2010-03-11 13:04:58 UTC (rev 32035)
+++ labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/DSLSentenceWidget.java	2010-03-11 13:28:02 UTC (rev 32036)
@@ -53,15 +53,14 @@
     private static final String        BOOLEAN_TAG = "BOOLEAN";
     private final List                 widgets;
     private final DSLSentence          sentence;
-    private SuggestionCompletionEngine completions;
     private final VerticalPanel        layout;
     private HorizontalPanel            currentRow;
+    private RuleModeller               modeller;
 
-    public DSLSentenceWidget(DSLSentence sentence,
-                             SuggestionCompletionEngine completions) {
+    public DSLSentenceWidget(RuleModeller modeller, DSLSentence sentence) {
         widgets = new ArrayList();
+        this.modeller = modeller;
         this.sentence = sentence;
-        this.completions = completions;
         this.layout = new VerticalPanel();
         this.currentRow = new HorizontalPanel();
         this.layout.add( currentRow );
@@ -336,7 +335,7 @@
     }
 
     class DSLDropDown extends DirtyableComposite {
-
+        final SuggestionCompletionEngine completions = modeller.getSuggestionCompletions();
         ListBox        resultWidget = null;
         // Format for the dropdown def is <varName>:<type>:<Fact.field>
         private String varName      = "";

Modified: labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/FromAccumulateCompositeFactPatternWidget.java
===================================================================
--- labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/FromAccumulateCompositeFactPatternWidget.java	2010-03-11 13:04:58 UTC (rev 32035)
+++ labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/FromAccumulateCompositeFactPatternWidget.java	2010-03-11 13:28:02 UTC (rev 32036)
@@ -14,6 +14,7 @@
 import org.drools.guvnor.client.common.DirtyableFlexTable;
 import org.drools.guvnor.client.common.FormStylePopup;
 import org.drools.guvnor.client.modeldriven.HumanReadable;
+import org.drools.guvnor.client.modeldriven.SuggestionCompletionEngine;
 import org.drools.guvnor.client.modeldriven.brl.FactPattern;
 import org.drools.guvnor.client.modeldriven.brl.FromAccumulateCompositeFactPattern;
 import org.drools.guvnor.client.modeldriven.brl.FromCollectCompositeFactPattern;
@@ -216,6 +217,7 @@
     @Override
     protected void showFactTypeSelector(final Widget w) {
         final ListBox box = new ListBox();
+        SuggestionCompletionEngine completions = modeller.getSuggestionCompletions();
         String[] facts = completions.getFactTypes();
 
         box.addItem(constants.Choose());
@@ -247,6 +249,7 @@
      */
     protected void showSourcePatternSelector(final Widget w) {
         final ListBox box = new ListBox();
+        SuggestionCompletionEngine completions = modeller.getSuggestionCompletions();
         String[] facts = completions.getFactTypes();
 
         box.addItem(constants.Choose());

Modified: labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/FromCollectCompositeFactPatternWidget.java
===================================================================
--- labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/FromCollectCompositeFactPatternWidget.java	2010-03-11 13:04:58 UTC (rev 32035)
+++ labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/FromCollectCompositeFactPatternWidget.java	2010-03-11 13:28:02 UTC (rev 32036)
@@ -11,6 +11,7 @@
 import org.drools.guvnor.client.common.DirtyableFlexTable;
 import org.drools.guvnor.client.common.FormStylePopup;
 import org.drools.guvnor.client.modeldriven.HumanReadable;
+import org.drools.guvnor.client.modeldriven.SuggestionCompletionEngine;
 import org.drools.guvnor.client.modeldriven.brl.FactPattern;
 import org.drools.guvnor.client.modeldriven.brl.FromAccumulateCompositeFactPattern;
 import org.drools.guvnor.client.modeldriven.brl.FromCollectCompositeFactPattern;
@@ -135,6 +136,7 @@
      */
     protected void showRightPatternSelector(final Widget w) {
         final ListBox box = new ListBox();
+        SuggestionCompletionEngine completions = modeller.getSuggestionCompletions();
         String[] facts = completions.getFactTypes();
 
         box.addItem(constants.Choose());

Modified: labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/FromCompositeFactPatternWidget.java
===================================================================
--- labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/FromCompositeFactPatternWidget.java	2010-03-11 13:04:58 UTC (rev 32035)
+++ labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/FromCompositeFactPatternWidget.java	2010-03-11 13:28:02 UTC (rev 32036)
@@ -26,7 +26,6 @@
  */
 public class FromCompositeFactPatternWidget extends DirtyableComposite {
 
-    protected final SuggestionCompletionEngine completions;
     protected FromCompositeFactPattern pattern;
     protected DirtyableFlexTable layout;
     protected RuleModeller modeller;
@@ -34,7 +33,6 @@
 
     public FromCompositeFactPatternWidget(RuleModeller modeller,
             FromCompositeFactPattern pattern) {
-        this.completions = modeller.getSuggestionCompletions();
         this.pattern = pattern;
         this.modeller = modeller;
 
@@ -106,6 +104,7 @@
      * Pops up the fact selector.
      */
     protected void showFactTypeSelector(final Widget w) {
+        SuggestionCompletionEngine completions = modeller.getSuggestionCompletions();
         final ListBox box = new ListBox();
         String[] facts = completions.getFactTypes();
 

Modified: labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/RuleModeller.java
===================================================================
--- labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/RuleModeller.java	2010-03-11 13:04:58 UTC (rev 32035)
+++ labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/RuleModeller.java	2010-03-11 13:28:02 UTC (rev 32036)
@@ -44,11 +44,11 @@
 public class RuleModeller extends DirtyableComposite {
 
     private DirtyableFlexTable layout;
-    private SuggestionCompletionEngine completions;
     private RuleModel model;
     private Constants constants = ((Constants) GWT.create(Constants.class));
     private boolean showingOptions = false;
     private int currentLayoutRow = 0;
+    private String packageName;
 
     public RuleModeller(RuleAsset asset, RuleViewer viewer) {
         this(asset);
@@ -56,9 +56,8 @@
 
     public RuleModeller(RuleAsset asset) {
         this.model = (RuleModel) asset.content;
+        this.packageName = asset.metaData.packageName;
 
-        this.completions = SuggestionCompletionCache.getInstance().getEngineFromCache(asset.metaData.packageName);
-
         layout = new DirtyableFlexTable();
 
         initWidget();
@@ -298,15 +297,15 @@
 
             Widget w = null;
             if (action instanceof ActionCallMethod) {
-                w = new ActionCallMethodWidget(this, (ActionCallMethod) action, completions);
+                w = new ActionCallMethodWidget(this, (ActionCallMethod) action);
             } else if (action instanceof ActionSetField) {
-                w = new ActionSetFieldWidget(this, (ActionSetField) action, completions);
+                w = new ActionSetFieldWidget(this, (ActionSetField) action);
             } else if (action instanceof ActionInsertFact) {
-                w = new ActionInsertFactWidget(this, (ActionInsertFact) action, completions);
+                w = new ActionInsertFactWidget(this, (ActionInsertFact) action);
             } else if (action instanceof ActionRetractFact) {
-                w = new ActionRetractFactWidget(this.completions, (ActionRetractFact) action, this.getModel());
+                w = new ActionRetractFactWidget(this, (ActionRetractFact) action);
             } else if (action instanceof DSLSentence) {
-                w = new DSLSentenceWidget((DSLSentence) action, this.completions);
+                w = new DSLSentenceWidget(this,(DSLSentence) action);
                 w.setStyleName("model-builderInner-Background"); //NON-NLS
             } else if (action instanceof FreeFormLine) {
                 final TextBox tb = new TextBox();
@@ -432,6 +431,7 @@
         //
         // The list of DSL sentences
         //
+        SuggestionCompletionEngine completions = SuggestionCompletionCache.getInstance().getEngineFromCache(packageName);
         if (completions.getDSLConditions().length > 0) {
             for (int i = 0; i < completions.getDSLConditions().length; i++) {
                 final DSLSentence sen = completions.getDSLConditions()[i];
@@ -624,9 +624,10 @@
         //
         // First load up the stuff to do with bound variables or globals
         //
+        SuggestionCompletionEngine completions = SuggestionCompletionCache.getInstance().getEngineFromCache(packageName);
         List<String> vars = model.getBoundFacts();
         List<String> vars2 = model.getRhsBoundFacts();
-        String[] globals = this.completions.getGlobalVariables();
+        String[] globals = completions.getGlobalVariables();
 
 
         //
@@ -931,7 +932,7 @@
             } else if (pattern instanceof FromCompositeFactPattern) {
                 w = new FromCompositeFactPatternWidget(this, (FromCompositeFactPattern) pattern);
             } else if (pattern instanceof DSLSentence) {
-                w = new DSLSentenceWidget((DSLSentence) pattern, completions);
+                w = new DSLSentenceWidget(this,(DSLSentence) pattern);
             } else if (pattern instanceof FreeFormLine) {
                 final FreeFormLine ffl = (FreeFormLine) pattern;
                 final TextBox tb = new TextBox();
@@ -1095,7 +1096,7 @@
      * either by the rule, or as a global.
      */
     public boolean isVariableNameUsed(String name) {
-
+        SuggestionCompletionEngine completions = SuggestionCompletionCache.getInstance().getEngineFromCache(packageName);
         return model.isVariableNameUsed(name) || completions.isGlobalVariable(name);
     }
 
@@ -1104,6 +1105,6 @@
     }
 
     public SuggestionCompletionEngine getSuggestionCompletions() {
-        return this.completions;
+        return SuggestionCompletionCache.getInstance().getEngineFromCache(packageName);
     }
 }

Modified: labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/packages/SuggestionCompletionCache.java
===================================================================
--- labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/packages/SuggestionCompletionCache.java	2010-03-11 13:04:58 UTC (rev 32035)
+++ labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/packages/SuggestionCompletionCache.java	2010-03-11 13:28:02 UTC (rev 32036)
@@ -94,7 +94,7 @@
         LoadingPopup.showMessage(Format.format(constants.InitialisingInfoFor0PleaseWait(), packageName));
 
         RepositoryServiceFactory.getService().loadSuggestionCompletionEngine( packageName, new GenericCallback<SuggestionCompletionEngine>() {
-            public void onSuccess(SuggestionCompletionEngine engine) {                
+            public void onSuccess(SuggestionCompletionEngine engine) {
                 cache.put( packageName, engine );
                 command.execute();
             }
@@ -107,7 +107,6 @@
         });
     }
 
-
     /**
      * Removed the package from the cache, causing it to be loaded the next time.
      */
@@ -119,4 +118,19 @@
             done.execute();
         }
     }
+
+    /**
+     * Reloads a package and then applies the given filter.
+     * @param packageName the package name.
+     * @param filter the filter.
+     * @param done the command to be executed after the filter is applied.
+     */
+    public void applyFactFilter(final String packageName,final FactTypeFilter filter, final Command done){
+        this.refreshPackage(packageName, new Command() {
+            public void execute() {
+                getEngineFromCache(packageName).filterFactTypes(filter);
+                done.execute();
+            }
+        });
+    }
 }
\ No newline at end of file

Modified: labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/WorkingSetSelectorPopup.java
===================================================================
--- labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/WorkingSetSelectorPopup.java	2010-03-11 13:04:58 UTC (rev 32035)
+++ labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/WorkingSetSelectorPopup.java	2010-03-11 13:28:02 UTC (rev 32036)
@@ -25,8 +25,14 @@
 import com.google.gwt.user.client.ui.ClickListener;
 import com.gwtext.client.widgets.tree.TreeNode;
 import com.gwtext.client.widgets.tree.TreePanel;
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
 import org.drools.guvnor.client.common.GenericCallback;
-import org.drools.guvnor.client.common.RulePackageSelector;
+import org.drools.guvnor.client.common.LoadingPopup;
+import org.drools.guvnor.client.modeldriven.FactTypeFilter;
+import org.drools.guvnor.client.packages.SuggestionCompletionCache;
 import org.drools.guvnor.client.rpc.PackageConfigData;
 import org.drools.guvnor.client.rpc.RepositoryServiceFactory;
 import org.drools.guvnor.client.rpc.RuleAsset;
@@ -34,15 +40,15 @@
 
 public class WorkingSetSelectorPopup {
 
-    private RuleAsset asset;
+    private final RuleAsset asset;
     private TreePanel treePanel;
     private Button save;
     private FormStylePopup pop;
     private Constants constants = ((Constants) GWT.create(Constants.class));
 
-    public WorkingSetSelectorPopup(RuleAsset asset) {
+    public WorkingSetSelectorPopup(RuleAsset a) {
 
-        this.asset = asset;
+        this.asset = a;
 
         pop = new FormStylePopup();
         pop.setTitle(constants.SelectWorkingSets());
@@ -63,6 +69,7 @@
 
                 for (WorkingSetConfigData ws : data) {
                     TreeNode node = new TreeNode(ws.name);
+                    node.setAttribute("workingSet", ws);
                     node.setChecked(false);
                     if (ws.workingSets != null && ws.workingSets.length > 0) {
                         this.createTreeNodes(node, ws.workingSets);
@@ -76,7 +83,54 @@
         save.addClickListener(new ClickListener() {
 
             public void onClick(Widget widget) {
-                
+                TreeNode[] checked = treePanel.getChecked();
+
+                List<WorkingSetConfigData> data = new ArrayList<WorkingSetConfigData>(checked.length);
+                for (int i = 0; i < checked.length; i++) {
+                    TreeNode treeNode = checked[i];
+                    data.add((WorkingSetConfigData) treeNode.getAttributeAsObject("workingSet"));
+                }
+
+                ///TODO: move this code to a class
+
+                //if there are no WS checked, remove any SCE filter.
+                if (data.isEmpty()){
+                    SuggestionCompletionCache.getInstance().refreshPackage(asset.metaData.packageName, new Command() {
+                        public void execute() {
+                            LoadingPopup.close();
+                            pop.hide();
+                        }
+                    });
+                    return;
+                }
+
+                final Set<String> validFacts = new HashSet<String>();
+                for (WorkingSetConfigData d : data) {
+                    for (int i = 0; i < d.validFacts.length; i++) {
+                        String validFact = d.validFacts[i];
+                        validFacts.add(validFact);
+                    }
+                }
+
+
+                FactTypeFilter filter = new FactTypeFilter() {
+
+                    public boolean filter(String originalFact) {
+                        return !validFacts.contains(originalFact);
+                    }
+                };
+
+                Command done = new Command() {
+
+                    public void execute() {
+                        LoadingPopup.close();
+                        pop.hide();
+                    }
+                };
+
+                SuggestionCompletionCache.getInstance().applyFactFilter(asset.metaData.packageName,filter,done);
+
+
             }
         });
         pop.addRow(treePanel);
@@ -108,5 +162,6 @@
     public void show() {
         treePanel.expandAll();
         pop.show();
+
     }
 }



More information about the jboss-svn-commits mailing list