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())