Folks,
I am trying to fix a bug with our bread crumb navigation links.
I keep a stack of pages (pageCommands really) in the Visit. When I move to a new page, I push the page on to the stack. The stack is displayed in the Border, and clicking the links, unwinds the stack and displays the correct page.
So far so good. Unfortunately, we have the blasted Back button to worry about. If the user uses the back button, unfortunately, I can't rewind the stack. Sure, if they click on a bread crumb link now, everything is OK, but if they choose another link, then the stack will have too many pages in it.
It seems that both Seaside and Wicket support simple handling of back button and refresh. I also found some discussions on the tapestry-dev list from 2 years ago about implementing transitions. Has there been any progress on this? Does anybody have a solution for Tapestry 3.0.3?
Ciao,
Jonathan O'Connor
XCOM Dublin
Michael Henderson <[EMAIL PROTECTED]>
01/11/2004 04:30
|
|
Begin forwarded message:
> You can you a stack based history object to track the users'
> activities. Then build a custom componet to show it on the screen.
You run the risk here, if the visitor uses the back button, that the
client side gets out of sync with the server side stack. Try using a
list of ExternalLinks with a parameter to indicate the breadcrumb
element target, or roll your own EngineService Just make the links work
without depending on server side state and remember to make the code
smart enough to roll back the 'stack' if the page has a link somewhere
else that takes the user to a location already in the breadcrumb
trail.
I've always found this to be a harder problem than it first appears
in a component-based model where URLs contain not 'location'
information but 'framework' information (invoke this listener method).
The simplest solution is to give each page it's own 'breadcrumb' trail
which reflects it's location in an information/navigation hierarchy so
the trail is the same regardless of the path the user took to get to
it. This works for most cases. You still need to do the work outlined
above to get a complete solution.
Best of Luck,
Mike
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]