Hi Sven,

On Fri, Feb 12, 2016 at 12:08 PM, Sven Meier <[email protected]> wrote:

> 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();


The modelObject should be the one before the form submit, no? Because
Form#updateModels() is called after the conversion and validations.
By calling the line above you basically ignore the submitted parameters.
I am missing something in your idea. What is it?


>
>   }
> }
>
> 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: [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