com.google.gwt.user.client.ui

## Class RenderablePanel

- java.lang.Object
- - com.google.gwt.user.client.ui.UIObject
  - - com.google.gwt.user.client.ui.Widget
    - - com.google.gwt.user.client.ui.Panel
      - - com.google.gwt.user.client.ui.ComplexPanel
        - - com.google.gwt.user.client.ui.RenderablePanel

All Implemented Interfaces:
  HasAttachHandlers, HasHandlers, EventListener, HasVisibility, HasWidgets, HasWidgets.ForIsWidget, IndexedPanel, IndexedPanel.ForIsWidget, IsRenderable, IsWidget, java.lang.Iterable<Widget>

    public class RenderablePanel
    extends ComplexPanel
    implements IsRenderable

EXPERIMENTAL and subject to change. Do not use this in production code.

An `IsRenderable` version of `HTMLPanel`. This class is a stepping in our transition to the Renderable strategy. Eventually this functionality should be merged into `HTMLPanel`. The only reason this class doesn't extend `HTMLPanel` is because it doesn't provide any way to build the panel lazily (which is needed here).

### Nested Class Summary

### Nested classes/interfaces inherited from class com.google.gwt.user.client.ui.UIObject

`UIObject.DebugIdImpl, UIObject.DebugIdImplEnabled`

### Nested classes/interfaces inherited from interface com.google.gwt.user.client.ui.IndexedPanel

`IndexedPanel.ForIsWidget`

### Nested classes/interfaces inherited from interface com.google.gwt.user.client.ui.HasWidgets

`HasWidgets.ForIsWidget`

### Field Summary

Fields
`Scheduler.ScheduledCommand` `detachedInitializationCallback`
`protected SafeHtml` `html`
`Scheduler.ScheduledCommand` `wrapInitializationCallback`

### Fields inherited from class com.google.gwt.user.client.ui.Widget

`eventsToSink`

### Fields inherited from class com.google.gwt.user.client.ui.UIObject

`DEBUG_ID_PREFIX, MISSING_ELEMENT_ERROR, SETELEMENT_TWICE_ERROR`

### Constructor Summary

Constructors
Constructor and Description
`RenderablePanel(SafeHtml safeHtml)` Initializes the panel's HTML from a given `SafeHtml` object.
`RenderablePanel(java.lang.String html)` Creates an HTML panel with the specified HTML contents inside a DIV element.

### Method Summary

All Methods Instance Methods Concrete Methods Deprecated Methods
`void` `add(Widget widget)` Adds a child widget to the panel.
`void` `addAndReplaceElement(IsWidget widget, Element toReplace)` Deprecated. use `addAndReplaceElement(IsWidget, Element)`
`void` `addAndReplaceElement(IsWidget widget, Element toReplace)` Overloaded version for IsWidget.
`void` `addAndReplaceElement(Widget widget, Element toReplace)` Adds a child widget to the panel, replacing the HTML element.
`void` `addAndReplaceElement(Widget widget, Element toReplace)` Deprecated. use `addAndReplaceElement(Widget, Element)`
`void` `claimElement(Element element)` Replace the previous contents of the receiver with the given element, presumed to have been created and stamped via a previous call to `IsRenderable.render(com.google.gwt.user.client.ui.RenderableStamper)`.
`protected SafeHtml` `getInnerHtml()` Returns the HTML to be set as the innerHTML of the container.
`void` `initializeClaimedElement()` Perform any initialization needed when the widget is not attached to the document.
`protected boolean` `isFullyInitialized()` Whether the initilization of the panel is finished (i.e., the corresponding DOM element has been built).
`void` `logicalAdd(IsRenderable renderable)` Adopts the given, but doesn't change anything about its DOM element.
`SafeHtml` `render(RenderableStamper stamper)`
`void` `render(RenderableStamper stamper, SafeHtmlBuilder builder)` Tells this object to render itself as HTML and append it to the given builder.
`Element` `resolvePotentialElement()` EXPERIMENTAL and subject to change.

### Methods inherited from class com.google.gwt.user.client.ui.ComplexPanel

`add, add, adjustIndex, checkIndexBoundsForAccess, checkIndexBoundsForInsertion, doLogicalClear, getChildren, getWidget, getWidgetCount, getWidgetIndex, getWidgetIndex, insert, insert, iterator, remove, remove`

### Methods inherited from class com.google.gwt.user.client.ui.Panel

`add, adopt, clear, doAttachChildren, doDetachChildren, orphan, remove`

### Methods inherited from class com.google.gwt.user.client.ui.Widget

`addAttachHandler, addBitlessDomHandler, addDomHandler, addHandler, asWidget, asWidgetOrNull, createHandlerManager, delegateEvent, ensureHandlers, fireEvent, getHandlerCount, getHandlerManager, getLayoutData, getParent, isAttached, isOrWasAttached, onAttach, onBrowserEvent, onDetach, onLoad, onUnload, removeFromParent, replaceElement, setLayoutData, setParent, sinkEvents, unsinkEvents`

### Methods inherited from class com.google.gwt.user.client.ui.UIObject

`addStyleDependentName, addStyleName, ensureDebugId, ensureDebugId, ensureDebugId, getAbsoluteLeft, getAbsoluteTop, getElement, getOffsetHeight, getOffsetWidth, getStyleElement, getStyleName, getStyleName, getStylePrimaryName, getStylePrimaryName, getTitle, isVisible, isVisible, onEnsureDebugId, removeStyleDependentName, removeStyleName, setElement, setElement, setHeight, setPixelSize, setSize, setStyleDependentName, setStyleName, setStyleName, setStyleName, setStyleName, setStylePrimaryName, setStylePrimaryName, setTitle, setVisible, setVisible, setWidth, sinkBitlessEvent, toString`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Methods inherited from interface java.lang.Iterable

`forEach, spliterator`

### Field Detail

#### wrapInitializationCallback

    public Scheduler.ScheduledCommand wrapInitializationCallback

#### detachedInitializationCallback

    public Scheduler.ScheduledCommand detachedInitializationCallback

#### html

    protected SafeHtml html

### Constructor Detail

#### RenderablePanel

    public RenderablePanel(java.lang.String html)

Creates an HTML panel with the specified HTML contents inside a DIV element. Any element within this HTML that has a specified id can contain a child widget. The actual element that will hold this HTML isn't initialized until it is needed.

Parameters:
  `html` - the panel's HTML

#### RenderablePanel

    public RenderablePanel(SafeHtml safeHtml)

Initializes the panel's HTML from a given `SafeHtml` object. Similar to `#HTMLPanel(String)`

Parameters:
  `safeHtml` - the html to set.

### Method Detail

#### add

    public void add(Widget widget)

Adds a child widget to the panel.

Specified by:
  `add` in interface `HasWidgets`
Overrides:
  `add` in class `Panel`
Parameters:
  `widget` - the widget to be added
See Also:
  `HasWidgets.add(Widget)`

#### addAndReplaceElement

    public final void addAndReplaceElement(Widget widget,
                                           Element toReplace)

Adds a child widget to the panel, replacing the HTML element.

Parameters:
  `widget` - the widget to be added
  `toReplace` - the element to be replaced by the widget

#### addAndReplaceElement

    @Deprecated
    public void addAndReplaceElement(Widget widget,
                                                 Element toReplace)

Deprecated. use `addAndReplaceElement(Widget, Element)`
Adds a child widget to the panel, replacing the HTML element.

Parameters:
  `widget` - the widget to be added
  `toReplace` - the element to be replaced by the widget

#### addAndReplaceElement

    @Deprecated
    public void addAndReplaceElement(IsWidget widget,
                                                 Element toReplace)

Deprecated. use `addAndReplaceElement(IsWidget, Element)`
Overloaded version for IsWidget.

See Also:
  `addAndReplaceElement(Widget,Element)`

#### addAndReplaceElement

    public void addAndReplaceElement(IsWidget widget,
                                     Element toReplace)

Overloaded version for IsWidget.

See Also:
  `addAndReplaceElement(Widget,Element)`

#### claimElement

    public void claimElement(Element element)

Description copied from interface: `IsRenderable`
Replace the previous contents of the receiver with the given element, presumed to have been created and stamped via a previous call to `IsRenderable.render(com.google.gwt.user.client.ui.RenderableStamper)`.

Specified by:
  `claimElement` in interface `IsRenderable`

#### initializeClaimedElement

    public void initializeClaimedElement()

Description copied from interface: `IsRenderable`
Perform any initialization needed when the widget is not attached to the document. Assumed to be called after `IsRenderable.claimElement(com.google.gwt.dom.client.Element)`.

Specified by:
  `initializeClaimedElement` in interface `IsRenderable`

#### logicalAdd

    public void logicalAdd(IsRenderable renderable)

Adopts the given, but doesn't change anything about its DOM element. Should only be used for widgets with elements that are children of this panel's element. No-op if called with an `IsRenderable` that isn't also IsWidget, but safe to call with such as a convenience.

#### render

    public SafeHtml render(RenderableStamper stamper)

Specified by:
  `render` in interface `IsRenderable`
See Also:
  `TODO(rdcastro): Remove this once UiBinder doesn't rely on it anymore.`

#### render

    public void render(RenderableStamper stamper,
                       SafeHtmlBuilder builder)

Description copied from interface: `IsRenderable`
Tells this object to render itself as HTML and append it to the given builder. If the implementation expects to be able to claim an element later, it must be marked by the given stamper.

Specified by:
  `render` in interface `IsRenderable`

#### resolvePotentialElement

    public Element resolvePotentialElement()

Description copied from class: `UIObject`
EXPERIMENTAL and subject to change. Do not use this in production code.

To be overridden by `IsRenderable` subclasses that initialize themselves by by calling `setElement(PotentialElement.build(this))`.

The receiver must:

- create a real `Element` to replace its `PotentialElement`
- call `#setElement()` with the new Element
- and return the new Element

This method is called when the receiver's element is about to be added to a parent node, as a side effect of `DOM.appendChild(com.google.gwt.dom.client.Element, com.google.gwt.dom.client.Element)`.

Note that this method is normally called only on the top element of an IsRenderable tree. Children instead will receive `IsRenderable.render(com.google.gwt.user.client.ui.RenderableStamper)` and `IsRenderable.claimElement(Element)`.

Overrides:
  `resolvePotentialElement` in class `UIObject`
See Also:
  `PotentialElement`, `IsRenderable`

#### getInnerHtml

    protected SafeHtml getInnerHtml()

Returns the HTML to be set as the innerHTML of the container.

#### isFullyInitialized

    protected boolean isFullyInitialized()

Whether the initilization of the panel is finished (i.e., the corresponding DOM element has been built).