I'm fine with either too.
-Matej
On 3/31/07, Eelco Hillenius <[EMAIL PROTECTED]> wrote:
That's an idea too. It's an extra method (not so nice) but more pricise (nice).
I'm fine with either. What do others think?
Eelco
On 3/31/07, Igor Vaynberg <[EMAIL PROTECTED]> wrote:
> or add a replaceOrAdd() method
>
> -igor
>
>
> On 3/31/07, Eelco Hillenius <[EMAIL PROTECTED]> wrote:
> >
> > I'm backporting Wicket In Action's code currently, and stumbled upon
> > something I really liked to be able to do in 2.0 which I can't do in
> > the same way in 1.3.
> >
> > Consider this:
> >
> > void setContentPanel() {
> > if (inEditMode) {
> > new DiscountsEditList(this, "content");
> > } else {
> > new DiscountsList(this, "content");
> > }
> > }
> >
> > I'd like to be able to write that as:
> >
> > void setContentPanel() {
> > if (inEditMode) {
> > replace(new DiscountsEditList("content"));
> > } else {
> > replace(new DiscountsList("content"));
> > }
> > }
> >
> > However, there is this check in replace:
> >
> > // Add to map
> > final Component replaced = put(child);
> >
> > // Look up to make sure it was already in the map
> > if (replaced == null)
> > {
> > throw new WicketRuntimeException(
> > exceptionMessage("Cannot
> > replace a component which has not been
> > added: id='"
> > +
> > child.getId() + "', component=" + child));
> > }
> >
> > so I'd have to do something like:
> >
> > if (get("content") != null) {
> > replace(new DiscountsEditList("content"));
> > } else {
> > add(new DiscountsEditList("content"));
> > }
> >
> > yech. I really don't see the added value of that check. I understand
> > how it got in there, but when you think of it, what actual problem
> > would this solve? Imo, we should just get rid of that check so that
> > calling replace would be a simple add if the component wasn't added
> > yet.
> >
> > Eelco
> >
>