jford       2004/08/31 11:48:28

  Modified:    webapp/WEB-INF/templates/vm/screens/html Home.vm
               src/java/org/apache/jetspeed/util/template JetspeedTool.java
               src/java/org/apache/jetspeed/services/jsp/tags
                        JetspeedPaneTag.java
  Log:
  Fixed case where user has switched to another psml after viewing a maximized portlet
  
  PR: JIRA #JS1-514
  Submitted by:  Arthur D'Alessandro, Jeremy Ford
  
  Revision  Changes    Path
  1.7       +13 -1     
jakarta-jetspeed/webapp/WEB-INF/templates/vm/screens/html/Home.vm
  
  Index: Home.vm
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jetspeed/webapp/WEB-INF/templates/vm/screens/html/Home.vm,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- Home.vm   17 Mar 2004 19:16:59 -0000      1.6
  +++ Home.vm   31 Aug 2004 18:48:27 -0000      1.7
  @@ -16,8 +16,20 @@
   
   ## test for a maximized portlet
   #if (($data.User) && ($data.User.getTemp("js_peid")))
  +
  +    #set($pbid = 0)
       $data.setMode("maximize")
  -    $jetspeed.getPortletById($data.User.getTemp("js_peid"))
  +    #set($pbid = $jetspeed.getPortletById($data.User.getTemp("js_peid"), true))
  +
  +    ##If previous call returned null, then pbid is still 0
  +    #if($pbid == 0)
  +        $data.setMode("default")
  +        #set($temp = $data.user.removeTemp("js_peid"))
  +        $jetspeed.getPane("default")
  +    #else
  +        $pbid
  +    #end
  +
   ## process as a regular page request
   #else
       $data.setMode("default")
  
  
  
  1.39      +18 -2     
jakarta-jetspeed/src/java/org/apache/jetspeed/util/template/JetspeedTool.java
  
  Index: JetspeedTool.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jetspeed/src/java/org/apache/jetspeed/util/template/JetspeedTool.java,v
  retrieving revision 1.38
  retrieving revision 1.39
  diff -u -r1.38 -r1.39
  --- JetspeedTool.java 29 Mar 2004 21:38:43 -0000      1.38
  +++ JetspeedTool.java 31 Aug 2004 18:48:28 -0000      1.39
  @@ -478,6 +478,22 @@
        */
       public ConcreteElement getPortletById(String peid)
       {
  +        return getPortletById(peid, false);
  +    }
  +    
  +    /**
  +     * Return the content of a portlet using the portlet's id (PEID). This portlet 
is sought in
  +     * the current PSML resource.
  +     *
  +     * If a control is attached to the portlet description, returns the defined
  +     * portlet and control, otherwise use the default control.
  +     *
  +     * @param peid the peid of the portlet to render
  +     * @param returnNull allows the method to return null or not
  +     * @return the rendered content of the portlet
  +     */
  +    public ConcreteElement getPortletById(String peid, boolean returnNull)
  +    {
           ConcreteElement result = null;
           Portlet found = null;
           Stack sets = new Stack();
  @@ -524,7 +540,7 @@
               result = PortletWrapper.wrap(found).getContent(rundata);
           }
           
  -        if (result==null)
  +        if (result==null && !returnNull)
           {
               //the customizer already streamed its content, return a stub
               result = new ConcreteElement();
  
  
  
  1.7       +9 -2      
jakarta-jetspeed/src/java/org/apache/jetspeed/services/jsp/tags/JetspeedPaneTag.java
  
  Index: JetspeedPaneTag.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jetspeed/src/java/org/apache/jetspeed/services/jsp/tags/JetspeedPaneTag.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- JetspeedPaneTag.java      23 Feb 2004 03:59:40 -0000      1.6
  +++ JetspeedPaneTag.java      31 Aug 2004 18:48:28 -0000      1.7
  @@ -90,7 +90,14 @@
                   if (jspeid != null)
                   {
                       data.setMode(JetspeedRunData.MAXIMIZE);
  -                    result = jt.getPortletById(jspeid);
  +                    result = jt.getPortletById(jspeid, true);
  +                    if(result == null)
  +                    {
  +                        // Remove the flag for this user
  +                        data.getUser().removeTemp("js_peid"); 
  +                        data.setMode(JetspeedRunData.NORMAL);
  +                        result = jt.getPane(this.name); 
  +                    }
                   }
                   else 
                   {
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to