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