On Sat, Feb 13, 2010 at 8:21 AM, Christopher Marshall <[email protected]>wrote:
> We have a pair of portlets that use events and display BIRT reports with > in Jetspeed that allow the end-user to select date ranges and drill-through > to detailed reports. All the state is maintained correctly so a drill > through from one level to another works fine. After the end-user has > manipulated the reports (drill-throughs, date range selection, etc.) we > would like to make it so the end-user can click on the menu that initially > launched the page with the pair of portlets and have state be just like when > the portlet was first launched. By default all of the request parameters > and attributes that control the state are maintained so clicking on the menu > justs puts the user back where they were rather than in the initial state. > I have tried using the PortletPreferences, setting up a preference in > the psml that has a name of "fromMenu" and a value of "true" and then > checking and resetting the preference in one of the portlets to another > value. Unfortunately clicking on the menu item for the psml page does NOT > set the preference back to a state of "true" so this method of detecting a > menu click doesn't work. > Since the initial request from the menu seems to start the portlet in > the render phase (doView) I have made all the urls within the two portlets > action urls and in the code to handle an action I set a flag there which the > render phase finds and knows that state should be maintained. If the flag > is not set the code assumes that request is from a menu click and thus state > needs to be reset to the initial state. This seems to work fine except for > one problem, a browser refresh goes directly to the render phase so hitting > refresh causes the same reset of state that a menu request does. > I have also investigated looking at the referrer but that doesn't seem > to be of any help. > > Essentially I would like a menu request to either reset the portlets or > for the portlets to be able to detect the request was from a menu click so > they can do the reset of state. Is there anyway to do this? > >From version 2.1.3 on, you can reset navigational state (window state and render parameters), see instructions here: https://issues.apache.org/jira/browse/JS2-806 (Does not include portlet preferences or portlet session state) I was thinking we could more formerly define this kind of common container events. 15.3 of the spec talks about WSRP predefined container events. I would like to see portal (container) events that can be subscribed to, like the 'page navigation' event described above. Any one else agree/disagree container events would be an appropriate solution? Maybe we can put it to a vote on the dev list, I'd be glad to look into it for the next release...
