Gwt, как кодировать Right-ClickHandler для метки?

Хорошо, для метки мы получили ClickHandler, то есть, когда мы нажимаем на метку, она что-то делает.

Но я хочу сделать что-то вроде Right-ClickHandler for Label, то есть, когда пользователь щелкнет правой кнопкой мыши на ярлыке, он что-то сделает.

Некоторые люди говорят, что поместите виджет в DeckPanel и сделайте на нем RightClick Hanler. Но если у нас много ярлыков, то

каждый ярлык должен быть помещен в панель?

Если это так, то код может быть сложным, поэтому я хочу сделать обработчик RightClick для метки так же, как я делаю обычный ClickHandler. Как это сделать?

1 ответ

Решение

Я настоятельно рекомендую этот пример (который немного староват, но правильный способ работы с контекстным меню).

   lable.sinkEvents(Event.ONCONTEXTMENU);
    lable.addHandler(
      new ContextMenuHandler() {
        @Override
        public void onContextMenu(ContextMenuEvent event) {
          event.preventDefault();
          event.stopPropagation();
          popupMenu.setPopupPosition(              //custom menu here
            event.getNativeEvent().getClientX(),
            event.getNativeEvent().getClientY());
          popupMenu.show();
    }
    }, ContextMenuEvent.getType())

Продолжить чтение....

Другие вопросы по тегам