the other option is not to use the context location="${parameters.mainDecoratorLocation}" and put it in the file like location="component://product/widget/catalog/CatalogCommonScreens.xml" in the screens this way don't have the problem at all.
Jonathon -- Improov sent the following on 12/15/2007 4:26 PM: > The common-controller.xml should not use "main-decorator", or that would > force every webapp in OFBiz (if they include this file) to use a > "main-decorator" compatible with webcommon screens. > > You brought up a good point. I'm now wondering if we should just get > component://common/widget/CommonScreens.xml#requirePasswordChange to use > GlobalDecorator instead of main-decorator. > > Jonathon > > BJ Freeman wrote: >> I was going thru the trunk and noticed this in all the controllers >> <include >> location="component://common/webcommon/WEB-INF/common-controller.xml"/> >> >> so there is a rule that says you can include a controller not in the >> same app. >> >> >> BJ Freeman sent the following on 11/10/2007 4:15 PM: >>> Almost. >>> when the included controller view calles a screen in the partymgr screen >>> , and that screen calls for a parm that is web.xml. the parm is not >>> availible for the screen and so fails. >>> >>> At this time, the way I handle this is to put the parm in my Web.xml. >>> >>> My suggestions was that if a call is made to a parm that would be in the >>> applications, in this case partymgr, web.xml, that widget looks up the >>> web.xml for that application to get it. >>> >>> >>> Chris Howe sent the following on 11/10/2007 2:23 PM: >>>> Okay, I've read through the thread. In that case, I might suggest >>>> to take a step back and look at what the two functionalities were >>>> designed to accomplish. >>>> Creating the mainDecoratorLocation variable in the web.xml was >>>> designed for _screen reuse. the include element in the >>>> controller.xml file was designed for request/response maintenance. >>>> With that in mind, you can include another controller in your custom >>>> application and then override the view with one that points to your >>>> application. If you wish to then include a screen from another >>>> application you can use the <include-screen> element in the screen >>>> widget and at the same time pass a parameters.mainDecoratorLocation >>>> to override the one gained from the web.xml context of the webapp >>>> being used. >>>> >>>> It appears that what BJ is suggesting would make the screen being >>>> called from the ofbiz application nonreusable except as decorated as >>>> it is in the ofbiz project which defeats the entire purpose of the >>>> mainDecoratorLocation variable. Do I follow correctly? >>>> >>>> ----- Original Message ---- >>>> From: BJ Freeman <[EMAIL PROTECTED]> >>>> To: dev@ofbiz.apache.org >>>> Sent: Saturday, November 10, 2007 2:12:12 PM >>>> Subject: Re: Include of controllers >>>> >>>> Chris the discussion is about using the include in the controller. >>>> and that the current way of putting the locations of parameters used in >>>> the widgets for screen decorators is causing a problem >>>> In a lot of apps the location is called out in the web.xml >>>> <context-param> >>>> <param-name>mainDecoratorLocation</param-name> >>>> <param-value>component://party/widget/partymgr/CommonScreens.xml</param-value> >>>> >>>> <description>The location of the main-decorator screen to use for >>>> this webapp; referred to as a context variable in screen def XML >>>> files.</description> >>>> </context-param> >>>> >>>> The suggeston is to take the location out to the web.xml and put in the >>>> widget like so. >>>> >>>> <decorator-screen name="CommonPartyDecorator" >>>> location="component://party/widget/partymgr/CommonScreens.xml"> >>>> >>>> >>>> >>>> Chris Howe sent the following on 11/9/2007 9:14 PM: >>>>> I haven't been following the thread, but instead of setting it >>>> explicitly in the widgets section, you may prefer to define it in >>>> the actions >>>> section... >>>>> <action> >>>>> <set field="parameters.mainDecoratorLocation" >>>> value="component://party/widget/partymgr/CommonScreens.xml"/> >>>>> </action> >>>>> <widget> >>>>> <include-screen name="splitScreen"/> >>>>> </widget> >>>>> ... >>>>> <decorator-screen name="CommonPartyDecorator" >>>> location="${parameters.mainDecoratorLocation}"> >>>>> <screen name="splitScreen"> >>>>> ... >>>>> <widget> >>>>> </widget> >>>>> ... >>>>> or something similar that it remains a variable so that you can later >>>> split the widget section out to be it's own screen so that it can be >>>> used with the decorator in another webapp. I don't know if the >>>> screens >>>> you're worried about here are that complex. This has been a better >>>> pattern for me. >>>>> ----- Original Message ---- >>>>> From: BJ Freeman <[EMAIL PROTECTED]> >>>>> To: dev@ofbiz.apache.org >>>>> Sent: Friday, November 9, 2007 9:57:00 PM >>>>> Subject: Re: Include of controllers >>>>> >>>>> Just want to make sure we are all on the same page >>>>> in a widget screen >>>>> <decorator-screen name="CommonPartyDecorator" >>>>> location="${parameters.mainDecoratorLocation}"> >>>>> >>>>> parameters.mainDecoratorLocation is in the Web.xml >>>>> >>>>> <context-param> >>>>> <param-name>mainDecoratorLocation</param-name> >>>>> >>>> >>>> <param-value>component://party/widget/partymgr/CommonScreens.xml</param-value> >>>> >>>>> <description>The location of the main-decorator screen to use for >>>>> this webapp; referred to as a context variable in screen def XML >>>>> files.</description> >>>>> </context-param> >>>>> >>>>> so to "fix" >>>>> <decorator-screen name="CommonPartyDecorator" >>>>> location="component://party/widget/partymgr/CommonScreens.xml"> >>>>> >>>>> >>>>> BJ Freeman sent the following on 11/9/2007 5:17 PM: >>>>>> Ok so the code that allows the context to be used in the web.xml is >>>>>> being depreciated? >>>>>> >>>>>> >>>>>> Adrian Crum sent the following on 11/9/2007 5:11 PM: >>>>>>> BJ, >>>>>>> >>>>>>> Nothing is being reversed. You have pointed out a weakness in how >>>>> the >>>>>>> some of the party manager screens are set up (they can't be >>>> reused). >>>>> I >>>>>>> have confirmed they have a problem. So submitting a patch FIXES the >>>>>>> issue - it doesn't reverse anything. >>>>>>> >>>>>>> -Adrian >>>>>>> >>>>>>> BJ Freeman wrote: >>>>>>> >>>>>>>> I will not submit a patch for what I am proposing, like a lot of >>>> my >>>>>>>> code, it stays in the applications I am doing. >>>>>>>> and since someone else put effort into what is in ofbiz now >>>>>>>> I do not plan to put effort into reversing it. >>>>>>>> :) >>>>>>>> >>>>>>>> Adrian Crum sent the following on 11/9/2007 4:57 PM: >>>>>>>> >>>>>>>>> BJ, >>>>>>>>> >>>>>>>>> As I mentioned before, I believe it would be better/easier to fix >>>>> the >>>>>>>>> party manager screens. Including web.xml files will open up a big >>>>> can of >>>>>>>>> worms. >>>>>>>>> >>>>>>>>> -Adrian >>>>>>>>> >>>>>>>>> BJ Freeman wrote: >>>>>>>>> >>>>>>>>> >>>>>>>>>> Hans: >>>>>>>>>> I did not put the CommonCommunicationEventDecorator location in >>>>> the >>>>>>>>>> context in web.xml >>>>>>>>>> this was done by someone else and is a standard through ofbiz as >>>>> far as >>>>>>>>>> i can tell. >>>>>>>>>> I take the path of least resistance. >>>>>>>>>> Since it is possible to put context in the web.xml and someone >>>>> has >>>>>>>>>> put a >>>>>>>>>> lot of effort into refactoring ofbiz to this standard, I have no >>>>>>>>>> intention of undoing it. >>>>>>>>>> >>>>>>>>>> so my focus for my code will be to have the web.xml included as >>>>> well, >>>>>>>>>> unless the powers to be say there is going to be a change in the >>>>> best >>>>>>>>>> practices. >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> Hans Bakker sent the following on 11/7/2007 5:47 PM: >>>>>>>>>> >>>>>>>>>> >>>>>>>>>>> Hi Bj, >>>>>>>>>>> >>>>>>>>>>> request (or provide a patch) that the >>>>>>>>>>> CommonCommunicationEventDecorator >>>>>>>>>>> is moved to the xml file as defined in the web.xml parameter. >>>>> Also >>>>>>>>>>> request that the 'location' parameter is defined in the screen >>>>> you are >>>>>>>>>>> using. >>>>>>>>>>> >>>>>>>>>>> Then you can use this screen in your own application using your >>>>> own >>>>>>>>>>> decorator. >>>>>>>>>>> >>>>>>>>>>> Regards, >>>>>>>>>>> Hans >>>>>>>>>>> >>>>>>>>>>> On Wed, 2007-11-07 at 13:42 -0800, BJ Freeman wrote: >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>>> I have a controller.xml >>>>>>>>>>>> it has the include for the partymgr in it. >>>>>>>>>>>> I have a menu widget that calls the partmgr >>>>>>>>>>>> I have the PartymgrDecoratorLocation in my web.xml >>>>>>>>>>>> so I get to the find screen OK. >>>>>>>>>>>> I have a few others in my web.xml as well. >>>>>>>>>>>> so I can navigate. >>>>>>>>>>>> however if you don't have these in your web.xml that is in the >>>>> same >>>>>>>>>>>> directory as the controller.xml you are using >>>>>>>>>>>> https://localhost:8443/myapp/control/partymgr >>>>>>>>>>>> then you get messages like this. >>>>>>>>>>>> >>>>>>>>>>>> org.ofbiz.base.util.GeneralException: Error rendering screen >>>>>>>>>>>> >>>> >>>> [component://party/widget/partymgr/CommunicationScreens.xml#EditCommunicationEvent]: >>>> >>>>>>>>>>>> java.lang.IllegalArgumentException: Could not find screen with >>>>> name >>>>>>>>>>>> [CommonCommunicationEventDecorator] in the same file as the >>>>> screen >>>>>>>>>>>> with >>>>>>>>>>>> name [EditCommunicationEvent] (Could not find screen with name >>>>>>>>>>>> [CommonCommunicationEventDecorator] in the same file as the >>>>> screen >>>>>>>>>>>> with >>>>>>>>>>>> name [EditCommunicationEvent]) >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> BJ, >>>>>>>>>>>> >>>>>>>>>>>> Do you have any specific examples of what you're describing? >>>>>>>>>>>> >>>>>>>>>>>> -Adrian >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> BJ Freeman sent the following on 11/5/2007 3:59 PM: >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>>> sorry not a complete thougt >>>>>>>>>>>>> This is not a real bug. >>>>>>>>>>>>> when you included another contorller >>>>>>>>>>>>> and there is a commonscreen.xml defined in the web.xml of the >>>>>>>>>>>>> calling >>>>>>>>>>>>> controller application it causes an error. >>>>>>>>>>>>> so maybe puttting the application name before commonescreens >>>>> will >>>>>>>>>>>>> eliminate that. >>>>>>>>>>>>> BJ Freeman sent the following on 11/5/2007 3:55 PM: >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>>> This is not a real bug. >>>>>>>>>>>>>> when you included another contorller >>>>>>>>>>>>>> and it has a commonscreen.xml >>>>>>>>>>>>>> >>>>>>>>>>>>>> another is that when the the other widget from the included >>>>>>>>>>>>>> controller >>>>>>>>>>>>>> calls for a context that is in the web.xml of that >>>>> application. >>>>>>>>>>>>>> it is not found. >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>> >>>>> >>>>> >>>> >>>> >>>> >>>> >>> >>> >> >> > > > >