Igor,
The most verbose code is the following. It creates the FeedbackPanel and
two fields: a check-in date and a check-out date. The comments are a bit
heavy because this is a proof-of-concept app. At this point, and such "best
practices" pointers are more than welcome. Thank you.
...Oh, and the CylleniusCalendar (our underlying app is named Cyllenius) is
simply a sub-class of DatePicker with a HeaderContributor.forCss() to
increase its z-index a a value greater than that of the ModalWindow from
which it is opened.
private void addReservationDates()
{
// create the feedback panel
FeedbackPanel feedback = new FeedbackPanel("feedback");
feedback.setOutputMarkupId(true);
add(feedback);
// create the check-in field
DateTextField checkIn = new DateTextField("checkIn", new
PropertyModel(roomRequest, "checkIn"),
"MM/dd/yyyy");
checkIn.setOutputMarkupId(true);
checkIn.setRequired(true);
checkIn.add(DateValidator.minimum(getToday()));
add(buildAjaxFeedbackBorder("checkInBorder", checkIn, feedback));
// create a date picker for the check-in field
add(new CylleniusCalendar("checkInPicker", checkIn));
// create the check-out field
DateTextField checkOut = new DateTextField("checkOut", new
PropertyModel(roomRequest,
"checkOut"), "MM/dd/yyyy");
checkOut.setOutputMarkupId(true);
checkOut.setRequired(true);
add(buildAjaxFeedbackBorder("checkOutBorder", checkOut, feedback));
// create a date picker for the check-out field
add(new CylleniusCalendar("checkOutPicker", checkOut));
// require checkIn to be before checkOut
add(new DatesComparatorValidator(checkIn, checkOut));
}
private FormComponentFeedbackBorder buildAjaxFeedbackBorder(String
borderId,
FormComponent component, final FeedbackPanel feedback)
{
final FormComponentFeedbackBorder border = new
FormComponentFeedbackBorder(borderId);
border.add(component);
border.setOutputMarkupId(true);
component.add(new AjaxFormComponentUpdatingBehavior("onblur") {
private static final long serialVersionUID =
-8868206053122717303L;
protected void onUpdate(AjaxRequestTarget target)
{
target.addComponent(feedback);
target.addComponent(border);
}
});
return border;
}
On 2/7/07, Igor Vaynberg <[EMAIL PROTECTED]> wrote:
On 2/7/07, Scott Swank <[EMAIL PROTECTED]> wrote:
>
> 2. Overall there was a preference for Wicket's Java components over
> JSF's taglibs and backing bean code. This was not a unanimous preference,
> and taglibs are much more concise than Wicket code. However, the cleanness
> of the resulting HTML was a factor in Wicket's favor and the rapidity of the
> development effort largely offset the comparative verbosity of the code
> base. This verbosity was most evident in ajax form feedback: feedback
> panel, text field, ajax feedback border, ajax behavior, etc.
got any examples of this verbouse code? i am doing something similar in a
project i am building with 2.0 and i was able to factor out a lot of this
stuff so its not so bad. maybe we can help you do the same.
-igor
-------------------------------------------------------------------------
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
--
Scott Swank
reformed mathematician
-------------------------------------------------------------------------
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