GWT多事件处理

Bar*_*rry 1 gwt event-handling

我的UI端有3个小部件(1个ListBox,2个TextBox).我想创建一个Handler,它可以处理值更改事件,如果三个小部件中的任何一个值更改,也可以创建Blur for ListBox.代码的框架将是这样的

registerHandler(new multiWidgetHandler());
private class multiWidgetHandler{
  //code for handling onValueChange for 3 widgets and also onBlur for listBox
}
Run Code Online (Sandbox Code Playgroud)

我不确定如何干净利落地实施.需要帮忙.一些示例代码将不胜感激.

Ril*_*ark 5

您可以在同一个处理程序中实现多个Handler接口,然后多次添加该处理程序.

private class MultiWidgetHandler implements ValueChangeHandler<String>, BlurHandler, ChangeHandler
{
    protected void handleIt() { Window.alert("These events are so handled right now!"); }

    public void onBlur(BlurEvent e) { handleIt(); }
    public void onValueChange(ValueChangeEvent<String> e) { handleIt(); }
    public void onChange(ChangeEvent e) { handleIt(); }
}
Run Code Online (Sandbox Code Playgroud)

...

MultiWidgetHandler handler = new MultiWidgetHandler();

listBox.addChangeHandler(handler);
listBox.addBlurHandler(handler);
textArea1.addValueChangeHandler(handler);
textArea2.addValueChangeHandler(handler);
Run Code Online (Sandbox Code Playgroud)