in that case i think you should do what martijn said because that is proper encapsulation. how else can you reuse that combination elsewhere?

IModel model=new Model(new Date());
WebMarkupContainer composite=new WebMarkupContainer("composite", model));
composite.add(new TextFIeld("date", model));
composite.add(new TextField("time", model));

but why not encapsulate it like martijn showed you?

-Igor



On 5/8/06, Ittay Dror <[EMAIL PROTECTED]> wrote:


Igor Vaynberg wrote:
> why not this?
>
> WebMarkupContainer composite=new WebMarkupContainer("id", new
> CompoundPropertyModel(new ValueMap()));
> composite.add(new TextField("date"));
> composite.add(new TextField("time"));
>
>
> this does what you want right?
> composite's model is a map whose date key contains the value of the date
> textfield, and time key that of time textfield.

it's not what i wished for.

i wanted my model to contain a Date value, part of each is used by the date text field and part by the time date field.

i can do something like
form.add(new TextField("date", new Model(getDate(date))));
form.add(new TextField("time", new Model(getTime(date))));

and in onSubmit do something like
toDate(getDateValue(), getTimeValue())

where getDateValue() locates the 'date' text field (how do i do that?) and returns its model value (the date part) and getTimeValue() does a similar thing for the time part

but, what i wanted was to create something reusable, that can be used elsewhere also.

WebMarkupContainer composite=new WebMarkupContainer("id", new IValueAdapter(){...}); // IValueAdapter can get/set parts of a value it is
                                                                                     // the equivalent of getDate, getTime, toDate etc.
composite.add(new TextField("date"));
composite.add(new TextField("time"));

(the model is gotten from the form, but of course the composite component can have its own (in another constructor))


>
> -Igor
>
>
> On 5/8/06, *Ittay Dror* < [EMAIL PROTECTED]
> <mailto:[EMAIL PROTECTED]>> wrote:
>
>     that is not my problem.
>
>     my problem is that i have two components (text fields) - one for
>     date, one for time, whose combined value is my model value.
>
>     i can, of course, create a custom model, and onSubmit get its
>     values, combine them, and put in the form's model. but this is
>     awkward, and not component oriented.
>
>     i want to create a component that means "the values of the children
>     of this component will be combined to its value"
>
>     ittay
>
>     Martijn Dashorst wrote:
>      > Ittay,
>      >
>      > 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
>     <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]
>     <mailto: [EMAIL PROTECTED]>
>      > <mailto:[EMAIL PROTECTED] <mailto:[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]
>     <mailto: [EMAIL PROTECTED]>
>      >     <mailto: [EMAIL PROTECTED] <mailto:[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] <mailto:[EMAIL PROTECTED]> <mailto:
>     [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>>
>      >      >> +972-3-6081994 Fax: +972-3-6081841
>      >      >>
>      >      >> http://www.openQRM.org <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
>     <http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 >
>      >
>     <http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
>     <http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642>>
>      >      >> _______________________________________________
>      >      >> Wicket-user mailing list
>      >      >> Wicket-user@lists.sourceforge.net
>     <mailto: Wicket-user@lists.sourceforge.net>
>      >     <mailto: Wicket-user@lists.sourceforge.net
>     <mailto: 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
>     <http://sel.as-us.falkag.net/sel?cmd=k&kid0709&bid&3057&dat1642>
>      >
>     <http://sel.as-us.falkag.net/sel?cmd=k&kid%120709&bid&3057&dat%121642
>     < http://sel.as-us.falkag.net/sel?cmd=k&kid%120709&bid&3057&dat%121642>>
>      >      > _______________________________________________
>      >      > Wicket-user mailing list
>      >      > Wicket-user@lists.sourceforge.net
>     <mailto:Wicket-user@lists.sourceforge.net >
>      >     <mailto:Wicket-user@lists.sourceforge.net
>     <mailto:Wicket-user@lists.sourceforge.net >>
>      >      > https://lists.sourceforge.net/lists/listinfo/wicket-user
>     < https://lists.sourceforge.net/lists/listinfo/wicket-user>
>      >     <https://lists.sourceforge.net/lists/listinfo/wicket-user>
>      >      >
>      >
>      >
>      >     --
>      >     ===================================
>      >     Ittay Dror
>      >     Chief architect, openQRM TL,
>      >     R&D, Qlusters Inc.
>      >     [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> <mailto:
>     [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>>
>      >     +972-3-6081994 Fax: +972-3-6081841
>      >
>      >     http://www.openQRM.org <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
>     <http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 >
>      >
>     <http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
>     <http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642>>
>      >     _______________________________________________
>      >     Wicket-user mailing list
>      >     Wicket-user@lists.sourceforge.net
>     <mailto: Wicket-user@lists.sourceforge.net>
>      >     <mailto: Wicket-user@lists.sourceforge.net
>     <mailto: Wicket-user@lists.sourceforge.net>>
>      >     https://lists.sourceforge.net/lists/listinfo/wicket-user
>     < https://lists.sourceforge.net/lists/listinfo/wicket-user>
>      >
>      >
>      >
>      >
>      > --
>      > Wicket 1.2 is coming! Write Ajax applications without touching
>     _javascript_!
>      > -- http://wicketframework.org
>
>
>     --
>     ===================================
>     Ittay Dror
>     Chief architect, openQRM TL,
>     R&D, Qlusters Inc.
>     [EMAIL PROTECTED] <mailto:[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
>     < http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642>
>     _______________________________________________
>     Wicket-user mailing list
>     Wicket-user@lists.sourceforge.net
>     <mailto: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

Reply via email to