wicket-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jochen Mader <pflanzenmoer...@gmail.com>
Subject Re: Constructors take vararg of Component? (Enhancement RFC)
Date Mon, 07 Jan 2013 09:36:13 GMT
Why aren't you using fluent interfaces?
The API ist built around that and allows for a much cleaner structure
inside your constructors.
Just watch out for those Auto-Formaters ;)

new Form<RsvpPage>("frmRsvp", cpm)
        .add(new StatusPanel("pnlRsvp"))
        .add(new ConfirmPanel("pnlConfirm"))
        .add(new RsvpRulesPanel("pnlRsvpRules"));


On Mon, Jan 7, 2013 at 9:17 AM, Martin Grigorov <mgrigorov@apache.org> wrote:
> Hi,
>
> The component constructor doesn't call #add() at the moment (and I think
> this wont change soon without a better reason).
> So even if adding the varargs this wont help.
>
> But you can create your own components which do this:
>
> public class MyForm extends Form<Entity> {
>    public MyForm(String id, IModel<Entity> model, Component... children) {
>      super(id, model);
>
>      ad(children);
>    }
> }
>
>
> On Sun, Jan 6, 2013 at 9:24 PM, Zac Bedell <zaclist@thebedells.org> wrote:
>
>> Greetings all,
>>
>> I was wondering what Wicket users & devs might thing of a possible API
>> change for a future version (maybe Wicket 7?) of including a varargs array
>> of Component as the final parameter of all of the various MarkupContainer
>> subclasses?  I find myself doing things like these a lot:
>>
>>     pnlNoRsvp = new WebMarkupContainer("pnlNoRsvp");
>>     pnlRsvp = new StatusPanel("pnlRsvp");
>>     pnlConfirm = new ConfirmPanel("pnlConfirm");
>>     pnlRsvpRules = new RsvpRulesPanel("pnlRsvpRules");
>>
>>     RsvpPage.this.add(
>>         new Label("event.title"),
>>         new CssFeedbackPanel("feedback"),
>>         new Form<RsvpPage>("frmRsvp", cpm) {
>>           {
>>             add(pnlNoRsvp, pnlRsvp, pnlConfirm);
>>           }
>>         },
>>         pnlRsvpRules
>>     );
>>
>> -- or --
>>
>>     Form<RsvpPage> frmRsvp = new Form<RsvpPage>("frmRsvp", cpm);
>>     frmRsvp.add(pnlNoRsvp, pnlRsvp, pnlConfirm);
>>
>>     RsvpPage.this.add(
>>         new Label("event.title"),
>>         new CssFeedbackPanel("feedback"),
>>         frmRsvp,
>>         pnlRsvpRules
>>     );
>>
>> --
>>
>> If Form and the various other Wicket MarkupContainer's had constructors
>> with Component... as their final parameter, it would be possible to do
>> something like:
>>
>>     RsvpPage.this.add(
>>         new Label("event.title"),
>>         new CssFeedbackPanel("feedback"),
>>         new Form<RsvpPage>("frmRsvp", cpm, pnlNoRsvp, pnlRsvp, pnlConfirm),
>>         pnlRsvpRules
>>     );
>>
>> --
>>
>> Granted, this would balloon the number of constructors throughout the
>> framework just to save a bit of typing.  Curious what others might think...
>>
>> Best regards,
>> Zac Bedell
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>> For additional commands, e-mail: users-help@wicket.apache.org
>>
>>
>
>
> --
> Martin Grigorov
> jWeekend
> Training, Consulting, Development
> http://jWeekend.com <http://jweekend.com/>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org


Mime
View raw message