# Class: Whiteboard

## Constructor

#### new Whiteboard(whiteboardService)

  Whiteboard class provides functionality of whiteboard management and whiteboard drawing.
  Whiteboard class contains AvayaClientServices.Services.Collaboration.WhiteboardSurface.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `whiteboardService` | AvayaClientServices.Services.Collaboration.WhiteboardService |

## Members

#### _height :Number

  ##### Type:

  - Number

#### _width :Number

  ##### Type:

  - Number

## Methods

#### end() → {AvayaClientServices.Base.Promise.<(Undefined|AvayaClientServices.Services.Collaboration.CollaborationError)>}

  Ends the whiteboard sharing. Another participant with presenter privilege may be able to start a new whiteboard session.

  ##### Returns:

  { AvayaClientServices.Base.Promise.<(Undefined|AvayaClientServices.Services.Collaboration.CollaborationError)> }

#### getActiveSurface() → {AvayaClientServices.Services.Collaboration.WhiteboardSurface}

  Returns the active Whiteboard Surface.

  ##### Returns:

  { AvayaClientServices.Services.Collaboration.WhiteboardSurface }

#### getHeight() → {Number}

  Returns whiteboard height

  ##### Returns:

  { Number }

#### getMaxPrimitiveShapes() → {Number}

  Returns maximum limit of primitive shapes.

  ##### Returns:

  { Number }

#### getSurfaceById(id) → {Object.<{surfaceId: AvayaClientServices.Services.Collaboration.WhiteboardSurface}>}

  Returns the surface with given id.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `id` | number | Id of whiteboard surface.

  ##### Returns:

  { Object.<{surfaceId: AvayaClientServices.Services.Collaboration.WhiteboardSurface}> }

#### getSurfaces() → {AvayaClientServices.Base.DataSet.<AvayaClientServices.Services.Collaboration.WhiteboardSurface>}

  Returns the object containing all Whiteboard Surfaces of Whiteboard session.

  ##### Returns:

  { AvayaClientServices.Base.DataSet.<AvayaClientServices.Services.Collaboration.WhiteboardSurface> }

#### getWidth() → {Number}

  Returns whiteboard width

  ##### Returns:

  { Number }

#### removeSurface(surface) → {AvayaClientServices.Base.Promise.<(Undefined|AvayaClientServices.Services.Collaboration.CollaborationError)>}

  Removes given surface from whiteboard session.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `surface` | AvayaClientServices.Services.Collaboration.WhiteboardSurface | Whiteboard surface that is going to be deleted.

  ##### Returns:

  { AvayaClientServices.Base.Promise.<(Undefined|AvayaClientServices.Services.Collaboration.CollaborationError)> }

#### requestNewSurface() → {AvayaClientServices.Base.Promise.<(Undefined|AvayaClientServices.Services.Collaboration.CollaborationError)>}

  Requests the server to start a new Whiteboard Surface.

  ##### Returns:

  { AvayaClientServices.Base.Promise.<(Undefined|AvayaClientServices.Services.Collaboration.CollaborationError)> }

#### start() → {AvayaClientServices.Base.Promise.<(Undefined|AvayaClientServices.Services.Collaboration.CollaborationError)>}

  Starts the whiteboard service and sharing.

  ##### Returns:

  { AvayaClientServices.Base.Promise.<(Undefined|AvayaClientServices.Services.Collaboration.CollaborationError)> }

#### stop() → {AvayaClientServices.Base.Promise.<(Undefined)>}

  Stops the whiteboard service - clears callbacks and capabilities.

  ##### Returns:

  { AvayaClientServices.Base.Promise.<(Undefined)> }

### Managing callbacks

#### addOnWhiteboardEndedCallback(callback) → {void}

  Adds new onWhiteboardEndedCallback.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `callback` | AvayaClientServices.Services.Collaboration.Whiteboard#onWhiteboardEndedCallback |

  ##### Returns:

  { void }

#### addOnWhiteboardStartedCallback(callback) → {void}

  Adds new onWhiteboardStartedCallback.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `callback` | AvayaClientServices.Services.Collaboration.Whiteboard#onWhiteboardStartedCallback |

  ##### Returns:

  { void }

#### addOnWhiteboardSurfaceAddedCallback(callback) → {void}

  Adds new onWhiteboardSurfaceAddedCallback.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `callback` | AvayaClientServices.Services.Collaboration.Whiteboard#onWhiteboardSurfaceAddedCallback |

  ##### Returns:

  { void }

#### addOnWhiteboardSurfaceRemovedCallback(callback) → {void}

  Adds new onWhiteboardSurfaceRemovedCallback.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `callback` | AvayaClientServices.Services.Collaboration.Whiteboard#onWhiteboardSurfaceRemovedCallback |

  ##### Returns:

  { void }

#### addOnWhiteboardSurfaceSetActiveCallback(callback) → {void}

  Adds new onWhiteboardSurfaceSetActiveCallback.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `callback` | AvayaClientServices.Services.Collaboration.Whiteboard#onWhiteboardSurfaceSetActiveCallback |

  ##### Returns:

  { void }

#### removeOnWhiteboardEndedCallback(callback) → {void}

  Removes existing onWhiteboardEndedCallback.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `callback` | AvayaClientServices.Services.Collaboration.Whiteboard#onWhiteboardEndedCallback |

  ##### Returns:

  { void }

#### removeOnWhiteboardStartedCallback(callback) → {void}

  Removes existing onWhiteboardStartedCallback.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `callback` | AvayaClientServices.Services.Collaboration.Whiteboard#onWhiteboardStartedCallback |

  ##### Returns:

  { void }

#### removeOnWhiteboardSurfaceAddedCallback(callback) → {void}

  Removes existing onWhiteboardSurfaceAddedCallback.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `callback` | AvayaClientServices.Services.Collaboration.Whiteboard#onWhiteboardSurfaceAddedCallback |

  ##### Returns:

  { void }

#### removeOnWhiteboardSurfaceRemovedCallback(callback) → {void}

  Removes existing onWhiteboardSurfaceRemovedCallback.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `callback` | AvayaClientServices.Services.Collaboration.Whiteboard#onWhiteboardSurfaceRemovedCallback |

  ##### Returns:

  { void }

#### removeOnWhiteboardSurfaceSetActiveCallback(callback) → {void}

  Removes existing onWhiteboardSurfaceSetActiveCallback.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `callback` | AvayaClientServices.Services.Collaboration.Whiteboard#onWhiteboardSurfaceSetActiveCallback |

  ##### Returns:

  { void }

### Capabilities

#### getAddWhiteboardCapability() → {AvayaClientServices.Base.Capability}

  Gets the information about capability of adding whiteboard.

  ##### Returns:

  { AvayaClientServices.Base.Capability }

#### getDrawingCapability() → {AvayaClientServices.Base.Capability}

  Gets the information about capability of drawing on the whiteboard.

  ##### Returns:

  { AvayaClientServices.Base.Capability }

#### getRemoveWhiteboardCapability() → {AvayaClientServices.Base.Capability}

  Gets the information about capability of removing whiteboard.

  ##### Returns:

  { AvayaClientServices.Base.Capability }

## Type Definitions

#### onWhiteboardEndedCallback(whiteboard) → {void}

  Interface for callback function invoked when Whiteboard service ends.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `whiteboard` | AvayaClientServices.Services.Collaboration.Whiteboard | Whiteboard instance.

  ##### Returns:

  { void }

#### onWhiteboardStartedCallback(whiteboard, whiteboardSurface, participant) → {void}

  Interface for callback function invoked when Whiteboard service starts.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `whiteboard` | AvayaClientServices.Services.Collaboration.Whiteboard | Whiteboard instance.
  `whiteboardSurface` | AvayaClientServices.Services.Collaboration.WhiteboardSurface | That is the initial surface of whiteboard.
  `participant` | AvayaClientServices.Services.Collaboration.Participant | Participant who started the whiteboard.

  ##### Returns:

  { void }

#### onWhiteboardSurfaceAddedCallback(whiteboard, whiteboardSurface, participant) → {void}

  Interface for callback function invoked when a new surface is added.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `whiteboard` | AvayaClientServices.Services.Collaboration.Whiteboard | Whiteboard instance.
  `whiteboardSurface` | AvayaClientServices.Services.Collaboration.WhiteboardSurface | Whiteboard surface that has been added.
  `participant` | AvayaClientServices.Services.Collaboration.Participant | Participant who added surface.

  ##### Returns:

  { void }

#### onWhiteboardSurfaceRemovedCallback(whiteboard, whiteboardSurface, participant) → {void}

  Interface for callback function invoked when an existing surface is removed.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `whiteboard` | AvayaClientServices.Services.Collaboration.Whiteboard | Whiteboard instance.
  `whiteboardSurface` | AvayaClientServices.Services.Collaboration.WhiteboardSurface | Whiteboard surface that has been removed.
  `participant` | AvayaClientServices.Services.Collaboration.Participant | Participant who removed surface.

  ##### Returns:

  { void }

#### onWhiteboardSurfaceSetActiveCallback(whiteboard, whiteboardSurface, participant) → {void}

  Interface for callback function invoked when a new surface is set as active.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `whiteboard` | AvayaClientServices.Services.Collaboration.Whiteboard | Whiteboard instance.
  `whiteboardSurface` | AvayaClientServices.Services.Collaboration.WhiteboardSurface | Whiteboard surface that has been set as active.
  `participant` | AvayaClientServices.Services.Collaboration.Participant | Participant who set surface as active.

  ##### Returns:

  { void }