我在项目中使用 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/