A "panel", let us accept as a definition for now, is a independently updatable area of a portlet's display. We can implement this by making the main portlet spit out iframes for each panel section, mixed with any other HTML we want for the portlet.
The "src=" for the panel iframe is a request back to Jetspeed to render a sub-section of the portlet. This subsection must be portlet (sub-) content only, no control, no page layout. So, the request needs to identify the following: js_peid/<id> - to id the portlet involved (used by the content.vm templates) panel/<panel id> - to tell the portlet which sub-section to display (used by the portlets) template/content - to tell jetspeed to do some special formatting (this is our new "content" templates) The panel names can be whatever the portlet wants them to be. So, for example, we might have this: http://chefproject.org/jetspeed/portal/js_peid/304/panel/List/template/conte nt This works just fine... Until we maximize this portlet. The way Maximize.java "works", along with the JetspeedSessionValidator, is to store the js_peid in the user's session's get/setTemp() as "js_peid", and if that value is present when any request comes in from that user / session, to change to the Maximize template. Consider what we need when we maximize a "paneled" portlet. The first request, for the entire portlet, needs to do the standard maximize thing. The subsequent requests for each iframe need to be processed without any modifications for maximize. What is happening now is that the maximize template is used instad of the "content" template as requested. The result is we get each panel of the maximized portlet, as expected, but each panel has the entire jetspeed screen navigation and control, which is not what we want. So... I don't like how maximize works, anyway, and want to change it to use the new StateManager, and consider the maximized state as part of the portal page's session state for this user. But this won't help here, because what we really need is to change JetspeedSessionValidator. It must recognize when the page is set to maximize something, and modify the request for only the page - level requests, not the iframe - panel level requests. There are two situations: the first time maximize is invoked (in which case the Maximize action is called), and subsequent requests for the page (in which case no maximize action is called, just the standard page request). In the cases where action=Maximize is in the request, the Maximize action can take care of things. In the normal URL to the page case, JetspeedSessionValidator needs to distinguish between the URL to the page and those to a portlet. I propose that if JetspeedSessionValidator sees the "js_peid" in the request, then it can assume it is a request to a portal element, not the entire page. Only when this is absent will it change the request to use the "maximize" template. We can also look for an explicit "template" in the request, and leave these alone as well. I'll be testing this today and seeing how it works... Please, comment! Thanks. - Glenn -------------------------------------------- Glenn R. Golden, Systems Research Programmer University of Michigan School of Information [EMAIL PROTECTED] 734-615-1419 -------------------------------------------- -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
