Can you please open an issue for that and attach this code to it?

Thanks,

Eelco

On Dec 2, 2007 3:28 PM, Edvin Syse <[EMAIL PROTECTED]> wrote:
> I now did the following, and still got the error:
>
> mvn archetype:create -DarchetypeGroupId=org.apache.wicket \
> -DarchetypeArtifactId=wicket-archetype-quickstart \
> -DarchetypeVersion=1.3.0-rc1 \
> -DgroupId=no.sysedata \
> -DartifactId=enclosurebug
>
> mvn eclipse:eclipse
>
> /src/main/java/no/sysedata/HomePage.java:
>
> package no.sysedata;
>
> import org.apache.wicket.PageParameters;
> import org.apache.wicket.markup.html.basic.Label;
> import org.apache.wicket.markup.html.WebPage;
> import org.apache.wicket.model.Model;
>
> public class HomePage extends WebPage {
>         private static final long serialVersionUID = 1L;
>
>         public HomePage(final PageParameters parameters) {
>                 add(new Label("label1") {
>                         @Override public boolean isVisible() {
>                                 return false;
>                         }
>                 });
>
>                 add(new Label("label2", new Model() {
>                         @Override public Object getObject() {
>                                 System.out.println("Getting object of model 
> 2");
>                                 return "MODEL2 OBJECT";
>                         }
>                 }));
>         }
> }
>
>
> /src/main/java/no/sysedata/HomePage.html:
>
> <html>
>      <head>
>          <title>Wicket Enclosure Bug</title>
>      </head>
>      <body>
>                 <wicket:enclosure child="label1">
>                          <span wicket:id="label1">Label 1</span>
>                          <span wicket:id="label2">Label 2</span>
>                 </wicket:enclosure>
>      </body>
> </html>
>
> When I run it, I get the following on stdout:
>
> Getting object of model 2
>
>
> And the rendered HTML when hitting the homepage is:
>
> <html>
>      <head>
>          <title>Wicket Enclosure Bug</title>
>      </head>
>      <body>
>                 <wicket:enclosure child="label1"></wicket:enclosure>
>      </body>
> </html>
>
> If I add:
>
>         @Override protected void init() {
>                 getMarkupSettings().setStripWicketTags(true);
>         }
>
> to WicketApplication.java, the markup is:
>
> <html>
>      <head>
>          <title>Wicket Enclosure Bug</title>
>      </head>
>      <body>
>
>      </body>
> </html>
>
> .. but the stdout is still the same.
>
> I'm very sorry if I'm missing something here and wasting everyones time, but 
> to me it seems like a bug :)
>
> -- Edvin
>
> Eelco Hillenius skrev:
>
> > That is very strange. It shouldn't be called, as the model object is
> > only requested when a component that is rendering requests it. Are you
> > really sure? Can you create a test case for this, or a quickstart
> > project that shows the problem and attach it to a JIRA issue please?
> >
> > Eelco
> >
> > On Nov 29, 2007 1:22 PM, Edvin Syse <[EMAIL PROTECTED]> wrote:
> >> I'm wondering if this is expected behaviour:
> >>
> >> Create a <wicket:enclosure> element around to Labels, and let one of them 
> >> be the child="" referenced in the enclosure tag. Let that Label
> >> return false on isVisible(). Even though the other Label isn't rendered, 
> >> the getObject() method of it's model is still called. Do I need to
> >> override isVisible() on all components inside an enclosure to avoid this, 
> >> or am I missing something?
> >>
> >> Markup:
> >>
> >> <wicket:enclosure child="label1">
> >>         <span wicket:id="label1">Label 1</span>
> >>         <span wicket:id="label2">Label 2</span>
> >> </wicket:enclosure>
> >>
> >>
> >> Java:
> >>
> >> add(new Label("label1") {
> >>         @Override
> >>         public boolean isVisible() {
> >>                 return false;
> >>         }
> >> });
> >>
> >> add(new Label("label2", new Model() {
> >>         @Override
> >>         public Object getObject() {
> >>                 System.out.println("Getting object of model 2");
> >>                 return "MODEL2 OBJECT";
> >>         }
> >>
> >> }));
> >>
> >> Everytime the page is loaded, I get the output to stdout from the 
> >> getObject() method of label2. If I add a isVisible() to label2 which
> >> returns false, everything is ofcourse dandy.
> >>
> >> Sincerely,
> >> Edvin Syse
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: [EMAIL PROTECTED]
> >> For additional commands, e-mail: [EMAIL PROTECTED]
> >>
> >>
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to