2012-04-25 41 views
0

下面的代碼可以讓RichTextArea自動增長,或收縮垂直基於KeyUp事件,而問題是怎麼做的,當用戶粘貼或剪切的內容或縮小(谷歌,加上已經實現了這個)同樣的事情.MouseUp和文本菜單事件已經嘗試過,沒有運氣。可以有人提供解決方案嗎?謝謝。如何讓GWT的RichTextArea檢測內容粘貼和剪切事件?

public AutoResizeTextArea() 
{ 
    new Timer() 
    { 
     @Override 
     public void run() 
     { 
      (doc = ((FrameElement) getElement().cast()).getContentDocument()).getBody() 
        .setAttribute("style", "word-wrap:break-word;overflow:hidden;"); 
     } 
    }.schedule(100); 
} 


@Override 
public void onBrowserEvent(Event event) 
{ 
    switch (DOM.eventGetType(event)) 
    { 
     case Event.ONKEYUP: 
      adjustHeight(); 
      break; 
    } 
} 

private void adjustHeight() 
{ 
    if (doc.getDocumentElement() 
      .getOffsetHeight() != doc.getClientHeight()) 
    { 
     setHeight((doc.getDocumentElement() 
       .getOffsetHeight() + 19) + "px"); 
    } 
} 

回答

0

這對我的作品。我假設您的RichTextArea小部件= richTextArea變量。

IFrameElement iFrame = IFrameElement.as(richTextArea.getElement()); 

//listen for paste event 
addTextPasteHandler(iFrame); 

/** 
* Add a listener for the paste event 
* @param iframe 
*/ 
private native void addTextPasteHandler(IFrameElement iframe) 
/*-{ 
    if(iframe == null) 
     return; 

    var _this = this; 

    var pasteFunction = function(e) 
    { 
     [email protected]::handlePaste()(); 
    } 

    iframe.contentWindow.addEventListener('paste', pasteFunction, true); 

}-*/; 

public void handlePaste() { 
    Window.alert("Paste!"); 
}