You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by cz...@apache.org on 2005/12/22 10:34:21 UTC

svn commit: r358540 - in /cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/pluto: PortletActionProviderImpl.java adapter/PortletAdapter.java servlet/ServletRequestImpl.java

Author: cziegeler
Date: Thu Dec 22 01:34:15 2005
New Revision: 358540

URL: http://svn.apache.org/viewcvs?rev=358540&view=rev
Log:
Fix render parameter handling

Modified:
    cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/pluto/PortletActionProviderImpl.java
    cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/pluto/adapter/PortletAdapter.java
    cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/pluto/servlet/ServletRequestImpl.java

Modified: cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/pluto/PortletActionProviderImpl.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/pluto/PortletActionProviderImpl.java?rev=358540&r1=358539&r2=358540&view=diff
==============================================================================
--- cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/pluto/PortletActionProviderImpl.java (original)
+++ cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/pluto/PortletActionProviderImpl.java Thu Dec 22 01:34:15 2005
@@ -15,6 +15,9 @@
  */
 package org.apache.cocoon.portal.pluto;
 
+import java.util.HashMap;
+import java.util.Map;
+
 import javax.portlet.PortletMode;
 import javax.portlet.WindowState;
 
@@ -80,6 +83,15 @@
                 final Event e = new CopletInstanceSizingEvent(cid, size);
                 this.portalService.getComponentManager().getEventManager().send(e);
             }
+        }
+    }
+
+    public void changeRenderParameters(Map parameters) {
+        final CopletInstanceData cid = ((PortletEntityImpl)portletWindow.getPortletEntity()).getCopletInstanceData();
+        if ( parameters == null ) {
+            cid.removeTemporaryAttribute("render-parameters");
+        } else {
+            cid.setTemporaryAttribute("render-parameters", new HashMap(parameters));
         }
     }
 }

Modified: cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/pluto/adapter/PortletAdapter.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/pluto/adapter/PortletAdapter.java?rev=358540&r1=358539&r2=358540&view=diff
==============================================================================
--- cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/pluto/adapter/PortletAdapter.java (original)
+++ cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/pluto/adapter/PortletAdapter.java Thu Dec 22 01:34:15 2005
@@ -41,6 +41,7 @@
 import org.apache.cocoon.portal.coplet.CopletInstanceData;
 import org.apache.cocoon.portal.coplet.adapter.impl.AbstractCopletAdapter;
 import org.apache.cocoon.portal.event.Receiver;
+import org.apache.cocoon.portal.pluto.PortletActionProviderImpl;
 import org.apache.cocoon.portal.pluto.PortletContainerEnvironmentImpl;
 import org.apache.cocoon.portal.pluto.PortletURLProviderImpl;
 import org.apache.cocoon.portal.pluto.om.PortletDefinitionRegistry;
@@ -333,6 +334,7 @@
             if ( state != null ) {
                 pap.changePortletWindowState(state);
             }
+            ((PortletActionProviderImpl)pap).changeRenderParameters(event.getParameters());
         }
     }
 

Modified: cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/pluto/servlet/ServletRequestImpl.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/pluto/servlet/ServletRequestImpl.java?rev=358540&r1=358539&r2=358540&view=diff
==============================================================================
--- cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/pluto/servlet/ServletRequestImpl.java (original)
+++ cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/pluto/servlet/ServletRequestImpl.java Thu Dec 22 01:34:15 2005
@@ -25,7 +25,9 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletRequestWrapper;
 
+import org.apache.cocoon.portal.coplet.CopletInstanceData;
 import org.apache.cocoon.portal.pluto.PortletURLProviderImpl;
+import org.apache.cocoon.portal.pluto.om.PortletWindowImpl;
 import org.apache.pluto.om.window.PortletWindow;
 
 /**
@@ -109,10 +111,12 @@
             this.cachedRequest = currentRequest;
 
             // get control params
-            this.portletParameterMap = new HashMap();
 
             if (this.provider != null
                 && this.provider.getPortletWindow().equals(this.window)) {
+
+                this.portletParameterMap = new HashMap();
+
                 // get render parameters
                 Iterator i = this.provider.getParameters().entrySet().iterator();
                 while (i.hasNext()) {
@@ -147,6 +151,13 @@
                         this.portletParameterMap.put(paramName, paramValues);
                     }
                 }
+            } else {
+                // provider is null or different window, use stored render parameters
+                final CopletInstanceData cid = ((PortletWindowImpl)this.window).getLayout().getCopletInstanceData();
+                this.portletParameterMap = (Map)cid.getTemporaryAttribute("render-parameters");
+            }
+            if ( this.portletParameterMap == null ) {
+                this.portletParameterMap = Collections.EMPTY_MAP;
             }
         }