Author: thomas.heute(a)jboss.com
Date: 2008-12-05 13:35:42 -0500 (Fri, 05 Dec 2008)
New Revision: 12352
Modified:
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/portlet/ControllerResponseFactory.java
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/model/portal/command/action/InvokePortletWindowActionCommand.java
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/model/portal/command/action/InvokePortletWindowResourceCommand.java
Log:
JBPORTAL-2248: Action URL retained by client
Modified:
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/portlet/ControllerResponseFactory.java
===================================================================
---
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/portlet/ControllerResponseFactory.java 2008-12-05
18:10:22 UTC (rev 12351)
+++
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/portlet/ControllerResponseFactory.java 2008-12-05
18:35:42 UTC (rev 12352)
@@ -36,9 +36,11 @@
import
org.jboss.portal.core.model.instance.command.response.PortletInstanceActionResponse;
import org.jboss.portal.core.model.portal.PortalObjectId;
import org.jboss.portal.core.model.portal.command.response.PortletWindowActionResponse;
+import org.jboss.portal.core.model.portal.navstate.PageNavigationalState;
import org.jboss.portal.portlet.NoSuchPortletException;
import org.jboss.portal.portlet.ParametersStateString;
import org.jboss.portal.portlet.PortletInvokerException;
+import org.jboss.portal.portlet.info.ParameterInfo;
import org.jboss.portal.portlet.invocation.response.PortletInvocationResponse;
import org.jboss.portal.portlet.invocation.response.UpdateNavigationalStateResponse;
import org.jboss.portal.portlet.invocation.response.ContentResponse;
@@ -48,6 +50,8 @@
import java.util.HashMap;
import java.util.Map;
+import javax.xml.namespace.QName;
+
/**
* @author <a href="mailto:julien@jboss.org">Julien Viet</a>
* @version $Revision$
@@ -67,7 +71,7 @@
}
}
- public static ControllerResponse createActionResponse(PortalObjectId targetId,
PortletInvocationResponse response)
+ public static ControllerResponse createActionResponse(PortalObjectId targetId,
PortletInvocationResponse response, org.jboss.portal.portlet.info.PortletInfo portletInfo,
PageNavigationalState pns)
{
if (response instanceof UpdateNavigationalStateResponse)
{
@@ -82,10 +86,30 @@
ParametersStateString state =
(ParametersStateString)renderResult.getNavigationalState();
Map<String, String[]> parameters = new HashMap<String,
String[]>(state.getParameters());
+
+ if (pns != null)
+ {
+
+ //
+ for (ParameterInfo parameterInfo :
portletInfo.getNavigation().getPublicParameters())
+ {
+ String key = parameterInfo.getId();
+
+ //
+ String[] values = pns.getParameter(parameterInfo.getName());
+
+ //
+ if (values != null)
+ {
+ parameters.put(key, values);
+ }
+ }
+ }
+
+ parameters.putAll(renderResult.getPublicNavigationalStateUpdates());
- parameters.putAll(renderResult.getPublicNavigationalStateUpdates());
-
return new PortletWindowActionResponse(targetId, windowState, mode,
ParametersStateString.create(parameters));
+// return new PortletWindowActionResponse(targetId, windowState, mode,
renderResult.getNavigationalState());
}
else
{
Modified:
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/model/portal/command/action/InvokePortletWindowActionCommand.java
===================================================================
---
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/model/portal/command/action/InvokePortletWindowActionCommand.java 2008-12-05
18:10:22 UTC (rev 12351)
+++
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/model/portal/command/action/InvokePortletWindowActionCommand.java 2008-12-05
18:35:42 UTC (rev 12352)
@@ -25,6 +25,7 @@
import org.jboss.portal.Mode;
import org.jboss.portal.WindowState;
import org.jboss.portal.common.util.ParameterMap;
+import org.jboss.portal.core.controller.ControllerCommand;
import org.jboss.portal.core.controller.ControllerException;
import org.jboss.portal.core.controller.ControllerResponse;
import org.jboss.portal.core.controller.NoSuchResourceException;
@@ -38,6 +39,8 @@
import org.jboss.portal.core.model.portal.PortalObjectId;
import org.jboss.portal.core.model.portal.Window;
import org.jboss.portal.core.model.portal.command.response.UpdatePageResponse;
+import org.jboss.portal.core.model.portal.navstate.PageNavigationalState;
+import org.jboss.portal.core.navstate.NavigationalStateContext;
import org.jboss.portal.identity.User;
import org.jboss.portal.portlet.PortletInvokerException;
import org.jboss.portal.portlet.StateString;
@@ -181,8 +184,24 @@
PortletResponse portletResponse = (PortletResponse)cr;
+ if (cr instanceof PageUpdateResponse)
+ {
+ //
+ PageUpdateResponse pageUpdate = (PageUpdateResponse)cr;
+
+ //
+ ControllerPageNavigationalState pageNavigationalState =
(ControllerPageNavigationalState)pageUpdate.getPageNavigationalState();
+
+ // Flush all NS
+ pageNavigationalState.flushUpdates();
+ }
+ // Populate the parameters
+ NavigationalStateContext ctx =
(NavigationalStateContext)cpcc.getControllerContext().getAttributeResolver(ControllerCommand.NAVIGATIONAL_STATE_SCOPE);
+
+ PageNavigationalState pns =
ctx.getPageNavigationalState(page.getId().toString());
+
//
- return ControllerResponseFactory.createActionResponse(targetId,
portletResponse.getResponse());
+ return ControllerResponseFactory.createActionResponse(targetId,
portletResponse.getResponse(), portletInfo, pns);
}
catch (PortletInvokerException e)
{
Modified:
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/model/portal/command/action/InvokePortletWindowResourceCommand.java
===================================================================
---
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/model/portal/command/action/InvokePortletWindowResourceCommand.java 2008-12-05
18:10:22 UTC (rev 12351)
+++
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/model/portal/command/action/InvokePortletWindowResourceCommand.java 2008-12-05
18:35:42 UTC (rev 12352)
@@ -24,6 +24,9 @@
import org.jboss.portal.core.model.portal.PortalObjectId;
import org.jboss.portal.core.model.portal.command.response.UpdatePageResponse;
+import org.jboss.portal.core.model.portal.navstate.PageNavigationalState;
+import org.jboss.portal.core.navstate.NavigationalStateContext;
+import org.jboss.portal.core.controller.ControllerCommand;
import org.jboss.portal.core.controller.ControllerException;
import org.jboss.portal.core.controller.ControllerResponse;
import org.jboss.portal.core.controller.command.info.CommandInfo;
@@ -174,9 +177,14 @@
//
ResourceResponse resourceResponse = (ResourceResponse)cr;
+
+ // Populate the parameters
+ NavigationalStateContext ctx =
(NavigationalStateContext)cpcc.getControllerContext().getAttributeResolver(ControllerCommand.NAVIGATIONAL_STATE_SCOPE);
+
+ PageNavigationalState pns =
ctx.getPageNavigationalState(page.getId().toString());
//
- return ControllerResponseFactory.createActionResponse(targetId,
resourceResponse.getResponse());
+ return ControllerResponseFactory.createActionResponse(targetId,
resourceResponse.getResponse(), portletInfo, pns);
}
catch (PortletInvokerException e)
{
Show replies by date