This is a comment more about the original statement.
mark it up to old age, not remembering till now.
however:
Though I don't recommend this as a standard best practices. since it is
an available feature, it can be used that way.
My point in stating this is that it should not be assume, with out
checking the underlying code,
Thant said there does not necessarily need to be a pop after a push in
the same level of code.
So it is important to look at the underlying code to see the pop is used.
Jonathon -- Improov sent the following on 11/26/2007 10:43 PM:
> Oh, BJ, yeah I forgot this.
>
> There should be a file "SomeTemplate.ftl". And that ftl should have a
> "${sections.render("section1")}".
>
> No wonder David said the XML isn't valid. :P
>
> The overall concept is to use a decorator ftl inside of a decorator
> screen widget. And to use 2 sections, 1 in the decorator ftl, the other
> at the decorator screen widget level.
>
> Jonathon
>
> BJ Freeman wrote:
>> so there is no checking of a element exists like the xml, bsh or ftl
>> files.
>> hmmm will have to check out.
>>
>> Jonathon -- Improov sent the following on 11/26/2007 9:12 PM:
>>> BJ,
>>>
>>> I had written the test case in the first post to this thread. You can
>>> reproduce bug there.
>>>
>>> I believe Al Byers has already fixed this?
>>>
>>> Jonathon
>>>
>>> BJ Freeman wrote:
>>>> Per david, I i would like to test this.
>>>> could you send the files you used as an attachment?
>>>> or open a jira and put then there.
>>>> thanks.
>>>>
>>>>
>>>> Jonathon -- Improov sent the following on 11/26/2007 9:47 AM:
>>>>> Oh. Sorry.
>>>>>
>>>>> ${component:widget}/src
>>>>>
>>>>> package org.ofbiz.widget.screen;
>>>>>
>>>>> Jonathon
>>>>>
>>>>> BJ Freeman wrote:
>>>>>> can you give a reference to where the code is.
>>>>>> can't seem to find it.
>>>>>>
>>>>>>
>>>>>> Jonathon -- Improov sent the following on 11/26/2007 8:09 AM:
>>>>>>> Hmm. Another quirk that sent me off the cliff. :)
>>>>>>>
>>>>>>> HtmlWidget.render(Writer, Map, ScreenStringRenderer) seems to be
>>>>>>> missing
>>>>>>> a MapStack pop.
>>>>>>>
>>>>>>> To see the bug, do the 2 screen widgets below, "SomeScreen" and
>>>>>>> "SomeDecorator".
>>>>>>>
>>>>>>> What happens is that section "section2" is gone after processing
>>>>>>> "section1" in "SomeDecorator".
>>>>>>>
>>>>>>> Here's why.
>>>>>>>
>>>>>>> See "SomeDecorator". The SectionsRenderer stored in variable
>>>>>>> "sections"
>>>>>>> is created with one section at the line of
>>>>>>> <html-template-decorator-section name="section1">. This
>>>>>>> SectionsRenderer
>>>>>>> is created in a private context, with the context of "SomeScreen"
>>>>>>> pushed
>>>>>>> into a MapStack.
>>>>>>>
>>>>>>> Before that, the SectionsRenderer stored in variable "sections"
>>>>>>> in the
>>>>>>> previous context (that of "SomeScreen") was created with 2 sections
>>>>>>> "section1" and "section2".
>>>>>>>
>>>>>>> During processing, because the first SectionsRenderer (with only 1
>>>>>>> section "section1") was never popped from the MapStack, it is used
>>>>>>> to do
>>>>>>> the next section include <decorator-section-include
>>>>>>> name="section2"/>.
>>>>>>> Obviously, the section "section2" does not exist.
>>>>>>>
>>>>>>> <screen name="SomeScreen">
>>>>>>> <section>
>>>>>>> <widgets>
>>>>>>> <decorator-screen name="SomeDecorator">
>>>>>>>
>>>>>>> <decorator-section name="section1">
>>>>>>> <label text="Section One content"/>
>>>>>>> </decorator-section>
>>>>>>>
>>>>>>> <decorator-section name="section2">
>>>>>>> <label text="Section Two content"/>
>>>>>>> </decorator-section>
>>>>>>>
>>>>>>> </decorator-screen>
>>>>>>> </widgets>
>>>>>>> </section>
>>>>>>> </screen>
>>>>>>>
>>>>>>> <screen name="SomeDecorator">
>>>>>>> <section>
>>>>>>> <widgets>
>>>>>>>
>>>>>>> <platform-specific><html>
>>>>>>> <html-template-decorator location="SomeTemplate.ftl">
>>>>>>> <html-template-decorator-section name="section1">
>>>>>>> <decorator-section-include name="section1"/>
>>>>>>> </html-template-decorator-section>
>>>>>>> </html-template-decorator>
>>>>>>> </html></platform-specific>
>>>>>>>
>>>>>>> <decorator-section-include name="section2"/>
>>>>>>>
>>>>>>> </widgets>
>>>>>>> </section>
>>>>>>> </screen>
>>>>>>>
>>>>>>> Jonathon
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>
>>>>>
>>>>
>>>
>>>
>>>
>>
>>
>
>
>
>