Class: SelectionModel

Annotations. SelectionModel

Represents a class that contains information about how an annotation should behave when selected.


new SelectionModel(annotation, canModify, isSelected)

Create a new selection model.

Parameters:
Name Type Description
annotation Annotations.Annotation

the annotation selected

canModify Boolean

modification of the annotation is allowed

isSelected Boolean

the annotation is already selected

Members


defaultNoPermissionSelectionOutlineColor

Defines the default color for the annotation selection outline when the user is not permitted to make modifications.


defaultSelectionOutlineColor

Defines the default color for the annotation selection outline.


selectionAccuracyPadding

Defines a padding for selection accuracy. Default is 2. Increase this value to make selection more forgiving.


selectionOutlineDashSize

Defines the dash size for the selection outline. Default is 4;


selectionOutlineThickness

Defines thickness of the annotation selection outline. Default is 2.

Methods


canModify()

Indicates that the associated annotation is able to be modified

Returns:
Type
Boolean

drawSelectionOutline(ctx, annotation, zoom)

Draws the selection outline of the annotation. By default, a rectangle is drawn based on the annotations x, y, width and height.

Parameters:
Name Type Description
ctx CanvasRenderingContext2D
annotation Annotations.Annotation
zoom number

getControlHandles()

Returns the ControlHandle objects associated with this selection model.

Returns:

an array of ControlHandleObject

Type
Array.<Annotations.ControlHandle>

getDimensions(annotation)

Gets the dimensions {x, y, width, height} of the selection bounding box. It may be different from the annotation's bounding box. e.g. The selection bounding box may have a padding.

Parameters:
Name Type Description
annotation Annotations.Annotation
Returns:
Type
Annotations.Rect

isSelected()

Indicates that the associated annotation is already selected. This can be useful to implement different selection behaviors when an annotation is selected.

Returns:
Type
Boolean

testControlHandles(annotation, zoom, x, y)

Hit detection for each control handle.

Parameters:
Name Type Description
annotation Annotations.Annotation
zoom number
x number
y number
Returns:

the control handle that was hit

Type
Annotations.ControlHandle

testSelection(annotation, x, y, pageMatrix, zoom, rotation)

Determines if the provided point is a hit on the selected annotationhandle.

Parameters:
Name Type Description
annotation Annotations.Annotation

the annotation

x number

the x-coordinate of the point to test, in page coordinates

y number

the y-coordinate of the point to test, in page coordinates

pageMatrix object

the page matrix of the page the annotation is on

zoom number

the zoom level of the page the annotation is on

rotation CoreControls.PageRotation

the rotation of the page the annotation is on

Returns:

true if the provided point is a hit

Type
boolean