Author: taylor
Date: Fri Oct 13 18:00:45 2006
New Revision: 463875
URL: http://svn.apache.org/viewvc?view=rev&rev=463875
Log:
complete implementation of ajax "window" api: set window state and portlet mode
Modified:
portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/container/state/impl/AbstractNavigationalState.java
portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/layout/ajax-xml/window.vm
portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/layout/impl/ChangePortletAction.java
Modified:
portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/container/state/impl/AbstractNavigationalState.java
URL:
http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/container/state/impl/AbstractNavigationalState.java?view=diff&rev=463875&r1=463874&r2=463875
==============================================================================
---
portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/container/state/impl/AbstractNavigationalState.java
(original)
+++
portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/container/state/impl/AbstractNavigationalState.java
Fri Oct 13 18:00:45 2006
@@ -79,6 +79,10 @@
requestStates.addPortletWindowNavigationalState(windowId,
state);
state.setWindowState(windowState);
}
+ if (windowState.equals(WindowState.MAXIMIZED))
+ {
+ requestStates.setMaximizedWindow(window);
+ }
}
}
Modified:
portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/layout/ajax-xml/window.vm
URL:
http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/layout/ajax-xml/window.vm?view=diff&rev=463875&r1=463874&r2=463875
==============================================================================
---
portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/layout/ajax-xml/window.vm
(original)
+++
portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/layout/ajax-xml/window.vm
Fri Oct 13 18:00:45 2006
@@ -3,11 +3,11 @@
<action>$action</action>
<id>$id</id>
#if ($state)
- <old_state>$oldState</old_state>
+ <old_state>$!oldState</old_state>
<new_state>$state</new_state>
#end
#if ($mode)
- <old_mode>$oldMode</old_mode>
+ <old_mode>$!oldMode</old_mode>
<new_mode>$mode</new_mode>
#end
</js>
Modified:
portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/layout/impl/ChangePortletAction.java
URL:
http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/layout/impl/ChangePortletAction.java?view=diff&rev=463875&r1=463874&r2=463875
==============================================================================
---
portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/layout/impl/ChangePortletAction.java
(original)
+++
portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/layout/impl/ChangePortletAction.java
Fri Oct 13 18:00:45 2006
@@ -19,17 +19,24 @@
import java.util.Iterator;
import java.util.Map;
+import javax.portlet.PortletMode;
+import javax.portlet.WindowState;
+
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.jetspeed.JetspeedActions;
import org.apache.jetspeed.ajax.AJAXException;
import org.apache.jetspeed.ajax.AjaxAction;
import org.apache.jetspeed.ajax.AjaxBuilder;
+import org.apache.jetspeed.container.state.MutableNavigationalState;
+import org.apache.jetspeed.container.window.PortletWindowAccessor;
import org.apache.jetspeed.layout.PortletActionSecurityBehavior;
+import org.apache.jetspeed.om.page.ContentFragment;
+import org.apache.jetspeed.om.page.ContentPage;
import org.apache.jetspeed.om.page.Fragment;
-import org.apache.jetspeed.om.page.Page;
import org.apache.jetspeed.page.PageManager;
import org.apache.jetspeed.request.RequestContext;
+import org.apache.pluto.om.window.PortletWindow;
/**
* Changes the window state or portlet mode for a given portlet window
@@ -51,24 +58,28 @@
protected String action;
protected Map validWindowStates = new HashMap();
protected Map validPortletModes = new HashMap();
+ protected PortletWindowAccessor windowAccessor;
public ChangePortletAction(String template,
String errorTemplate,
- String action)
+ String action,
+ PortletWindowAccessor windowAccessor)
throws AJAXException
{
- this(template, errorTemplate, action, null, null);
+ this(template, errorTemplate, action, null, windowAccessor, null);
}
public ChangePortletAction(String template,
String errorTemplate,
String action,
PageManager pageManager,
+ PortletWindowAccessor windowAccessor,
PortletActionSecurityBehavior securityBehavior)
throws AJAXException
{
super(template, errorTemplate, pageManager, securityBehavior);
this.action = action;
+ this.windowAccessor = windowAccessor;
// Build the maps of allowed (internal) modes and states
Iterator modes = JetspeedActions.getStandardPortletModes().iterator();
@@ -140,8 +151,8 @@
if (false == checkAccess(requestContext, JetspeedActions.EDIT))
{
- Page page = requestContext.getPage();
- Fragment fragment = page.getFragmentById(portletId);
+ ContentPage page = requestContext.getPage();
+ ContentFragment fragment =
page.getContentFragmentById(portletId);
if (fragment == null)
{
success = false;
@@ -167,8 +178,8 @@
}
portletId = newFragment.getId();
}
- Page page = requestContext.getPage();
- Fragment fragment = page.getFragmentById(portletId);
+ ContentPage page = requestContext.getPage();
+ ContentFragment fragment = page.getContentFragmentById(portletId);
String oldState = fragment.getState();
String oldMode = fragment.getMode();
if (windowState != null)
@@ -180,6 +191,26 @@
{
pageManager.updatePage(page);
}
+
+ // Now Change the transient navigational state
+ MutableNavigationalState navState =
(MutableNavigationalState)requestContext.getPortalURL().getNavigationalState();
+ PortletWindow portletWindow =
windowAccessor.getPortletWindow(fragment);
+ if (portletWindow != null)
+ {
+ oldState = navState.getState(portletWindow).toString();
+ oldMode = navState.getMode(portletWindow).toString();
+ if (windowState != null)
+ {
+ navState.setState(portletWindow, new
WindowState(windowState));
+ }
+ if (portletMode != null)
+ {
+ navState.setMode(portletWindow, new
PortletMode(portletMode));
+ }
+ navState.sync(requestContext);
+ }
+
+ //requestContext.getPortalURL().getNavigationalState().
resultMap.put(STATUS, status);
if (windowState != null)
@@ -210,7 +241,7 @@
// TODO: The validWindowStates and validPortletModes maps only contain
// internal (portal level) valid modes and states.
// *if* a pa defines a custom mode/state with a different name but
- // mapped onto a interal (portal) mode/state
+ // mapped onto a internal (portal) mode/state
// *then* first the real internal mode/state needs to be retrieved
from the
// targetted portlet its application:
//
o.a.j.om.common.portlet.PortletApplication.getMappedMode(customMode) and
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]