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

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

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

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

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