David it works (gwt2.2). But how can I set the height at rendering time (before any browser event)?
On Feb 18, 1:53 pm, David Goodenough <david.goodeno...@btconnect.com> wrote: > 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 <david.goodeno...@btconnect.com> > > > 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 google-web-toolkit@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.