# GC.Spread.Sheets.StatusBar.StatusItem-1

## Content

# Class: StatusItem

[Sheets](../modules/GC.Spread.Sheets).[StatusBar](../modules/GC.Spread.Sheets.StatusBar).StatusItem

## Table of contents

### Constructors

- [constructor](GC.Spread.Sheets.StatusBar.StatusItem-1#constructor)

### Methods

- [onBind](GC.Spread.Sheets.StatusBar.StatusItem-1#onbind)
- [onCreateItemView](GC.Spread.Sheets.StatusBar.StatusItem-1#oncreateitemview)
- [onDispose](GC.Spread.Sheets.StatusBar.StatusItem-1#ondispose)
- [onUnbind](GC.Spread.Sheets.StatusBar.StatusItem-1#onunbind)
- [onUpdate](GC.Spread.Sheets.StatusBar.StatusItem-1#onupdate)

## Constructors

### <a id="constructor" name="constructor"></a> constructor

• **new StatusItem**(`name`, `options?`)

The base class of status item provides basic value display and related context menu item function.

**`example`**
```javascript
let StatusItem = GC.Spread.Sheets.StatusBar.StatusItem;
let labelItem = new StatusItem('labelItem', {menuContent: 'label', value: 'text'});
```

#### Parameters

| Name | Type | Description |
| :------ | :------ | :------ |
| `name` | `string` | The name is the Unique identifier and needed in context menu and statusbar. |
| `options?` | [`IStatusItemOptions`](../interfaces/GC.Spread.Sheets.StatusBar.StatusItem.IStatusItemOptions) | - |

## Methods

### <a id="onbind" name="onbind"></a> onBind

▸ **onBind**(`context`): `void`

Bind the Context. Can override to add context related event listener.

**`override`**

**`example`**
```javascript
LabelItem.prototype.onBind = function (context) {
  // do something about context.
}
```

#### Parameters

| Name | Type | Description |
| :------ | :------ | :------ |
| `context` | [`Workbook`](GC.Spread.Sheets.Workbook) | The excute context for the statusbar item. |

#### Returns

`void`

___

### <a id="oncreateitemview" name="oncreateitemview"></a> onCreateItemView

▸ **onCreateItemView**(`container`): `void`

Create the item element on statusbar. Can override for customize item.

**`override`**

**`example`**
```javascript
let StatusItem = GC.Spread.Sheets.StatusBar.StatusItem;
function LabelItem (name, options) {
  StatusItem.call(this, name, options);
}
LabelItem.prototype = new StatusItem();
LabelItem.prototype.onCreateItemView = function (container) {
  let item = document.createElement('div');
  item.innerText = this.value;
  container.appendChild(item);
  // add event listener for container
}
statusBar.add(new LabelItem('labelItem', {menuContent: 'label', value: 'options test'}));
```

#### Parameters

| Name | Type |
| :------ | :------ |
| `container` | `HTMLElement` |

#### Returns

`void`

___

### <a id="ondispose" name="ondispose"></a> onDispose

▸ **onDispose**(): `void`

Dispose the statusbar to unbind context, remove all listener and dispose all element.

**`override`**

**`example`**
```javascript
let StatusItem = GC.Spread.Sheets.StatusBar.StatusItem;
function LabelItem (name, options) {
  StatusItem.call(this, name, options);
}
LabelItem.prototype = new StatusItem();
LabelItem.prototype.onDispose = function () {
  // dispose current item.
  // then call super dispose.
  StatusItem.prototype.onDispose.call(this);
}
```

#### Returns

`void`

___

### <a id="onunbind" name="onunbind"></a> onUnbind

▸ **onUnbind**(): `void`

Unbind the Context. Can override to remove context related event listener.

**`override`**

**`example`**
```javascript
LabelItem.prototype.onUnbind = function () {
  // remove event listener related to context.
}
```

#### Returns

`void`

___

### <a id="onupdate" name="onupdate"></a> onUpdate

▸ **onUpdate**(`content?`): `void`

The callback for status bar update. Called when status bar bind or update function, or status bar check changed in context menu.
The update related operations can realize in it. Users also should call onUpdate when current item need update.
The default operations in super is update current item by visible.

**`override`**

**`example`**
```javascript
let StatusItem = GC.Spread.Sheets.StatusBar.StatusItem;
function LabelItem (name, options) {
    StatusItem.call(this, name, options);
}
LabelItem.prototype = new StatusItem();
LabelItem.prototype.onUpdate = function () {
    StatusItem.prototype.onUpdate.call(this);
    // update item.
}
```

#### Parameters

| Name | Type | Description |
| :------ | :------ | :------ |
| `content?` | `string` | The string content to be displayed on the StatusItem. |

#### Returns

`void`
