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
    Modifier and Type | Class and Description
    --- | ---
    `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

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `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