Пользовательские виджеты и @UiHandler

Возможно ли, чтобы пользовательский виджет использовал нотацию @UiHandler для событий мыши? например при использовании GWT Designer вы можете щелкнуть правой кнопкой мыши на пользовательском виджете, выбрать «Добавить обработчик событий», а затем выбрать onClick. Вместо просто onAttachOrDetach.

С уважением Алекс


person Alex    schedule 13.07.2011    source источник


Ответы (2)


Я не знаю, как именно GWT Designer обнаруживает эти вещи, но @UiHandler просматривает тип аргумента события, чтобы определить тип обработчика события, а затем просматривает тип ui:field, на который ссылается @UiHandler, для метода, возвращающего HandlerRegistration и принимающего одно значение. аргумент типа обработчика события.

Вкратце: вы можете очень хорошо использовать @UiHandler со своими собственными пользовательскими виджетами, я просто не знаю, насколько хорошо GWT Designer поддерживает это.

См. http://code.google.com/p/google-web-toolkit/source/browse/trunk/user/src/com/google/gwt/uibinder/rebind/HandlerEvaluator.java

person Thomas Broyer    schedule 13.07.2011
comment
Спасибо, Томас, следующий пост также помог мне stackoverflow.com/questions/2587574 /gwt-uihandler-on-htmlpanel - person Alex; 13.07.2011

Да, ты можешь. Например, у меня есть виджет textbox+label, и я не мог откуда-то создать для него событие @UiHandler, потому что оно не является стандартным, поэтому я сделал следующее:

public class TextBoxAndLabel implements HasKeyUpHandlers {

private TextBox myTextBox;
private Label myLabel;


    @Override
    public HandlerRegistration addKeyUpHandler(KeyUpHandler keyUpHandler) {
        return myTextBox.addKeyUpHandler(keyUpHandler);
    }

}

и теперь я могу реализовать

@UiHandler("myClassObject")
person Usman Zaheer    schedule 08.11.2013