I am not really, trying to attach the context as a whole. only trying to get the mainDecoratorLocation which is stored as a context in web.xml. The problem is if I put mainDecoratorLocation, in my web.xml then all applications I call thru my controller, or the included ones, will use my mainDecoratorLocation full path. Maybe the solution is to put the main-decorator for all apps in the framework/commons then like in many of the application they have specific decorators that include the main-decorator. the problems is how to fill in the actions, etcetera
Chris Howe sent the following on 12/15/2007 10:40 AM: > All the <include> does is grab some xml elements from the location described. > Theoretically, It doesn't even need to be from the same server, much less > the same app (may have interesting possibilities BTW). This is why I'm > having such a hard time understanding why you are trying to attach context to > it. > > ----- Original Message ---- > From: BJ Freeman <[EMAIL PROTECTED]> > To: dev@ofbiz.apache.org > Sent: Saturday, December 15, 2007 12:19:27 PM > Subject: Re: Include of controllers > > > 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. >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>> >>>> >>>> >>> >>> >>> >>> >> >> > > > > > > >