SmartGWT is severly lacking a nice date/time picker/chooser. So for now, you need to use a work-around. The solution is to use the date picker in combination with a suitable method of selecting time. The standard TimeItem in smartGWT is particularly shoddy and user-unfriendly.
What you want is a spinner for the hours, a spinner for the seconds and a decent defaulting to today's date and time.
Well, fret no more, here is a solution. For the purposes of this example, we are implementing a send timestamp where the user selects a date and time to send an item. It gets placed on a dynamic form item so that it can be added to a layout.
Note that I set the borders here so that you can see the way that it's laid out. You will want to remove those lines in the real world.
final DynamicForm scheduleForm = new DynamicForm();
DateItem sendDate = new DateItem();
sendDate.setDisplayFormat(DateDisplayFormat.TOSERIALIZEABLEDATE);
sendDate.setEnforceDate(true);
sendDate.setRequired(true);
sendDate.setInputFormat("YMD");
sendDate.setTitle("Send at:");
// This part sets up the spinners for choosing a time to send at
// We need to default it to now
Date rightNow= new Date();
int hour= rightNow.getHours();
int min=rightNow.getMinutes();
SpinnerItem sendTimeHr = new SpinnerItem();
sendTimeHr.setName("sendTimeHr");
sendTimeHr.setMax(23);
sendTimeHr.setMin(0);
sendTimeHr.setTitle("Time:");
sendTimeHr.setWidth(2);
sendTimeHr.setDefaultValue(hour);
SpinnerItem sendTimeMin = new SpinnerItem();
sendTimeMin.setName("sendTimeMins");
sendTimeMin.setMax(59);
sendTimeMin.setMax(0);
sendTimeMin.setTitle(" ");
sendTimeMin.setDefaultValue(min);
scheduleForm.setNumCols(6);
scheduleForm.setWidth(414);
scheduleForm.setBorder("2px solid black");
scheduleForm.setCellBorder(1);
scheduleForm.setFields(sendDate,sendTimeHr,sendTimeMin);
Thursday 18 February 2010
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment