UNPKG

gojs

Version:

Interactive diagrams, charts, and graphs, such as trees, flowcharts, orgcharts, UML, BPMN, or business diagrams

466 lines (465 loc) 24.1 kB
<!doctype html> <html class="default no-js"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>DragZoomingTool | GoJS API</title> <meta name="description" content=""> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="../../assets/css/bootstrap.min.css"> <link rel="stylesheet" href="../assets/css/main.css"> </head> <body> <header> <!-- non-fixed navbar --> <nav id="non-fixed-nav" class="navbar navbar-inverse navbar-top"> <div class="container-fluid"> <div class="navbar-header"> <div class="navheader-container"> <div class="navheader-collapse" data-toggle="collapse" data-target="#navbar"> <a id="toplogo" class="navbar-brand" href="../../index.html">GoJS</a> <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> </div> </div> </div> <div id="navbar" class="navbar-collapse collapse"> <ul class="nav navbar-nav navbar-right"> <li><a href="../../index.html">Home</a></li> <li><a href="../../learn/index.html">Learn</a></li> <li><a href="../../samples/index.html">Samples</a></li> <li><a href="../../intro/index.html">Intro</a></li> <li><a href="../../api/index.html" target="api">API</a></li> <li><a href="https://www.nwoods.com/components/evalform.htm">Register</a></li> <li><a href="../../download.html">Download</a></li> <li><a href="https://forum.nwoods.com/c/gojs">Forum</a></li> <li><a href="https://www.nwoods.com/contact.html" onclick="ga('send','event','Outbound Link','click','contact');">Contact</a></li> <li class="buy"><a href="https://www.nwoods.com/sales/index.html" onclick="ga('send','event','Outbound Link','click','buy');">Buy</a></li> <li class="activate"><a href="https://www.nwoods.com/app/activate.aspx?sku=gojs">Activate</a></li> </ul> </div><!--/.nav-collapse --> </div> </nav> <div class="tsd-page-header"> <div class="tsd-page-toolbar"> <div class="container-fluid plr15"> <div class="table-wrap"> <div class="table-cell" id="tsd-search" data-index="../assets/js/search.js" data-base=".."> <div class="field"> <label for="tsd-search-field" class="tsd-widget search no-caption">Search</label> <input id="tsd-search-field" type="text" /> </div> <ul class="results"> <li class="state loading">Preparing search index...</li> <li class="state failure">The search index is not available</li> </ul> <a href="../index.html" class="title">GoJS API</a> </div> <div class="table-cell" id="tsd-widgets"> <div id="tsd-filter"> <a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a> <div class="tsd-filter-group"> <div class="tsd-select" id="tsd-filter-visibility"> <span class="tsd-select-label">All</span> <ul class="tsd-select-list"> <li data-value="public">Public</li> <li data-value="protected">Public/Protected</li> <li data-value="private" class="selected">All</li> </ul> </div> </div> </div> <a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a> </div> </div> </div> </div> <div class="tsd-page-title"> <div class="container-fluid plr15"> <div class="top-copyright"> <!--<b>GoJS</b>&reg; Diagramming Components<br/>version &lt;br/&gt;version 2.1.18 for TypeScript/HTML<br/>by <a href="https://www.nwoods.com/">Northwoods Software&reg;</a>--> <b>GoJS</b>&reg; Diagramming Components<br/>version 2.1.18<br/>by <a href="https://www.nwoods.com/">Northwoods Software&reg;</a> </div> <div> <h1>Class DragZoomingTool</h1> </div> </div> </div> </div> </header> <div class="container-fluid container-main plr15"> <div class="row"> <div class="col-8 col-content"> <section class="tsd-panel tsd-extension"> <p> 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 <code>extensions</code> or <code>extensionsTS</code> folders. See the <a href="../../intro/extensions.html">Extensions intro page</a> for more information. </p> </section> <section class="tsd-panel tsd-hierarchy"> <h3>Hierarchy</h3> <ul class="tsd-hierarchy"> <li> <a href="Tool.html" class="tsd-signature-type">Tool</a> <ul class="tsd-hierarchy"> <li> <span class="target">DragZoomingTool</span> </li> </ul> </li> </ul> </section> <section class="tsd-panel tsd-comment"> <div class="tsd-comment tsd-typography"> <p>The DragZoomingTool lets the user zoom into a diagram by stretching a box to indicate the new contents of the diagram&#39;s viewport (the area of the model shown by the Diagram). Hold down the Shift key in order to zoom out.</p> <p>The default drag selection box is a magenta rectangle. You can modify the <a href="DragZoomingTool.html#box">box</a> to customize its appearance.</p> <p>The diagram that is zoomed by this tool is specified by the <a href="DragZoomingTool.html#zoomedDiagram">zoomedDiagram</a> property. If the value is null, the tool zooms its own <a href="Tool.html#diagram">Tool.diagram</a>.</p> <p>You can use this tool in a modal manner by executing:</p> <pre><code class="hljs js"> diagram.currentTool = <span class="hljs-keyword">new</span> DragZoomingTool();</code></pre> <p>Use this tool in a mode-less manner by executing:</p> <pre><code class="hljs js"> myDiagram.toolManager.mouseMoveTools.insertAt(<span class="hljs-number">2</span>, <span class="hljs-keyword">new</span> DragZoomingTool());</code></pre> <p>However when used mode-lessly as a mouse-move tool, in <a href="ToolManager.html#mouseMoveTools">ToolManager.mouseMoveTools</a>, this cannot start running unless there has been a motionless delay after the mouse-down event of at least <a href="DragZoomingTool.html#delay">delay</a> milliseconds.</p> <p>This tool does not utilize any <a href="Adornment.html">Adornment</a>s or tool handles, but it does temporarily add the <a href="DragZoomingTool.html#box">box</a> part to the diagram. This tool does not modify the model or conduct any transaction.</p> <p>If you want to experiment with this extension, try the <a href="../../extensionsTS/DragZooming.html">Drag Zooming</a> sample.</p> </div> </section> <section class="tsd-panel-group tsd-index-group"> <h2>Index</h2> <section class="tsd-panel tsd-index-panel"> <div class="tsd-index-content"> <section class="tsd-index-section "> <h3>Constructors</h3> <ul class="tsd-index-list"> <li class="tsd-kind-constructor tsd-parent-kind-class"><a href="DragZoomingTool.html#constructor" class="tsd-kind-icon">constructor</a></li> </ul> </section> <section class="tsd-index-section "> <h3>Properties</h3> <ul class="tsd-index-list"> <li class="tsd-kind-accessor tsd-parent-kind-class"><a href="DragZoomingTool.html#box" class="tsd-kind-icon">box</a></li> <li class="tsd-kind-accessor tsd-parent-kind-class"><a href="DragZoomingTool.html#delay" class="tsd-kind-icon">delay</a></li> <li class="tsd-kind-accessor tsd-parent-kind-class"><a href="DragZoomingTool.html#zoomedDiagram" class="tsd-kind-icon">zoomed<wbr>Diagram</a></li> </ul> </section> <section class="tsd-index-section "> <h3>Methods</h3> <ul class="tsd-index-list"> <li class="tsd-kind-method tsd-parent-kind-class"><a href="DragZoomingTool.html#canStart" class="tsd-kind-icon">can<wbr>Start</a></li> <li class="tsd-kind-method tsd-parent-kind-class"><a href="DragZoomingTool.html#computeBoxBounds" class="tsd-kind-icon">compute<wbr>Box<wbr>Bounds</a></li> <li class="tsd-kind-method tsd-parent-kind-class"><a href="DragZoomingTool.html#doActivate" class="tsd-kind-icon">do<wbr>Activate</a></li> <li class="tsd-kind-method tsd-parent-kind-class"><a href="DragZoomingTool.html#doDeactivate" class="tsd-kind-icon">do<wbr>Deactivate</a></li> <li class="tsd-kind-method tsd-parent-kind-class"><a href="DragZoomingTool.html#doMouseMove" class="tsd-kind-icon">do<wbr>Mouse<wbr>Move</a></li> <li class="tsd-kind-method tsd-parent-kind-class"><a href="DragZoomingTool.html#doMouseUp" class="tsd-kind-icon">do<wbr>Mouse<wbr>Up</a></li> <li class="tsd-kind-method tsd-parent-kind-class"><a href="DragZoomingTool.html#zoomToRect" class="tsd-kind-icon">zoom<wbr>ToRect</a></li> </ul> </section> </div> </section> </section> <section class="tsd-panel-group tsd-member-group "> <h2>Constructors</h2> <section class="tsd-panel tsd-member tsd-kind-constructor tsd-parent-kind-class"> <a name="constructor" class="tsd-anchor"></a> <h3> constructor </h3> <ul class="tsd-signatures tsd-kind-constructor tsd-parent-kind-class"> <li class="tsd-signature tsd-kind-icon">new <wbr>Drag<wbr>Zooming<wbr>Tool<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="DragZoomingTool.html" class="tsd-signature-type">DragZoomingTool</a></li> </ul> <ul class="tsd-descriptions"> <li class="tsd-description"> <div class="tsd-comment tsd-typography"> <p>Constructs a DragZoomingTool, sets <a href="DragZoomingTool.html#box">box</a> to a magenta rectangle, and sets name of the tool.</p> </div> <h4 class="tsd-returns-title">Returns <a href="DragZoomingTool.html" class="tsd-signature-type">DragZoomingTool</a></h4> </li> </ul> </section> </section> <section class="tsd-panel-group tsd-member-group "> <h2>Properties</h2> <section class="tsd-panel tsd-member tsd-kind-accessor tsd-parent-kind-class"> <a name="box" class="tsd-anchor"></a> <h3> box <span class="tsd-signature-symbol">: </span><a href="Part.html" class="tsd-signature-type">Part</a> </h3> <ul class="tsd-descriptions"> <li class="tsd-description"> <div class="tsd-comment tsd-typography"> <p>Gets or sets the <a href="Part.html">Part</a> used as the &quot;rubber-band zoom box&quot; that is stretched to follow the mouse, as feedback for what area will be passed to <a href="DragZoomingTool.html#zoomToRect">zoomToRect</a> upon a mouse-up.</p> <p>Initially this is a <a href="Part.html">Part</a> containing only a simple magenta rectangular <a href="Shape.html">Shape</a>. The object to be resized should be named &quot;SHAPE&quot;. Setting this property does not raise any events.</p> <p>Modifying this property while this tool <a href="Tool.html#isActive">Tool.isActive</a> might have no effect.</p> </div> </li> </ul> </section> <section class="tsd-panel tsd-member tsd-kind-accessor tsd-parent-kind-class"> <a name="delay" class="tsd-anchor"></a> <h3> delay <span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span> </h3> <ul class="tsd-descriptions"> <li class="tsd-description"> <div class="tsd-comment tsd-typography"> <p>Gets or sets the time in milliseconds for which the mouse must be stationary before this tool can be started.</p> <p>The default value is 175 milliseconds. Setting this property does not raise any events.</p> </div> </li> </ul> </section> <section class="tsd-panel tsd-member tsd-kind-accessor tsd-parent-kind-class"> <a name="zoomedDiagram" class="tsd-anchor"></a> <h3> zoomed<wbr>Diagram <span class="tsd-signature-symbol">: </span><a href="Diagram.html" class="tsd-signature-type">Diagram</a><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">null</span> </h3> <ul class="tsd-descriptions"> <li class="tsd-description"> <div class="tsd-comment tsd-typography"> <p>Gets or sets the <a href="Diagram.html">Diagram</a> whose <a href="Diagram.html#position">Diagram.position</a> and <a href="Diagram.html#scale">Diagram.scale</a> should be set to display the drawn <a href="DragZoomingTool.html#box">box</a> rectangular bounds.</p> <p>The default value is null, which causes <a href="DragZoomingTool.html#zoomToRect">zoomToRect</a> to modify this tool&#39;s <a href="Tool.html#diagram">Tool.diagram</a>. Setting this property does not raise any events.</p> </div> </li> </ul> </section> </section> <section class="tsd-panel-group tsd-member-group "> <h2>Methods</h2> <section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class"> <a name="canStart" class="tsd-anchor"></a> <h3> <span class="tsd-flag ts-flagOverride">Override</span> can<wbr>Start </h3> <ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class"> <li class="tsd-signature tsd-kind-icon">can<wbr>Start<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span></li> </ul> <ul class="tsd-descriptions"> <li class="tsd-description"> <div class="tsd-comment tsd-typography"> <p>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 <a href="DragZoomingTool.html#delay">delay</a> milliseconds after the mouse-down before a mouse-move.</p> </div> <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4> </li> </ul> </section> <section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class"> <a name="computeBoxBounds" class="tsd-anchor"></a> <h3> compute<wbr>Box<wbr>Bounds </h3> <ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class"> <li class="tsd-signature tsd-kind-icon">compute<wbr>Box<wbr>Bounds<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="Rect.html" class="tsd-signature-type">Rect</a></li> </ul> <ul class="tsd-descriptions"> <li class="tsd-description"> <div class="tsd-comment tsd-typography"> <p>This just returns a <a href="Rect.html">Rect</a> stretching from the mouse-down point to the current mouse point while maintaining the aspect ratio of the <a href="DragZoomingTool.html#zoomedDiagram">zoomedDiagram</a>.</p> </div> <h4 class="tsd-returns-title">Returns <a href="Rect.html" class="tsd-signature-type">Rect</a></h4> <p>a <a href="Rect.html">Rect</a> in document coordinates.</p> </li> </ul> </section> <section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class"> <a name="doActivate" class="tsd-anchor"></a> <h3> <span class="tsd-flag ts-flagOverride">Override</span> do<wbr>Activate </h3> <ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class"> <li class="tsd-signature tsd-kind-icon">do<wbr>Activate<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li> </ul> <ul class="tsd-descriptions"> <li class="tsd-description"> <div class="tsd-comment tsd-typography"> <p>Capture the mouse and show the <a href="DragZoomingTool.html#box">box</a>.</p> </div> <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4> </li> </ul> </section> <section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class"> <a name="doDeactivate" class="tsd-anchor"></a> <h3> <span class="tsd-flag ts-flagOverride">Override</span> do<wbr>Deactivate </h3> <ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class"> <li class="tsd-signature tsd-kind-icon">do<wbr>Deactivate<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li> </ul> <ul class="tsd-descriptions"> <li class="tsd-description"> <div class="tsd-comment tsd-typography"> <p>Release the mouse and remove any <a href="DragZoomingTool.html#box">box</a>.</p> </div> <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4> </li> </ul> </section> <section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class"> <a name="doMouseMove" class="tsd-anchor"></a> <h3> <span class="tsd-flag ts-flagOverride">Override</span> do<wbr>Mouse<wbr>Move </h3> <ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class"> <li class="tsd-signature tsd-kind-icon">do<wbr>Mouse<wbr>Move<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li> </ul> <ul class="tsd-descriptions"> <li class="tsd-description"> <div class="tsd-comment tsd-typography"> <p>Update the <a href="DragZoomingTool.html#box">box</a>&#39;s position and size according to the value of <a href="DragZoomingTool.html#computeBoxBounds">computeBoxBounds</a>.</p> </div> <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4> </li> </ul> </section> <section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class"> <a name="doMouseUp" class="tsd-anchor"></a> <h3> <span class="tsd-flag ts-flagOverride">Override</span> do<wbr>Mouse<wbr>Up </h3> <ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class"> <li class="tsd-signature tsd-kind-icon">do<wbr>Mouse<wbr>Up<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li> </ul> <ul class="tsd-descriptions"> <li class="tsd-description"> <div class="tsd-comment tsd-typography"> <p>Call <a href="DragZoomingTool.html#zoomToRect">zoomToRect</a> with the value of a call to <a href="DragZoomingTool.html#computeBoxBounds">computeBoxBounds</a>.</p> </div> <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4> </li> </ul> </section> <section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class"> <a name="zoomToRect" class="tsd-anchor"></a> <h3> zoom<wbr>ToRect </h3> <ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class"> <li class="tsd-signature tsd-kind-icon">zoom<wbr>ToRect<span class="tsd-signature-symbol">(</span>r<span class="tsd-signature-symbol">: </span><a href="Rect.html" class="tsd-signature-type">Rect</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li> </ul> <ul class="tsd-descriptions"> <li class="tsd-description"> <div class="tsd-comment tsd-typography"> <p>This method is called to change the <a href="DragZoomingTool.html#zoomedDiagram">zoomedDiagram</a>&#39;s viewport to match the given rectangle.</p> </div> <h4 class="tsd-parameters-title">Parameters</h4> <ul class="tsd-parameters"> <li> <h5>r: <a href="Rect.html" class="tsd-signature-type">Rect</a></h5> <div class="tsd-comment tsd-typography"> <p>a rectangular bounds in document coordinates.</p> </div> </li> </ul> <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4> </li> </ul> </section> </section> </div> <div class="col-4 col-menu menu-sticky-wrap menu-highlight"> <nav class="tsd-navigation primary"> <ul> <li class="globals "> <a href="../index.html"><em>GoJS <wbr>Class <wbr>Index</em></a> </li> </ul> </nav> <nav class="tsd-navigation secondary menu-sticky"> <ul class="before-current"> </ul> <ul class="current"> <li class="current tsd-kind-class tsd-is-extension"> <a href="DragZoomingTool.html" class="tsd-kind-icon">Drag<wbr>Zooming<wbr>Tool</a> <ul> <li class=" tsd-kind-constructor tsd-parent-kind-class"> <a href="DragZoomingTool.html#constructor" class="tsd-kind-icon">constructor</a> </li> <li class=" tsd-kind-accessor tsd-parent-kind-class"> <a href="DragZoomingTool.html#box" class="tsd-kind-icon">box</a> </li> <li class=" tsd-kind-accessor tsd-parent-kind-class"> <a href="DragZoomingTool.html#delay" class="tsd-kind-icon">delay</a> </li> <li class=" tsd-kind-accessor tsd-parent-kind-class"> <a href="DragZoomingTool.html#zoomedDiagram" class="tsd-kind-icon">zoomed<wbr>Diagram</a> </li> <li class=" tsd-kind-method tsd-parent-kind-class"> <a href="DragZoomingTool.html#canStart" class="tsd-kind-icon">can<wbr>Start</a> </li> <li class=" tsd-kind-method tsd-parent-kind-class"> <a href="DragZoomingTool.html#computeBoxBounds" class="tsd-kind-icon">compute<wbr>Box<wbr>Bounds</a> </li> <li class=" tsd-kind-method tsd-parent-kind-class"> <a href="DragZoomingTool.html#doActivate" class="tsd-kind-icon">do<wbr>Activate</a> </li> <li class=" tsd-kind-method tsd-parent-kind-class"> <a href="DragZoomingTool.html#doDeactivate" class="tsd-kind-icon">do<wbr>Deactivate</a> </li> <li class=" tsd-kind-method tsd-parent-kind-class"> <a href="DragZoomingTool.html#doMouseMove" class="tsd-kind-icon">do<wbr>Mouse<wbr>Move</a> </li> <li class=" tsd-kind-method tsd-parent-kind-class"> <a href="DragZoomingTool.html#doMouseUp" class="tsd-kind-icon">do<wbr>Mouse<wbr>Up</a> </li> <li class=" tsd-kind-method tsd-parent-kind-class"> <a href="DragZoomingTool.html#zoomToRect" class="tsd-kind-icon">zoom<wbr>ToRect</a> </li> </ul> </li> </ul> <ul class="after-current"> </ul> </nav> </div> </div> </div> <div class="container-fluid bottom-copyright plr15"> Copyright &copy; 1998-2020 by Northwoods Software Corporation. </div> <div class="overlay"></div> <script src="../assets/js/main.js"></script> <script src="../../assets/js/api.js"></script> <script src="../../assets/js/bootstrap.min.js"></script> <script>if (location.protocol == 'file:') document.write('<script src="../assets/js/search.js"><' + '/script>');</script> <script> (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','https://www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-1506307-5', 'auto'); ga('send', 'pageview'); </script> </body> </html>