0

我开发了一个自定义组件,其中包含一个布局和两个标签。此布局是可拖动的。代码与此类似:

DragAndDropWrapper boxWrap= new DragAndDropWrapper(layout);
mainLayout.addComponent(boxWrap);

之后,我有一个 RichTextArea 允许将布局放入其中。有了这个代码。

RichTextArea richText= new RichTextArea;
DragAndDropWrapper dndWrapper = new DragAndDropWrapper(richText);
dndWrapper.setDropHandler(new DropHandler()  {
        public void drop(DragAndDropEvent event)  {
            //Do whatever you want when something is dropped                
        }
        //Criterio de aceptacion
        public AcceptCriterion getAcceptCriterion() {   
            return AcceptAll.get();
        }
    });

代码工作正常。但是,当我在 RichTextArea 中放置布局时,您希望在该区域中写入文本并添加一些文本,但方法 richText.getValue() 不会更新,除非我将焦点更改为另一个组件或选项卡。我猜没有与服务器端通信,因此该值没有更新。当鼠标按下布局时,有什么方法可以强制改变焦点?我尝试使用 JavaScript,但我不知道如何将 onmousedown="function()" 属性添加到布局组件。我还尝试扩展 RichTextArea 并实现 MouseListener 或其他东西或 TextChangeListener,但没有任何效果。

有什么线索吗?谢谢你。

PS:组件不能与 RichTextArea 不同。

4

1 回答 1

0

你定了richText.setImmediate(true);吗?

于 2014-07-11T13:59:45.843 回答