Jonathon, I am a good candidate for fixing this. Do you have an idea of exactly where the fix should be made. It might make things go a little faster.
Thanks, -Al On 11/26/07, Jonathon -- Improov <[EMAIL PROTECTED]> wrote: > > 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 >
