次のコードは、RichTextArea を KeyUp イベントに基づいて垂直方向に自動拡大または縮小することができます。問題は、ユーザーがコンテンツを貼り付けまたは切り取ったときに同じことを行う方法です (Google プラスはこれを実装しています)。MouseUp および CONTEXTMENU イベントは試してみましたが、運がありません。誰か解決策を教えてください。ありがとう。
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");
}
}