I discovered more info: If I explicitly add and instance of the subpanel to the PrimaryWrapper(extends Border) in the PrimaryWrapper's constructor (i.e. not relying on the component resolver to do it) then everything works.
Doing this isn't an option as I need to use a component resolver to add the components. Does anyone have any ideas why it doesn't work when adding the panel to a border component via the component resolver? The resolver is adding the PrimaryWrapper to its parent container which is an instance of: MarkupInheritanceResolver$TransparentWebMarkupContainer Then the resolver adds the AboutUsPanel to its parent which appears to be an instance of: Border$BorderBodyContainer Is this the right parent? Should I be adding to it or to its parent (or grandparent?). Regards, Chris > -----Original Message----- > From: Chris Colman [mailto:[email protected]] > Sent: Friday, 4 September 2009 11:05 AM > To: [email protected] > Subject: RE: border error > > I'm having trouble with borders as well. > > This markup is within a page and I use a component resolver and in the > debug I see requests for the 'primaryWrapper' (PrimaryWrapper is a class > derived from Border. I then see the resolve request to resolve > 'aboutUsPanel'. The panel is created and added to the MarkupContainer > passed into the resolve method (maybe in a border it needs to be > addAuto'd to a different parent perhaps?) > > If I replace the aboutUsPanel span tag with some literal text everything > worlds fine. It appears to be a problem with the nesting of a panel > within the border component. > > > <wicket:extend> > <div id="content"> > <div wicket:id="primaryWrapper"> > <span wicket:id="aboutUsPanel" /> > </div> > > <div wicket:id = "secondaryWrapper"> > Some text > </div> > </div> > </wicket:extend> > > > The error I get is: > > ERROR - RequestCycle - Tag expected > [markup = > wicket\markup\com\sas\av\ui\wicket\templates\original\PrimaryWrapper_35. > html > <html> > <body> > <wicket:border> > > <!-- start primary section --> > <div id="primary-section " class="post"> > Hi there > <wicket:body/> > Yo > </div> > > </wicket:border> > </body> > </html> > , index = 4, current = [Raw markup]] > org.apache.wicket.markup.MarkupException: Tag expected > [markup = > wicket\markup\com\sas\av\ui\wicket\templates\original\PrimaryWrapper_35. > html > <html> > <body> > <wicket:border> > > <!-- start primary section --> > <div id="primary-section " class="post"> > Hi there > <wicket:body/> > Yo > </div> > > </wicket:border> > </body> > </html> > , index = 4, current = [Raw markup]] > at > org.apache.wicket.markup.MarkupStream.throwMarkupException(MarkupStream. > java:465) > at > org.apache.wicket.markup.MarkupStream.getTag(MarkupStream.java:269) > at org.apache.wicket.Component.render(Component.java:2433) > at org.apache.wicket.Component.render(Component.java:2405) > at > org.apache.wicket.MarkupContainer.autoAdd(MarkupContainer.java:225) > at > org.apache.wicket.MarkupContainer.autoAdd(MarkupContainer.java:250) > at > com.sas.av.ui.wicket.templates.original.ComponentLibraryResolver.resolve > (ComponentLibraryResolver.java:85) > at > org.apache.wicket.MarkupContainer.renderNext(MarkupContainer.java:1441) > at > org.apache.wicket.MarkupContainer.renderComponentTagBody(MarkupContainer > .java:1601) > at > org.apache.wicket.MarkupContainer.onComponentTagBody(MarkupContainer.jav > a:1525) > at > org.apache.wicket.markup.html.border.Border$BorderBodyContainer.onCompon > entTagBody(Border.java:380) > at > org.apache.wicket.Component.renderComponent(Component.java:2626) > at > org.apache.wicket.MarkupContainer.onRender(MarkupContainer.java:1536) > at org.apache.wicket.Component.render(Component.java:2457) > at > org.apache.wicket.MarkupContainer.renderNext(MarkupContainer.java:1414) > at > org.apache.wicket.MarkupContainer.renderComponentTagBody(MarkupContainer > .java:1601) > at > org.apache.wicket.MarkupContainer.renderAssociatedMarkup(MarkupContainer > .java:675) > at > org.apache.wicket.markup.html.border.Border.onComponentTagBody(Border.ja > va:305) > at > org.apache.wicket.Component.renderComponent(Component.java:2626) > at > org.apache.wicket.MarkupContainer.onRender(MarkupContainer.java:1536) > at org.apache.wicket.Component.render(Component.java:2457) > at org.apache.wicket.Component.render(Component.java:2405) > at > org.apache.wicket.MarkupContainer.autoAdd(MarkupContainer.java:225) > at > org.apache.wicket.MarkupContainer.autoAdd(MarkupContainer.java:250) > at > com.sas.av.ui.wicket.templates.original.ComponentLibraryResolver.resolve > (ComponentLibraryResolver.java:85) > > > "Back in my day we didn't need Tapestry, or Wicket or WebObjects, or > even Servlets, or for that matter Java! We just coded in plain assembly > language. And before that we had to just type in 1's and 0's. Sometimes > we didn't even have 1's. I once had to code for an entire month, > barefoot, in the dead of winter, using just 0's... but you didn't hear > me complaining." > > > > -----Original Message----- > > From: Jason Lea [mailto:[email protected]] > > Sent: Saturday, 18 July 2009 8:12 AM > > To: [email protected] > > Subject: Re: border error > > > > is it due to closing the tabs div with the short version <div /> > instead > > of <div></div>? > > I had a feeling wicket doesn't like the <div /> version... > > > > Fernando Wermus wrote: > > > Igor, > > > Here it is: the border is in the page. > > > > > > <wicket:extend> > > > <div wicket:id="tabs" /> > > > <div wicket:id="border"> > > > > > > <span wicket:id="label">label contents here</span> > > > </div> > > > </wicket:extend> > > > > > > On Fri, Jul 17, 2009 at 1:34 PM, Igor Vaynberg > > <[email protected]>wrote: > > > > > > > > >> you dont have <div wicket:id="border"></div> in > PaginaTestBorder.html > > >> > > >> -igor > > >> > > >> On Fri, Jul 17, 2009 at 1:30 PM, Fernando > > >> Wermus<[email protected]> wrote: > > >> > > >>> What am I doing wrong in this very simple example? > > >>> > > >>> > > >>> public class PaginaTestBorder extends AuthenticatedWebPage{ > > >>> public PaginaTestBorder(){ > > >>> add(new EmptyPanel("tabs")); > > >>> MyBorder border = new MyBorder("border"); > > >>> border.add(new Label("label", "I am the label")); > > >>> add(border); > > >>> } > > >>> } > > >>> > > >>> > > >>> MyBorder.html > > >>> <div> > > >>> Everything outside of the <wicket:border> tags will be > ignored. > > >>> Might be handy as preview code. > > >>> <wicket:border> > > >>> before the border contents <br /> > > >>> <wicket:body/> > > >>> <br />after the border contents <br /> > > >>> </wicket:border> > > >>> </div> > > >>> > > >>> > > >>> > > >>> class MyBorder extends Border > > >>> { > > >>> > > >>> public MyBorder(String id) > > >>> { > > >>> super(id); > > >>> } > > >>> } > > >>> > > >>> WicketMessage: The component(s) below failed to render. A common > > >>> problem is that you have added a component in code but forgot to > > >>> reference it in the markup (thus the component will never be > > >>> rendered). > > >>> > > >>> 1. [MarkupContainer [Component id = border]] > > >>> 2. [MarkupContainer [Component id = _body]] > > >>> 3. [Component id = label] > > >>> > > >>> Root cause: > > >>> > > >>> org.apache.wicket.WicketRuntimeException: The component(s) below > > >>> failed to render. A common problem is that you have added a > component > > >>> in code but forgot to reference it in the markup (thus the > component > > >>> will never be rendered). > > >>> > > >>> 1. [MarkupContainer [Component id = border]] > > >>> 2. [MarkupContainer [Component id = _body]] > > >>> 3. [Component id = label] > > >>> > > >>> > > >>> > > >>> > > >>> > > >>> -- > > >>> Fernando Wermus. > > >>> > > >>> www.linkedin.com/in/fernandowermus > > >>> > > >>> > > >> > --------------------------------------------------------------------- > > >> To unsubscribe, e-mail: [email protected] > > >> For additional commands, e-mail: [email protected] > > >> > > >> > > >> > > > > > > > > > > > > > -- > > Jason Lea > > > > > > > > No virus found in this incoming message. > > Checked by AVG - www.avg.com > > Version: 8.5.409 / Virus Database: 270.13.76/2342 - Release Date: > 09/03/09 > > 18:05:00 > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > > > No virus found in this incoming message. > Checked by AVG - www.avg.com > Version: 8.5.409 / Virus Database: 270.13.76/2342 - Release Date: 09/03/09 > 18:05:00 --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
