You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@wicket.apache.org by Patrick Davids <pa...@nubologic.com> on 2016/02/12 12:32:25 UTC

SOLVED / Re: Question / Modular FormComponents / FormComponentPanels / AbstractFormValidator and problems with model updates

Hi Sven,
thanx for your code-snippet.
Sometimes it is so easy...

Works perfect!

kind regards
Patrick

Am 12.02.2016 um 12:08 schrieb Sven Meier:
> Hi,
>
>  > Is it a good idea to implement such a case extending
> FormComponentPanel, or is FormComponentPanel for other purposes?
>
> usuallly a FormComponentPanel is used when you want to combine the input
> of several formComponents into a single model object, e.g.
> MultiFileUploadField and DateTimeField.
>
> But you can also use it for validation of whole model objects:
>
> PersonPanel extends FormComponentPanel {
>    protected void convertInput() {
>      // converter input is just the current model object
>      setConvertedInput(getModelObject();
>    }
> }
>
> Form f = new Form(...);
> PersonPanel personPanel = new PersonPanel(...)
> personPanel.add(new XYValidator()); // <-- a validator that validates
> the 'converted' person
> f.add(personPanel);
>
> Have fun
> Sven
>
>
>
> On 12.02.2016 11:17, Patrick Davids wrote:
>> Hi all,
>> I would like to implement some kind of modular form components.
>>
>> So, a developer is able stick together a form to save e.g. person data
>> and adress data with different panels containing the particular needed
>> input fields (textfield, selectboxes etc).
>>
>> Form f = new Form(...);
>> f.add(new PersonFormComponentPanel(...));
>> f.add(new AddressFormComponentPanel(...));
>>
>> Both, PersonFormComponentPanel and AddressFormComponentPanel are
>> simple panels, now, and it is working so far.
>>
>> Now, I have a special use-case, which needs to add an
>> AbstractFormValidator to the form.
>>
>> Not to bypass the inner required textfields validations of
>> PersonFormComponentPanel, I can implement
>> FormComponent<?>[] getDependentFormComponents(){...}
>> of the AbstractFormValidator.
>>
>> BUT, it requieres to return FormComponents, not simple panels.
>> So, my idea was, just changing the implementation of
>> PersonFormComponentPanel extends Panel to PersonFormComponentPanel
>> extends FormComponentPanel, so the entire PersonFormComponentPanel
>> acts as FormComponent to be able to fullfill the FormComponent<?>[]
>> getDependentFormComponents(){...} return value.
>>
>> Unfortunately this is not working, and I dont know why...
>> My getInnerMostModel() of the PropertyResolver is always null and the
>> formcomponents model-update does not succeed / WicketRuntimeException.
>>
>> Maybe it has something todo with the need to implement
>> setConvertedInput() / getConvertedInput() which is mentioned in the
>> javadoc of FormComponentPanel?
>>
>> I'm not sure about that... maybe someone can help here?
>>
>> So... these are my questions:
>> Is it a good idea to implement such a case extending
>> FormComponentPanel, or is FormComponentPanel for other purposes?
>>
>> How can I achieve the binding of the dependend formcomponents to the
>> AbstractFormValidator, without exposing the inner formcomponents of
>> the PersonFormComponentPanel by providing a method like
>> PersonFormComponentPanel.getAllInnerFormComponents()?
>>
>> Am I able to keep the idea of extending FormComponentPanel by
>> implementing getConvertedInput(), but how to to that right?
>>
>> Thanx a lot for help
>> kind regards
>> Parick
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>> For additional commands, e-mail: users-help@wicket.apache.org
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>


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