/ftr-gwt-library-date/src/main/java/eu/future/earth/gwt/client/date/picker/DatePickerDialog.java

http://ftr-gwt-library.googlecode.com/ · Java · 61 lines · 48 code · 13 blank · 0 comment · 7 complexity · 11895a260f227dade85e9771e623adaf MD5 · raw file

  1. package eu.future.earth.gwt.client.date.picker;
  2. import java.util.Date;
  3. import com.google.gwt.event.shared.HandlerRegistration;
  4. import com.google.gwt.user.client.DOM;
  5. import com.google.gwt.user.client.ui.DecoratedPopupPanel;
  6. import com.google.gwt.user.client.ui.Widget;
  7. import eu.future.earth.gwt.client.FtrGwtDatePickerCss;
  8. import eu.future.earth.gwt.client.date.picker.DateSelectEvent.DateSelectEventActions;
  9. public class DatePickerDialog extends DecoratedPopupPanel implements DateSelectListener, HasDateSelectHandlers {
  10. private DatePickerMonthNavigator whole = null;
  11. public DatePickerDialog(DatePickerRenderer renderer) {
  12. super(true);
  13. super.addStyleName(FtrGwtDatePickerCss.DIALOG);
  14. whole = new DatePickerMonthNavigator(renderer);
  15. setWidget(whole);
  16. whole.setWidth("250px");
  17. whole.addDateSelectEventHandler(this);
  18. }
  19. public void addWidgetToPicker(Widget newWidget) {
  20. whole.addWidgetToPicker(newWidget);
  21. };
  22. public void show(Widget below) {
  23. if (below == null) {
  24. super.show();
  25. super.center();
  26. } else {
  27. super.show();
  28. super.setPopupPosition(below.getAbsoluteLeft(), below.getAbsoluteTop() + below.getOffsetHeight() + 10);
  29. DOM.scrollIntoView(super.getElement());
  30. }
  31. }
  32. public void setSelectedDate(Date newDate) {
  33. whole.setSelectedDate(newDate);
  34. }
  35. public HandlerRegistration addDateSelectEventHandler(DateSelectListener handler) {
  36. return addHandler(handler, DateSelectEvent.getType());
  37. }
  38. public void handleDateSelectEvent(DateSelectEvent newEvent) {
  39. if (newEvent.getCommand() == DateSelectEventActions.SELECT_DAY) {
  40. DateSelectEvent.fire(this, newEvent);
  41. this.hide();
  42. }
  43. if (newEvent.getCommand() == DateSelectEventActions.SELECT_NEW_MONTH) {
  44. DateSelectEvent.fire(this, newEvent);
  45. this.hide();
  46. }
  47. }
  48. }