2010-01-14 47 views
1

我要禁用/許多小部件等的超鏈接,按鈕,等,這都包含在一個複合物(flextable)在GWT容器中禁用用戶交互?

有多於一個的點擊處理程序使用戶交互(鼠標點擊更多specificly),並且我不不想與刪除並根據模式增加聽衆打擾(啓用/禁用交互)

任何想法,將appriciated ...

+1

上放一個「保護屏幕」?即頂部的阻止相互作用的透明容器。只是我的2cents。 – jldupont 2010-01-14 02:08:39

回答

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(); 
        } 
       } 
      }); 
+0

在GWT 1.x中有類似的東西可用(但我忘記了確切的類/方法/偵聽器,2.0真的好多了) – 2010-01-14 09:02:25

+0

我正在使用GWT 2.0,這與我想要的非常接近,但並不完全相同。是否有我可以攔截的方法,例如Event.ONCLICK並禁用所有其他偵聽器 – 2010-01-17 02:47:46

+0

那麼,您可以通過

 pEvent.getNativeEvent(); 
訪問實際事件,並且可以在該對象上獲取類型並查看它是否爲ClickEvent類型。 – 2010-01-18 09:11:03

1

在google-web-toolkit-incubator中有GlassPanel compoent。我幾乎可以肯定它能滿足你的需求。無論哪種方式,將其中一個禁用組件覆蓋一下是一個好主意。

+0

+1我還會推薦GlassPanel。 – 2010-01-15 01:14:00

+0

我認爲這個,但是,我更喜歡用戶無法用Firebug克服的方式:) – 2010-01-17 02:48:26

相關問題