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?
thanks,
Chris Marshall
Avenue100 Media Solutions
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]