Пользовательские виджеты и @UiHandler - PullRequest
1 голос
/ 13 июля 2011

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

С уважением Alex

Ответы [ 2 ]

1 голос
/ 08 ноября 2013

Да, вы можете. Например, у меня есть виджет 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")
0 голосов
/ 13 июля 2011

Я не знаю, как именно 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

...