自定义小部件和@UiHandler

时间:2011-07-13 00:09:00

标签: gwt handler gwt-designer gwt-widgets

是否可以让自定义窗口小部件使用@UiHandler符号表示鼠标事件?例如使用GWT Designer时,您可以右键单击自定义小部件,选择添加事件处理程序,然后选择onClick。而不仅仅是onAttachOrDetach。

此致 亚历

2 个答案:

答案 0 :(得分:1)

是的,你可以。例如,我有一个文本框+标签小部件,我无法从某处创建@UiHandler事件,因为它不是标准的,所以我做的是:

public class TextBoxAndLabel implements HasKeyUpHandlers {

private TextBox myTextBox;
private Label myLabel;


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

}

现在我可以实现

@UiHandler("myClassObject")

答案 1 :(得分:-1)

我不知道GWT Designer究竟是如何检测到这些内容的,但@UiHandler查看事件参数的类型以确定事件处理程序类型,然后查看ui:field中所引用的@UiHandler的类型。 HandlerRegistration表示返回@UiHandler并获取事件处理程序类型的单个参数的方法。

简而言之:您可以将{{1}}与自己的自定义小部件一起使用,我只是不知道GWT Designer对此有何支持。

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