com.google.gwt.cell.client

## Class ButtonCellBase<C>

- java.lang.Object
- - com.google.gwt.cell.client.AbstractCell<C>
  - - com.google.gwt.cell.client.ButtonCellBase<C>

Type Parameters:
  `C` - the type that this Cell represents

All Implemented Interfaces:
  Cell<C>, IsCollapsible, HasEnabled

Direct Known Subclasses:
  TextButtonCell

    public class ButtonCellBase<C>
    extends AbstractCell<C>
    implements IsCollapsible, HasEnabled

Base class for button Cells.

### Nested Class Summary

Nested Classes
`static interface` `ButtonCellBase.Appearance<C>` The appearance used to render this Cell.
`static class` `ButtonCellBase.Decoration` The decoration applied to the button.
`static class` `ButtonCellBase.DefaultAppearance<C>` The default implementation of the `ButtonCellBase.Appearance`.

### Nested classes/interfaces inherited from interface com.google.gwt.cell.client.Cell

`Cell.Context`

### Constructor Summary

Constructors
Constructor and Description
`ButtonCellBase(ButtonCellBase.Appearance<C> appearance)` Construct a new `ButtonCellBase` using the specified `ButtonCellBase.Appearance` to render the contents.

### Method Summary

All Methods Instance Methods Concrete Methods
`char` `getAccessKey()` Get the access key.
`ButtonCellBase.Decoration` `getDecoration()` Get the decoration style of the button.
`ImageResource` `getIcon()` Get the icon displayed next to the button text.
`int` `getTabIndex()` Return the tab index that is given to all rendered cells.
`boolean` `isCollapseLeft()` Check whether or not the left-side of the UI component is collapsed (sharing border with the component to its left).
`boolean` `isCollapseRight()` right Check whether or not the left-side of the UI component is collapsed (sharing border with the component to its left).
`boolean` `isEnabled()` Returns true if the widget is enabled, false if not.
`void` `onBrowserEvent(Cell.Context context, Element parent, C value, NativeEvent event, ValueUpdater<C> valueUpdater)` Handle a browser event that took place within the cell.
`protected void` `onEnterKeyDown(Cell.Context context, Element parent, C value, NativeEvent event, ValueUpdater<C> valueUpdater)` Called when the user triggers a `keydown` event with the ENTER key while focused on 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.
`void` `setAccessKey(char key)` Sets the cell's 'access key'.
`void` `setCollapseLeft(boolean isCollapsed)` Sets whether the left-side of the UI component is collapsed (sharing border with the component to its left).
`void` `setCollapseRight(boolean isCollapsed)` Sets whether the right-side of the UI component is collapsed (sharing border with the component to its right).
`void` `setDecoration(ButtonCellBase.Decoration decoration)` Set the `ButtonCellBase.Decoration` of the button.
`void` `setEnabled(boolean isEnabled)` Sets whether this widget is enabled.
`void` `setFocus(Element parent, boolean focused)` Explicitly focus/unfocus this cell.
`void` `setIcon(ImageResource icon)` Set the icon to display next to the button text.
`void` `setTabIndex(int tabIndex)` Set the tab index to apply to the button.

### Methods inherited from class com.google.gwt.cell.client.AbstractCell

`dependsOnSelection, getConsumedEvents, handlesSelection, isEditing, resetFocus, setValue`

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

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

### Constructor Detail

#### ButtonCellBase

    public ButtonCellBase(ButtonCellBase.Appearance<C> appearance)

Construct a new `ButtonCellBase` using the specified `ButtonCellBase.Appearance` to render the contents.

Parameters:
  `appearance` - the appearance of the cell

### Method Detail

#### getAccessKey

    public char getAccessKey()

Get the access key.

Returns:
  the access key, or 0 if one is not defined

#### getDecoration

    public ButtonCellBase.Decoration getDecoration()

Get the decoration style of the button.

#### getIcon

    public ImageResource getIcon()

Get the icon displayed next to the button text.

Returns:
  the icon resource

#### getTabIndex

    public int getTabIndex()

Return the tab index that is given to all rendered cells.

Returns:
  the tab index

#### isCollapseLeft

    public boolean isCollapseLeft()

Description copied from interface: `IsCollapsible`
Check whether or not the left-side of the UI component is collapsed (sharing border with the component to its left).

Specified by:
  `isCollapseLeft` in interface `IsCollapsible`
Returns:
  true if collapsed, false if not

#### isCollapseRight

    public boolean isCollapseRight()

Description copied from interface: `IsCollapsible`
right Check whether or not the left-side of the UI component is collapsed (sharing border with the component to its left).

Specified by:
  `isCollapseRight` in interface `IsCollapsible`
Returns:
  true if collapsed, false if not

#### isEnabled

    public boolean isEnabled()

Description copied from interface: `HasEnabled`
Returns true if the widget is enabled, false if not.

Specified by:
  `isEnabled` in interface `HasEnabled`

#### onBrowserEvent

    public void onBrowserEvent(Cell.Context context,
                               Element parent,
                               C value,
                               NativeEvent event,
                               ValueUpdater<C> valueUpdater)

Description copied from class: `AbstractCell`
Handle a browser event that took place within the cell. The default implementation returns null.

If you override this method to add support for events, remember to pass the event types that the cell expects into the constructor.

Specified by:
  `onBrowserEvent` in interface `Cell<C>`
Overrides:
  `onBrowserEvent` in class `AbstractCell<C>`
Parameters:
  `context` - the `Cell.Context` of the cell
  `parent` - the parent Element
  `value` - the value associated with the cell
  `event` - the native browser event
  `valueUpdater` - a `ValueUpdater`, or null if not specified

#### render

    public void render(Cell.Context context,
                       C value,
                       SafeHtmlBuilder sb)

Description copied from interface: `Cell`
Render a cell as HTML into a `SafeHtmlBuilder`, 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.

Specified by:
  `render` in interface `Cell<C>`
Specified by:
  `render` in class `AbstractCell<C>`
Parameters:
  `context` - the `Cell.Context` of the cell
  `value` - the cell value to be rendered
  `sb` - the `SafeHtmlBuilder` to be written to

#### setAccessKey

    public void setAccessKey(char key)

Sets the cell's 'access key'. This key is used (in conjunction with a browser-specific modifier key) to automatically focus the cell.

The change takes effect the next time the Cell is rendered.

Parameters:
  `key` - the cell's access key

#### setCollapseLeft

    public void setCollapseLeft(boolean isCollapsed)

Sets whether the left-side of the UI component is collapsed (sharing border with the component to its left).

The change takes effect the next time the Cell is rendered.

Specified by:
  `setCollapseLeft` in interface `IsCollapsible`
Parameters:
  `isCollapsed` - true if collapsed, false if not

#### setCollapseRight

    public void setCollapseRight(boolean isCollapsed)

Sets whether the right-side of the UI component is collapsed (sharing border with the component to its right).

The change takes effect the next time the Cell is rendered.

Specified by:
  `setCollapseRight` in interface `IsCollapsible`
Parameters:
  `isCollapsed` - true if collapsed, false if not

#### setDecoration

    public void setDecoration(ButtonCellBase.Decoration decoration)

Set the `ButtonCellBase.Decoration` of the button.

This change takes effect the next time the cell is rendered.

Parameters:
  `decoration` - the button decoration

#### setEnabled

    public void setEnabled(boolean isEnabled)

Sets whether this widget is enabled.

The change takes effect the next time the Cell is rendered.

Specified by:
  `setEnabled` in interface `HasEnabled`
Parameters:
  `isEnabled` - `true` to enable the widget, `false` to disable it

#### setFocus

    public void setFocus(Element parent,
                         boolean focused)

Explicitly focus/unfocus this cell. Only one UI component can have focus at a time, and the component that does will receive all keyboard events.

Parameters:
  `parent` - the parent element
  `focused` - whether this cell should take focus or release it

#### setIcon

    public void setIcon(ImageResource icon)

Set the icon to display next to the button text.

Parameters:
  `icon` - the icon resource, or null not to show an icon

#### setTabIndex

    public void setTabIndex(int tabIndex)

Set the tab index to apply to the button. By default, the tab index is set to -1 so that the button does not interrupt the tab chain when in a table or list. The change takes effect the next time the Cell is rendered.

Parameters:
  `tabIndex` - the tab index

#### onEnterKeyDown

    protected void onEnterKeyDown(Cell.Context context,
                                  Element parent,
                                  C value,
                                  NativeEvent event,
                                  ValueUpdater<C> valueUpdater)

Description copied from class: `AbstractCell`
Called when the user triggers a `keydown` event with the ENTER key while focused on the cell. If your cell interacts with the user, you should override this method to provide a consistent user experience. Your widget must consume `keydown` events for this method to be called.

Overrides:
  `onEnterKeyDown` in class `AbstractCell<C>`
Parameters:
  `context` - the `Context` of the cell
  `parent` - the parent Element
  `value` - the value associated with the cell
  `event` - the native browser event
  `valueUpdater` - a `ValueUpdater`, or null if not specified