This is an extension and not part of the main GoJS library.
Note that the API for this class may change at any time.
If you intend to use an extension in production, you should copy the code to your own source directory.
Extensions can be found in the GoJS kit under the
See the Extensions intro page for more information.
The DragCreatingTool lets the user create a new node by dragging in the background to indicate its size and position.
The default drag selection box is a magenta rectangle. You can modify the box to customize its appearance.
This tool will not be able to start running unless you have set the archetypeNodeData property to an object that can be copied and added to the diagram's model.
You can use this tool in a modal manner by executing:
diagram.currentTool = new DragCreatingTool();
Use this tool in a mode-less manner by executing:
myDiagram.toolManager.mouseMoveTools.insertAt(2, new DragCreatingTool());
However when used mode-lessly as a mouse-move tool, in ToolManager.mouseMoveTools, this cannot start running unless there has been a motionless delay after the mouse-down event of at least delay milliseconds.
If you want to experiment with this extension, try the Drag Creating sample.
Gets or sets a data object that will be copied and added to the diagram's model each time this tool executes.
The default value is null. The value must be non-null for this tool to be able to run. Setting this property does not raise any events.
Modifying this property while this tool Tool.isActive might have no effect.
Gets or sets the time in milliseconds for which the mouse must be stationary before this tool can be started.
The default value is 175 milliseconds. A value of zero will allow this tool to run without any wait after the mouse down. Setting this property does not raise any events.
This tool can run when there has been a mouse-drag, far enough away not to be a click, and there has been delay of at least delay milliseconds after the mouse-down before a mouse-move.
Capture the mouse and show the box.
Release the mouse and remove any box.
Create a node by adding a copy of the archetypeNodeData object to the diagram's model, assign its GraphObject.position and GraphObject.desiredSize according to the given bounds, and select the new part.
The actual part that is added to the diagram may be a Part, a Node, or even a Group, depending on the properties of the archetypeNodeData and the type of the template that is copied to create the part.
a Point in document coordinates.
the newly created Part, or null if it failed.