Hi Peter,
You're right in that GWT-Ext components are lazily rendered to the DOM which means that when you instantiate a GWT-Ext Panel object, it is not physically rendered to the DOM. The getters and setters can be called at this point. This is done so to maximize the efficiency of use of widgets and when building larger UI's this can be a huge performance boost.
The actual rendering of all GWT-Ext Components takes place when the top level Container or Component is attached to the DOM. When this happens, all the child Components get rendered based on the layout manager used. A Container is also a Component so a top level Container can have child containers.
A Component can be attached to a DOM
- by calling ,say, RootPanel.get().add(panel); or
- by adding the GWT-Ext Component to any of GWT's standard panels like VerticalPanel / HorizontalPanel or
- explicitly calling the Component#render(Element element) method which renders to component to the passed element.
Essentially whenever a caller invokes getElement() on a Component, it it hasn't already been create and rendered, the underlying Ext component is instantiated and rendered to the browser DOM.
I hope this clarifies. I didn't quite follow the change in the patch you see making to get it work. Please let me know if there's any change you'd like to see to help GWT-Designer support of GWT-Ext.
Thanks,
Sanjiv
GWT-Ext Widget Library
http://www.gwt-ext.com