What, 12 hours only? Where did you lose another 12? ;-)
On 9/7/05, Nick Heudecker <[EMAIL PROTECTED]> wrote:
> Okay, here's what worked for me:
>
> import org.apache.commons.logging.Log;
> import org.apache.commons.logging.LogFactory;
> import wicket.markup.html.form.DropDownChoice;
> import wicket.markup.html.form.FormComponent;
> import wicket.markup.html.form.IChoiceRenderer;
> import wicket.model.Model;
>
> import java.sql.Time;
> import java.util.Arrays;
> import java.util.Calendar;
> import java.util.GregorianCalendar;
> import java.util.List;
>
> public class TimeSelector extends FormComponent implements IChoiceRenderer
> {
>
> static Log log = LogFactory.getLog(TimeSelector.class);
> private static final List<String> hourList =
> Arrays.asList(new String[]{"1", "2", "3", "4", "5", "6", "7", "8",
> "9", "10", "11", "12"});
> private static final List<String> minuteList =
> Arrays.asList(new String[]{"00", "05", "10", "15", "20", "25",
> "30", "35", "40", "45", "50", "55"});
> private static final List<String> amPmList =
> Arrays.asList(new String[]{"AM", "PM"});
> private DropDownChoice hours;
> private DropDownChoice minutes;
> private DropDownChoice amPm;
> private Calendar c = Calendar.getInstance();
>
>
> public TimeSelector(final String id, Time t) {
> super(id);
>
> Model hourModel = new Model(getValueFromModel(t, Calendar.HOUR));
> hours = new DropDownChoice("hour", hourModel, hourList, this);
> add(hours);
>
> Model minuteModel = new Model(getValueFromModel(t,
> Calendar.MINUTE));
> minutes = new DropDownChoice("minute", minuteModel, minuteList,
> this);
> add(minutes);
>
> Model amPmModel = new Model(getValueFromModel(t, Calendar.AM_PM));
> amPm = new DropDownChoice("amPm", amPmModel, amPmList, this);
> add(amPm);
> }
>
> private String getValueFromModel(Time t, int component) {
> if (t == null) {
> return "";
> }
>
> c.setTime(t);
> switch (component) {
> case Calendar.HOUR:
> return Integer.toString(c.get(Calendar.HOUR));
> case Calendar.MINUTE:
> return Integer.toString(c.get(Calendar.MINUTE));
> default:
> return (c.get(Calendar.AM_PM) == Calendar.AM) ? "AM" :
> "PM";
> }
> }
>
> public void updateModel() {
> GregorianCalendar gc = new GregorianCalendar();
> String hourValue = hours.getInput();
> String minuteValue = minutes.getInput();
> String amPmValue = amPm.getInput();
> gc.set(Calendar.HOUR, Integer.parseInt(hourValue));
> gc.set(Calendar.MINUTE, Integer.parseInt(minuteValue));
> if (amPmValue.equals("AM")) {
> gc.set(Calendar.AM_PM, Calendar.AM);
> }
> else {
> gc.set(Calendar.AM_PM, Calendar.PM);
> }
>
> setModelObject(new Time(gc.getTime().getTime()));
> }
>
> public String getDisplayValue(Object object) {
> return object.toString();
> }
>
> public String getIdValue(Object object, int i) {
> return object.toString();
> }
> }
>
> Adding it to the page:
> add(new TimeSelector("endTime", s.getEndTime()));
>
> And the markup:
> <span wicket:id="endTime">
> <select wicket:id="hour"></select>:<select
> wicket:id="minute"></select>
> <select wicket:id="amPm"></select>
> </span>
>
>
-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference & EXPO
September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices
Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA
Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf
_______________________________________________
Wicket-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wicket-user