SmartGWT RichTextEditor没有捕获任何onBrowserEvents

时间:2015-11-27 22:59:29

标签: events smartgwt rich-text-editor smartgwt-pro

我在我的应用程序上使用SmartGWT,并且在尝试从浏览器中获取事件时遇到了一些问题。我需要获取 ONPASTE 事件,但是当我尝试使用它时,方法 onBrowserEvent 甚至都不会被调用。

这是我正在使用的代码。

import com.google.gwt.user.client.Event;
import com.smartgwt.client.widgets.RichTextEditor;

public class CustomRichTextEditor extends RichTextEditor {
    public CustomRichTextEditor() {
        super();
        sinkEvents(Event.ONPASTE);
    }

    @Override
    public void onBrowserEvent(Event event) {
        super.onBrowserEvent(event);
        System.out.println("Event.getTypeInt: " + event.getTypeInt() + " - Event.getType: " + event.getType());
        switch (event.getTypeInt()) {
        case Event.ONPASTE:
            System.out.println("Paste Detected");
            break;
        }
    }

}

有人能帮助我吗?

1 个答案:

答案 0 :(得分:5)

  

RichTextEditor实际上不会附加到任何输入元素。并且只使用textarea元素作为容器进行传输。它总是订阅像ONPASTE这样的事件。

这个问题首先在gwt google group中提出。好人Brandon Donnelson发现了为什么这不起作用以及如何解决它。

Here is使用自定义RichTextEditor工作gwt示例(在5个类中大约约300行代码并且不认为在此处粘贴它是个好主意),它将事件bindind添加到RichTextEditor并允许ONPASTE和其他一些事件工作。它的工作原理如下:

enter image description here

P.S。另外请记住,这个RichTextEditor奇怪的行为在2011年11月被提交为bug。但仍未修复原始代码。