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

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Nov 5 14:00:15 EDT 2010


Author: eaa
Date: 2010-11-05 14:00:15 -0400 (Fri, 05 Nov 2010)
New Revision: 35885

Added:
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/RuleModellerConfiguration.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/standalone/
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/standalone/StandaloneGuidedEditorInvocationParameters.java
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/rpc/StandaloneGuidedEditorService.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/StandaloneGuidedEditorServiceAsync.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/GuidedEditorManager.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/StandaloneGuidedEditorServiceImplementation.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/guidededitor/BRLRuleAssetProvider.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/guidededitor/NewRuleAssetProvider.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/guidededitor/RuleAssetProvider.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/guidededitor/UUIDRuleAssetProvider.java
Log:
GUVNOR-681: Create a new top component to display and run the Guided Editor (RuleModeller) and all the things it needs in a "standalone" way
	- LHS, RHS and attributes visibility are no longer defined in the assets' metadata. A new class (RuleModellerConfiguration) was created for this purpose.
	- RuleAssetProvider, and its implementations, were refactored.
	- A new class (StandaloneGuidedEditorInvocationParameters) was created to pass invocations parameters from server to client side.

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-11-05 15:54:32 UTC (rev 35884)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/RuleModeller.java	2010-11-05 18:00:15 UTC (rev 35885)
@@ -96,21 +96,22 @@
     implements
     RuleModelEditor {
 
-    private DirtyableFlexTable       layout;
-    private RuleModel                model;
-    private Constants                constants               = ((Constants) GWT.create( Constants.class ));
-    private boolean                  showingOptions          = false;
-    private int                      currentLayoutRow        = 0;
-    private String                   packageName;
-    private RuleAsset                asset;
-    private ModellerWidgetFactory    widgetFactory;
+    private DirtyableFlexTable          layout;
+    private RuleModel                   model;
+    private Constants                   constants               = ((Constants) GWT.create( Constants.class ));
+    private RuleModellerConfiguration   configuration               = RuleModellerConfiguration.getInstance();
+    private boolean                     showingOptions          = false;
+    private int                         currentLayoutRow        = 0;
+    private String                      packageName;
+    private RuleAsset                   asset;
+    private ModellerWidgetFactory       widgetFactory;
 
-    private List<RuleModellerWidget> lhsWidgets              = new ArrayList<RuleModellerWidget>();
-    private List<RuleModellerWidget> rhsWidgets              = new ArrayList<RuleModellerWidget>();
+    private List<RuleModellerWidget>    lhsWidgets              = new ArrayList<RuleModellerWidget>();
+    private List<RuleModellerWidget>    rhsWidgets              = new ArrayList<RuleModellerWidget>();
 
-    private boolean                  hasModifiedWidgets;
+    private boolean                     hasModifiedWidgets;
 
-    private final Command            onWidgetModifiedCommand = new Command() {
+    private final Command               onWidgetModifiedCommand = new Command() {
 
                                                                  public void execute() {
                                                                      hasModifiedWidgets = true;
@@ -278,14 +279,7 @@
     }
 
     public boolean showRHS(){
-        for ( RuleMetadata at : this.model.metadataList ) {
-            if ( at.attributeName.equals( RuleMetadata.HIDE_RHS_IN_EDITOR ) ) {
-                if (at.value != null && Boolean.parseBoolean(at.value)){
-                    return false;
-                }
-            }
-        }
-        return true;
+        return !this.configuration.isHideRHS();
     }
     
     /** return true if we should not allow unfrozen editing of the RHS */
@@ -294,14 +288,7 @@
     }
     
     public boolean showLHS(){
-        for ( RuleMetadata at : this.model.metadataList ) {
-            if ( at.attributeName.equals( RuleMetadata.HIDE_LHS_IN_EDITOR ) ) {
-                if (at.value != null && Boolean.parseBoolean(at.value)){
-                    return false;
-                }
-            }
-        }
-        return true;
+        return !this.configuration.isHideLHS();
     }
 
     /** return true if we should not allow unfrozen editing of the LHS */
@@ -314,14 +301,7 @@
             return false;
         }
         
-        for ( RuleMetadata at : this.model.metadataList ) {
-            if ( at.attributeName.equals( RuleMetadata.HIDE_ATTRIBUTES_IN_EDITOR ) ) {
-                if (at.value != null && Boolean.parseBoolean(at.value)){
-                    return false;
-                }
-            }
-        }
-        return true;
+        return !this.configuration.isHideAttributes();
     }
 
     public void refreshWidget() {

Added: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/RuleModellerConfiguration.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/RuleModellerConfiguration.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/RuleModellerConfiguration.java	2010-11-05 18:00:15 UTC (rev 35885)
@@ -0,0 +1,65 @@
+/*
+ * Copyright 2005 JBoss Inc
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.drools.guvnor.client.modeldriven.ui;
+
+/**
+ * Configuration singleton class for RuleModeller. 
+ * @author esteban.aliverti
+ */
+public class RuleModellerConfiguration {
+    private static RuleModellerConfiguration INSTANCE;
+    
+    private RuleModellerConfiguration(){
+        
+    }
+    
+    private boolean hideLHS;
+    private boolean hideRHS;
+    private boolean hideAttributes;
+    
+    public synchronized static RuleModellerConfiguration getInstance(){
+        if (INSTANCE == null){
+            INSTANCE = new RuleModellerConfiguration();
+        }
+        return INSTANCE;
+    }
+
+    public boolean isHideAttributes() {
+        return hideAttributes;
+    }
+
+    public void setHideAttributes(boolean hideAttributes) {
+        this.hideAttributes = hideAttributes;
+    }
+
+    public boolean isHideLHS() {
+        return hideLHS;
+    }
+
+    public void setHideLHS(boolean hideLHS) {
+        this.hideLHS = hideLHS;
+    }
+
+    public boolean isHideRHS() {
+        return hideRHS;
+    }
+
+    public void setHideRHS(boolean hideRHS) {
+        this.hideRHS = hideRHS;
+    }
+    
+}

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/StandaloneGuidedEditorService.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/StandaloneGuidedEditorService.java	2010-11-05 15:54:32 UTC (rev 35884)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/StandaloneGuidedEditorService.java	2010-11-05 18:00:15 UTC (rev 35885)
@@ -20,6 +20,7 @@
 import com.google.gwt.user.client.rpc.RemoteService;
 import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;
 import com.google.gwt.user.client.rpc.SerializationException;
+import org.drools.guvnor.client.ruleeditor.standalone.StandaloneGuidedEditorInvocationParameters;
 
 /**
  * 
@@ -32,8 +33,7 @@
     RemoteService {
 
     
-     RuleAsset[] loadRuleAssetsFromSession() throws DetailedSerializationException;
-     
+     StandaloneGuidedEditorInvocationParameters getInvocationParameters() throws DetailedSerializationException;
      String[] getAsstesDRL(String[] assetsUids) throws SerializationException;
      String[] getAsstesBRL(String[] assetsUids) throws SerializationException;
      void removeAssets(String[] assetsUUIDs);

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/StandaloneGuidedEditorServiceAsync.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/StandaloneGuidedEditorServiceAsync.java	2010-11-05 15:54:32 UTC (rev 35884)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/StandaloneGuidedEditorServiceAsync.java	2010-11-05 18:00:15 UTC (rev 35885)
@@ -17,6 +17,7 @@
 package org.drools.guvnor.client.rpc;
 
 import com.google.gwt.user.client.rpc.AsyncCallback;
+import org.drools.guvnor.client.ruleeditor.standalone.StandaloneGuidedEditorInvocationParameters;
 
 /**
  * 
@@ -25,7 +26,7 @@
  */
 public interface StandaloneGuidedEditorServiceAsync {
 
-    void loadRuleAssetsFromSession(AsyncCallback<RuleAsset[]> asyncCallback);
+    void getInvocationParameters(AsyncCallback<StandaloneGuidedEditorInvocationParameters> asyncCallback);
     void getAsstesDRL(String[] assetsUids, AsyncCallback<String[]> asyncCallback);
     void getAsstesBRL(String[] assetsUids, AsyncCallback<String[]> asyncCallback);
     void removeAssets(String[] assetsUUIDs, AsyncCallback<Void> asyncCallback);

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/GuidedEditorManager.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/GuidedEditorManager.java	2010-11-05 15:54:32 UTC (rev 35884)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/GuidedEditorManager.java	2010-11-05 18:00:15 UTC (rev 35885)
@@ -19,8 +19,10 @@
 import java.util.List;
 import org.drools.guvnor.client.common.AssetFormats;
 import org.drools.guvnor.client.messages.Constants;
+import org.drools.guvnor.client.modeldriven.ui.RuleModellerConfiguration;
 import org.drools.guvnor.client.rpc.StandaloneGuidedEditorService;
 import org.drools.guvnor.client.rpc.StandaloneGuidedEditorServiceAsync;
+import org.drools.guvnor.client.ruleeditor.standalone.StandaloneGuidedEditorInvocationParameters;
 import org.drools.guvnor.client.ruleeditor.toolbar.StandaloneGuidedEditorIndividualActionToolbarButtonsConfigurationProvider;
 import org.drools.ide.common.client.modeldriven.brl.RuleModel;
 
@@ -66,40 +68,57 @@
 
         //The package must exist (because we need at least a model to work with)
         //To make things easier (to me), the category must exist too.
-        standaloneGuidedEditorService.loadRuleAssetsFromSession(new GenericCallback<RuleAsset[]>() {
+        standaloneGuidedEditorService.getInvocationParameters(new GenericCallback<StandaloneGuidedEditorInvocationParameters>() {
 
-            public void onSuccess(final RuleAsset[] assets) {
-                GuidedEditorManager.this.assetsUids = new String[assets.length];
+            public void onSuccess(final StandaloneGuidedEditorInvocationParameters parameters) {
+                GuidedEditorManager.this.assetsUids = new String[parameters.getAssetsToBeEdited().length];
                 
                 //no assets? This is an error!
-                if (assets.length == 0){
+                if (parameters.getAssetsToBeEdited().length == 0){
                     Window.alert(constants.NoRulesFound());
                     return;
                 }
                
                 //we need to store the uids of each asset.
-                for (int i = 0; i < assets.length; i++) {
-                    RuleAsset ruleAsset = assets[i];
+                for (int i = 0; i < parameters.getAssetsToBeEdited().length; i++) {
+                    RuleAsset ruleAsset = parameters.getAssetsToBeEdited()[i];
                     GuidedEditorManager.this.assetsUids[i] = ruleAsset.uuid;
                 }
                 
                 //Load SCE and create a MultiViewEditor for the assets.
                 //We take the package from the first asset (because all the assets
                 //must belong to the same package)
-                SuggestionCompletionCache.getInstance().loadPackage(assets[0].metaData.packageName, new Command() {
+                SuggestionCompletionCache.getInstance().loadPackage(parameters.getAssetsToBeEdited()[0].metaData.packageName, new Command() {
 
                     public void execute() {
+                        
+//                        Set<String> validFacts = new HashSet<String>();
+//                        validFacts.add("LoanApplication");
+//                        
+//                        SuggestionCompletionCache.getInstance().applyFactFilter(assets[0].metaData.packageName, new SetFactTypeFilter(validFacts), new Command() {
+//
+//                            public void execute() {
+//                                throw new UnsupportedOperationException("Not supported yet.");
+//                            }
+//                        });
+                        
                         LoadingPopup.close();
 
                         //For each asset we need to create a MultiViewRow
                         List<MultiViewRow> rows = new ArrayList<MultiViewRow>();
-                        for (RuleAsset ruleAsset : assets) {
+                        for (RuleAsset ruleAsset : parameters.getAssetsToBeEdited()) {
                             MultiViewRow row = new MultiViewRow();
                             row.uuid = ruleAsset.uuid;
-                            row.name = ((RuleModel)ruleAsset.content).name;
+                            row.name = ruleAsset.metaData.name;
+                            //row.name = ((RuleModel)ruleAsset.content).name;
                             row.format = AssetFormats.BUSINESS_RULE;
                             rows.add(row);
                         }
+                        //Configure RuleModeller
+                        RuleModellerConfiguration ruleModellerConfiguration = RuleModellerConfiguration.getInstance();
+                        ruleModellerConfiguration.setHideLHS(parameters.isHideLHS());
+                        ruleModellerConfiguration.setHideRHS(parameters.isHideRHS());
+                        ruleModellerConfiguration.setHideAttributes(parameters.isHideAttributes());
                         
                         //Create the editor
                         editor = new MultiViewEditor(rows.toArray(new MultiViewRow[rows.size()]), new EditItemEvent() {

Added: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/standalone/StandaloneGuidedEditorInvocationParameters.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/standalone/StandaloneGuidedEditorInvocationParameters.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/standalone/StandaloneGuidedEditorInvocationParameters.java	2010-11-05 18:00:15 UTC (rev 35885)
@@ -0,0 +1,71 @@
+/*
+ * Copyright 2005 JBoss Inc
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.drools.guvnor.client.ruleeditor.standalone;
+
+import java.io.Serializable;
+import org.drools.guvnor.client.rpc.RuleAsset;
+
+/**
+ * This class contains all the parameters passed in the invocation of the
+ * standalone guided editor. 
+ * This object is used to pass those parameters from server to client side.
+ * @author esteban.aliverti
+ */
+public class StandaloneGuidedEditorInvocationParameters implements Serializable {
+    
+    static final long serialVersionUID = 520L;
+    
+    private RuleAsset[] assetsToBeEdited;
+    
+    private boolean hideLHS;
+    private boolean hideRHS;
+    private boolean hideAttributes;
+
+    public RuleAsset[] getAssetsToBeEdited() {
+        return assetsToBeEdited;
+    }
+
+    public void setAssetsToBeEdited(RuleAsset[] assetsToBeEdited) {
+        this.assetsToBeEdited = assetsToBeEdited;
+    }
+
+    public boolean isHideAttributes() {
+        return hideAttributes;
+    }
+
+    public void setHideAttributes(boolean hideAttributes) {
+        this.hideAttributes = hideAttributes;
+    }
+
+    public boolean isHideLHS() {
+        return hideLHS;
+    }
+
+    public void setHideLHS(boolean hideLHS) {
+        this.hideLHS = hideLHS;
+    }
+
+    public boolean isHideRHS() {
+        return hideRHS;
+    }
+
+    public void setHideRHS(boolean hideRHS) {
+        this.hideRHS = hideRHS;
+    }
+    
+    
+}

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/StandaloneGuidedEditorServiceImplementation.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/StandaloneGuidedEditorServiceImplementation.java	2010-11-05 15:54:32 UTC (rev 35884)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/StandaloneGuidedEditorServiceImplementation.java	2010-11-05 18:00:15 UTC (rev 35885)
@@ -17,19 +17,16 @@
 
 import com.google.gwt.user.client.rpc.SerializationException;
 import com.google.gwt.user.server.rpc.RemoteServiceServlet;
-import java.util.ArrayList;
-import java.util.List;
 import javax.servlet.http.HttpSession;
-import org.drools.guvnor.client.common.AssetFormats;
 import org.drools.guvnor.client.rpc.DetailedSerializationException;
 import org.drools.guvnor.client.rpc.RuleAsset;
 import org.drools.guvnor.client.rpc.StandaloneGuidedEditorService;
+import org.drools.guvnor.client.ruleeditor.standalone.StandaloneGuidedEditorInvocationParameters;
 import org.drools.guvnor.server.guidededitor.BRLRuleAssetProvider;
 import org.drools.guvnor.server.guidededitor.NewRuleAssetProvider;
 import org.drools.guvnor.server.guidededitor.RuleAssetProvider;
 import org.drools.guvnor.server.guidededitor.UUIDRuleAssetProvider;
 import org.drools.guvnor.server.util.LoggingHelper;
-import org.drools.ide.common.client.modeldriven.brl.RuleMetadata;
 import org.drools.ide.common.client.modeldriven.brl.RuleModel;
 import org.drools.ide.common.server.util.BRLPersistence;
 import org.drools.repository.RulesRepository;
@@ -50,7 +47,6 @@
     @In
     public RulesRepository repository;
     private static final long serialVersionUID = 520l;
-    private static final LoggingHelper log = LoggingHelper.getLogger(StandaloneGuidedEditorServiceImplementation.class);
 
     public RulesRepository getRulesRepository() {
         return this.repository;
@@ -60,6 +56,43 @@
         return RepositoryServiceServlet.getService();
     }
 
+    
+    public StandaloneGuidedEditorInvocationParameters getInvocationParameters() throws DetailedSerializationException{
+        
+        //Get the parameters from the session
+        HttpSession session = this.getThreadLocalRequest().getSession();
+        
+        boolean hideLHSInEditor = false;
+        Object attribute = session.getAttribute(GuidedEditorServlet.GUIDED_EDITOR_SERVLET_PARAMETERS.GE_HIDE_RULE_LHS_PARAMETER_NAME.getParameterName());
+        if (attribute != null){
+            hideLHSInEditor = Boolean.parseBoolean(attribute.toString());
+        }
+        
+        boolean hideRHSInEditor = false;
+        attribute = session.getAttribute(GuidedEditorServlet.GUIDED_EDITOR_SERVLET_PARAMETERS.GE_HIDE_RULE_RHS_PARAMETER_NAME.getParameterName());
+        if (attribute != null){
+            hideRHSInEditor = Boolean.parseBoolean(attribute.toString());
+        }
+        
+        boolean hideAttributesInEditor = false;
+        attribute = session.getAttribute(GuidedEditorServlet.GUIDED_EDITOR_SERVLET_PARAMETERS.GE_HIDE_RULE_ATTRIBUTES_PARAMETER_NAME.getParameterName());
+        if (attribute != null){
+            hideAttributesInEditor = Boolean.parseBoolean(attribute.toString());
+        }
+        
+        
+        StandaloneGuidedEditorInvocationParameters parameters = new StandaloneGuidedEditorInvocationParameters();
+        
+        parameters.setAssetsToBeEdited(this.loadRuleAssetsFromSession());
+        
+        parameters.setHideLHS(hideLHSInEditor);
+        parameters.setHideRHS(hideRHSInEditor);
+        parameters.setHideAttributes(hideAttributesInEditor);
+        
+        
+        return parameters;
+    }
+    
     /**
      * To open the Guided Editor as standalone, you should be gone through 
      * GuidedEditorServlet first. This servlet put all the POST parameters into
@@ -70,7 +103,7 @@
      * @return
      * @throws DetailedSerializationException
      */   
-    public RuleAsset[] loadRuleAssetsFromSession() throws DetailedSerializationException{
+    private RuleAsset[] loadRuleAssetsFromSession() throws DetailedSerializationException{
         
         //Get the parameters from the session
         HttpSession session = this.getThreadLocalRequest().getSession();
@@ -87,43 +120,18 @@
         }
         String ruleName = (String)session.getAttribute(GuidedEditorServlet.GUIDED_EDITOR_SERVLET_PARAMETERS.GE_RULE_PARAMETER_NAME.getParameterName());
         
-        
-        
-        boolean hideLHSInEditor = false;
-        attribute = session.getAttribute(GuidedEditorServlet.GUIDED_EDITOR_SERVLET_PARAMETERS.GE_HIDE_RULE_LHS_PARAMETER_NAME.getParameterName());
-        if (attribute != null){
-            hideLHSInEditor = Boolean.parseBoolean(attribute.toString());
-        }
-        
-        boolean hideRHSInEditor = false;
-        attribute = session.getAttribute(GuidedEditorServlet.GUIDED_EDITOR_SERVLET_PARAMETERS.GE_HIDE_RULE_RHS_PARAMETER_NAME.getParameterName());
-        if (attribute != null){
-            hideRHSInEditor = Boolean.parseBoolean(attribute.toString());
-        }
-        
-        boolean hideAttributesInEditor = false;
-        attribute = session.getAttribute(GuidedEditorServlet.GUIDED_EDITOR_SERVLET_PARAMETERS.GE_HIDE_RULE_ATTRIBUTES_PARAMETER_NAME.getParameterName());
-        if (attribute != null){
-            hideAttributesInEditor = Boolean.parseBoolean(attribute.toString());
-        }
-        
-        
         RuleAssetProvider provider; 
-        Object data;
         if (createNewAsset){
-            provider = new NewRuleAssetProvider();
-            data = ruleName;
+            provider = new NewRuleAssetProvider(packageName,categoryName,ruleName);
         }else if (assetsUUIDs != null){
-            provider = new UUIDRuleAssetProvider();
-            data = assetsUUIDs;
+            provider = new UUIDRuleAssetProvider(assetsUUIDs);
         }else if (initialBRL != null){
-            provider = new BRLRuleAssetProvider();
-            data = initialBRL;
+            provider = new BRLRuleAssetProvider(packageName,categoryName,initialBRL);
         }else{
             throw new IllegalStateException();
         }
         
-        return provider.getRuleAssets(packageName, categoryName, data, hideLHSInEditor, hideRHSInEditor, hideAttributesInEditor);
+        return provider.getRuleAssets();
         
     }
     
@@ -146,7 +154,7 @@
     }
     
     /**
-     * Returns the DRL source code of the given assets.
+     * Returns the BRL source code of the given assets.
      * @param assetsUUIDs
      * @return
      * @throws SerializationException

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/guidededitor/BRLRuleAssetProvider.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/guidededitor/BRLRuleAssetProvider.java	2010-11-05 15:54:32 UTC (rev 35884)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/guidededitor/BRLRuleAssetProvider.java	2010-11-05 18:00:15 UTC (rev 35885)
@@ -23,8 +23,6 @@
 import org.drools.guvnor.client.rpc.RuleAsset;
 import org.drools.guvnor.server.RepositoryServiceServlet;
 import org.drools.guvnor.server.ServiceImplementation;
-import org.drools.guvnor.server.util.LoggingHelper;
-import org.drools.ide.common.client.modeldriven.brl.RuleMetadata;
 import org.drools.ide.common.client.modeldriven.brl.RuleModel;
 import org.drools.ide.common.server.util.BRXMLPersistence;
 
@@ -36,23 +34,24 @@
  */
 public class BRLRuleAssetProvider implements RuleAssetProvider {
     
-    private static final LoggingHelper log = LoggingHelper.getLogger(BRLRuleAssetProvider.class);
+    private String packageName;
+    private String categoryName; 
+    private String[] initialBRLs;
 
-    public RuleAsset[] getRuleAssets(String packageName, String categoryName, Object initialBRLs, Boolean hideLHSInEditor, Boolean hideRHSInEditor, Boolean hideAttributesInEditor) throws DetailedSerializationException {
+    public BRLRuleAssetProvider(String packageName, String categoryName, String[] initialBRLs) {
+        this.packageName = packageName;
+        this.categoryName = categoryName;
+        this.initialBRLs = initialBRLs;
+    }
+    
+    public RuleAsset[] getRuleAssets() throws DetailedSerializationException {
         
-        //initialBRLs must be a String[] containing the brl code
-        if (!(initialBRLs instanceof String[])){
-            throw new IllegalArgumentException("Expected String[] and not "+initialBRLs.getClass().getName());
-        }
+        List<RuleModel> models = new ArrayList<RuleModel>(initialBRLs.length);
+        List<RuleAsset> assets = new ArrayList<RuleAsset>(initialBRLs.length);
         
-        String[] brls = (String[])initialBRLs;
-        
-        List<RuleModel> models = new ArrayList<RuleModel>(brls.length);
-        List<RuleAsset> assets = new ArrayList<RuleAsset>(brls.length);
-        
         //We wan't to avoid inconsistent states, that is why we first unmarshal
         //each brl and then (if nothing fails) create each rule
-        for (String brl : brls) {
+        for (String brl : initialBRLs) {
             //convert the BRL to RuleModel
             models.add(BRXMLPersistence.getInstance().unmarshal(brl));
         }
@@ -60,7 +59,7 @@
         //no unmarshal errors, it's time to create the rules
         try{
             for (RuleModel ruleModel : models) {
-                assets.add(this.createRuleAssetFromRuleModel(packageName, categoryName, ruleModel, hideLHSInEditor, hideRHSInEditor, hideAttributesInEditor));
+                assets.add(this.createRuleAssetFromRuleModel(ruleModel));
             }
         } catch (Exception e){
             //if something failed, delete the generated assets
@@ -81,16 +80,10 @@
     /**
      * Creates a new RuleAsset from a RuleModel. The name of the RuleAsset will
      * be the original name plus a unique number.
-     * @param packageName
-     * @param categoryName
-     * @param model
-     * @param hideLHSInEditor
-     * @param hideRHSInEditor
-     * @param hideAttributesInEditor
      * @return
      * @throws DetailedSerializationException
      */
-    private RuleAsset createRuleAssetFromRuleModel(String packageName, String categoryName, RuleModel model, Boolean hideLHSInEditor, Boolean hideRHSInEditor, Boolean hideAttributesInEditor) throws DetailedSerializationException {
+    private RuleAsset createRuleAssetFromRuleModel(RuleModel model) throws DetailedSerializationException {
 
         try {
             //creates a new empty rule with a unique name (this is because
@@ -99,9 +92,6 @@
             RuleAsset newRule = this.getService().loadRuleAsset(ruleUUID);
             
             //update its content and persist
-            model.updateMetadata(new RuleMetadata(RuleMetadata.HIDE_LHS_IN_EDITOR, hideLHSInEditor.toString()));
-            model.updateMetadata(new RuleMetadata(RuleMetadata.HIDE_RHS_IN_EDITOR, hideRHSInEditor.toString()));
-            model.updateMetadata(new RuleMetadata(RuleMetadata.HIDE_ATTRIBUTES_IN_EDITOR, hideAttributesInEditor.toString()));
             newRule.content = model;
             ruleUUID = this.getService().checkinVersion(newRule);
 
@@ -110,8 +100,8 @@
             }
 
             return this.getService().loadRuleAsset(ruleUUID);
+            
         } catch (Exception ex) {
-            log.error("Unable to create Rule: " + ex.getMessage());
             throw new DetailedSerializationException("Unable to create Rule",
                     ex.getMessage());
         }

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/guidededitor/NewRuleAssetProvider.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/guidededitor/NewRuleAssetProvider.java	2010-11-05 15:54:32 UTC (rev 35884)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/guidededitor/NewRuleAssetProvider.java	2010-11-05 18:00:15 UTC (rev 35885)
@@ -16,19 +16,11 @@
 package org.drools.guvnor.server.guidededitor;
 
 import com.google.gwt.user.client.rpc.SerializationException;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.logging.Level;
-import java.util.logging.Logger;
 import org.drools.guvnor.client.common.AssetFormats;
 import org.drools.guvnor.client.rpc.DetailedSerializationException;
 import org.drools.guvnor.client.rpc.RuleAsset;
 import org.drools.guvnor.server.RepositoryServiceServlet;
 import org.drools.guvnor.server.ServiceImplementation;
-import org.drools.guvnor.server.util.LoggingHelper;
-import org.drools.ide.common.client.modeldriven.brl.RuleMetadata;
-import org.drools.ide.common.client.modeldriven.brl.RuleModel;
-import org.drools.ide.common.server.util.BRXMLPersistence;
 
 /**
  * Creates a new RuleAsset.
@@ -36,41 +28,28 @@
  */
 public class NewRuleAssetProvider implements RuleAssetProvider {
 
-    private static final LoggingHelper log = LoggingHelper.getLogger(NewRuleAssetProvider.class);
+    private String packageName;
+    private String categoryName; 
+    private String ruleName;
 
-    public RuleAsset[] getRuleAssets(String packageName, String categoryName, Object ruleName, Boolean hideLHSInEditor, Boolean hideRHSInEditor, Boolean hideAttributesInEditor) throws DetailedSerializationException {
+    public NewRuleAssetProvider(String packageName, String categoryName, String ruleName) {
+        this.packageName = packageName;
+        this.categoryName = categoryName;
+        this.ruleName = ruleName;
+    }
+    
+    public RuleAsset[] getRuleAssets() throws DetailedSerializationException {
         try {
-            //ruleName must be a String
-            if (!(ruleName instanceof String)) {
-                throw new IllegalArgumentException("Expected String and not " + ruleName.getClass().getName());
-            }
-
-            String name = (String) ruleName;
-
             //creates a new empty rule with a unique name (this is because
             //multiple clients could be opening the same rule at the same time)
-            String ruleUUID = this.getService().createNewRule(name, "created by standalone guided editor", categoryName, packageName, AssetFormats.BUSINESS_RULE);
+            String ruleUUID = this.getService().createNewRule(ruleName, "created by standalone guided editor", categoryName, packageName, AssetFormats.BUSINESS_RULE);
             RuleAsset newRule = this.getService().loadRuleAsset(ruleUUID);
 
-            //update its content and persist
-            RuleModel model = (RuleModel) newRule.content;
-            model.updateMetadata(new RuleMetadata(RuleMetadata.HIDE_LHS_IN_EDITOR, hideLHSInEditor.toString()));
-            model.updateMetadata(new RuleMetadata(RuleMetadata.HIDE_RHS_IN_EDITOR, hideRHSInEditor.toString()));
-            model.updateMetadata(new RuleMetadata(RuleMetadata.HIDE_ATTRIBUTES_IN_EDITOR, hideAttributesInEditor.toString()));
-            ruleUUID = this.getService().checkinVersion(newRule);
-
-            if (ruleUUID == null) {
-                throw new IllegalStateException("Failed checking int the new version");
-            }
-
-            newRule = this.getService().loadRuleAsset(ruleUUID);
-            
             return new RuleAsset[]{newRule};
         } catch (SerializationException ex) {
             throw new DetailedSerializationException("Error creating rule asset", ex.getMessage());
         }
 
-
     }
 
     private ServiceImplementation getService() {

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/guidededitor/RuleAssetProvider.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/guidededitor/RuleAssetProvider.java	2010-11-05 15:54:32 UTC (rev 35884)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/guidededitor/RuleAssetProvider.java	2010-11-05 18:00:15 UTC (rev 35885)
@@ -26,6 +26,6 @@
  */
 public interface RuleAssetProvider {
     
-    RuleAsset[] getRuleAssets(String packageName, String categoryName, Object data, Boolean hideLHSInEditor, Boolean hideRHSInEditor, Boolean hideAttributesInEditor) throws DetailedSerializationException ; 
+    RuleAsset[] getRuleAssets() throws DetailedSerializationException ; 
     
 }

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/guidededitor/UUIDRuleAssetProvider.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/guidededitor/UUIDRuleAssetProvider.java	2010-11-05 15:54:32 UTC (rev 35884)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/guidededitor/UUIDRuleAssetProvider.java	2010-11-05 18:00:15 UTC (rev 35885)
@@ -20,9 +20,6 @@
 import org.drools.guvnor.client.rpc.RuleAsset;
 import org.drools.guvnor.server.RepositoryServiceServlet;
 import org.drools.guvnor.server.ServiceImplementation;
-import org.drools.guvnor.server.util.LoggingHelper;
-import org.drools.ide.common.client.modeldriven.brl.RuleMetadata;
-import org.drools.ide.common.client.modeldriven.brl.RuleModel;
 
 /**
  * Creates a new RuleAsset.
@@ -30,34 +27,22 @@
  */
 public class UUIDRuleAssetProvider implements RuleAssetProvider {
 
-    private static final LoggingHelper log = LoggingHelper.getLogger(UUIDRuleAssetProvider.class);
+    private String[] assetsUUIDs;
 
-    public RuleAsset[] getRuleAssets(String packageName, String categoryName, Object assetsUUIDs, Boolean hideLHSInEditor, Boolean hideRHSInEditor, Boolean hideAttributesInEditor) throws DetailedSerializationException {
+    public UUIDRuleAssetProvider(String[] assetsUUIDs) {
+        this.assetsUUIDs = assetsUUIDs;
+    }
+    
+    public RuleAsset[] getRuleAssets() throws DetailedSerializationException {
         try {
-            //assetsUUIDs must be a String[]
-            if (!(assetsUUIDs instanceof String[])) {
-                throw new IllegalArgumentException("Expected String[] and not " + assetsUUIDs.getClass().getName());
-            }
 
-            String[] uuids = (String[]) assetsUUIDs;
-            RuleAsset[] assets = new RuleAsset[uuids.length];
+            RuleAsset[] assets = new RuleAsset[assetsUUIDs.length];
             
-            for (int i = 0; i < uuids.length; i++) {
-                String uuid = uuids[i];
+            for (int i = 0; i < assetsUUIDs.length; i++) {
+                String uuid = assetsUUIDs[i];
                 assets[i] = this.getService().loadRuleAsset(uuid);
             }
             
-            //update its content and reload
-            for (int i = 0; i < assets.length; i++) {
-                RuleAsset ruleAsset = assets[i];
-                RuleModel model = (RuleModel) ruleAsset.content;
-                model.updateMetadata(new RuleMetadata(RuleMetadata.HIDE_LHS_IN_EDITOR, hideLHSInEditor.toString()));
-                model.updateMetadata(new RuleMetadata(RuleMetadata.HIDE_RHS_IN_EDITOR, hideRHSInEditor.toString()));
-                model.updateMetadata(new RuleMetadata(RuleMetadata.HIDE_ATTRIBUTES_IN_EDITOR, hideAttributesInEditor.toString()));
-                String ruleUUID = this.getService().checkinVersion(ruleAsset);
-                assets[i] = this.getService().loadRuleAsset(ruleUUID);
-            }
-            
             return assets;
         } catch (SerializationException ex) {
             throw new DetailedSerializationException("Error creating rule asset", ex.getMessage());
@@ -69,4 +54,5 @@
     private ServiceImplementation getService() {
         return RepositoryServiceServlet.getService();
     }
+
 }



More information about the jboss-svn-commits mailing list