Martin, thanks for the explanation,you are right ! ,i just tested that static block doesn't get executed .. but i could never reproduce Andy's problem .., i also checked and noticed that WicketTagIdentifier is registering the "panel" tagname so i don't know what is registering it but it's getting registered ,i tried looking a bit at code but could not find it ..
On Tue, May 14, 2013 at 5:18 PM, Martin Grigorov <[email protected]>wrote: > On Tue, May 14, 2013 at 9:51 AM, Martin Grigorov <[email protected] > >wrote: > > > Hi Vineet, > > > > > > On Mon, May 13, 2013 at 11:09 PM, vineet semwal < > [email protected]>wrote: > > > >> hi martin, > >> that static block need not be copied to make it work,since it's a static > >> block, it will get executed when the Panel class gets loaded, > >> the Panel class will get loaded by PanelMarkupSourcingStrategy itself > >> > > > > You are correct. > > I have no idea why it failed for Andy the first time. > > > > Now I realize what happens. > The usage of Panel.PANEL is inlined in PanelMarkupSourcingStrategy at > compile time, i.e. its String value is put in the place of the constant. > That's why it doesn't trigger the static initializer. > > > > > > > >> since it's referring a constant of panel . yes but i agree not a very > nice > >> code flow so should be improved ,i always used to think they are doing > >> this in a very weird way :-) > >> > >> > >> On Tue, May 14, 2013 at 1:48 AM, Martin Grigorov <[email protected] > >> >wrote: > >> > >> > Hi, > >> > > >> > > >> > On Mon, May 13, 2013 at 10:02 PM, Paul Bors <[email protected]> wrote: > >> > > >> > > Get rid of your newMarkupSourcingStrategy() override and place the > >> HTML > >> > > right next to the Java source code and you'll be fine. > >> > > > >> > > >> > This will not work because usually Link component has no its own > markup > >> > file. > >> > > >> > See Panel.java. It has: > >> > > >> > static > >> > { > >> > // register "wicket:panel" > >> > WicketTagIdentifier.registerWellKnownTagName(PANEL); > >> > } > >> > > >> > Just add this to your class and it should work. > >> > > >> > I think this is a bug in Wicket though - this piece of code should be > >> > executed by PanelMarkupSourcingStrategy, not by Panel itself. > >> > > >> > Feel free to file a bug report. > >> > > >> > > >> > > > >> > > If you do not like the default location of the HTML next to your > Java > >> > > classes, then read Chapter 4 of the Wicket user guide you can get > for > >> > free > >> > > from wicket's website at: > >> > > http://wicket.apache.org/learn/books/ > >> > > > >> > > ~ Thank you, > >> > > Paul Bors > >> > > > >> > > -----Original Message----- > >> > > From: Andy Van Den Heuvel [mailto:[email protected]] > >> > > Sent: Monday, May 13, 2013 2:04 PM > >> > > To: [email protected] > >> > > Subject: Unknown tag name with Wicket namespace: 'panel' > >> > > > >> > > I get an exception and it's not very clear to me what I'm doing > wrong. > >> > > > >> > > This is the exception: > >> > > Last cause: Unknown tag name with Wicket namespace: 'panel'. Might > be > >> you > >> > > haven't installed the appropriate resolver? '<wicket:panel>' (line > 3, > >> > > column > >> > > 2) > >> > > > >> > > I'm trying to override the markupSourcingStrategy because i want > this > >> > class > >> > > to have it's own html file. Anybody an idea? I use wicket-core > 6.7.0. > >> > > > >> > > > >> > > This is my java file: > >> > > public class ExtBookMarkablePageLink<T> extends > >> BookmarkablePageLink<T> { > >> > > > >> > > private final Component label; > >> > > public <C extends Page> ExtBookMarkablePageLink(String id, Class<C> > >> > > pageClass) { > >> > > this(id, pageClass, new PageParameters()); } public <C extends > Page> > >> > > ExtBookMarkablePageLink(String id, Class<C> pageClass, final > >> > PageParameters > >> > > parameters) { super(id, pageClass, parameters); add(label = > >> > > newLabel("label")); } > >> > > protected Component newLabel(final String markupId) { > >> > > return new Label(markupId, new > >> > > Model<String>("")).setRenderBodyOnly(true); > >> > > } > >> > > > >> > > @Override > >> > > protected IMarkupSourcingStrategy newMarkupSourcingStrategy() { > return > >> > new > >> > > PanelMarkupSourcingStrategy(true); > >> > > } > >> > > > >> > > public ExtBookMarkablePageLink<T> setLabel(IModel<?> label) { > >> > > this.label.setDefaultModel(label); > >> > > return this; > >> > > } > >> > > > >> > > } > >> > > > >> > > and this my html file: > >> > > <!doctype html> > >> > > <html xmlns:wicket="http://wicket.apache.org"> > >> > > <wicket:panel> > >> > > <span wicket:id="label"></span> > >> > > </wicket:panel> > >> > > </html> > >> > > > >> > > > >> > > > --------------------------------------------------------------------- > >> > > To unsubscribe, e-mail: [email protected] > >> > > For additional commands, e-mail: [email protected] > >> > > > >> > > > >> > > >> > > >> > -- > >> > Martin Grigorov > >> > Wicket Training & Consulting > >> > http://jWeekend.com <http://jweekend.com/> > >> > > >> > >> > >> > >> -- > >> regards, > >> > >> Vineet Semwal > >> > > > > > > > > -- > > Martin Grigorov > > Wicket Training & Consulting > > http://jWeekend.com <http://jweekend.com/> > > > > > > -- > Martin Grigorov > Wicket Training & Consulting > http://jWeekend.com <http://jweekend.com/> > -- regards, Vineet Semwal
