svn commit: r727742 - in /lenya/trunk/src/modules-core/usecase: java/src/org/apache/lenya/cms/usecase/AbstractUsecase.java java/src/org/apache/lenya/cms/usecase/Usecase.java usecases.js

[email protected]
Newsgroups gmane.comp.cms.lenya.cvs
Message-ID <[email protected]>
Author: andreas
Date: Thu Dec 18 07:19:31 2008
New Revision: 727742

URL: http://svn.apache.org/viewvc?rev=727742&view=rev
Log:
Introducing method Usecase.setupView(). This way prepareView() can be decoupled from getView() and won't be called everytime the tab group is obtained (e.g. by the menu item disabling transformation).

Modified:
    lenya/trunk/src/modules-core/usecase/java/src/org/apache/lenya/cms/usecase/AbstractUsecase.java
    lenya/trunk/src/modules-core/usecase/java/src/org/apache/lenya/cms/usecase/Usecase.java
    lenya/trunk/src/modules-core/usecase/usecases.js

Modified: lenya/trunk/src/modules-core/usecase/java/src/org/apache/lenya/cms/usecase/AbstractUsecase.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/usecase/java/src/org/apache/lenya/cms/usecase/AbstractUsecase.java?rev=727742&r1=727741&r2=727742&view=diff
==============================================================================
--- lenya/trunk/src/modules-core/usecase/java/src/org/apache/lenya/cms/usecase/AbstractUsecase.java (original)
+++ lenya/trunk/src/modules-core/usecase/java/src/org/apache/lenya/cms/usecase/AbstractUsecase.java Thu Dec 18 07:19:31 2008
@@ -657,15 +657,22 @@
      * @see org.apache.lenya.cms.usecase.Usecase#getView()
      */
     public UsecaseView getView() {
+        return this.view;
+    }
+
+    public void setupView() throws UsecaseException {
         try {
             prepareView();
         } catch (Exception e) {
-            getLogger().error("View preparation for usecase [" + getName() + "] failed: ", e);
-            addErrorMessage(e.getMessage());
+            getLogger().error(e.getMessage(), e);
+            addErrorMessage("Setting up the view for usecase " + getName() + " failed: "
+                    + e.getMessage() + " - Please consult the logfiles.");
+            if (getLogger().isDebugEnabled()) {
+                throw new UsecaseException(e);
+            }
         }
-        return this.view;
     }
-
+    
     /**
      * Override this method to prepare the view (add information messages etc.).
      * @throws Exception If an error occurs.

Modified: lenya/trunk/src/modules-core/usecase/java/src/org/apache/lenya/cms/usecase/Usecase.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/usecase/java/src/org/apache/lenya/cms/usecase/Usecase.java?rev=727742&r1=727741&r2=727742&view=diff
==============================================================================
--- lenya/trunk/src/modules-core/usecase/java/src/org/apache/lenya/cms/usecase/Usecase.java (original)
+++ lenya/trunk/src/modules-core/usecase/java/src/org/apache/lenya/cms/usecase/Usecase.java Thu Dec 18 07:19:31 2008
@@ -222,4 +222,10 @@
      * @return if the usecase uses optimistic offline lock.
      */
     boolean isOptimistic();
+    
+    /**
+     * Initialize the view.
+     * @throws UsecaseException if an error occurs.
+     */
+    void setupView() throws UsecaseException;
 }

Modified: lenya/trunk/src/modules-core/usecase/usecases.js
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/usecase/usecases.js?rev=727742&r1=727741&r2=727742&view=diff
==============================================================================
--- lenya/trunk/src/modules-core/usecase/usecases.js (original)
+++ lenya/trunk/src/modules-core/usecase/usecases.js Thu Dec 18 07:19:31 2008
@@ -328,8 +328,6 @@
     cocoon.redirectTo(proxyUrl, true);
 }
 
-
-
 /**
  * Main function to execute a usecase. This is called from <map:flow/>.
  *
@@ -364,6 +362,9 @@
         }
         // create proxy object to save usecase state
         view = usecase.getView();
+        if (view) {
+            usecase.setupView();
+        }
         proxy = new Packages.org.apache.lenya.cms.usecase.impl.UsecaseProxy(usecase);
         log("debug", "Successfully prepared usecase.", usecaseName);
     } catch (exception) {
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.