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...@nuboit.de> on 2013/07/23 15:17:37 UTC

How to make an own panel work like an e.g. TextField / joining the model hierarchy of page/form

Hi all,
I implemented a "TextField-Panel".
Its kind of FormComponentPanel, but not really... do not have a 
convertInput() situation.
Just additional behaviors and some own l18n stuff...

Its already working fine, but what I always have to to is, getting the 
modelobject manually and forward into my form (model object), where it 
is used.

I would like to implement it in a way, behaving like CompundProperty 
modeled forms.

I read about an IComponentInheritance marker interface, but I do not 
know, how to use it.

Can some one help?

kind regards and thanx
Patrick
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org


SOLVED / Re: How to make an own panel work like an e.g. TextField / joining the model hierarchy of page/form

Posted by Patrick Davids <pa...@nuboit.de>.
Hi Martin,
thanx, its working, now.

I had some additional convenience constructors in my panel with empty 
model object inits, because some days ago I always ran into "try to set 
on empty model object exceptions". I kept them and I think they forced 
side-effects.

Just having one, only with an id, made it work.

kind regards
Patrick

Am 24.07.2013 09:53, schrieb Martin Grigorov:
> Hi Patrick,
>
>
> On Wed, Jul 24, 2013 at 10:36 AM, Patrick Davids
> <pa...@nuboit.de>wrote:
>
>> Hi Martin,
>> concerning the IComponentInheritedModel I did not not try anything in my
>> panel since yet, because I suppose it should work from the scratch, when
>> a manually wrap the ModelObject on form level into CompundPropertyModel.
>>
>> As I can see CompoundPropertyModel is an IComponentInheritedModel, and I
>> understand, why this works.
>>
>> Form f = new Form("anyid", new CompoundPropertyModel(PersonObject));
>> f.add(new TextField("personName"));
>>
>>
>>
>> My question focused more on, what I should implement in
>> MyOwnTextFieldPanel("personName") to act the same way like an usual
>> textfield, not what I have to do on the parent component/form.
>> An ususal TextField "joins" the Form and its inner CompundPropertyModel
>> (Handling) in a magic way, and I would like to have the same feature for
>> MyOwnTextField.
>>
>
> It should work the same way.
> Just make sure your panel "participates" in the component path.
> For example:
>
> Form f = new Form("anyid", new CompoundPropertyModel(personObject));
> f.add(new YourPanel("namesObject"));
>
> class YourPanel extends Panel {
>    public YourPanel(Sting id) {
>       super(id);
>
>       add(new TextField("first"));
>       add(new TextField("last"));
>    }
> }
>
>
> With this code the text field's model would be:
> personObject.getNamesObject().getFirst()
>
>
>> regards
>> Patrick
>>
>> Am 23.07.2013 15:21, schrieb Martin Grigorov:
>>> Hi,
>>>
>>>
>>> On Tue, Jul 23, 2013 at 4:17 PM, Patrick Davids <
>> patrick.davids@nuboit.de>wrote:
>>>
>>>> Hi all,
>>>> I implemented a "TextField-Panel".
>>>> Its kind of FormComponentPanel, but not really... do not have a
>>>> convertInput() situation.
>>>> Just additional behaviors and some own l18n stuff...
>>>>
>>>> Its already working fine, but what I always have to to is, getting the
>>>> modelobject manually and forward into my form (model object), where it
>>>> is used.
>>>>
>>>> I would like to implement it in a way, behaving like CompundProperty
>>>> modeled forms.
>>>>
>>>> I read about an IComponentInheritance marker interface, but I do not
>>>>
>>>
>>> Do you mean org.apache.wicket.model.IComponentInheritedModel ?
>>> It has a demo code in its javadoc.
>>> Show us what you tried.
>>>
>>>
>>>> know, how to use it.
>>>>
>>>> Can some one help?
>>>>
>>>> kind regards and thanx
>>>> Patrick
>>>> ---------------------------------------------------------------------
>>>> 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


Re: How to make an own panel work like an e.g. TextField / joining the model hierarchy of page/form

Posted by Martin Grigorov <mg...@apache.org>.
Hi Patrick,


On Wed, Jul 24, 2013 at 10:36 AM, Patrick Davids
<pa...@nuboit.de>wrote:

> Hi Martin,
> concerning the IComponentInheritedModel I did not not try anything in my
> panel since yet, because I suppose it should work from the scratch, when
> a manually wrap the ModelObject on form level into CompundPropertyModel.
>
> As I can see CompoundPropertyModel is an IComponentInheritedModel, and I
> understand, why this works.
>
> Form f = new Form("anyid", new CompoundPropertyModel(PersonObject));
> f.add(new TextField("personName"));
>
>
>
> My question focused more on, what I should implement in
> MyOwnTextFieldPanel("personName") to act the same way like an usual
> textfield, not what I have to do on the parent component/form.
> An ususal TextField "joins" the Form and its inner CompundPropertyModel
> (Handling) in a magic way, and I would like to have the same feature for
> MyOwnTextField.
>

It should work the same way.
Just make sure your panel "participates" in the component path.
For example:

Form f = new Form("anyid", new CompoundPropertyModel(personObject));
f.add(new YourPanel("namesObject"));

class YourPanel extends Panel {
  public YourPanel(Sting id) {
     super(id);

     add(new TextField("first"));
     add(new TextField("last"));
  }
}


With this code the text field's model would be:
personObject.getNamesObject().getFirst()


> regards
> Patrick
>
> Am 23.07.2013 15:21, schrieb Martin Grigorov:
> > Hi,
> >
> >
> > On Tue, Jul 23, 2013 at 4:17 PM, Patrick Davids <
> patrick.davids@nuboit.de>wrote:
> >
> >> Hi all,
> >> I implemented a "TextField-Panel".
> >> Its kind of FormComponentPanel, but not really... do not have a
> >> convertInput() situation.
> >> Just additional behaviors and some own l18n stuff...
> >>
> >> Its already working fine, but what I always have to to is, getting the
> >> modelobject manually and forward into my form (model object), where it
> >> is used.
> >>
> >> I would like to implement it in a way, behaving like CompundProperty
> >> modeled forms.
> >>
> >> I read about an IComponentInheritance marker interface, but I do not
> >>
> >
> > Do you mean org.apache.wicket.model.IComponentInheritedModel ?
> > It has a demo code in its javadoc.
> > Show us what you tried.
> >
> >
> >> know, how to use it.
> >>
> >> Can some one help?
> >>
> >> kind regards and thanx
> >> Patrick
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> >> For additional commands, e-mail: users-help@wicket.apache.org
> >>
> >>
> >
>

Re: How to make an own panel work like an e.g. TextField / joining the model hierarchy of page/form

Posted by Patrick Davids <pa...@nuboit.de>.
Hi Martin,
concerning the IComponentInheritedModel I did not not try anything in my 
panel since yet, because I suppose it should work from the scratch, when 
a manually wrap the ModelObject on form level into CompundPropertyModel.

As I can see CompoundPropertyModel is an IComponentInheritedModel, and I 
understand, why this works.

Form f = new Form("anyid", new CompoundPropertyModel(PersonObject));
f.add(new TextField("personName"));



My question focused more on, what I should implement in 
MyOwnTextFieldPanel("personName") to act the same way like an usual 
textfield, not what I have to do on the parent component/form.
An ususal TextField "joins" the Form and its inner CompundPropertyModel 
(Handling) in a magic way, and I would like to have the same feature for 
MyOwnTextField.

regards
Patrick

Am 23.07.2013 15:21, schrieb Martin Grigorov:
> Hi,
>
>
> On Tue, Jul 23, 2013 at 4:17 PM, Patrick Davids <pa...@nuboit.de>wrote:
>
>> Hi all,
>> I implemented a "TextField-Panel".
>> Its kind of FormComponentPanel, but not really... do not have a
>> convertInput() situation.
>> Just additional behaviors and some own l18n stuff...
>>
>> Its already working fine, but what I always have to to is, getting the
>> modelobject manually and forward into my form (model object), where it
>> is used.
>>
>> I would like to implement it in a way, behaving like CompundProperty
>> modeled forms.
>>
>> I read about an IComponentInheritance marker interface, but I do not
>>
>
> Do you mean org.apache.wicket.model.IComponentInheritedModel ?
> It has a demo code in its javadoc.
> Show us what you tried.
>
>
>> know, how to use it.
>>
>> Can some one help?
>>
>> kind regards and thanx
>> Patrick
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>> For additional commands, e-mail: users-help@wicket.apache.org
>>
>>
>

Re: How to make an own panel work like an e.g. TextField / joining the model hierarchy of page/form

Posted by Martin Grigorov <mg...@apache.org>.
Hi,


On Tue, Jul 23, 2013 at 4:17 PM, Patrick Davids <pa...@nuboit.de>wrote:

> Hi all,
> I implemented a "TextField-Panel".
> Its kind of FormComponentPanel, but not really... do not have a
> convertInput() situation.
> Just additional behaviors and some own l18n stuff...
>
> Its already working fine, but what I always have to to is, getting the
> modelobject manually and forward into my form (model object), where it
> is used.
>
> I would like to implement it in a way, behaving like CompundProperty
> modeled forms.
>
> I read about an IComponentInheritance marker interface, but I do not
>

Do you mean org.apache.wicket.model.IComponentInheritedModel ?
It has a demo code in its javadoc.
Show us what you tried.


> know, how to use it.
>
> Can some one help?
>
> kind regards and thanx
> Patrick
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>
>