shuber 2005/03/10 15:16:36 CET
Modified files:
core/src/conf/metadata/jbproject/jahia Jahia Non Distributable
Libs.library
core/src/java/org/jahia/data/beans/portlets
PortletModeBean.java
PortletWindowBean.java
WindowStateBean.java
core/src/java/org/jahia/engines/updatecontainer
UpdateContainer_Engine.java
core/src/java/org/jahia/services/applications
JahiaJ2SessionPortalURL.java
JetspeedDispatchingProvider.java
Log:
First version of portlet mode and window state buttons for JSR-168 portlets.
Here is a code extract to include in a template for it to work :
<content:applicationField name='<%="webapp" + id%>' id="webapp" />
<% FieldBean fieldBean = (FieldBean)
pageContext.findAttribute("webapp");
PortletWindowBean portletWindowBean = (PortletWindowBean)
fieldBean.getObject();
pageContext.setAttribute("portletWindowBean", portletWindowBean);
%>
<jahiaHtml:portletModes name="portletWindowBean" />
<jahiaHtml:windowStates name="portletWindowBean" />
The current selected element is marked with a CSS class called "current".
Revision Changes Path
No
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/.diff?r1=.-1&r2=No&f=h
No
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/.diff?r1=.-1&r2=No&f=h
No
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/.diff?r1=.-1&r2=No&f=h
No
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/.diff?r1=.-1&r2=No&f=h
1.6 +6 -5
jahia/core/src/java/org/jahia/data/beans/portlets/PortletModeBean.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/data/beans/portlets/PortletModeBean.java.diff?r1=1.5&r2=1.6&f=h
1.5 +56 -4
jahia/core/src/java/org/jahia/data/beans/portlets/PortletWindowBean.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/data/beans/portlets/PortletWindowBean.java.diff?r1=1.4&r2=1.5&f=h
1.6 +6 -5
jahia/core/src/java/org/jahia/data/beans/portlets/WindowStateBean.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/data/beans/portlets/WindowStateBean.java.diff?r1=1.5&r2=1.6&f=h
1.10 +9 -2
jahia/core/src/java/org/jahia/engines/updatecontainer/UpdateContainer_Engine.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/engines/updatecontainer/UpdateContainer_Engine.java.diff?r1=1.9&r2=1.10&f=h
1.10 +4 -10
jahia/core/src/java/org/jahia/services/applications/JahiaJ2SessionPortalURL.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/services/applications/JahiaJ2SessionPortalURL.java.diff?r1=1.9&r2=1.10&f=h
1.10 +7 -3
jahia/core/src/java/org/jahia/services/applications/JetspeedDispatchingProvider.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/services/applications/JetspeedDispatchingProvider.java.diff?r1=1.9&r2=1.10&f=h
Index: PortletModeBean.java
===================================================================
RCS file:
/home/cvs/repository/jahia/core/src/java/org/jahia/data/beans/portlets/PortletModeBean.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- PortletModeBean.java 23 Dec 2004 16:19:40 -0000 1.5
+++ PortletModeBean.java 10 Mar 2005 14:16:35 -0000 1.6
@@ -11,6 +11,8 @@
import org.jahia.bin.Jahia;
import org.jahia.params.ParamBean;
import org.jahia.services.applications.JahiaJ2SessionPortalURL;
+import org.apache.jetspeed.container.url.impl.AbstractPortalURL;
+import org.apache.jetspeed.container.state.MutableNavigationalState;
/**
* <p>Title: </p>
@@ -53,14 +55,13 @@
APPUNIQUEID_REQUEST_ATTRIBUTEKEY,
portletWindowBean.getPortletWindow().getId() +
"_" +
Integer.toString(portletWindowBean.getEntryPointInstanceID()));
- //PortalURL portalURL = new JahiaJ2SessionPortalURL(context, nav);
- //portalURL.setMode(portletWindowBean.getPortletWindow(), new
PortletMode(name));
- //String resultURL = portalURL.toString();
+ PortalURL portalURL = nav.createURL(paramBean.getRequest(),
paramBean.getResponse().getCharacterEncoding());
+ MutableNavigationalState navState = (MutableNavigationalState)
portalURL.getNavigationalState();
+ String resultURL =
portalURL.createPortletURL(portletWindowBean.getPortletWindow(), new
PortletMode(name), navState.getState(portletWindowBean.getPortletWindow()),
false);
request.removeAttribute(JahiaJ2SessionPortalURL.
PARAMBEAN_REQUEST_ATTRIBUTEKEY);
request.removeAttribute(JahiaJ2SessionPortalURL.APPUNIQUEID_REQUEST_ATTRIBUTEKEY);
- // return resultURL;
- return "PortletModeBean.getURL() - NOT YET COMPLETED";
+ return resultURL;
}
}
Index: PortletWindowBean.java
===================================================================
RCS file:
/home/cvs/repository/jahia/core/src/java/org/jahia/data/beans/portlets/PortletWindowBean.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- PortletWindowBean.java 24 Jun 2004 17:33:42 -0000 1.4
+++ PortletWindowBean.java 10 Mar 2005 14:16:35 -0000 1.5
@@ -8,6 +8,16 @@
import javax.portlet.PortletMode;
import javax.portlet.WindowState;
import org.apache.pluto.om.window.PortletWindow;
+import org.jahia.bin.Jahia;
+import org.apache.jetspeed.Jetspeed;
+import org.apache.jetspeed.request.RequestContextComponent;
+import org.apache.jetspeed.container.url.PortalURL;
+import javax.servlet.http.HttpServletRequest;
+import org.apache.jetspeed.request.RequestContext;
+import org.jahia.services.applications.JahiaJ2SessionPortalURL;
+import org.apache.jetspeed.container.state.MutableNavigationalState;
+import org.apache.jetspeed.container.state.NavigationalStateComponent;
+import org.jahia.services.applications.FusionPage;
/**
* <p>Title: Bean that contains all information relative to a portlet
@@ -77,17 +87,59 @@
}
public PortletModeBean getCurrentPortletModeBean () {
- /** @todo to be implemented, for the moment we just return view all
the time */
+ NavigationalStateComponent nav =
(NavigationalStateComponent)Jetspeed.getComponentManager().getComponent(NavigationalStateComponent.class);
+ RequestContextComponent contextComponent = null;
+ RequestContext context = null;
+ contextComponent =
(RequestContextComponent)Jetspeed.getComponentManager().getComponent(RequestContextComponent.class);
+ context = contextComponent.create(paramBean.getRequest(),
paramBean.getResponse(), Jahia.getStaticServletConfig());
+ context.setPage(new
FusionPage(Integer.toString(paramBean.getPageID())));
+ HttpServletRequest request = paramBean.getRequest();
+ request.setAttribute(JahiaJ2SessionPortalURL.
+ PARAMBEAN_REQUEST_ATTRIBUTEKEY, paramBean);
+ request.setAttribute(JahiaJ2SessionPortalURL.
+ APPUNIQUEID_REQUEST_ATTRIBUTEKEY,
+ getPortletWindow().getId() + "_" +
+ Integer.toString(getEntryPointInstanceID()));
+ PortalURL portalURL = nav.createURL(paramBean.getRequest(),
paramBean.getResponse().getCharacterEncoding());
+ MutableNavigationalState navState = (MutableNavigationalState)
portalURL.getNavigationalState();
+ if (navState != null) {
+ navState.sync(context);
+ }
+ PortletMode portletMode = navState.getMode(getPortletWindow());
+ request.removeAttribute(JahiaJ2SessionPortalURL.
+ PARAMBEAN_REQUEST_ATTRIBUTEKEY);
+
request.removeAttribute(JahiaJ2SessionPortalURL.APPUNIQUEID_REQUEST_ATTRIBUTEKEY);
PortletModeBean currentPortletModeBean = new
PortletModeBean(paramBean, this);
- currentPortletModeBean.setName(PortletMode.VIEW.toString());
+ currentPortletModeBean.setName(portletMode.toString());
return currentPortletModeBean;
}
public WindowStateBean getCurrentWindowStateBean () {
- /** @todo to be implemented, for the moment we just return normal
all the time */
+ NavigationalStateComponent nav =
(NavigationalStateComponent)Jetspeed.getComponentManager().getComponent(NavigationalStateComponent.class);
+ RequestContextComponent contextComponent = null;
+ RequestContext context = null;
+ contextComponent =
(RequestContextComponent)Jetspeed.getComponentManager().getComponent(RequestContextComponent.class);
+ context = contextComponent.create(paramBean.getRequest(),
paramBean.getResponse(), Jahia.getStaticServletConfig());
+ context.setPage(new
FusionPage(Integer.toString(paramBean.getPageID())));
+ HttpServletRequest request = paramBean.getRequest();
+ request.setAttribute(JahiaJ2SessionPortalURL.
+ PARAMBEAN_REQUEST_ATTRIBUTEKEY, paramBean);
+ request.setAttribute(JahiaJ2SessionPortalURL.
+ APPUNIQUEID_REQUEST_ATTRIBUTEKEY,
+ getPortletWindow().getId() + "_" +
+ Integer.toString(getEntryPointInstanceID()));
+ PortalURL portalURL = nav.createURL(paramBean.getRequest(),
paramBean.getResponse().getCharacterEncoding());
+ MutableNavigationalState navState = (MutableNavigationalState)
portalURL.getNavigationalState();
+ if (navState != null) {
+ navState.sync(context);
+ }
+ WindowState windowState = navState.getState(getPortletWindow());
+ request.removeAttribute(JahiaJ2SessionPortalURL.
+ PARAMBEAN_REQUEST_ATTRIBUTEKEY);
+
request.removeAttribute(JahiaJ2SessionPortalURL.APPUNIQUEID_REQUEST_ATTRIBUTEKEY);
WindowStateBean currentWindowStateBean = new
WindowStateBean(paramBean,
this);
- currentWindowStateBean.setName(WindowState.NORMAL.toString());
+ currentWindowStateBean.setName(windowState.toString());
return currentWindowStateBean;
}
Index: WindowStateBean.java
===================================================================
RCS file:
/home/cvs/repository/jahia/core/src/java/org/jahia/data/beans/portlets/WindowStateBean.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- WindowStateBean.java 23 Dec 2004 16:19:40 -0000 1.5
+++ WindowStateBean.java 10 Mar 2005 14:16:35 -0000 1.6
@@ -12,6 +12,8 @@
import org.jahia.params.ParamBean;
import org.jahia.services.applications.JahiaJ2SessionPortalURL;
import javax.servlet.http.HttpServletRequest;
+import org.apache.jetspeed.container.state.MutableNavigationalState;
+import javax.portlet.WindowState;
/**
* <p>Title: </p>
@@ -53,15 +55,14 @@
APPUNIQUEID_REQUEST_ATTRIBUTEKEY,
portletWindowBean.getPortletWindow().getId() +
"_" +
Integer.toString(portletWindowBean.getEntryPointInstanceID()));
- //PortalURL portalURL = new
JahiaJ2SessionPortalURL(paramBean.getRequest(),
paramBean.getResponse().getCharacterEncoding(), navState);
- //portalURL.setMode(portletWindowBean.getPortletWindow(), new
PortletMode(name));
- //String resultURL = portalURL.toString();
+ PortalURL portalURL = nav.createURL(paramBean.getRequest(),
paramBean.getResponse().getCharacterEncoding());
+ MutableNavigationalState navState = (MutableNavigationalState)
portalURL.getNavigationalState();
+ String resultURL =
portalURL.createPortletURL(portletWindowBean.getPortletWindow(),
navState.getMode(portletWindowBean.getPortletWindow()), new WindowState(name),
false);
request.removeAttribute(JahiaJ2SessionPortalURL.
PARAMBEAN_REQUEST_ATTRIBUTEKEY);
request.removeAttribute(JahiaJ2SessionPortalURL.APPUNIQUEID_REQUEST_ATTRIBUTEKEY);
- // return resultURL;
+ return resultURL;
- return "WindowStateBean.getURL NOT YET COMPLETED";
}
}
Index: UpdateContainer_Engine.java
===================================================================
RCS file:
/home/cvs/repository/jahia/core/src/java/org/jahia/engines/updatecontainer/UpdateContainer_Engine.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- UpdateContainer_Engine.java 25 Feb 2005 14:35:05 -0000 1.9
+++ UpdateContainer_Engine.java 10 Mar 2005 14:16:35 -0000 1.10
@@ -1,4 +1,4 @@
-// $Id: UpdateContainer_Engine.java,v 1.9 2005/02/25 14:35:05 tdraier Exp $
+// $Id: UpdateContainer_Engine.java,v 1.10 2005/03/10 14:16:35 shuber Exp $
//
//
// ____.
@@ -519,7 +519,14 @@
engineMap.put ("logObject", theContainer);
//ViewRights.getInstance().handleActions( jParams, mode,
engineMap, theContainer.getAclID() );
ManageRights.getInstance ().handleActions (jParams, mode,
- engineMap, theContainer.getAclID ());
+ engineMap,
theContainer.getAclID ());
+
+ // @todo FIXME we need to add code here that flushes the
cache
+ // of sub-pages if this container contains one or more page
+ // fields. The entire page sub-structure must be flushed for
+ // the users/groups that were added since rights are
+ // inherited. If rights have been "cut", we can stop at the
+ // cut points though.
}
// save categories
Index: JahiaJ2SessionPortalURL.java
===================================================================
RCS file:
/home/cvs/repository/jahia/core/src/java/org/jahia/services/applications/JahiaJ2SessionPortalURL.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- JahiaJ2SessionPortalURL.java 9 Mar 2005 16:47:31 -0000 1.9
+++ JahiaJ2SessionPortalURL.java 10 Mar 2005 14:16:36 -0000 1.10
@@ -1,18 +1,12 @@
package org.jahia.services.applications;
-import org.apache.jetspeed.request.RequestContext;
-import org.apache.jetspeed.container.state.NavigationalStateComponent;
-import org.jahia.params.ParamBean;
-import org.jahia.exceptions.*;
-import org.apache.pluto.om.window.PortletWindow;
-import java.util.Iterator;
-import org.jahia.engines.applications.JetspeedProcessActionEngine;
-import java.util.Properties;
-import org.apache.jetspeed.container.url.impl.QueryStringEncodingPortalURL;
import javax.servlet.http.HttpServletRequest;
+
import org.apache.jetspeed.container.state.NavigationalState;
-import org.apache.jetspeed.Jetspeed;
+import org.apache.jetspeed.container.url.impl.QueryStringEncodingPortalURL;
import org.jahia.bin.Jahia;
+import org.jahia.exceptions.JahiaException;
+import org.jahia.params.ParamBean;
/**
* <p>Title: Jahia specific URL implementation for Jetspeed</p>
Index: JetspeedDispatchingProvider.java
===================================================================
RCS file:
/home/cvs/repository/jahia/core/src/java/org/jahia/services/applications/JetspeedDispatchingProvider.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- JetspeedDispatchingProvider.java 9 Mar 2005 16:47:31 -0000 1.9
+++ JetspeedDispatchingProvider.java 10 Mar 2005 14:16:36 -0000 1.10
@@ -58,6 +58,9 @@
import java.util.HashMap;
import java.util.Map;
import org.jahia.services.usermanager.JahiaGroup;
+import org.jahia.data.applications.EntryPointDefinition;
+import java.util.Iterator;
+import javax.portlet.PortletMode;
public class JetspeedDispatchingProvider implements DispatchingProvider,
UserRoleResolver {
@@ -215,7 +218,7 @@
int windowID,
ParamBean jParams)
throws JahiaException {
- String result = "";
+ StringBuffer result = new StringBuffer();
try {
String entryPointDefName = entryPointInstance.getDefName();
@@ -306,12 +309,13 @@
PARAMBEAN_REQUEST_ATTRIBUTEKEY);
request.removeAttribute(JahiaJ2SessionPortalURL.
APPUNIQUEID_REQUEST_ATTRIBUTEKEY);
- result = response.getStringBuffer();
+
+ result.append(response.getStringBuffer());
} catch (Throwable t) {
t.printStackTrace();
}
- return result;
+ return result.toString();
}
public boolean isUserInRole (Map context, Principal user, String
roleName) {