0

無効になっていると思われるウィジェットがいくつかあります。無効化されたウィジェットは、イベントを処理しません。しかし実際には、そのウィジェットにいくつかの UIHandlers が追加されています。OnClick、OnKeyPressed、OnKeyDown など。これらのハンドラーを 1 つずつ登録解除したくありません。また、if 句を追加したくありません。別のオプションは、そのウィジェットからサブクラス化し、OnBrowserEvent をオーバーライドすることですが、別のクラスを作成することを意味します。

そのウィジェットに関連するすべてのイベントを 1 つのコード スニペットで無効にすることはできますか?

私は次の解決策をグーグルで検索しました:

            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 は引き続き到着し、対応するハンドラが呼び出されます。

これを達成するための短い方法はありますか?GWT2.5

4

1 に答える 1