GWT UiHandler на HTMLPanel

Я пишу виджет со следующей разметкой:

<g:HTMLPanel ui:field="shortcutPanel" styleName="{style.shortcut}">
    <g:Image ui:field="shortcutImage"></g:Image>
    <span ui:field="shortcutLabel"></span>
</g:HTMLPanel>

Таким образом, по существу отделение, которое переносится и изображение и маркировка. Теперь, вместо того, чтобы добавить обработчики событий на изображении/промежутке, я хотел бы, чтобы onClick был связан с HTMLPanel. Моя проблема однако состоит в том, что gwt говорит мне это

shortcutPanel не не связали addClickHandler метод

Таким образом, я предполагаю, что различие - то, что HTMLPanel не реализует HasClickHandlers или что-то вдоль той строки. Я задаюсь вопросом затем, что является стандартным способом присоединить обработчик щелчков к элементу Ui, такому как HTMLPanel или еще лучше, является там таким Виджетом GWT, который является по существу оберткой отделения, к которой я могу легко присоединить события с @UiHandler аннотацией.

6
задан brad 6 April 2010 в 19:14
поделиться

2 ответа

Вы, вероятно, ищете FocusPanel - в ней есть все плюсы: HasAllFocusHandlers, HasAllKeyHandlers, HasAllMouseHandlers, HasBlurHandlers, HasClickHandlers...., чтобы назвать несколько :) Я считаю, что это самый простой и лучший способ прикрепить обработчики кликов к панели.

20
ответ дан 8 December 2019 в 03:09
поделиться

Я не делал этого раньше, но вы можете сделать следующее:

  • Создать собственный класс MyPanel , который расширяет HTMLPanel и реализует HasClickHandlers
  • . Добавьте следующий метод в MyPanel.java
    public HandlerRegistration addClickHandler(ClickHandler handler) {
        return addDomHandler(handler, ClickEvent.getType());
    }
  • Затем замените HTMLPanel на MyPanel в вашем ui.xml и соответствующей реализации Java.

Вы всегда можете посмотреть на реализацию HTMLTable , чтобы понять, как работает распространение событий. Это панель , которая реализует HasClickHandlers .

7
ответ дан 8 December 2019 в 03:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: