禁用GWT容器中的用户交互?

时间:2010-01-14 01:50:05

标签: gwt click widget composite handlers

我想在复合(flextable)中包含的超链接,按钮等许多小部件上禁用/启用用户交互(更具体地点击鼠标)

有多个点击处理程序,我不想打扰根据模式删除和添加侦听器(启用/禁用交互)

任何想法都会得到满足......

2 个答案:

答案 0 :(得分:5)

你忘了提及GWT的版本。在GWT 2.0中,您可以使用此代码段或类似的代码。此功能允许您在将事件移交给目标窗口小部件之前取消事件。

Event.addNativePreviewHandler(new Event.NativePreviewHandler() {
                public void onPreviewNativeEvent(NativePreviewEvent pEvent) {
                    final Element target = pEvent.getNativeEvent().getEventTarget().cast();

                    // block all events targetted at the children of the composite.
                    if (DOM.isOrHasChild(getElement(), target)) {
                        pEvent.cancel();
                    }
                }
            });

答案 1 :(得分:1)

google-web-toolkit-incubator中有一个GlassPanel组件。我几乎可以肯定它能满足您的需求。无论哪种方式,最好使用其中一个来覆盖禁用的组件。