I have not tried it on a RichTextArea, but the principle should work on those too.
David On Friday 18 February 2011, Carlo Alberto Degli Atti wrote: > Hi David, > > thank you for your answer! I will try it and I will give you my > feedback :-) > > In my case the width is not a problem; my concern is about the height > (the number of displayed rows)... > > best regards, > > CA > > On Feb 18, 1:11 pm, David Goodenough <[email protected]> > > wrote: > > On Friday 18 February 2011, Carlo Alberto Degli Atti wrote:> Hi, > > > > > I've looked around but I haven't found any solution, so I post it > > > here: > > > > > > how can I make a TextArea that expands its height depending on the > > > text inside? > > > > > > Thanks > > > > > > CA > > > > Its good to find someone else who wants this. I first came across > > fields like this with Lotus Notes, which has had these for years. They > > are really useful, but very few other systems seem to have them and > > to be honest it is one of the things that puts me off browsers - but that > > is another story. > > > > I wrote some code which did this while ago, but I do not know if > > it still works on a current GWT, and I am absolutely sure it can be > > done better. > > > > import com.google.gwt.user.client.Element; > > import com.google.gwt.user.client.Event; > > import com.google.gwt.user.client.ui.TextArea; > > > > public class ExpandingTextArea extends TextArea { > > public void onBrowserEvent( Event event) { > > super.onBrowserEvent( event); > > if (getOffsetHeight( ) <= getScrollHeight( getElement( > > ))) setHeight( ( getScrollHeight( getElement( )) + 6)+"px"); } > > private native int getScrollHeight( Element e) /*-{ > > return e.scrollHeight; > > }-*/; > > public void rightSize( ) { > > Element el = getElement( ); > > int h = getScrollHeight( el); > > setHeight( ( h + 6) + "px"); > > } > > }; > > > > The fact that it has a magic number in it (6) is just plain wrong, and > > I can not for the life of me remember why that number is there. > > > > rightSize needs to be called when laying out a form, just to get started. > > Again this can be done better. It is also possible that somewhere > > along the line the need for getScrollHeight has gone, but I have not > > been following the API closely enough to see. > > > > To get the full Notes function, one would also need to set the width of > > the area. This only sets the height. But that is for another day. > > > > Hope someone can turn this into something that works properly. > > > > David -- You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
