It seems like you need to create a Panel instead So a much cleaner design, and more reusable component would be:
public class MyDatePicker extends Panel {
public MyDatePicker(String id, IModel model) {
super(id);
add(new DatePicker("datepicker", model));
add(new TextField("textfield", model));
}
}
<html>
<body>
<wicket:panel>
<input wicket:id="textfield" type="text" /><span wicket:id="datepicker" />
</wicket:panel>
</body>
</html>
Add it to any form, and it will work:
form.add(new MyDatePicker("date", new PropertyModel(person, "birthdate")));
Overriding add is not the right thing to do. Add is usually called in constructors, and it is generally considered a bad thing to call overridable methods in a constructor as the type hierarchy is not completely initialized.
We made quite a lot of method final in our API, see for the reason the following faq:
http://wicketframework.org/faqs.html#why-final
We are also refactoring our component creation/hierarchy composition strategy in the next version of Wicket. The add method will be removed as a consquence. So depending on overriding add is not the way to go.
Martijn
On 5/8/06, Ittay Dror <[EMAIL PROTECTED]> wrote:
i want to set the model of the child. i thought of doing that by:
child.setModel(myModel);
super.add(child);
what is wrong with that? how else can i do it?
here's the long story of what i'm trying to acheive:
i have a web page with two text fields, for date and time (for the date, i'm already using DatePicker). (they are used to schedule an action)
my model has a Date field (CompoundPropertyModel), which i want to be set with the date and time (together)
so, i thought it would be nice to create a CompositeComponent, which will use a MapModel (IModel implementation mapping id to value) in the children. it will have its own model, set by the client, and hooks/strategy to separate its model value to that of the child components, and to restore it when the form is submitted.
so, the first thing is to set the MapModel in the child components
ittay
Juergen Donnerstag wrote:
> You want to do what? add() is used to add Wicket Components to the
> component hierarchy. It is NOT used to set or add a model. Child
> components can be access by get(childId).
>
> Juergen
>
> On 5/8/06, Ittay Dror < [EMAIL PROTECTED]> wrote:
>> I want to create a MarkupContainer component which sets the model of
>> contained components. but MarkupContainer.add is final, so i can't
>> override it. why? what else can i do?
>>
>> Thanx,
>> Ittay
>>
>> --
>> ===================================
>> Ittay Dror
>> Chief architect, openQRM TL,
>> R&D, Qlusters Inc.
>> [EMAIL PROTECTED]
>> +972-3-6081994 Fax: +972-3-6081841
>>
>> http://www.openQRM.org
>> - Keeps your Data-Center Up and Running
>>
>>
>> -------------------------------------------------------
>> Using Tomcat but need to do more? Need to support web services, security?
>> Get stuff done quickly with pre-integrated technology to make your job
>> easier
>> Download IBM WebSphere Application Server v.1.0.1 based on Apache
>> Geronimo
>> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
>> _______________________________________________
>> Wicket-user mailing list
>> Wicket-user@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/wicket-user
>>
>
>
> -------------------------------------------------------
> Using Tomcat but need to do more? Need to support web services, security?
> Get stuff done quickly with pre-integrated technology to make your job
> easier
> Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
> http://sel.as-us.falkag.net/sel?cmd=k&kid0709&bid&3057&dat1642
> _______________________________________________
> Wicket-user mailing list
> Wicket-user@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/wicket-user
>
--
===================================
Ittay Dror
Chief architect, openQRM TL,
R&D, Qlusters Inc.
[EMAIL PROTECTED]
+972-3-6081994 Fax: +972-3-6081841
http://www.openQRM.org
- Keeps your Data-Center Up and Running
-------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Wicket-user mailing list
Wicket-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wicket-user
--
Wicket 1.2 is coming! Write Ajax applications without touching _javascript_!
-- http://wicketframework.org