OK.  It's clicked.  I was hoping to have a simple ajaxed submit link
without having to create a fake property on the model object.  No problem,
I can see what I missed.

Thanks for your help Igor.

Tim

> you said it yourself:
>
> "Insure that the component identifier names match
> the appropriate property names."
>
> what that says is that the model you get is the property of the model
> object that is in the cpm with the name of component id.
>
> so since your links id is "foo" it will try to pull out the model
> object from the cpm and call getfoo() on it, the result of which is
> the model object of the link
>
> -igor
>
>
> On Tue, Apr 8, 2008 at 12:52 PM, Tim Squires <[EMAIL PROTECTED]> wrote:
>> I have read it - a few times over the last 3 years of using Wicket and
>>  even bought the book ;)
>>
>>  It says
>>
>>  "To use a CompoundPropertyModel, simply set one as the model for a
>>  container, such as a Form or a Page. Create the contained components
>> with
>>  no model of their own. Insure that the component identifier names match
>>  the appropriate property names."
>>
>>  The AjaxSubmitLink is picking-up the parent forms compound property
>> model
>>  but only checking to see if the "mylink" property exists when onSubmit
>>  calls getModelObject().
>>
>>  I would like to get the Forms model via getModelObject but because it
>>  errors when called, I have to either set a false model on the
>>  AjaxSubmitLink or get the model object outside of the onSubmit, assign
>> it
>>  to a final property and then use it in the onSubmit.
>>
>>  I'm happy to admit that I'm doing something wrong but I cannot see what
>> it
>>  is???
>>
>>  Thanks again,
>>  Tim
>>
>>
>>
>>  > no, components do not randomly pick up models from their parents. i
>>  > would suggest reading the models wiki page.
>>  >
>>  > -igor
>>  >
>>  >
>>  > On Mon, Apr 7, 2008 at 3:11 PM, Tim <[EMAIL PROTECTED]> wrote:
>>  >> Thanks Igor but should it not pick-up the model from the Form?
>> There's
>>  >> no
>>  >>  constructor that takes a model.  Should the AjaxSubmitLink(id,
>> form)
>>  >>  constructor be used with the Form that it's being added to?  e..g
>>  >>
>>  >>  MyForm extends Form {
>>  >>  public MyForm(....){
>>  >>  ....
>>  >>  add( new AjaxSubmitLink("mylink",this){
>>  >>  ....
>>  >>  });
>>  >>  }}
>>  >>
>>  >>  If it's already bound to a Form, should it not pick-up the model
>> used
>>  >> by
>>  >>  the form?
>>  >>
>>  >>  Am I looking at the problem/solution the wrong way???
>>  >>
>>  >>  Thanks again,
>>  >>  Tim
>>  >>
>>  >>
>>  >>
>>  >>  > you forgot to give ajaxsubmitlink a model, so getmodelobject()
>> will
>>  >>  > either return null or a compound model.confirm - neither of which
>> i
>>  >>  > think you want.
>>  >>  >
>>  >>  > -igor
>>  >>  >
>>  >>  >
>>  >>  > On Mon, Apr 7, 2008 at 1:00 PM, Tim Squires <[EMAIL PROTECTED]>
>> wrote:
>>  >>  >> Hi,
>>  >>  >>
>>  >>  >>  When adding an AjaxSubmitLink, the onSubmit method tries to
>> access
>>  >> a
>>  >>  >>  property of the model object that does not exists:
>>  >>  >>
>>  >>  >>  -------------------
>>  >>  >>             final AjaxSubmitLink confirmLink = new
>>  >>  >>  AjaxSubmitLink("confirm") {
>>  >>  >>                 @Override
>>  >>  >>                 public void onSubmit(final AjaxRequestTarget
>> target,
>>  >>  >>                         final Form form) {
>>  >>  >>                     if (((Will) getModelObject()).getExecutor()
>> !=
>>  >> null)
>>  >>  >> {
>>  >>  >>                         willModalWindow.show(target);
>>  >>  >>                     } else {
>>  >>  >>                         warn("Please choose an executor.");
>>  >>  >>                         target.addComponent(feedback);
>>  >>  >>                     }
>>  >>  >>                 }
>>  >>  >>
>>  >>  >>                 @Override
>>  >>  >>                 public void onError(final AjaxRequestTarget
>> target,
>>  >>  >>                         final Form form) {
>>  >>  >>                     target.addComponent(feedback);
>>  >>  >>                 }
>>  >>  >>             };
>>  >>  >>
>>  >>  >>             add(confirmLink);
>>  >>  >>  -------------------
>>  >>  >>
>>  >>  >>  It tries to access the "confirm" property of the Model, in this
>>  >> case a
>>  >>  >>  Will object.
>>  >>  >>
>>  >>  >>  -------------------
>>  >>  >>  org.apache.wicket.WicketRuntimeException: No get method defined
>> for
>>  >>  >> class:
>>  >>  >>  class crystalmark.willfinder.model.Will expression: confirm
>>  >>  >>      at
>>  >>  >>  
>> org.apache.wicket.util.lang.PropertyResolver.getGetAndSetter(PropertyResolver.java:433)
>>  >>  >>      at
>>  >>  >>  
>> org.apache.wicket.util.lang.PropertyResolver.getObjectAndGetSetter(PropertyResolver.java:275)
>>  >>  >>      at
>>  >>  >>  
>> org.apache.wicket.util.lang.PropertyResolver.getValue(PropertyResolver.java:84)
>>  >>  >>      at
>>  >>  >>  
>> org.apache.wicket.model.AbstractPropertyModel.getObject(AbstractPropertyModel.java:113)
>>  >>  >>      at
>>  >> org.apache.wicket.Component.getModelObject(Component.java:1551)
>>  >>  >>      at
>>  >>  >>  
>> crystalmark.willfinder.page.components.EditWillPanel$EditWillForm$5.onSubmit(EditWillPanel.java:183)
>>  >>  >>      at
>>  >>  >>  
>> org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink$1.onSubmit(AjaxSubmitLink.java:94)
>>  >>  >>      at
>>  >>  >>  
>> org.apache.wicket.ajax.form.AjaxFormSubmitBehavior.onEvent(AjaxFormSubmitBehavior.java:128)
>>  >>  >>  -------------------
>>  >>  >>
>>  >>  >>  It's only when using the getModelObject method.  If I get the
>> Will
>>  >>  >> object
>>  >>  >>  from else-where it works fine.
>>  >>  >>
>>  >>  >>  Is this a problem with the way I'm using the model or a bug
>> with
>>  >>  >>  AjaxSubmitLink?  Should I add it to jira?
>>  >>  >>
>>  >>  >>  Wicket 1.3.3 + JDK 1.6 + Tomcat 6
>>  >>  >>
>>  >>  >>  Thanks,
>>  >>  >>  Tim
>>  >>  >>  -------------------
>>  >>  >>  http://www.tnwdb.com - Wicket Wills!
>>  >>  >>
>>  >>  >>
>>  >>  >>  
>> ---------------------------------------------------------------------
>>  >>  >>  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]
>>  >
>>  >
>>
>>
>>
>>  ---------------------------------------------------------------------
>>  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