# Class: CountMeasurementCreateTool

## Core.Tools. CountMeasurementCreateTool

Represents the tool to create count measurement annotations

#### new CountMeasurementCreateTool(docViewer)

  Creates a new instance of the CountMeasurementCreateTool

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `docViewer` | Core.DocumentViewer | An instance of DocumentViewer

### Extends

- Core.Tools.StickyCreateTool

### Methods

#### addEventListener(type, fn [, options])

  Add a handler to the given event name

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `type` | string | number |  | The name of the event to listen to
  `fn` | function |  | The handler to be called when the event is triggered
  `options` | object | <optional> | Optional options object for addEventListener ###### Properties
  Name | Type | Description
  --- | --- | ---
  `once` | boolean | If true then the handler will be called only once

  Inherited From:
    - Core.EventHandler#addEventListener

  ##### Returns:

  Returns the object that 'addEventListener' is being called on
  Type
    object

  ##### Example

      myObject.addEventListener('eventName', (eventParameter1, eventParameter2) => {
        ...
      });

#### contextMenu(e)

  The function is called when a context menu should be shown. Use e.preventDefault to disable the default browser context menu.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `e` |  | The event object

  Inherited From:
    - Core.Tools.Tool#contextMenu

#### disableCreationOverAnnotation()

  Prevent the tool from creating new annotations when hovering over an existing annotation. The annotation will be selected instead.
  Inherited From:
    - Core.Tools.StickyCreateTool#disableCreationOverAnnotation

#### disableViewStateSaving()

  When called new annotations will not have a ViewState applied to them. By default no ViewState is applied. ViewState is the state of the viewer when the annotation is created. When the annotation is double clicked and ViewState exists, the viewer state will be set to the ViewState
  Inherited From:
    - Core.Tools.StickyCreateTool#disableViewStateSaving

#### enableCreationOverAnnotation()

  Allow the tool to create new annotations when hovering over an existing annotation
  Inherited From:
    - Core.Tools.StickyCreateTool#enableCreationOverAnnotation

#### enableViewStateSaving()

  When enabled, new annotations will have a ViewState applied to them. ViewState is the state of the viewer when the annotation is created. When the annotation is double clicked and ViewState exists, the viewer state will be set to the ViewState
  Inherited From:
    - Core.Tools.StickyCreateTool#enableViewStateSaving

#### getDocumentViewer()

  Returns the instance of DocumentViewer for this tool.
  Inherited From:
    - Core.Tools.Tool#getDocumentViewer

  ##### Returns:

  The instance of DocumentViewer for this tool.
  Type
    Core.DocumentViewer

#### getMouseLocation(e)

  Takes an event object from a mouse event and converts the location into window coordinates

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `e` |  | The event object containing mouse coordinates

  Inherited From:
    - Core.Tools.Tool#getMouseLocation

  ##### Returns:

  Returns an object with x and y coordinates of the mouse cursor in the viewer
  Type
    Core.Math.Point

#### keyDown(e)

  The function is called when a keyboard key is down.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `e` |  | The event object containing keyboard key data.

  Inherited From:
    - Core.Tools.Tool#keyDown

#### mouseDoubleClick(e)

  The function is called when the mouse left button is double clicked.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `e` |  | The event object containing mouse coordinates.

  Inherited From:
    - Core.Tools.Tool#mouseDoubleClick

#### mouseLeftDown(e)

  The function called when the left mouse button is down

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `e` |  | The event object containing mouse coordinates.

  Inherited From:
    - Core.Tools.Tool#mouseLeftDown

#### mouseLeftUp(e)

  The function called when the left mouse button is up. Typically, annotations are created and added to the annotation manager at this point.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `e` |  | The event object containing mouse coordinates.

  Inherited From:
    - Core.Tools.Tool#mouseLeftUp

#### mouseMove(e)

  The function called when the mouse moves.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `e` |  | The event object containing mouse coordinates.

  Inherited From:
    - Core.Tools.Tool#mouseMove

#### mouseRightDown(e)

  The function called when the right mouse button is down.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `e` |  | The event object containing mouse coordinates.

  Inherited From:
    - Core.Tools.Tool#mouseRightDown

#### off( [type] [, fn])

  Remove a handler of the given event name

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `type` | string | number | <optional> | The name of the event to remove the handler of. If type is undefined, all the handlers of the object will be removed
  `fn` | function | <optional> | The handler associated with this event to be removed. If fn is undefined, all the handlers of the given event name will be removed

  Inherited From:
    - Core.EventHandler#off
  Deprecated:
    - Since version 8.0. Use removeEventListener instead.

  ##### Returns:

  Returns the object that 'off' is being called on
  Type
    object

  ##### Example

      myObject.off();
      myObject.off('eventName');
      myObject.off('eventName', fn);

#### on(type, fn)

  Add a handler to the given event name

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `type` | string | number | The name of the event to listen to
  `fn` | function | The handler to be called when the event is triggered

  Inherited From:
    - Core.EventHandler#on
  Deprecated:
    - Since version 8.0. Use addEventListener instead.

  ##### Returns:

  Returns the object that 'on' is being called on
  Type
    object

  ##### Example

      myObject.on('eventName', (eventParameter1, eventParameter2) => {
        ...
      });

#### one(type, fn)

  Same as 'on' except the handler will be called only once

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `type` | string | number | The name of the event to listen to
  `fn` | function | The handler to be called when the event is triggered

  Inherited From:
    - Core.EventHandler#one
  Deprecated:
    - Since version 8.0. Use addEventListener with {'once': true} as options instead.

  ##### Returns:

  Returns the object that 'one' is being called on
  Type
    object

  ##### Example

      myObject.one('eventName', (eventParameter1, eventParameter2) => {
       ...
      });

#### removeEventListener( [type] [, fn])

  Remove a handler of the given event name

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `type` | string | number | <optional> | The name of the event to remove the handler of. If type is undefined, all the handlers of the object will be removed
  `fn` | function | <optional> | The handler associated with this event to be removed. If fn is undefined, all the handlers of the given event name will be removed

  Inherited From:
    - Core.EventHandler#removeEventListener
  Deprecated:
    - for version 9.0. Use [removeEventListener] with fn specified

  ##### Returns:

  Returns the object that 'removeEventListener' is being called on
  Type
    object

  ##### Example

      myObject.removeEventListener();
      myObject.removeEventListener('eventName');
      myObject.removeEventListener('eventName', fn);

#### setAllowCreationOverAnnotation(val)

  Sets whether new annotations can be created by the tool when hovering over an existing annotation

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `val` | boolean | Whether creation of annotation is allowed when hovering over another annotation

  Inherited From:
    - Core.Tools.StickyCreateTool#setAllowCreationOverAnnotation
  Deprecated:
    - since version 8.0 Please use enableCreationOverAnnotation or disableCreationOverAnnotation instead

#### setName(name)

  Set the name of the tool, which can be accessed by toolObject.name

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `name` | string | Name of the tool

  Inherited From:
    - Core.Tools.Tool#setName

#### setSaveViewState(val)

  Sets whether new annotations have a ViewState applied to them. ViewState is the state of the viewer when the annotation is created. When the annotation is double clicked and ViewState exists, the viewer state will be set to the ViewState

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `val` | boolean |

  Inherited From:
    - Core.Tools.StickyCreateTool#setSaveViewState
  Deprecated:
    - since version 8.0 Please use enableViewStateSaving or disableViewStateSaving instead

#### setStyles(newStyles)

  Set the style for the tool, which will be applied to annotations drawn afterwards

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `newStyles` | object | function | if an object is used, it should contain properties of the new styles. If a function is used, the current styles will be passed as its argument and the function should return an object which contains properties of the new styles. Example of valid properties: StrokeColor, TextColor, FillColor, FontSize, Opacity, StrokeThickness, Precision, Scale, OverlayText, Style and Dashes.

  Inherited From:
    - Core.Tools.Tool#setStyles

#### switchIn(oldTool)

  The function is called when this tool is selected. Typically use for changing mouse cursors, and initializing states for the tool.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `oldTool` | Core.Tools.Tool | The Tool class that was previously selected.

  Inherited From:
    - Core.Tools.Tool#switchIn

#### switchOut(newTool)

  The function is called when this tool is deselected. Typically use for changing mouse cursors, and cleaning up states for the tool.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `newTool` | Core.Tools.Tool | The Tool class that was newly selected.

  Inherited From:
    - Core.Tools.Tool#switchOut

#### trigger(type [, data])

  Calls the handlers of the event name with given data

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `type` | string | number |  | event name of which the handlers will be called.
  `data` | * | <optional> | data that will be passed to the handlers. If data is an array, it will be spread and then passed to the handlers

  Inherited From:
    - Core.EventHandler#trigger

  ##### Returns:

  Returns the object that 'trigger' is being called on
  Type
    object

  ##### Example

      myObject.trigger('eventName');
      myObject.trigger('eventName', [eventParameter1, eventParameter2]);

### Events

#### annotationAdded

  Triggered when an annotation has been added to the document by the tool

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `annotation` | Core.Annotations.Annotation | The annotation that was added

  Inherited From:
    - Core.Tools.StickyCreateTool#event:annotationAdded

#### annotationCreated

  Triggered when an annotation has been created by the tool

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `annotations` | Core.Annotations.Annotation | The annotation that was created

  Inherited From:
    - Core.Tools.StickyCreateTool#event:annotationCreated

#### Search results