Class: FreeHandHighlightCreateTool

Core.Tools. FreeHandHighlightCreateTool

Represents the tool for creating Core.Annotations.FreeHandAnnotation.

new FreeHandHighlightCreateTool(docViewer)

Parameters:
Name Type Description
docViewer Core.DocumentViewer An instance of DocumentViewer.
Properties:
Name Type Description
createDelay number The delay to allow for multiple paths to be added as part of the same annotation
simplifyPen boolean Whether to simplify the annotation path when a pen input is used, defaults to false
autoSmoothingRange number The range for error in auto-smoothing, a larger number meaning more room for error. Highlights that are drawn wider than this range will not be autosmoothed

Extends

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:
Overrides:
Returns:
Returns the object that 'addEventListener' is being called on
Type
object
Example
myObject.addEventListener('eventName', (eventParameter1, eventParameter2) => {
  ...
});

complete()

When called, the current freehand annotation being created is added to the AnnotationManager, ignoring the createDelay. It is only necessary to call this function if you want the annotation to be added before the createDelay elapses.
Inherited From:
Overrides:
Returns:
A promise that resolves when the current freehand annotation has been added to the AnnotationManager
Type
Promise.<any>

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:
Overrides:

disableImmediateActionOnAnnotationSelection()

Disable whether the tool should trigger an action immediately after clicking an annotation. When this is disabled you need to first click on annotation to select it before you can drag it. This behavior is disabled by default.
Inherited From:
Overrides:

enableImmediateActionOnAnnotationSelection()

Sets if the tool should trigger actions immediately after clicking an annotation. For example, if this is enabled then you can immediately click and drag an annotation without making a separate click to select the annotation.
Inherited From:
Overrides:
Example
To enable this for one tool (The Pan tool, for example), this can be done:

const tool = docViewer.getTool(window.Core.Tools.ToolNames.PAN);
tool.enableImmediateActionOnAnnotationSelection();

To enable this for all selection tools, this can be done:

const allTools = Object.values(docViewer.getToolModeMap());
for (const tool of allTools) {
  if (tool instanceof Tools.AnnotationSelectTool) {
    tool.enableImmediateActionOnAnnotationSelection();
  }
}

getAutoSmoothingRange()

Gets how wide the range would be for auto smoothing vertical and horizontal strokes.
Returns:
Returns a number indicating how the range would be for auto smoothing vertical and horizontal strokes.
Type
number
Example
const tool = docViewer.getTool(instance.Core.Tools.ToolNames.FREEHAND_HIGHLIGHT);
tool.getAutoSmoothingRange();

getCreateDelay()

Get the createDelay property of the tool.
Inherited From:
Overrides:
Returns:
The delay to allow for multiple paths to be added as part of the same annotation
Type
number

getDocumentViewer()

Returns the instance of DocumentViewer for this tool.
Inherited From:
Overrides:
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:
Overrides:
Returns:
Returns an object with x and y coordinates of the mouse cursor in the viewer
Type
Core.Math.Point

getSimplifyPen()

Get the simplifyPen property of the tool.
Inherited From:
Overrides:
Returns:
Whether to simplify the annotation path when a pen input is used, defaults to false
Type
boolean

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:
Overrides:

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:
Overrides:

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:
Overrides:

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:
Overrides:

mouseMove(e)

The function called when the mouse moves.
Parameters:
Name Type Description
e The event object containing mouse coordinates.
Inherited From:
Overrides:

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:
Overrides:

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:
Overrides:
Deprecated:
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:
Overrides:
Deprecated:
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:
Overrides:
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:
Overrides:
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);

setAutoSmoothingRange(range)

Sets how wide the range would be for auto smoothing vertical and horizontal strokes.
Parameters:
Name Type Description
range number a number indicating how wide is the range to auto smooth vertical and horizontal strokes
Example
const tool = docViewer.getTool(instance.Core.Tools.ToolNames.FREEHAND_HIGHLIGHT);
tool.setAutoSmoothingRange(1);

setCreateDelay(createDelay)

Set the createDelay property of the tool. This will change the delay for the tool to register new strokes as a new annotation. This will change the createDelay property on the instance of the tool, not the prototype.
Parameters:
Name Type Description
createDelay number The delay to allow for multiple paths to be added as part on the same annotation
Inherited From:
Overrides:

setEnableImmediateActionOnAnnotationSelection(enable)

Set if the tool should trigger action immediately after clicking an annotation. For example, if this is enabled then you can immediately click and drag an annotation without making a separate click to select the annotation.
Parameters:
Name Type Description
enable boolean A boolean indicating whether actions are triggered immediately on clicking on an annotation
Inherited From:
Overrides:
Deprecated:
  • since version 8.0 Please use enableImmediateActionOnAnnotationSelection or disableImmediateActionOnAnnotationSelection instead
Example
To enable this for one tool (The Pan tool, for example), this can be done:

const tool = docViewer.getTool(window.Core.Tools.ToolNames.PAN);
tool.setEnableImmediateActionOnAnnotationSelection(true);

To enable this for all selection tools, this can be done:

const allTools = Object.values(docViewer.getToolModeMap());
for (const tool of allTools) {
  if (tool instanceof Tools.AnnotationSelectTool) {
    tool.setEnableImmediateActionOnAnnotationSelection(true);
  }
}

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:
Overrides:

setSimplifyPen(simplifyPen)

Set the simplifyPen property of the tool. This will change the simplifyPen property on the instance of the tool, not the prototype.
Parameters:
Name Type Description
simplifyPen boolean Whether to simplify the annotation path when a pen input is used, defaults to false
Inherited From:
Overrides:

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:
Overrides:

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:
Overrides:

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:
Overrides:

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:
Overrides:
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:
Overrides:

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:
Overrides: