java - 我如何知道哪个 Widget 调用了 Handler 或 Event?

标签 java gwt mvp gwtp

我在项目中使用 GWT-Platform,我想检查什么 Widget 调用了某个 Handler,例如 BlurHandler。

我的问题的原因如下。这个BlurHandler是由四个TextField注册的。

@Override
public void addFormatTextBoxListener(BlurHandler handler) {
    tbAlt.addBlurHandler(handler);
    tbLat.addBlurHandler(handler);
    tbMedida.addBlurHandler(handler);
    tbLong.addBlurHandler(handler);
}

在我的 Presenter 中,我想找到哪个字段(Widget)失去了焦点(BlurEvent 的结果)。

getView().addFormatTextBoxListener(new BlurHandler() {
        @Override
        public void onBlur(BlurEvent event) {
            doFormatTextBox();
        }
    });
private void doFormatTextBox() {
    //who called me???
}

当四个 Widget 之一失去焦点时,将调用 doFormatTextBox 方法。但是什么 Widget 失去了焦点呢?

最佳答案

重新编写事件 API (http://google-web-toolkit.googlecode.com/svn/javadoc/1.5/com/google/gwt/user/client/Event.html) 它看起来就像 Element e1 = event.getTarget() 然后执行 if (e1.equals(widget1.getElement())){//do stuff...} 应该可以。

这是假设 BlurEvent 扩展了 com.google.gwt.user.client.Event,我并不完全确定。

关于java - 我如何知道哪个 Widget 调用了 Handler 或 Event?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13675306/

相关文章:

java - GET - 目前您无法在开发模式下引入新注释。请重新启动

javascript - JavaScript 中的被动 View

c# - Mvp View 了解模型

java - 让 GWT 应用程序与本地客户端进程通信

java - 实现无法实例化的类的正确方法

java gwt gxt textfield.forceinvalid

gwt - 如何继承GWT项目中所需的模块?

android - 按下按钮RxJava2后如何切换 map

java - 如何在Java derby中自动增加数据库列?

java - 在 Java Faces 中重置属性