>        TextField t = new ValidatedTextField("id", new Model("your Model"),

And remember to use Model.of("your Model")

**
Martin
http://tyoajanseuranta.blogit.fi/ Wicket työajanseuranta

> true,
>                EmailAddressValidator.getInstance(),
>                StringValidator.maximumLength(50));
> </code>
>
> Maybe you could then use it in a class factory as you suggested. At least it
> will shorten a few lines of code.
> Best regards.
> --
> Marc Nuri
> http://blog.marcnuri.com
> On Fri, May 8, 2009 at 11:14 AM, Christian Helmbold <
> [email protected]> wrote:
>
>>
>> I think the difference between sub classing and static factory methods is a
>> matter of taste in this case.
>>
>> If I have many fields, I'd need many classes for them. So I'd group them in
>> a sub package. In the case of factory methods I'd group the methods to
>> create fields in a class instead of a package.
>>
>> Subclass:
>>
>> 1    class UserEmailField extends TextField {
>> 2      public UserEmailField(String id, IModel model) {
>> 3        super(id, model);
>> 4        setRequired(true);
>> 5        add(EmailAddressValidator.getInstance())
>> 6        add(UniqueValidator.unique(SystemUser.class, "email"));
>> 7      }
>> 8    }
>>
>> Factory method:
>>
>> 1    public static TextField emailTextField(String id){
>> 2        return (TextField) new TextField(id)
>> 3                    .setRequired(true)
>> 4                    .add(EmailAddressValidator.getInstance())
>> 5                    .add(UniqueValidator.unique(SystemUser.class,
>> "email"));
>> 6    }
>>
>> Your answer shows me, that there is no dramatically simpler way to do this.
>> If you ignore the two lines for factory class declaration factory methods
>> are even a bit shorter. Or is there an advantage of sub classing that I have
>> missed?
>>
>> Regards,
>> Christian
>>
>>
>>
>> ----- Ursprüngliche Mail ----
>> > Von: Igor Vaynberg <[email protected]>
>> > An: [email protected]
>> > Gesendet: Freitag, den 8. Mai 2009, 09:08:34 Uhr
>> > Betreff: Re: How to avoid code duplication on forms?
>> >
>> > much simpler
>> >
>> > class UserEmailField extends TextField {
>> >   public UserEmailField(String id, IModel model) {
>> >     super(id, model);
>> >     add(EmailAddressValidator.getInstance())
>> >     add(UniqueValidator.unique(SystemUser.class, "email"));
>> >    }
>> > }
>>
>>
>>
>>
>>
>> ---------------------------------------------------------------------
>> 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