C - the type that this Cell representspublic class CompositeCell<C> extends AbstractCell<C>
Cell.Context| Constructor and Description |
|---|
CompositeCell(java.util.List<HasCell<C,?>> hasCells)
Construct a new
CompositeCell. |
| Modifier and Type | Method and Description |
|---|---|
boolean |
dependsOnSelection()
Check if this cell depends on the selection state.
|
java.util.Set<java.lang.String> |
getConsumedEvents()
Get the set of events that this cell consumes (see
BrowserEvents for useful
constants). |
protected Element |
getContainerElement(Element parent)
Get the element that acts as the container for all children.
|
java.util.List<HasCell<C,?>> |
getHasCells()
Returns the readonly list of
HasCell's that make up this composite. |
boolean |
handlesSelection()
Check if this cell handles selection.
|
boolean |
isEditing(Cell.Context context,
Element parent,
C value)
Returns false.
|
void |
onBrowserEvent(Cell.Context context,
Element parent,
C value,
NativeEvent event,
ValueUpdater<C> valueUpdater)
Handle a browser event that took place within the cell.
|
void |
render(Cell.Context context,
C value,
SafeHtmlBuilder sb)
Render a cell as HTML into a
SafeHtmlBuilder, suitable for passing
to Element.setInnerHTML(String) on a container element. |
protected <X> void |
render(Cell.Context context,
C value,
SafeHtmlBuilder sb,
HasCell<C,X> hasCell)
Render the composite cell as HTML into a
SafeHtmlBuilder, suitable
for passing to Element.setInnerHTML(java.lang.String) on a container element. |
boolean |
resetFocus(Cell.Context context,
Element parent,
C value)
Reset focus on the Cell.
|
void |
setValue(Cell.Context context,
Element parent,
C object)
This method may be used by cell containers to set the value on a single
cell directly, rather than using
Element.setInnerHTML(String). |
onEnterKeyDownpublic CompositeCell(java.util.List<HasCell<C,?>> hasCells)
CompositeCell.hasCells - the cells that makeup the compositepublic boolean dependsOnSelection()
CelldependsOnSelection in interface Cell<C>dependsOnSelection in class AbstractCell<C>public java.util.Set<java.lang.String> getConsumedEvents()
CellBrowserEvents for useful
constants). The container that uses this cell should only pass these events
to
Cell.onBrowserEvent(Context, Element, Object, NativeEvent, ValueUpdater)
when the event occurs.
The returned value should not be modified, and may be an unmodifiable set. Changes to the return value may not be reflected in the cell.
getConsumedEvents in interface Cell<C>getConsumedEvents in class AbstractCell<C>BrowserEventspublic boolean handlesSelection()
CellhandlesSelection in interface Cell<C>handlesSelection in class AbstractCell<C>public boolean isEditing(Cell.Context context, Element parent, C value)
AbstractCellisEditing in interface Cell<C>isEditing in class AbstractCell<C>context - the Cell.Context of the cellparent - the parent Elementvalue - the value associated with the cellpublic void onBrowserEvent(Cell.Context context, Element parent, C value, NativeEvent event, ValueUpdater<C> valueUpdater)
AbstractCellIf you override this method to add support for events, remember to pass the event types that the cell expects into the constructor.
onBrowserEvent in interface Cell<C>onBrowserEvent in class AbstractCell<C>context - the Cell.Context of the cellparent - the parent Elementvalue - the value associated with the cellevent - the native browser eventvalueUpdater - a ValueUpdater, or null if not specifiedpublic void render(Cell.Context context, C value, SafeHtmlBuilder sb)
CellSafeHtmlBuilder, suitable for passing
to Element.setInnerHTML(String) on a container element.
Note: If your cell contains natively focusable elements, such as buttons or input elements, be sure to set the tabIndex to -1 so that they do not steal focus away from the containing widget.
render in interface Cell<C>render in class AbstractCell<C>context - the Cell.Context of the cellvalue - the cell value to be renderedsb - the SafeHtmlBuilder to be written topublic boolean resetFocus(Cell.Context context, Element parent, C value)
AbstractCellThis method is a no-op and returns false. If your cell is editable or can be focused by the user, override this method to reset focus when the containing widget is refreshed.
resetFocus in interface Cell<C>resetFocus in class AbstractCell<C>context - the Cell.Context of the cellparent - the parent Elementvalue - the value associated with the cellpublic void setValue(Cell.Context context, Element parent, C object)
CellElement.setInnerHTML(String). See
Cell.setValue(Context, Element, Object) for a default
implementation that uses Cell.render(Context, Object, SafeHtmlBuilder).setValue in interface Cell<C>setValue in class AbstractCell<C>context - the Cell.Context of the cellparent - the parent Elementobject - the value associated with the cellpublic java.util.List<HasCell<C,?>> getHasCells()
HasCell's that make up this composite.protected Element getContainerElement(Element parent)
parent - the parent element of the cellprotected <X> void render(Cell.Context context, C value, SafeHtmlBuilder sb, HasCell<C,X> hasCell)
SafeHtmlBuilder, suitable
for passing to Element.setInnerHTML(java.lang.String) on a container element.
Note: If your cell contains natively focusable elements, such as buttons or input elements, be sure to set the tabIndex to -1 so that they do not steal focus away from the containing widget.
context - the Context of the cellvalue - the cell value to be renderedsb - the SafeHtmlBuilder to be written tohasCell - a HasCell instance containing the cells to be
rendered within this cell