# Class: Component

## FooTable.Component

#### new Component(instance, enabled) → {FooTable.Component}

The base class for all FooTable components.

##### Parameters:

Name | Type | Description
--- | --- | ---
`instance` | FooTable.Table | The parent `FooTable.Table` object for the component.
`enabled` | boolean | Whether or not the component is enabled.

##### Throws:

The instance parameter must be an instance of `FooTable.Table`.

Type
  TypeError

##### Returns:

Type
  FooTable.Component

### Extends

- FooTable.Class

### Members

#### (protected) destroy

This method is called from the `FooTable.Table#destroy` method.

#### enabled :boolean

Whether or not this component is enabled. Disabled components only have there preinit method called allowing for this value to be overridden.

##### Type:

- boolean

#### ft :FooTable.Table

The parent `FooTable.Table` for the component.

##### Type:

- FooTable.Table

### Methods

#### (protected) draw()

This method is called from the `FooTable.Table#draw` method.

#### (protected) init()

The init method is called during the parent `FooTable.Table` constructor call.

#### (protected) postdraw()

This method is called from the `FooTable.Table#draw` method.

#### (protected) predraw()

This method is called from the `FooTable.Table#draw` method.

#### (protected) preinit(data)

The preinit method is called during the parent `FooTable.Table` constructor call.

##### Parameters:

Name | Type | Description
--- | --- | ---
`data` | object | The jQuery.data() object of the root table.