> Actually I am thinking more along the lines of a filter. The probelm > is that I need a way to let the NavigationHandler take over for an > *original* request. >
The FacesContext would be avaiable in a registered preprocess or postprocess chain command. Maybe a pre or post command could add a default Status to session scope, mocking the DialogNavigation.getStatus(). This might simulate being engaged in a dialog. I believe that the dialog begins in reaction to invoking the navigation handler and it is only invoked to respond to an action command. > Two use cases where this would apply: > > 1.) First page of the website needs to be a dialog > > 2.) You want to open the dialog in a popup window but you need to > control dimensions, scrollbar, etc. (so a blank target won't work.) The action invoked in the popup would have to trigger a dialog status. I see what you mean about the popup now. The page prior to the popup dialog couldn't participate if a commandLink was not invoked. > > I could write my own filter but this strikes me as something others > might want as well. That is, the ability to invoke a > NavigationHandler based on a URL pattern so that you can initiate a > Dialog (or any other custom process) without requiring the use of > commandButton or commandLink. > > My thinking is that we could modify ShaleApplicationFilter (or perhaps > the command chain used by it) so that if the URL contains 'launch:' it > will strip 'launch:foo:xxx' from the String and then ask the > NavigationHandler to handleNavigation using the String 'foo:xxx'. So > if you wanted to launch a dialog (xxx) directly you could use > 'launch:dialog:xxx'. I'm thinking that the FacesContext wouldn't be created yet. I wonder if you could create a component that performs a redirect or swaps out the view in the render phase? You would have the FacesContext and you could use the application to get the default navigation handler. Something like this: ViewHandler vh = context.getApplication().getViewHandler(); UIViewRoot view = vh.createView(context, viewId); context.setViewRoot(view); context.responseComplete(); NavigationHandler nh = context.getApplication().getNavigationHandler(); nh.handleNavigation(conext, null, getNextDialogProperty()); Gary > > sean > > ps. Enjoy your vacation (and self-imposed break from your computer) > > On 5/17/05, Craig McClanahan wrote: > > On 5/17/05, Sean Schofield wrote: > > > One idea might be to have a filter. I could look for a special > > > pattern like "launch:dialog:xxx." If the requested URL contains that > > > pattern the filter could ask the NavigationHandler to handleNavigation > > > for "dialog:xxx." I think that would work. > > > > That should work -- on most of the extension points JSF supports the > > "decorator pattern" of chaining implementations together, so you can > > define your custom NavigationHandler to handle your special case, and > > delegate everything else. > > > > > > > > sean > > > > > > > Craig > > > > PS: By the way ... don't look for any mail from me for the next week > > or so ... off on vacation with no computer (gulp! err, i mean phew! > > :-). > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] >