What are Google's plan for finishing up IsRenderable/RenderablePanel? (and in which timeframe?)
As I see it, today, the use case (and probably what Orkut is doing) is to build Composite's whose root widget is a RenderablePanel (probably using UiBinder), and expect best performances (compared to HTMLPanel for the same job) when you're composing a large hierarchy of such "renderable composites". And possibly build some "leaf" IsRenderable widgets too (again, can easily be done with a Composite wrapping RenderablePanel, possibly using UiRenderer for the initial rendering and event handling).
There are a lot of TODOs in there (including eventually merging RenderablePanel within HTMLPanel), and I oversee some other tasks and cleanups:
- Change PotentialElement's "owner" to a generic callback rather than a UIObject and move it to com.google.gwt.dom so that PotentialElement-specific knowledge can be moved there (such as automatically calling resolve() from appendChild and other tree manipulations, make innerHTML and innerText mutually exclusive, forbid setProperty("style", ...) or getStyle().setProperty("cssText", ...), and help resolve the element by calling the appropriate DOM.createXxxElement method –particularly useful for IE when the PotentialElement is an <input>, <button> or <iframe>–)
- make resolve() call to DomElementBuilder (and reuse the same algorithm as with the HtmlElementBuilder in createBuilderFor()) and then call the callback passing in the resolved element (so that RenderablePanel would only have to call setElement and then its wrapInitializationCallback and detachedInitializationCallback; UIObject could implement the callback and have it call setElement by default –rather than throw as of today because "resolving" has to be done "by hand"–)
- Make CellWidget an IsRenderable (it's very well-suited to that), possibly add a RenderableWidget for use with UiRenderer but without the need for a Cell.
- Possibly make other widgets IsRenderable, most likely "leaf" widgets, possibly Cell widgets
- Of course merge RenderablePanel into HTMLPanel (made easier by point #1 above), or least extend it (adding the two callbacks)
Is this what you had in mind?