Class ActionTool

The ActionTool is responsible for handling and dispatching mouse events on GraphObjects that have GraphObject#isActionable set to true. This is how one implements "controls", such as buttons or sliders or knobs, as GraphObjects that can be inside Parts without interfering with the standard tool behaviors.

Hierarchy

Index

Constructor methods

Properties

Methods

Constructor methods

constructor(): ActionTool

You do not normally need to create an instance of this tool because one already exists as the ToolManager#actionTool.

Returns

ActionTool

Properties

public diagram: Diagram

Gets the Diagram that owns this tool and for which this tool is handling input events.

public isActive: boolean

Gets or sets whether this tool is started and is actively doing something.

public isEnabled: boolean

Gets or sets whether this tool can be started by a mouse event.

public name: string

Gets or sets the name of this tool.

public transactionResult: string

Gets or sets the name of the transaction to be committed by #stopTransaction; if null, the transaction will be rolled back.

Methods

public canStart(): boolean

This tool can run when there is a mouse-down on an object with GraphObject#isActionable true or if the object is within a Panel that "isActionable".

Returns

boolean

public cancelWaitAfter(): any

This is called to cancel any running "WaitAfter" timer.

Returns

any

public doActivate(): any

This method is called by the diagram after setting Diagram#currentTool, to make the new tool active.

Returns

any

public doCancel(): any

Call the GraphObject#actionCancel event if defined on the current object.

Returns

any

public doDeactivate(): any

This method is called by the diagram on the old tool when Diagram#currentTool is set to a new tool.

Returns

any

public doKeyDown(): any

The diagram will call this method upon a key down event.

Returns

any

public doKeyUp(): any

The diagram will call this method upon a key up event.

Returns

any

public doMouseDown(): any

If there is a GraphObject found with GraphObject#isActionable set to true, call that object's GraphObject#actionDown event, if it exists.

Returns

any

public doMouseMove(): any

If this tool is active call GraphObject#actionMove, if it exists, on the active object.

Returns

any

public doMouseUp(): any

Calls the GraphObject#actionUp event if defined, then effectively calls Tool#standardMouseClick to perform the normal click behaviors, and then stops this tool.

Returns

any

public doMouseWheel(): any

The diagram will call this method as the mouse wheel is rotated.

Returns

any

public doStart(): any

This method is called by the diagram when this tool becomes the current tool; you should not call this method.

Returns

any

public doStop(): any

This method is called by the diagram when this tool stops being the current tool; you should not call this method.

Returns

any

public doWaitAfter(): any

This is called a certain delay after a call to #standardWaitAfter if there has not been any call to #cancelWaitAfter.

Returns

any

public findToolHandleAt(p: Point, category: string): GraphObject

This convenience function finds the front-most GraphObject that is at a given point and that is part of an Adornment that is of a given category.

Parameters

  • p: Point

    a Point in document coordinates.

  • category: string

    the required Part#category of the Adornment.

Returns

GraphObject

public isBeyondDragSize(first?: Point, last?: Point): boolean

Return true when the last mouse point is far enough away from the first mouse down point to constitute a drag operation instead of just a potential click.

Parameters

  • first?: Point optional

    Point in view coordinates, defaults to Diagram#firstInput's InputEvent#viewPoint.

  • last?: Point optional

    Point in view coordinates, defaults to Diagram#lastInput's InputEvent#viewPoint.

Returns

boolean

public standardMouseClick(navig?: (obj: go.GraphObject) => go.GraphObject, pred?: (obj: go.GraphObject) => boolean): any

Implement the standard behavior for mouse clicks, searching for and calling click handler functions on GraphObjects or on Diagram, and raising the corresponding DiagramEvent.

Parameters

  • navig?: (obj: go.GraphObject) => go.GraphObject optional

    An optional custom navigation function to find target objects.

  • pred?: (obj: go.GraphObject) => boolean optional

    An optional custom predicate

Returns

any

public standardMouseOver(): any

Implement the standard behavior for mouse enter, over, and leave events, where the mouse is moving but no button is pressed.

Returns

any

public standardMouseSelect(): any

Implement the standard behavior for selecting parts with the mouse, depending on the control and shift modifier keys.

Returns

any

public standardMouseWheel(): any

Implement the standard behavior for mouse wheel events.

Returns

any

public standardWaitAfter(delay: number): any

This is called to start a new timer to call #doWaitAfter after a given delay.

Parameters

  • delay: number

    in milliseconds

Returns

any

public startTransaction(tname?: string): boolean

Call Diagram#startTransaction with the given transaction name.

Parameters

  • tname?: string optional

    a description of the transaction

Returns

boolean

public stopTool(): any

If the Diagram#currentTool is this tool, stop this tool and start the Diagram#defaultTool by making it be the new current tool.

Returns

any

public stopTransaction(): boolean

If #transactionResult is null, call Diagram#rollbackTransaction, otherwise call Diagram#commitTransaction.

Returns

boolean

public updateAdornments(part: Part): any

The diagram asks each tool to update any adornments the tool might use for a given part.

Parameters

Returns

any