Как обрабатывать щелчок правой кнопкой мыши на определенном событии в календаре SmartGWT? - PullRequest
0 голосов
/ 08 апреля 2011

Я хочу создать контекстное меню под правой кнопкой мыши для каждого события в календаре SmartGWT или просто обработать событие правой кнопкой мыши, чтобы открыть всплывающее окно.

calendar.addEventClickHandler(new EventClickHandler() {
        @Override
        public void onEventClick(TimetableEventClick event) {
            // TODO Auto-generated method stub
        }
    });

Приведенный выше код не позволяет мне различать действия в зависимости от щелчка левой или правой кнопкой мыши.Существует обработчик, который я могу добавить к экземпляру календаря:

calendar.addRightMouseDownHandler(new RightMouseDownHandler() {
        @Override
        public void onRightMouseDown(RightMouseDownEvent event) {
            // TODO Auto-generated method stub
        }
    });

... но как я могу получить информацию о том, какое именно событие было выбрано?Нет event.getId (), ничего подобного.Я полагаю, getX (), getY () и игра с позицией - это не решение?

Кстати: работа с правой кнопкой мыши в GWT все еще плохая привычка?Должен ли я оставить его функциональность для браузера?

Ответы [ 4 ]

1 голос
/ 11 апреля 2011

Я думаю, это то, что вы хотите:

calendar.addShowContextMenuHandler(new ShowContextMenuHandler() {
    @Override
    public void onShowContextMenu(ShowContextMenuEvent event) {
       event.cancel();
       // your code
    }
});

Я не думаю, что щелчок правой кнопкой мыши в GWT - плохая привычка.Если это так, эти методы не были бы определены в API для переопределения.

0 голосов
/ 24 ноября 2011

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

0 голосов
/ 14 апреля 2011
@UiHandler("calendar")
void onCalendarClick(ClickEvent event) {
    Date timeSelected = calendar.getActiveTime();
    int  daySelected = calendar.getActiveDay();
}

Вы используете общий обработчик ClickEvent и используете функции объекта календаря getActiveTime () и / или getActiveDay (), чтобы выбрать положение ячейки, над которой указатель мыши висел. Приведенный выше код использует Binder UI, но будет работать аналогично нормальному коду JAVA GWT.

0 голосов
/ 11 апреля 2011

Функция щелчка правой кнопкой мыши для календаря изначально не существует.

Эта статья довольно хорошо обобщает недостаток GWT в этой области и способ ее преодоления.

http://whatwouldnickdo.com/wordpress/370/gwt-right-click-context-menu/

...