コード例 #1
0
 public DatePickerPanel(Element wrap) {
   addStyleName(Style.DATE_PICKER_PANEL);
   if (wrap == null) {
     dateBox = new DatePickerText(this);
     add(dateBox);
   } else {
     dateBox = DatePickerText.wrapDatePickerText(this, wrap);
   }
   dateBox.addValueChangeHandler(
       new ValueChangeHandler<String>() {
         @Override
         public void onValueChange(ValueChangeEvent<String> event) {
           value = null;
           try {
             String date = dateBox.getValue();
             if (date != null && !date.isEmpty()) {
               value = DF.parse(dateBox.getValue());
             }
           } catch (Exception e) {
           }
         }
       });
   dateBox.addValueChangeHandler(
       new ValueChangeHandler<String>() {
         @Override
         public void onValueChange(ValueChangeEvent<String> event) {
           setValue(DatePickerPanel.this.getValue(), true);
         }
       });
   if (wrap == null) {
     setValue(new Date());
   }
 }
コード例 #2
0
 private DatePickerBox getDatePickerBox() {
   if (dpb == null) {
     dpb = new DatePickerBox();
     dpb.hide();
     dpb.setValue(getValue());
     final Command cmd =
         new Command() {
           @Override
           public void execute() {
             if (lastOne != null) {
               lastOne.hide();
               lastOne = null;
             }
             lastOne = dpb;
             dpb.setValue(getValue());
             dpb.setPopupPositionAndShow(
                 new PositionCallback() {
                   @Override
                   public void setPosition(int offsetWidth, int offsetHeight) {
                     if (showOnTop) {
                       dpb.setPopupPosition(
                           dateBox.getAbsoluteLeft(), dateBox.getAbsoluteTop() - offsetHeight);
                     } else {
                       dpb.setPopupPosition(
                           dateBox.getAbsoluteLeft(),
                           dateBox.getAbsoluteTop() + dateBox.getOffsetHeight());
                     }
                   }
                 });
           }
         };
     dateBox.addKeyUpHandler(
         new KeyUpHandler() {
           @Override
           public void onKeyUp(KeyUpEvent event) {
             dpb.setValue(DatePickerPanel.this.getValue(), false);
           }
         });
     dateBox.addFocusHandler(
         new FocusHandler() {
           @Override
           public void onFocus(FocusEvent event) {
             cmd.execute();
           }
         });
     dpb.addValueChangeHandler(
         new ValueChangeHandler<Date>() {
           @Override
           public void onValueChange(ValueChangeEvent<Date> event) {
             setValue(event.getValue(), true);
             dpb.hide();
             lastOne = null;
           }
         });
   }
   return dpb;
 }
コード例 #3
0
    public static DatePickerText wrapDatePickerText(DatePickerPanel owner, Element element) {
      // Assert that the element is attached.
      assert Document.get().getBody().isOrHasChild(element);
      DatePickerText textBox = new DatePickerText(owner, element);

      // Mark it attached and remember it for cleanup.
      textBox.onAttach();

      return textBox;
    }
コード例 #4
0
 @Override
 public void setValue(Date value, boolean fireEvents) {
   this.value = value;
   if (value != null) {
     dateBox.setText(DF.format(value));
   } else {
     dateBox.setText(null);
   }
   if (fireEvents) {
     ValueChangeEvent.fire(this, value);
   }
 }
コード例 #5
0
 public void setEnabled(boolean enabled) {
   dateBox.setEnabled(enabled);
 }