On 7/24/07, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
The reason is that I have, in special cases, to change the name of the dialog name to start and I can't change the code of my web application.
<snip/>
I'd say make sure you have the right name before you hit the basic dialog manager impl (but you already seem to indicate thats not possible).
For example: public ... create(javax.faces.context.FacesContext context, String name) { if(usaPresident.equalsIgnoreCase("BUSH")) name = "NoWarsPlease"; super.create(context,name); } (I don't understand the antipattern..... and I don't understand why org.apache.shale.dialog.basic.BasicDialogManager is final)
<snap/> Its along these lines: * Shale has one dialog API and many potential dialog implementations * Each implementation defines certain contracts (these must adhere to the contracts in the API, and may additionally define impl-specific contracts and features as well) * If subclassing is allowed, it may be possible that the subclass (knowingly or unknowingly) ceases to honor some of the contracts for that impl * As an aside, the mechanics of getting subclassing to work as expected are cumbersome (since that wasn't a design consideration) Lets look at your example above: The dialog manager contract indicates that the create() method will instantiate a dialog context for the given dialog name. By returning a dialog context for another dialog name, that contract is no longer fulfilled. If it must be so (for whatever reason that I am no longer trying to identify :-), then it must not claim to be any variant of the basic impl anyway. -Rahul
Thanks Mario -----Original Message----- From: Rahul Akolkar [mailto:[EMAIL PROTECTED] Sent: 23 luglio 2007 21.19 To: user@shale.apache.org Subject: Re: Customizing Basic DialogContextManager On 7/20/07, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote: > Hi Rahul, > What I need is to extend the "create" method of > org.apache.shale.dialog.basic.BasicDialogManager > > for example doing: > > public ... create(javax.faces.context.FacesContext context, > String name) > { > Super.create(context,name); > System.out.println("Hello Rahul"); > } > <snip/> I'm saying this is more an anti-pattern (i.e. avoid, if possible :-) Can you use the DialogContextManagerListener [1] for this purpose? If not, I'll go back to my questions two replies ago -- what is the reason? Is the reason related to SHALE-454 [2] ? -Rahul [1] http://shale.apache.org/shale-dialog/apidocs/org/apache/shale/dialog/Dia logContextManagerListener.html [2] http://issues.apache.org/struts/browse/SHALE-454 > > Thanks > Mario >