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) {
  

Reply via email to