autoHide = true の PopuppupPanel があります。RichTextAreaをクリックした場合を除いて、完璧に機能します。クリックしても何も起こらず、PopupPanel は autoClosed ではありません。
PopupPanel を「autoCloses」するコードを調べました。パネルが表示されたら、次のような Handler を追加します。
nativePreviewHandlerRegistration = Event.addNativePreviewHandler(new NativePreviewHandler() {
public void onPreviewNativeEvent(NativePreviewEvent event) {
previewNativeEvent(event);
}
});
..and previewNativeEvent(event) では、特定の条件が満たされた場合、特に MouseDownEvent がキャッチされた場合にパネルを非表示にします。
しかし、RichTextArea が MouseDownEvent を起動していないようです! previewNativeEvent(event) のデバッグ中にこのイベントをキャッチできません。手動で発射する必要があるようです。RichTextArea のコンテナー、またはその親 (それぞれ HTMLPanel と div) で起動します。
myPanel.fire(new MouseDownEvent() {});
しかし、これでは何の結果も得られません。イベント ターゲットに MouseDownHandler を追加するとイベントをキャッチできますが、上記の NativePreviewHandler ではキャッチされません。
だから、最後に:
- RichTextArea が PopupPanel を「autoClose」できないのはなぜですか?
- PreviewNativeEventHandler がシステム内のすべてのイベントをキャッチする必要があり、たとえば、そのハンドラーを使用してアプリ内のすべてのイベントをログに記録できると考えるとき、私は正しいですか?
- PreviewNativeEvent Handler が元のまたは人工的な RichtextArea から MouseDown イベントをキャッチしないのはなぜですか?