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. >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>> >>> >>> >>> >> >> >> >> >> > > >