On Tue, May 20, 2008 at 3:39 PM, Hoover, William <[EMAIL PROTECTED]> wrote:
> sure, if you know to override NumberValidator.minimum with:
>
> label.myminimum=My Object at row: {0} with value
> NumberValidator.minimum=${label} '${input}' must be smaller than
> ${minimum}
>
> It seems odd because:
> 1) NumberValidator.minimum (or any other entry in
> Application.properties) does not use ${label} by default

i have argued for this, but ive been met with resistance. reasoning
was that not everyone uses setLabel() for every component.

> 2) label.myminimum has to be worded in a way that would accommodate all
> types of IValidator that may be used

right, the ones in application.properties are generic. of course you
can override the message just for that page/component by simply
defining your own NumberValidator.minimum key

and if i remember correctly you can do without the label entirely,
defining your own componentid.NumberValidator.minimum - but dont quote
me on this

> 3) label.myminimum shouldn't really exist on it's own

of course not, you are calling setlabel(new
resourcemodel("label.minimum")) on that one specific component, its
not meant to be reusable

> 4) It's not very intuitive to use the label because... well... it's a
> label, not a validation message :o)

well, this is a label meant to be used inside a validation message. so
there :) i see nothing counter intuitive about

add(new textfield("fname").setlabel(new model("first name")); and
defining a default StringValidator.minimum=${label} must be at least
${minimum} characters for messages like "first name must be at least 5
characters"

>
> If there were a means to add a IModel when adding any of the validators
> (as described) it would follow the standard Wicket protocol of using
> models. Any thoughts?

setLabel() takes in a model... the fact is that the label is scoped to
the formcomponent, not validation message most of the time. eg

add(new textfield("fname").add(stringvalidator.minimum(5)).add(new
uniqueusernamevalidator());

so with your proposal i would have to give the same "first name" model
to both validators, why? i can declare it once on the textfield, the
label of the formcomponent wont change validator to validator.

-igor

>
> -----Original Message-----
> From: Igor Vaynberg [mailto:[EMAIL PROTECTED]
> Sent: Tuesday, May 20, 2008 1:52 PM
> To: [email protected]
> Subject: Re: Providing IModel to Validators
>
> that is why formcomponents have a setLabel(IModel<String>) whose text is
> then available via ${label} place holder.
>
> -igor
>
>
> On Tue, May 20, 2008 at 7:14 AM, Hoover, William <[EMAIL PROTECTED]>
> wrote:
>>
>> What does everyone think about updating the Wicket core validators to
>> contain an optional IModel?
>>
>> Simple Use Case:
>> # properties file
>> label.myminimum=My Object at row: {0} with value '${input}' must be
>> smaller than ${minimum}
>>
>> ...
>> final RefreshingView myView = new RefreshingView("tr-my-object-view")
> {
>>        protected final void populateItem(final Item item) {
>>                ...
>>                final TextField myTextField = new
>> TextField("input-text-field");
>>                final IModel myMinValidatorModel = new
>> StringResourceModel("label.myminimum", item, null, new Object[] {
>> item.getIndex() });
>>
>> myTextField.add(NumberValidator.MinimumValidator.minimum(10L,
>> myMinValidatorModel);
>>                ...
>>        }
>> };
>> ...
>>
>> So, instead of seeing a very general message that could apply to any
>> number of fields that may contain the same value:
>> ...
>> '0' is smaller than the minimum of 10.
>> '0' is smaller than the minimum of 10.
>> '0' is smaller than the minimum of 10.
>> ...
>>
>> You would see this:
>> ...
>> My Object at row: 1 with value '0' must be smaller than 10 My Object
>> at row: 12 with value '0' must be smaller than 10 My Object at row: 20
>
>> with value '0' must be smaller than 10 ...
>>
>> The problem with just overriding the "NumberValidator.minimum"
>> resource in this example is that makes it difficult to add custom
>> property values (i.e. the index in example).
>>
>>
>> ---------------------------------------------------------------------
>> 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