GWT DatePicker для распознавания щелчка на значке календаря - PullRequest
0 голосов
/ 21 апреля 2011

Я использую виджет DatePicker, и рядом с ним я помещаю небольшое изображение календаря.Когда вы нажимаете на фактическое текстовое поле DatePicker, всплывающее окно календаря всплывает (как и должно быть).Я также хочу добавить эту обработку кликов к небольшому календарному изображению, чтобы пользователь мог щелкнуть либо по окну, либо по изображению, чтобы увидеть всплывающее окно календаря.Есть простой способ сделать это?

Я думал, что это может быть что-то вроде этого:

calendarImage.addClickHandler(datePick.getTextBox().getClickHandler())

Но, похоже, ничего подобного не существует.

Заранее спасибо!

Ответы [ 2 ]

3 голосов
/ 21 апреля 2011

Просто добавьте обработчик кликов к изображению, которое устанавливает видимый указатель даты.

Он станет примерно таким:

private DatePicker datePicker = new DatePicker();
private TextBox textBox = new TextBox();
private Image icon = new Image("calendar.png");

public void onModuleLoad() {

    datePicker.addValueChangeHandler(new ValueChangeHandler<Date>() {

        @Override
        public void onValueChange(ValueChangeEvent<Date> event) {
            Date date = event.getValue();
            String dateStr = DateTimeFormat.getFormat(DateTimeFormat.PredefinedFormat.DATE_MEDIUM).format(date);
            textBox.setText(dateStr);
            datePicker.setVisible(false);
        }
    });
    datePicker.setVisible(false);

    icon.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            datePicker.setVisible(true);        
        }
    });

    RootPanel.get().add(icon);
    RootPanel.get().add(textBox);
    RootPanel.get().add(datePicker);
}
2 голосов
/ 21 апреля 2011

Если вы подразумеваете DateBox, когда пишете DatePicker, просто позвоните showDatePicker по щелчку значка (и / или проверьте isDatePickerShowing и позвоните hideDatePicker)

...