java GWT:禁用某些小部件上的所有事件
我有一些小部件,我认为它是禁用的。禁用的小部件不应处理任何事件。但事实上,我已经在这个小部件中添加了几个UIHandler。例如OnClick、OnKeyPressed、OnKeyDown等。我不想逐个注销这些处理程序,也不想向它们添加if子句。另一个选项是从该小部件中生成子类并覆盖OnBrowserEvent,但这意味着创建另一个类是否可以在一个代码段中禁用与该小部件相关的所有事件
我在谷歌上搜索了以下解决方案:
Event.addNativePreviewHandler(new Event.NativePreviewHandler()
{
public void onPreviewNativeEvent(Event.NativePreviewEvent pEvent)
{
final Element target = pEvent.getNativeEvent().getEventTarget().cast();
// block all events targetted at the children of the composite.
if (DOM.isOrHasChild(myWidget.getElement(), target))
{
pEvent.cancel();
}
}
});
这就是我想要的。但不幸的是,它不起作用:)OnFocusEvent、KeyDownEvent仍然会到达,并调用相应的处理程序
有什么捷径可以做到这一点吗?GWT 2.5
# 1 楼答案
我最近也有类似的问题。要解决这个问题,我们应该补充: