Oh, if this helps, what I want could be achieved with this:

<span wicket:id="foobar">
   <span wicket:id="text">TEXT</span>
   <span wicket:id="star">*</span>
</span>

and then doing something like:

foobar = new MarkupContainer("foobar");
foobar.add(new Label("text", ...))
foobar.add(new WebMarkupContainer("removeMe") {
 public boolean isVisible() {
   return sometimesFalse();
 }
});
add(foobar);

but I find the template html to be less readable in this case and was
hoping to not have to do it this way.

Lowell

On 5/31/07, Lowell Kirsh <[EMAIL PROTECTED]> wrote:
> Basically what I want to do is from this markup:
>
> <span wicket:id="foo>TEXT<span wicket:id="star">*<span></span>
>
> I'd like to replace 'TEXT' with some text from my java code, and would
> like to set the visibility of the 'star' span from within my code.
>
> Replacing TEXT seems similar  to what a Label does, but a Label won't
> support the embedded 'star' span. So I tried to mimic Label my
> creating my own component (I tried WebMarkupContainer) and mimic the
> behavior of Label, but also allow for the embedded component. So I
> tried to override the onComponentTagBody() method with one that calls
> replaceComponentTagBody() but that didn't work because that removed
> the 'star' span.
>
> So what I'd really like to do would be to create my custom component
> and somehow tell it to replace the text of its body (ie. the 'TEXT')
> but to do so without removing child components.
>
> Make sense?
>
> On 5/31/07, Lowell Kirsh <[EMAIL PROTECTED]> wrote:
> > And which Panel method do I need to call to set its text without
> > removing the star Component?
> >
> > On 5/31/07, Eelco Hillenius <[EMAIL PROTECTED]> wrote:
> > > LabelWithStar should extend Panel.
> > >
> > > Eelco
> > >
> > > On 5/31/07, Lowell Kirsh <[EMAIL PROTECTED]> wrote:
> > > > But I get the following error:
> > > >
> > > > ...WicketMessage: Expected close tag for '<span wicket:id="foobar">'
> > > > Possible attempt to embed component(s) '<span wicket:id="star">' in
> > > > the body of this component which discards its body
> > > >
> > > > Doesn't that mean my approach is flawed?
> > > >
> > > > On 5/31/07, Eelco Hillenius <[EMAIL PROTECTED]> wrote:
> > > > > Then you should be able to use that label idea and embed it in your 
> > > > > component.
> > > > >
> > > > > Eelco
> > > > >
> > > > > On 5/31/07, Lowell Kirsh <[EMAIL PROTECTED]> wrote:
> > > > > > Once again I left out a detail - the reason I have the span is that 
> > > > > > I
> > > > > > want to apply a CSS class to the star. Also, I like to have the star
> > > > > > as a child of the other component, because that way I don't have to
> > > > > > assign unique names to each star, and also, I can package the text 
> > > > > > and
> > > > > > the star as one object type (or just use a single method to deal 
> > > > > > with
> > > > > > both at once) so that I don't have duplicated code.
> > > > > >
> > > > > > On 5/31/07, Eelco Hillenius <[EMAIL PROTECTED]> wrote:
> > > > > > > On 5/31/07, Lowell Kirsh <[EMAIL PROTECTED]> wrote:
> > > > > > > > My use case is actually turning out slightly more complex than I
> > > > > > > > posted. What I actually have is:
> > > > > > > >
> > > > > > > > <span wicket:id="foo">TEXT<span wicket:id="star">*</span><span>
> > > > > > > >
> > > > > > > > and I'd like to sometimes remove the star. So my java (which 
> > > > > > > > doesn't
> > > > > > > > work) looks like:
> > > > > > > >
> > > > > > > >    private static class LabelWithStar extends WebMarkupContainer
> > > > > > > >     {
> > > > > > > >         public LabelWithStar(String id, String model, final 
> > > > > > > > boolean
> > > > > > > > starIsVisible)
> > > > > > > >         {
> > > > > > > >             super(id, new Model(model));
> > > > > > > >             this.add(new WebMarkupContainer("star") {
> > > > > > > >                 public boolean isVisible()
> > > > > > > >                 {
> > > > > > > >                     return starIsVisible;
> > > > > > > >                 }
> > > > > > > >             });
> > > > > > > >         }
> > > > > > > >
> > > > > > > >         protected void onComponentTagBody(MarkupStream 
> > > > > > > > markupStream,
> > > > > > > > ComponentTag openTag)
> > > > > > > >         {
> > > > > > > >             replaceComponentTagBody(markupStream, openTag,
> > > > > > > > getModelObjectAsString());
> > > > > > > >         }
> > > > > > > >     }
> > > > > > > >
> > > > > > > > This doesn't work because the call to replaceComponentTagBody()
> > > > > > > > removes the span with the star. How should I be doing this 
> > > > > > > > instead?
> > > > > > >
> > > > > > > You mean you need to have the span? Why is that?
> > > > > > >
> > > > > > > Alternatively, you can do something like
> > > > > > >
> > > > > > > add(new Label("star", new AbstractReadOnlyModel() {
> > > > > > >
> > > > > > >         @Override
> > > > > > >         public Object getObject() {
> > > > > > >                 return isStarVisible() ? "*" : "";
> > > > > > >                 }
> > > > > > >         }));
> > > > > > > }
> > > > > > >
> > > > > > >
> > > > > > > Eelco
> > > > > > >
> > > > > > > -------------------------------------------------------------------------
> > > > > > > This SF.net email is sponsored by DB2 Express
> > > > > > > Download DB2 Express C - the FREE version of DB2 express and take
> > > > > > > control of your XML. No limits. Just data. Click to get it now.
> > > > > > > http://sourceforge.net/powerbar/db2/
> > > > > > > _______________________________________________
> > > > > > > Wicket-user mailing list
> > > > > > > Wicket-user@lists.sourceforge.net
> > > > > > > https://lists.sourceforge.net/lists/listinfo/wicket-user
> > > > > > >
> > > > > >
> > > > > > -------------------------------------------------------------------------
> > > > > > This SF.net email is sponsored by DB2 Express
> > > > > > Download DB2 Express C - the FREE version of DB2 express and take
> > > > > > control of your XML. No limits. Just data. Click to get it now.
> > > > > > http://sourceforge.net/powerbar/db2/
> > > > > > _______________________________________________
> > > > > > Wicket-user mailing list
> > > > > > Wicket-user@lists.sourceforge.net
> > > > > > https://lists.sourceforge.net/lists/listinfo/wicket-user
> > > > > >
> > > > >
> > > > > -------------------------------------------------------------------------
> > > > > This SF.net email is sponsored by DB2 Express
> > > > > Download DB2 Express C - the FREE version of DB2 express and take
> > > > > control of your XML. No limits. Just data. Click to get it now.
> > > > > http://sourceforge.net/powerbar/db2/
> > > > > _______________________________________________
> > > > > Wicket-user mailing list
> > > > > Wicket-user@lists.sourceforge.net
> > > > > https://lists.sourceforge.net/lists/listinfo/wicket-user
> > > > >
> > > >
> > > > -------------------------------------------------------------------------
> > > > This SF.net email is sponsored by DB2 Express
> > > > Download DB2 Express C - the FREE version of DB2 express and take
> > > > control of your XML. No limits. Just data. Click to get it now.
> > > > http://sourceforge.net/powerbar/db2/
> > > > _______________________________________________
> > > > Wicket-user mailing list
> > > > Wicket-user@lists.sourceforge.net
> > > > https://lists.sourceforge.net/lists/listinfo/wicket-user
> > > >
> > >
> > > -------------------------------------------------------------------------
> > > This SF.net email is sponsored by DB2 Express
> > > Download DB2 Express C - the FREE version of DB2 express and take
> > > control of your XML. No limits. Just data. Click to get it now.
> > > http://sourceforge.net/powerbar/db2/
> > > _______________________________________________
> > > Wicket-user mailing list
> > > Wicket-user@lists.sourceforge.net
> > > https://lists.sourceforge.net/lists/listinfo/wicket-user
> > >
> >
>

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Wicket-user mailing list
Wicket-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wicket-user

Reply via email to