com.google.gwt.user.cellview.client

## Class Header<H>

- java.lang.Object
- - com.google.gwt.user.cellview.client.Header<H>

Type Parameters:
  `H` - the `Cell` type

Direct Known Subclasses:
  SafeHtmlHeader, TextHeader

    public abstract class Header<H>
    extends java.lang.Object

A table column header or footer.

### Constructor Summary

Constructors
Constructor and Description
`Header(Cell<H> cell)` Construct a Header with a given `Cell`.

### Method Summary

All Methods Instance Methods Abstract Methods Concrete Methods
`Cell<H>` `getCell()` Return the `Cell` responsible for rendering items in the header.
`java.lang.String` `getHeaderStyleNames()` Get extra style names that should be applied to a cell in this header.
`java.lang.Object` `getKey()` Get the key for the header value.
`abstract H` `getValue()` Return the header value.
`void` `onBrowserEvent(Cell.Context context, Element elem, NativeEvent event)` Handle a browser event that took place within the header.
`boolean` `onPreviewColumnSortEvent(Cell.Context context, Element elem, NativeEvent event)` Preview a browser event that may trigger a column sort event.
`void` `render(Cell.Context context, SafeHtmlBuilder sb)` Render the header.
`void` `setHeaderStyleNames(java.lang.String styleNames)` Set extra style names that should be applied to every cell in this header.
`void` `setUpdater(ValueUpdater<H> updater)` Set the `ValueUpdater`.

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

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

### Constructor Detail

#### Header

    public Header(Cell<H> cell)

Construct a Header with a given `Cell`.

Parameters:
  `cell` - the `Cell` responsible for rendering items in the header

### Method Detail

#### getCell

    public Cell<H> getCell()

Return the `Cell` responsible for rendering items in the header.

Returns:
  the header Cell

#### getHeaderStyleNames

    public java.lang.String getHeaderStyleNames()

Get extra style names that should be applied to a cell in this header. May be overridden to get value dependent styles by calling `getValue()`.

Returns:
  the extra styles of the given row in a space-separated list, or `null` if there are no extra styles for the cells in this header

#### getKey

    public java.lang.Object getKey()

Get the key for the header value. By default, the key is the same as the value. Override this method to return a custom key.

Returns:
  the key associated with the value

#### getValue

    public abstract H getValue()

Return the header value.

Returns:
  the header value

#### onBrowserEvent

    public void onBrowserEvent(Cell.Context context,
                               Element elem,
                               NativeEvent event)

Handle a browser event that took place within the header.

Parameters:
  `context` - the context of the header
  `elem` - the parent Element
  `event` - the native browser event

#### onPreviewColumnSortEvent

    public boolean onPreviewColumnSortEvent(Cell.Context context,
                                            Element elem,
                                            NativeEvent event)

Preview a browser event that may trigger a column sort event. Return true if the `CellTable` should proceed with sorting the column. Subclasses can override this method to disable column sort for some click events, or particular header/footer sections.

This method will be invoked even if the header's cell does not consume a click event.

Parameters:
  `context` - the context of the header
  `elem` - the parent Element
  `event` - the native browser event
Returns:
  true if the `CellTable` should continue respond to the event (i.e., if this is a click event on a sortable column's header, fire `ColumnSortEvent`). False if the `CellTable` should stop respond to the event.

#### render

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

Render the header.

Parameters:
  `context` - the context of the header
  `sb` - a `SafeHtmlBuilder` to render into

#### setHeaderStyleNames

    public void setHeaderStyleNames(java.lang.String styleNames)

Set extra style names that should be applied to every cell in this header.

If you want to apply style names based on the header value, override `#getHeaderStyleNames(Object)` directly.

Parameters:
  `styleNames` - the extra style names to apply in a space-separated list, or `null` if there are no extra styles for this cell

#### setUpdater

    public void setUpdater(ValueUpdater<H> updater)

Set the `ValueUpdater`.

Parameters:
  `updater` - the value updater to use