wicket-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Martin Grigorov <mgrigo...@apache.org>
Subject Re: How to pass model changes to parent components? onModelChanged() not working
Date Mon, 21 Jan 2013 21:52:28 GMT
Hi,

Wicket updates the model with the new value. If this model is shared
between several components then all of them have the new value for free. No
need to notify them.
If you still need to notify then you can use #updateModel() method -
org.apache.wicket.markup.html.form.FormComponent#updateModel.

CompoundPropertyModel is meant for components which have children. Such
component may have a compound model and all its children can update the
value in the respective branch of this model.


On Mon, Jan 21, 2013 at 7:30 PM, Ondrej Zizka <ozizka@redhat.com> wrote:

> Hi all,
>
> I have a component containing a form with many TextFields.
> The way it should work is that when changed, the value should be persisted
> immediately (no Save button, all through AJAX).
>
> The AJAX calls work fine, the value gets to the model.
>
> The code to save the model (and the entity contained) is in the parent
> component.
> I thought I would override onModelChanged() to propagate the changes from
> the components to the parent.
> But onModelChanged() is not called.
>
> Parent has its own model as class member field.
> The subcomponents use this:
>
>     ReleaseTraitRowPanel( String id, IModel<IHasTraits> relModel, ... ) {
>         ...
>         PropertyModel<String> traitModel = new PropertyModel(
> relModel.getObject().**getTraits(), prop);
>
>         EditableLink4 link = new EditableLink4("link", traitModel){
>             // Pass the change notification to upper level. TODO: Does
> Wicket do this automatically?
>             @Override protected void onModelChanged() {
>                 ReleaseTraitRowPanel.this.**onModelChanged();
>             }
>         };
>         ...
>
>     }
>
> How should it be done?
> Should I pass the onModelChanged() at all? Or does wicket have some way to
> notify the other model of changes?
>
> Related - is CompoundPropertyModel only for forms, or can I use it with
> any component? I could use it here - `prop` is the same as id.
>
> Thanks,
> Ondra
>
> ------------------------------**------------------------------**---------
> To unsubscribe, e-mail: users-unsubscribe@wicket.**apache.org<users-unsubscribe@wicket.apache.org>
> For additional commands, e-mail: users-help@wicket.apache.org
>
>


-- 
Martin Grigorov
jWeekend
Training, Consulting, Development
http://jWeekend.com <http://jweekend.com/>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message