+++ /dev/null
-<html><head><title>/home/alan/gitlive/roojs1/Roo/dd/DragDrop.js</title><link rel="stylesheet" type="text/css" href="../../css/highlight-js.css"/></head><body class="highlightpage"><code class="jsdoc-pretty"><span class="jsdoc-comment">/*
- * Based on:
- * Ext JS Library 1.1.1
- * Copyright(c) 2006-2007, Ext JS, LLC.
- *
- * Originally Released Under LGPL - original licence link has changed is not relivant.
- *
- * Fork - LGPL
- * <script type="text/javascript">
- */
-
-
-
-/*
- * These classes are derivatives of the similarly named classes in the YUI Library.
- * The original license:
- * Copyright (c) 2006, Yahoo! Inc. All rights reserved.
- * Code licensed under the BSD License:
- * http://developer.yahoo.net/yui/license.txt
- */
-
-</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() {
-
-</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">Event</span><span class="jsdoc-syntax">=</span><span class="jsdoc-var">Roo.EventManager</span><span class="jsdoc-syntax">;
-</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">Dom</span><span class="jsdoc-syntax">=</span><span class="jsdoc-var">Roo.lib.Dom</span><span class="jsdoc-syntax">;
-
-</span><span class="jsdoc-comment">/**
- * @class Roo.dd.DragDrop
- * @extends Roo.util.Observable
- * Defines the interface and base operation of items that that can be
- * dragged or can be drop targets. It was designed to be extended, overriding
- * the event handlers for startDrag, onDrag, onDragOver and onDragOut.
- * Up to three html elements can be associated with a DragDrop instance:
- * <ul>
- * <li>linked element: the element that is passed into the constructor.
- * This is the element which defines the boundaries for interaction with
- * other DragDrop objects.</li>
- * <li>handle element(s): The drag operation only occurs if the element that
- * was clicked matches a handle element. By default this is the linked
- * element, but there are times that you will want only a portion of the
- * linked element to initiate the drag operation, and the setHandleElId()
- * method provides a way to define this.</li>
- * <li>drag element: this represents the element that would be moved along
- * with the cursor during a drag operation. By default, this is the linked
- * element itself as in {@link Roo.dd.DD}. setDragElId() lets you define
- * a separate element that would be moved, as in {@link Roo.dd.DDProxy}.
- * </li>
- * </ul>
- * This class should not be instantiated until the onload event to ensure that
- * the associated elements are available.
- * The following would define a DragDrop obj that would interact with any
- * other DragDrop obj in the "group1" group:
- * <pre>
- * dd = new Roo.dd.DragDrop("div1", "group1");
- * </pre>
- * Since none of the event handlers have been implemented, nothing would
- * actually happen if you were to run the code above. Normally you would
- * override this class or one of the default implementations, but you can
- * also override the methods you want on an instance of the class...
- * <pre>
- * dd.onDragDrop = function(e, id) {
- * &nbsp;&nbsp;alert("dd was dropped on " + id);
- * }
- * </pre>
- * @constructor
- * @param {String} id of the element that is linked to this instance
- * @param {String} sGroup the group of related DragDrop objects
- * @param {object} config an object containing configurable attributes
- * Valid properties for DragDrop:
- * padding, isTarget, maintainOffset, primaryButtonOnly
- */
-</span><span class="jsdoc-var">Roo.dd.DragDrop </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">sGroup</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">config</span><span class="jsdoc-syntax">) {
- </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">) {
- </span><span class="jsdoc-var">this.init</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">sGroup</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">config</span><span class="jsdoc-syntax">);
- }
-
-};
-
-</span><span class="jsdoc-var">Roo.extend</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.dd.DragDrop</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">Roo.util.Observable </span><span class="jsdoc-syntax">, {
-
- </span><span class="jsdoc-comment">/**
- * The id of the element associated with this object. This is what we
- * refer to as the "linked element" because the size and position of
- * this element is used to determine when the drag and drop objects have
- * interacted.
- * @property id
- * @type String
- */
- </span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">,
-
- </span><span class="jsdoc-comment">/**
- * Configuration attributes passed into the constructor
- * @property config
- * @type object
- */
- </span><span class="jsdoc-var">config</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">,
-
- </span><span class="jsdoc-comment">/**
- * The id of the element that will be dragged. By default this is same
- * as the linked element , but could be changed to another element. Ex:
- * Roo.dd.DDProxy
- * @property dragElId
- * @type String
- * @private
- */
- </span><span class="jsdoc-var">dragElId</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">,
-
- </span><span class="jsdoc-comment">/**
- * the id of the element that initiates the drag operation. By default
- * this is the linked element, but could be changed to be a child of this
- * element. This lets us do things like only starting the drag when the
- * header element within the linked html element is clicked.
- * @property handleElId
- * @type String
- * @private
- */
- </span><span class="jsdoc-var">handleElId</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">,
-
- </span><span class="jsdoc-comment">/**
- * An associative array of HTML tags that will be ignored if clicked.
- * @property invalidHandleTypes
- * @type {string: string}
- */
- </span><span class="jsdoc-var">invalidHandleTypes</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">,
-
- </span><span class="jsdoc-comment">/**
- * An associative array of ids for elements that will be ignored if clicked
- * @property invalidHandleIds
- * @type {string: string}
- */
- </span><span class="jsdoc-var">invalidHandleIds</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">,
-
- </span><span class="jsdoc-comment">/**
- * An indexted array of css class names for elements that will be ignored
- * if clicked.
- * @property invalidHandleClasses
- * @type string[]
- */
- </span><span class="jsdoc-var">invalidHandleClasses</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">,
-
- </span><span class="jsdoc-comment">/**
- * The linked element's absolute X position at the time the drag was
- * started
- * @property startPageX
- * @type int
- * @private
- */
- </span><span class="jsdoc-var">startPageX</span><span class="jsdoc-syntax">: 0,
-
- </span><span class="jsdoc-comment">/**
- * The linked element's absolute X position at the time the drag was
- * started
- * @property startPageY
- * @type int
- * @private
- */
- </span><span class="jsdoc-var">startPageY</span><span class="jsdoc-syntax">: 0,
-
- </span><span class="jsdoc-comment">/**
- * The group defines a logical collection of DragDrop objects that are
- * related. Instances only get events when interacting with other
- * DragDrop object in the same group. This lets us define multiple
- * groups using a single DragDrop subclass if we want.
- * @property groups
- * @type {string: string}
- */
- </span><span class="jsdoc-var">groups</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">,
-
- </span><span class="jsdoc-comment">/**
- * Individual drag/drop instances can be locked. This will prevent
- * onmousedown start drag.
- * @property locked
- * @type boolean
- * @private
- */
- </span><span class="jsdoc-var">locked</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
-
- </span><span class="jsdoc-comment">/**
- * Lock this instance
- * @method lock
- */
- </span><span class="jsdoc-var">lock</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() { </span><span class="jsdoc-var">this.locked </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">; },
-
- </span><span class="jsdoc-comment">/**
- * Unlock this instace
- * @method unlock
- */
- </span><span class="jsdoc-var">unlock</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() { </span><span class="jsdoc-var">this.locked </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">; },
-
- </span><span class="jsdoc-comment">/**
- * By default, all insances can be a drop target. This can be disabled by
- * setting isTarget to false.
- * @method isTarget
- * @type boolean
- */
- </span><span class="jsdoc-var">isTarget</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
-
- </span><span class="jsdoc-comment">/**
- * The padding configured for this drag and drop object for calculating
- * the drop zone intersection with this object.
- * @method padding
- * @type int[]
- */
- </span><span class="jsdoc-var">padding</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">,
-
- </span><span class="jsdoc-comment">/**
- * Cached reference to the linked element
- * @property _domRef
- * @private
- */
- </span><span class="jsdoc-var">_domRef</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">,
-
- </span><span class="jsdoc-comment">/**
- * Internal typeof flag
- * @property __ygDragDrop
- * @private
- */
- </span><span class="jsdoc-var">__ygDragDrop</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
-
- </span><span class="jsdoc-comment">/**
- * Set to true when horizontal contraints are applied
- * @property constrainX
- * @type boolean
- * @private
- */
- </span><span class="jsdoc-var">constrainX</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
-
- </span><span class="jsdoc-comment">/**
- * Set to true when vertical contraints are applied
- * @property constrainY
- * @type boolean
- * @private
- */
- </span><span class="jsdoc-var">constrainY</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
-
- </span><span class="jsdoc-comment">/**
- * The left constraint
- * @property minX
- * @type int
- * @private
- */
- </span><span class="jsdoc-var">minX</span><span class="jsdoc-syntax">: 0,
-
- </span><span class="jsdoc-comment">/**
- * The right constraint
- * @property maxX
- * @type int
- * @private
- */
- </span><span class="jsdoc-var">maxX</span><span class="jsdoc-syntax">: 0,
-
- </span><span class="jsdoc-comment">/**
- * The up constraint
- * @property minY
- * @type int
- * @type int
- * @private
- */
- </span><span class="jsdoc-var">minY</span><span class="jsdoc-syntax">: 0,
-
- </span><span class="jsdoc-comment">/**
- * The down constraint
- * @property maxY
- * @type int
- * @private
- */
- </span><span class="jsdoc-var">maxY</span><span class="jsdoc-syntax">: 0,
-
- </span><span class="jsdoc-comment">/**
- * Maintain offsets when we resetconstraints. Set to true when you want
- * the position of the element relative to its parent to stay the same
- * when the page changes
- *
- * @property maintainOffset
- * @type boolean
- */
- </span><span class="jsdoc-var">maintainOffset</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
-
- </span><span class="jsdoc-comment">/**
- * Array of pixel locations the element will snap to if we specified a
- * horizontal graduation/interval. This array is generated automatically
- * when you define a tick interval.
- * @property xTicks
- * @type int[]
- */
- </span><span class="jsdoc-var">xTicks</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">,
-
- </span><span class="jsdoc-comment">/**
- * Array of pixel locations the element will snap to if we specified a
- * vertical graduation/interval. This array is generated automatically
- * when you define a tick interval.
- * @property yTicks
- * @type int[]
- */
- </span><span class="jsdoc-var">yTicks</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">,
-
- </span><span class="jsdoc-comment">/**
- * By default the drag and drop instance will only respond to the primary
- * button click (left button for a right-handed mouse). Set to true to
- * allow drag and drop to start with any mouse click that is propogated
- * by the browser
- * @property primaryButtonOnly
- * @type boolean
- */
- </span><span class="jsdoc-var">primaryButtonOnly</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
-
- </span><span class="jsdoc-comment">/**
- * The availabe property is false until the linked dom element is accessible.
- * @property available
- * @type boolean
- */
- </span><span class="jsdoc-var">available</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
-
- </span><span class="jsdoc-comment">/**
- * By default, drags can only be initiated if the mousedown occurs in the
- * region the linked element is. This is done in part to work around a
- * bug in some browsers that mis-report the mousedown if the previous
- * mouseup happened outside of the window. This property is set to true
- * if outer handles are defined.
- *
- * @property hasOuterHandles
- * @type boolean
- * @default false
- */
- </span><span class="jsdoc-var">hasOuterHandles</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
-
- </span><span class="jsdoc-comment">/**
- * Code that executes immediately before the startDrag event
- * @method b4StartDrag
- * @private
- */
- </span><span class="jsdoc-var">b4StartDrag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">x</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">y</span><span class="jsdoc-syntax">) { },
-
- </span><span class="jsdoc-comment">/**
- * Abstract method called after a drag/drop object is clicked
- * and the drag or mousedown time thresholds have beeen met.
- * @method startDrag
- * @param {int} X click location
- * @param {int} Y click location
- */
- </span><span class="jsdoc-var">startDrag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">x</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">y</span><span class="jsdoc-syntax">) { </span><span class="jsdoc-comment">/* override this */ </span><span class="jsdoc-syntax">},
-
- </span><span class="jsdoc-comment">/**
- * Code that executes immediately before the onDrag event
- * @method b4Drag
- * @private
- */
- </span><span class="jsdoc-var">b4Drag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">) { },
-
- </span><span class="jsdoc-comment">/**
- * Abstract method called during the onMouseMove event while dragging an
- * object.
- * @method onDrag
- * @param {Event} e the mousemove event
- */
- </span><span class="jsdoc-var">onDrag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">) { </span><span class="jsdoc-comment">/* override this */ </span><span class="jsdoc-syntax">},
-
- </span><span class="jsdoc-comment">/**
- * Abstract method called when this element fist begins hovering over
- * another DragDrop obj
- * @method onDragEnter
- * @param {Event} e the mousemove event
- * @param {String|DragDrop[]} id In POINT mode, the element
- * id this is hovering over. In INTERSECT mode, an array of one or more
- * dragdrop items being hovered over.
- */
- </span><span class="jsdoc-var">onDragEnter</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">) { </span><span class="jsdoc-comment">/* override this */ </span><span class="jsdoc-syntax">},
-
- </span><span class="jsdoc-comment">/**
- * Code that executes immediately before the onDragOver event
- * @method b4DragOver
- * @private
- */
- </span><span class="jsdoc-var">b4DragOver</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">) { },
-
- </span><span class="jsdoc-comment">/**
- * Abstract method called when this element is hovering over another
- * DragDrop obj
- * @method onDragOver
- * @param {Event} e the mousemove event
- * @param {String|DragDrop[]} id In POINT mode, the element
- * id this is hovering over. In INTERSECT mode, an array of dd items
- * being hovered over.
- */
- </span><span class="jsdoc-var">onDragOver</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">) { </span><span class="jsdoc-comment">/* override this */ </span><span class="jsdoc-syntax">},
-
- </span><span class="jsdoc-comment">/**
- * Code that executes immediately before the onDragOut event
- * @method b4DragOut
- * @private
- */
- </span><span class="jsdoc-var">b4DragOut</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">) { },
-
- </span><span class="jsdoc-comment">/**
- * Abstract method called when we are no longer hovering over an element
- * @method onDragOut
- * @param {Event} e the mousemove event
- * @param {String|DragDrop[]} id In POINT mode, the element
- * id this was hovering over. In INTERSECT mode, an array of dd items
- * that the mouse is no longer over.
- */
- </span><span class="jsdoc-var">onDragOut</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">) { </span><span class="jsdoc-comment">/* override this */ </span><span class="jsdoc-syntax">},
-
- </span><span class="jsdoc-comment">/**
- * Code that executes immediately before the onDragDrop event
- * @method b4DragDrop
- * @private
- */
- </span><span class="jsdoc-var">b4DragDrop</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">) { },
-
- </span><span class="jsdoc-comment">/**
- * Abstract method called when this item is dropped on another DragDrop
- * obj
- * @method onDragDrop
- * @param {Event} e the mouseup event
- * @param {String|DragDrop[]} id In POINT mode, the element
- * id this was dropped on. In INTERSECT mode, an array of dd items this
- * was dropped on.
- */
- </span><span class="jsdoc-var">onDragDrop</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">) { </span><span class="jsdoc-comment">/* override this */ </span><span class="jsdoc-syntax">},
-
- </span><span class="jsdoc-comment">/**
- * Abstract method called when this item is dropped on an area with no
- * drop target
- * @method onInvalidDrop
- * @param {Event} e the mouseup event
- */
- </span><span class="jsdoc-var">onInvalidDrop</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">) { </span><span class="jsdoc-comment">/* override this */ </span><span class="jsdoc-syntax">},
-
- </span><span class="jsdoc-comment">/**
- * Code that executes immediately before the endDrag event
- * @method b4EndDrag
- * @private
- */
- </span><span class="jsdoc-var">b4EndDrag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">) { },
-
- </span><span class="jsdoc-comment">/**
- * Fired when we are done dragging the object
- * @method endDrag
- * @param {Event} e the mouseup event
- */
- </span><span class="jsdoc-var">endDrag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">) { </span><span class="jsdoc-comment">/* override this */ </span><span class="jsdoc-syntax">},
-
- </span><span class="jsdoc-comment">/**
- * Code executed immediately before the onMouseDown event
- * @method b4MouseDown
- * @param {Event} e the mousedown event
- * @private
- */
- </span><span class="jsdoc-var">b4MouseDown</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">) { },
-
- </span><span class="jsdoc-comment">/**
- * Event handler that fires when a drag/drop obj gets a mousedown
- * @method onMouseDown
- * @param {Event} e the mousedown event
- */
- </span><span class="jsdoc-var">onMouseDown</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">) { </span><span class="jsdoc-comment">/* override this */ </span><span class="jsdoc-syntax">},
-
- </span><span class="jsdoc-comment">/**
- * Event handler that fires when a drag/drop obj gets a mouseup
- * @method onMouseUp
- * @param {Event} e the mouseup event
- */
- </span><span class="jsdoc-var">onMouseUp</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">) { </span><span class="jsdoc-comment">/* override this */ </span><span class="jsdoc-syntax">},
-
- </span><span class="jsdoc-comment">/**
- * Override the onAvailable method to do what is needed after the initial
- * position was determined.
- * @method onAvailable
- */
- </span><span class="jsdoc-var">onAvailable</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">() {
- },
-
- </span><span class="jsdoc-comment">/*
- * Provides default constraint padding to "constrainTo" elements (defaults to {left: 0, right:0, top:0, bottom:0}).
- * @type Object
- */
- </span><span class="jsdoc-var">defaultPadding </span><span class="jsdoc-syntax">: {</span><span class="jsdoc-var">left</span><span class="jsdoc-syntax">:0, </span><span class="jsdoc-var">right</span><span class="jsdoc-syntax">:0, </span><span class="jsdoc-var">top</span><span class="jsdoc-syntax">:0, </span><span class="jsdoc-var">bottom</span><span class="jsdoc-syntax">:0},
-
- </span><span class="jsdoc-comment">/*
- * Initializes the drag drop object's constraints to restrict movement to a certain element.
- *
- * Usage:
- <pre><code>
- var dd = new Roo.dd.DDProxy("dragDiv1", "proxytest",
- { dragElId: "existingProxyDiv" });
- dd.startDrag = function(){
- this.constrainTo("parent-id");
- };
- </code></pre>
- * Or you can initalize it using the {@link Roo.Element} object:
- <pre><code>
- Roo.get("dragDiv1").initDDProxy("proxytest", {dragElId: "existingProxyDiv"}, {
- startDrag : function(){
- this.constrainTo("parent-id");
- }
- });
- </code></pre>
- * @param {String/HTMLElement/Element} constrainTo The element to constrain to.
- * @param {Object/Number} pad (optional) Pad provides a way to specify "padding" of the constraints,
- * and can be either a number for symmetrical padding (4 would be equal to {left:4, right:4, top:4, bottom:4}) or
- * an object containing the sides to pad. For example: {right:10, bottom:10}
- * @param {Boolean} inContent (optional) Constrain the draggable in the content box of the element (inside padding and borders)
- */
- </span><span class="jsdoc-var">constrainTo </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">constrainTo</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">pad</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">inContent</span><span class="jsdoc-syntax">){
- </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">typeof </span><span class="jsdoc-var">pad </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">"number"</span><span class="jsdoc-syntax">){
- </span><span class="jsdoc-var">pad </span><span class="jsdoc-syntax">= {</span><span class="jsdoc-var">left</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">pad</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">right</span><span class="jsdoc-syntax">:</span><span class="jsdoc-var">pad</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">top</span><span class="jsdoc-syntax">:</span><span class="jsdoc-var">pad</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">bottom</span><span class="jsdoc-syntax">:</span><span class="jsdoc-var">pad</span><span class="jsdoc-syntax">};
- }
- </span><span class="jsdoc-var">pad </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">pad </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">this.defaultPadding</span><span class="jsdoc-syntax">;
- </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">b </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.get</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.getEl</span><span class="jsdoc-syntax">())</span><span class="jsdoc-var">.getBox</span><span class="jsdoc-syntax">();
- </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">ce </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.get</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">constrainTo</span><span class="jsdoc-syntax">);
- </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">s </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">ce.getScroll</span><span class="jsdoc-syntax">();
- </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">c</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">cd </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">ce.dom</span><span class="jsdoc-syntax">;
- </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cd </span><span class="jsdoc-syntax">== </span><span class="jsdoc-var">document.body</span><span class="jsdoc-syntax">){
- </span><span class="jsdoc-var">c </span><span class="jsdoc-syntax">= { </span><span class="jsdoc-var">x</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">s.left</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">y</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">s.top</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">width</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">Roo.lib.Dom.getViewWidth</span><span class="jsdoc-syntax">(), </span><span class="jsdoc-var">height</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">Roo.lib.Dom.getViewHeight</span><span class="jsdoc-syntax">()};
- }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
- </span><span class="jsdoc-var">xy </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">ce.getXY</span><span class="jsdoc-syntax">();
- </span><span class="jsdoc-var">c </span><span class="jsdoc-syntax">= {</span><span class="jsdoc-var">x </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">xy</span><span class="jsdoc-syntax">[0]+</span><span class="jsdoc-var">s.left</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">y</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">xy</span><span class="jsdoc-syntax">[1]+</span><span class="jsdoc-var">s.top</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">width</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">cd.clientWidth</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">height</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">cd.clientHeight</span><span class="jsdoc-syntax">};
- }
-
-
- </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">topSpace </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">b.y </span><span class="jsdoc-syntax">- </span><span class="jsdoc-var">c.y</span><span class="jsdoc-syntax">;
- </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">leftSpace </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">b.x </span><span class="jsdoc-syntax">- </span><span class="jsdoc-var">c.x</span><span class="jsdoc-syntax">;
-
- </span><span class="jsdoc-var">this.resetConstraints</span><span class="jsdoc-syntax">();
- </span><span class="jsdoc-var">this.setXConstraint</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">leftSpace </span><span class="jsdoc-syntax">- (</span><span class="jsdoc-var">pad.left</span><span class="jsdoc-syntax">||0), </span><span class="jsdoc-comment">// left
- </span><span class="jsdoc-var">c.width </span><span class="jsdoc-syntax">- </span><span class="jsdoc-var">leftSpace </span><span class="jsdoc-syntax">- </span><span class="jsdoc-var">b.width </span><span class="jsdoc-syntax">- (</span><span class="jsdoc-var">pad.right</span><span class="jsdoc-syntax">||0) </span><span class="jsdoc-comment">//right
- </span><span class="jsdoc-syntax">);
- </span><span class="jsdoc-var">this.setYConstraint</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">topSpace </span><span class="jsdoc-syntax">- (</span><span class="jsdoc-var">pad.top</span><span class="jsdoc-syntax">||0), </span><span class="jsdoc-comment">//top
- </span><span class="jsdoc-var">c.height </span><span class="jsdoc-syntax">- </span><span class="jsdoc-var">topSpace </span><span class="jsdoc-syntax">- </span><span class="jsdoc-var">b.height </span><span class="jsdoc-syntax">- (</span><span class="jsdoc-var">pad.bottom</span><span class="jsdoc-syntax">||0) </span><span class="jsdoc-comment">//bottom
- </span><span class="jsdoc-syntax">);
- },
-
- </span><span class="jsdoc-comment">/**
- * Returns a reference to the linked element
- * @method getEl
- * @return {HTMLElement} the html element
- */
- </span><span class="jsdoc-var">getEl</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() {
- </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this._domRef</span><span class="jsdoc-syntax">) {
- </span><span class="jsdoc-var">this._domRef </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.getDom</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.id</span><span class="jsdoc-syntax">);
- }
-
- </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this._domRef</span><span class="jsdoc-syntax">;
- },
-
- </span><span class="jsdoc-comment">/**
- * Returns a reference to the actual element to drag. By default this is
- * the same as the html element, but it can be assigned to another
- * element. An example of this can be found in Roo.dd.DDProxy
- * @method getDragEl
- * @return {HTMLElement} the html element
- */
- </span><span class="jsdoc-var">getDragEl</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() {
- </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">Roo.getDom</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.dragElId</span><span class="jsdoc-syntax">);
- },
-
- </span><span class="jsdoc-comment">/**
- * Sets up the DragDrop object. Must be called in the constructor of any
- * Roo.dd.DragDrop subclass
- * @method init
- * @param id the id of the linked element
- * @param {String} sGroup the group of related items
- * @param {object} config configuration attributes
- */
- </span><span class="jsdoc-var">init</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">sGroup</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">config</span><span class="jsdoc-syntax">) {
- </span><span class="jsdoc-var">this.initTarget</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">sGroup</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">config</span><span class="jsdoc-syntax">);
- </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">Roo.isTouch</span><span class="jsdoc-syntax">) {
- </span><span class="jsdoc-var">Event.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.id</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">"mousedown"</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.handleMouseDown</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
- }
- </span><span class="jsdoc-var">Event.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.id</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">"touchstart"</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.handleMouseDown</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
- </span><span class="jsdoc-comment">// Event.on(this.id, "selectstart", Event.preventDefault);
- </span><span class="jsdoc-syntax">},
-
- </span><span class="jsdoc-comment">/**
- * Initializes Targeting functionality only... the object does not
- * get a mousedown handler.
- * @method initTarget
- * @param id the id of the linked element
- * @param {String} sGroup the group of related items
- * @param {object} config configuration attributes
- */
- </span><span class="jsdoc-var">initTarget</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">sGroup</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">config</span><span class="jsdoc-syntax">) {
-
- </span><span class="jsdoc-comment">// configuration attributes
- </span><span class="jsdoc-var">this.config </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">config </span><span class="jsdoc-syntax">|| {};
-
- </span><span class="jsdoc-comment">// create a local reference to the drag and drop manager
- </span><span class="jsdoc-var">this.DDM </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.dd.DDM</span><span class="jsdoc-syntax">;
- </span><span class="jsdoc-comment">// initialize the groups array
- </span><span class="jsdoc-var">this.groups </span><span class="jsdoc-syntax">= {};
-
- </span><span class="jsdoc-comment">// assume that we have an element reference instead of an id if the
- // parameter is not a string
- </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">typeof </span><span class="jsdoc-var">id </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-string">"string"</span><span class="jsdoc-syntax">) {
- </span><span class="jsdoc-var">id </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.id</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">);
- }
-
- </span><span class="jsdoc-comment">// set the id
- </span><span class="jsdoc-var">this.id </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">;
-
- </span><span class="jsdoc-comment">// add to an interaction group
- </span><span class="jsdoc-var">this.addToGroup</span><span class="jsdoc-syntax">((</span><span class="jsdoc-var">sGroup</span><span class="jsdoc-syntax">) ? </span><span class="jsdoc-var">sGroup </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">"default"</span><span class="jsdoc-syntax">);
-
- </span><span class="jsdoc-comment">// We don't want to register this as the handle with the manager
- // so we just set the id rather than calling the setter.
- </span><span class="jsdoc-var">this.handleElId </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">;
-
- </span><span class="jsdoc-comment">// the linked element is the element that gets dragged by default
- </span><span class="jsdoc-var">this.setDragElId</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">);
-
- </span><span class="jsdoc-comment">// by default, clicked anchors will not start drag operations.
- </span><span class="jsdoc-var">this.invalidHandleTypes </span><span class="jsdoc-syntax">= { </span><span class="jsdoc-var">A</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">"A" </span><span class="jsdoc-syntax">};
- </span><span class="jsdoc-var">this.invalidHandleIds </span><span class="jsdoc-syntax">= {};
- </span><span class="jsdoc-var">this.invalidHandleClasses </span><span class="jsdoc-syntax">= [];
-
- </span><span class="jsdoc-var">this.applyConfig</span><span class="jsdoc-syntax">();
-
- </span><span class="jsdoc-var">this.handleOnAvailable</span><span class="jsdoc-syntax">();
- },
-
- </span><span class="jsdoc-comment">/**
- * Applies the configuration parameters that were passed into the constructor.
- * This is supposed to happen at each level through the inheritance chain. So
- * a DDProxy implentation will execute apply config on DDProxy, DD, and
- * DragDrop in order to get all of the parameters that are available in
- * each object.
- * @method applyConfig
- */
- </span><span class="jsdoc-var">applyConfig</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() {
-
- </span><span class="jsdoc-comment">// configurable properties:
- // padding, isTarget, maintainOffset, primaryButtonOnly
- </span><span class="jsdoc-var">this.padding </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.config.padding </span><span class="jsdoc-syntax">|| [0, 0, 0, 0];
- </span><span class="jsdoc-var">this.isTarget </span><span class="jsdoc-syntax">= (</span><span class="jsdoc-var">this.config.isTarget </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">);
- </span><span class="jsdoc-var">this.maintainOffset </span><span class="jsdoc-syntax">= (</span><span class="jsdoc-var">this.config.maintainOffset</span><span class="jsdoc-syntax">);
- </span><span class="jsdoc-var">this.primaryButtonOnly </span><span class="jsdoc-syntax">= (</span><span class="jsdoc-var">this.config.primaryButtonOnly </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">);
-
- },
-
- </span><span class="jsdoc-comment">/**
- * Executed when the linked element is available
- * @method handleOnAvailable
- * @private
- */
- </span><span class="jsdoc-var">handleOnAvailable</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() {
- </span><span class="jsdoc-var">this.available </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
- </span><span class="jsdoc-var">this.resetConstraints</span><span class="jsdoc-syntax">();
- </span><span class="jsdoc-var">this.onAvailable</span><span class="jsdoc-syntax">();
- },
-
- </span><span class="jsdoc-comment">/**
- * Configures the padding for the target zone in px. Effectively expands
- * (or reduces) the virtual object size for targeting calculations.
- * Supports css-style shorthand; if only one parameter is passed, all sides
- * will have that padding, and if only two are passed, the top and bottom
- * will have the first param, the left and right the second.
- * @method setPadding
- * @param {int} iTop Top pad
- * @param {int} iRight Right pad
- * @param {int} iBot Bot pad
- * @param {int} iLeft Left pad
- */
- </span><span class="jsdoc-var">setPadding</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">iTop</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">iRight</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">iBot</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">iLeft</span><span class="jsdoc-syntax">) {
- </span><span class="jsdoc-comment">// this.padding = [iLeft, iRight, iTop, iBot];
- </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">iRight </span><span class="jsdoc-syntax">&& 0 !== </span><span class="jsdoc-var">iRight</span><span class="jsdoc-syntax">) {
- </span><span class="jsdoc-var">this.padding </span><span class="jsdoc-syntax">= [</span><span class="jsdoc-var">iTop</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">iTop</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">iTop</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">iTop</span><span class="jsdoc-syntax">];
- } </span><span class="jsdoc-keyword">else if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">iBot </span><span class="jsdoc-syntax">&& 0 !== </span><span class="jsdoc-var">iBot</span><span class="jsdoc-syntax">) {
- </span><span class="jsdoc-var">this.padding </span><span class="jsdoc-syntax">= [</span><span class="jsdoc-var">iTop</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">iRight</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">iTop</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">iRight</span><span class="jsdoc-syntax">];
- } </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
- </span><span class="jsdoc-var">this.padding </span><span class="jsdoc-syntax">= [</span><span class="jsdoc-var">iTop</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">iRight</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">iBot</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">iLeft</span><span class="jsdoc-syntax">];
- }
- },
-
- </span><span class="jsdoc-comment">/**
- * Stores the initial placement of the linked element.
- * @method setInitialPosition
- * @param {int} diffX the X offset, default 0
- * @param {int} diffY the Y offset, default 0
- */
- </span><span class="jsdoc-var">setInitPosition</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">diffX</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">diffY</span><span class="jsdoc-syntax">) {
- </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">el </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.getEl</span><span class="jsdoc-syntax">();
-
- </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.DDM.verifyEl</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">)) {
- </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
- }
-
- </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">dx </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">diffX </span><span class="jsdoc-syntax">|| 0;
- </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">dy </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">diffY </span><span class="jsdoc-syntax">|| 0;
-
- </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">p </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Dom.getXY</span><span class="jsdoc-syntax">( </span><span class="jsdoc-var">el </span><span class="jsdoc-syntax">);
-
- </span><span class="jsdoc-var">this.initPageX </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">p</span><span class="jsdoc-syntax">[0] - </span><span class="jsdoc-var">dx</span><span class="jsdoc-syntax">;
- </span><span class="jsdoc-var">this.initPageY </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">p</span><span class="jsdoc-syntax">[1] - </span><span class="jsdoc-var">dy</span><span class="jsdoc-syntax">;
-
- </span><span class="jsdoc-var">this.lastPageX </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">p</span><span class="jsdoc-syntax">[0];
- </span><span class="jsdoc-var">this.lastPageY </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">p</span><span class="jsdoc-syntax">[1];
-
-
- </span><span class="jsdoc-var">this.setStartPosition</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">p</span><span class="jsdoc-syntax">);
- },
-
- </span><span class="jsdoc-comment">/**
- * Sets the start position of the element. This is set when the obj
- * is initialized, the reset when a drag is started.
- * @method setStartPosition
- * @param pos current position (from previous lookup)
- * @private
- */
- </span><span class="jsdoc-var">setStartPosition</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">pos</span><span class="jsdoc-syntax">) {
- </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">p </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">pos </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">Dom.getXY</span><span class="jsdoc-syntax">( </span><span class="jsdoc-var">this.getEl</span><span class="jsdoc-syntax">() );
- </span><span class="jsdoc-var">this.deltaSetXY </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">;
-
- </span><span class="jsdoc-var">this.startPageX </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">p</span><span class="jsdoc-syntax">[0];
- </span><span class="jsdoc-var">this.startPageY </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">p</span><span class="jsdoc-syntax">[1];
- },
-
- </span><span class="jsdoc-comment">/**
- * Add this instance to a group of related drag/drop objects. All
- * instances belong to at least one group, and can belong to as many
- * groups as needed.
- * @method addToGroup
- * @param sGroup {string} the name of the group
- */
- </span><span class="jsdoc-var">addToGroup</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">sGroup</span><span class="jsdoc-syntax">) {
- </span><span class="jsdoc-var">this.groups</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">sGroup</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
- </span><span class="jsdoc-var">this.DDM.regDragDrop</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">sGroup</span><span class="jsdoc-syntax">);
- },
-
- </span><span class="jsdoc-comment">/**
- * Remove's this instance from the supplied interaction group
- * @method removeFromGroup
- * @param {string} sGroup The group to drop
- */
- </span><span class="jsdoc-var">removeFromGroup</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">sGroup</span><span class="jsdoc-syntax">) {
- </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.groups</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">sGroup</span><span class="jsdoc-syntax">]) {
- </span><span class="jsdoc-keyword">delete </span><span class="jsdoc-var">this.groups</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">sGroup</span><span class="jsdoc-syntax">];
- }
-
- </span><span class="jsdoc-var">this.DDM.removeDDFromGroup</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">sGroup</span><span class="jsdoc-syntax">);
- },
-
- </span><span class="jsdoc-comment">/**
- * Allows you to specify that an element other than the linked element
- * will be moved with the cursor during a drag
- * @method setDragElId
- * @param id {string} the id of the element that will be used to initiate the drag
- */
- </span><span class="jsdoc-var">setDragElId</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">) {
- </span><span class="jsdoc-var">this.dragElId </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">;
- },
-
- </span><span class="jsdoc-comment">/**
- * Allows you to specify a child of the linked element that should be
- * used to initiate the drag operation. An example of this would be if
- * you have a content div with text and links. Clicking anywhere in the
- * content area would normally start the drag operation. Use this method
- * to specify that an element inside of the content div is the element
- * that starts the drag operation.
- * @method setHandleElId
- * @param id {string} the id of the element that will be used to
- * initiate the drag.
- */
- </span><span class="jsdoc-var">setHandleElId</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">) {
- </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">typeof </span><span class="jsdoc-var">id </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-string">"string"</span><span class="jsdoc-syntax">) {
- </span><span class="jsdoc-var">id </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.id</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">);
- }
- </span><span class="jsdoc-var">this.handleElId </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">;
- </span><span class="jsdoc-var">this.DDM.regHandle</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.id</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">);
- },
-
- </span><span class="jsdoc-comment">/**
- * Allows you to set an element outside of the linked element as a drag
- * handle
- * @method setOuterHandleElId
- * @param id the id of the element that will be used to initiate the drag
- */
- </span><span class="jsdoc-var">setOuterHandleElId</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">) {
- </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">typeof </span><span class="jsdoc-var">id </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-string">"string"</span><span class="jsdoc-syntax">) {
- </span><span class="jsdoc-var">id </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.id</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">);
- }
- </span><span class="jsdoc-var">Event.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">"mousedown"</span><span class="jsdoc-syntax">,
- </span><span class="jsdoc-var">this.handleMouseDown</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
- </span><span class="jsdoc-var">this.setHandleElId</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">);
-
- </span><span class="jsdoc-var">this.hasOuterHandles </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
- },
-
- </span><span class="jsdoc-comment">/**
- * Remove all drag and drop hooks for this element
- * @method unreg
- */
- </span><span class="jsdoc-var">unreg</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() {
- </span><span class="jsdoc-var">Event.un</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.id</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">"mousedown"</span><span class="jsdoc-syntax">,
- </span><span class="jsdoc-var">this.handleMouseDown</span><span class="jsdoc-syntax">);
- </span><span class="jsdoc-var">Event.un</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.id</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">"touchstart"</span><span class="jsdoc-syntax">,
- </span><span class="jsdoc-var">this.handleMouseDown</span><span class="jsdoc-syntax">);
- </span><span class="jsdoc-var">this._domRef </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">;
- </span><span class="jsdoc-var">this.DDM._remove</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
- },
-
- </span><span class="jsdoc-var">destroy </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
- </span><span class="jsdoc-var">this.unreg</span><span class="jsdoc-syntax">();
- },
-
- </span><span class="jsdoc-comment">/**
- * Returns true if this instance is locked, or the drag drop mgr is locked
- * (meaning that all drag/drop is disabled on the page.)
- * @method isLocked
- * @return {boolean} true if this obj or all drag/drop is locked, else
- * false
- */
- </span><span class="jsdoc-var">isLocked</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() {
- </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.DDM.isLocked</span><span class="jsdoc-syntax">() || </span><span class="jsdoc-var">this.locked</span><span class="jsdoc-syntax">);
- },
-
- </span><span class="jsdoc-comment">/**
- * Fired when this object is clicked
- * @method handleMouseDown
- * @param {Event} e
- * @param {Roo.dd.DragDrop} oDD the clicked dd object (this dd obj)
- * @private
- */
- </span><span class="jsdoc-var">handleMouseDown</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">oDD</span><span class="jsdoc-syntax">){
-
- </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">Roo.isTouch </span><span class="jsdoc-syntax">&& </span><span class="jsdoc-var">this.primaryButtonOnly </span><span class="jsdoc-syntax">&& </span><span class="jsdoc-var">e.button </span><span class="jsdoc-syntax">!= 0) {
- </span><span class="jsdoc-comment">//Roo.log('not touch/ button !=0');
- </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
- }
- </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e.browserEvent.touches </span><span class="jsdoc-syntax">&& </span><span class="jsdoc-var">e.browserEvent.touches.length </span><span class="jsdoc-syntax">!= 1) {
- </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">; </span><span class="jsdoc-comment">// double touch..
- </span><span class="jsdoc-syntax">}
-
-
- </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.isLocked</span><span class="jsdoc-syntax">()) {
- </span><span class="jsdoc-comment">//Roo.log('locked');
- </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
- }
-
- </span><span class="jsdoc-var">this.DDM.refreshCache</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.groups</span><span class="jsdoc-syntax">);
-</span><span class="jsdoc-comment">// Roo.log([Roo.lib.Event.getPageX(e), Roo.lib.Event.getPageY(e)]);
- </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">pt </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.lib.Point</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.lib.Event.getPageX</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">), </span><span class="jsdoc-var">Roo.lib.Event.getPageY</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">));
- </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.hasOuterHandles </span><span class="jsdoc-syntax">&& !</span><span class="jsdoc-var">this.DDM.isOverTarget</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">pt</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">) ) {
- </span><span class="jsdoc-comment">//Roo.log('no outer handes or not over target');
- // do nothing.
- </span><span class="jsdoc-syntax">} </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
-</span><span class="jsdoc-comment">// Roo.log('check validator');
- </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.clickValidator</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">)) {
-</span><span class="jsdoc-comment">// Roo.log('validate success');
- // set the initial element position
- </span><span class="jsdoc-var">this.setStartPosition</span><span class="jsdoc-syntax">();
-
-
- </span><span class="jsdoc-var">this.b4MouseDown</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">);
- </span><span class="jsdoc-var">this.onMouseDown</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">);
-
- </span><span class="jsdoc-var">this.DDM.handleMouseDown</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
-
- </span><span class="jsdoc-var">this.DDM.stopEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">);
- } </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
-
-
- }
- }
- },
-
- </span><span class="jsdoc-var">clickValidator</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">) {
- </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">target </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">e.getTarget</span><span class="jsdoc-syntax">();
- </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">( </span><span class="jsdoc-var">this.isValidHandleChild</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">target</span><span class="jsdoc-syntax">) &&
- (</span><span class="jsdoc-var">this.id </span><span class="jsdoc-syntax">== </span><span class="jsdoc-var">this.handleElId </span><span class="jsdoc-syntax">||
- </span><span class="jsdoc-var">this.DDM.handleWasClicked</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">target</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.id</span><span class="jsdoc-syntax">)) );
- },
-
- </span><span class="jsdoc-comment">/**
- * Allows you to specify a tag name that should not start a drag operation
- * when clicked. This is designed to facilitate embedding links within a
- * drag handle that do something other than start the drag.
- * @method addInvalidHandleType
- * @param {string} tagName the type of element to exclude
- */
- </span><span class="jsdoc-var">addInvalidHandleType</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">tagName</span><span class="jsdoc-syntax">) {
- </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">type </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">tagName.toUpperCase</span><span class="jsdoc-syntax">();
- </span><span class="jsdoc-var">this.invalidHandleTypes</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">type</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-var">type</span><span class="jsdoc-syntax">;
- },
-
- </span><span class="jsdoc-comment">/**
- * Lets you to specify an element id for a child of a drag handle
- * that should not initiate a drag
- * @method addInvalidHandleId
- * @param {string} id the element id of the element you wish to ignore
- */
- </span><span class="jsdoc-var">addInvalidHandleId</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">) {
- </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">typeof </span><span class="jsdoc-var">id </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-string">"string"</span><span class="jsdoc-syntax">) {
- </span><span class="jsdoc-var">id </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.id</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">);
- }
- </span><span class="jsdoc-var">this.invalidHandleIds</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">;
- },
-
- </span><span class="jsdoc-comment">/**
- * Lets you specify a css class of elements that will not initiate a drag
- * @method addInvalidHandleClass
- * @param {string} cssClass the class of the elements you wish to ignore
- */
- </span><span class="jsdoc-var">addInvalidHandleClass</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cssClass</span><span class="jsdoc-syntax">) {
- </span><span class="jsdoc-var">this.invalidHandleClasses.push</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cssClass</span><span class="jsdoc-syntax">);
- },
-
- </span><span class="jsdoc-comment">/**
- * Unsets an excluded tag name set by addInvalidHandleType
- * @method removeInvalidHandleType
- * @param {string} tagName the type of element to unexclude
- */
- </span><span class="jsdoc-var">removeInvalidHandleType</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">tagName</span><span class="jsdoc-syntax">) {
- </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">type </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">tagName.toUpperCase</span><span class="jsdoc-syntax">();
- </span><span class="jsdoc-comment">// this.invalidHandleTypes[type] = null;
- </span><span class="jsdoc-keyword">delete </span><span class="jsdoc-var">this.invalidHandleTypes</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">type</span><span class="jsdoc-syntax">];
- },
-
- </span><span class="jsdoc-comment">/**
- * Unsets an invalid handle id
- * @method removeInvalidHandleId
- * @param {string} id the id of the element to re-enable
- */
- </span><span class="jsdoc-var">removeInvalidHandleId</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">) {
- </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">typeof </span><span class="jsdoc-var">id </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-string">"string"</span><span class="jsdoc-syntax">) {
- </span><span class="jsdoc-var">id </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.id</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">);
- }
- </span><span class="jsdoc-keyword">delete </span><span class="jsdoc-var">this.invalidHandleIds</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">];
- },
-
- </span><span class="jsdoc-comment">/**
- * Unsets an invalid css class
- * @method removeInvalidHandleClass
- * @param {string} cssClass the class of the element(s) you wish to
- * re-enable
- */
- </span><span class="jsdoc-var">removeInvalidHandleClass</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cssClass</span><span class="jsdoc-syntax">) {
- </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">=0, </span><span class="jsdoc-var">len</span><span class="jsdoc-syntax">=</span><span class="jsdoc-var">this.invalidHandleClasses.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax"><</span><span class="jsdoc-var">len</span><span class="jsdoc-syntax">; ++</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">) {
- </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.invalidHandleClasses</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">] == </span><span class="jsdoc-var">cssClass</span><span class="jsdoc-syntax">) {
- </span><span class="jsdoc-keyword">delete </span><span class="jsdoc-var">this.invalidHandleClasses</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">];
- }
- }
- },
-
- </span><span class="jsdoc-comment">/**
- * Checks the tag exclusion list to see if this click should be ignored
- * @method isValidHandleChild
- * @param {HTMLElement} node the HTMLElement to evaluate
- * @return {boolean} true if this is a valid tag type, false if not
- */
- </span><span class="jsdoc-var">isValidHandleChild</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">node</span><span class="jsdoc-syntax">) {
-
- </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">valid </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
- </span><span class="jsdoc-comment">// var n = (node.nodeName == "#text") ? node.parentNode : node;
- </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">nodeName</span><span class="jsdoc-syntax">;
- </span><span class="jsdoc-keyword">try </span><span class="jsdoc-syntax">{
- </span><span class="jsdoc-var">nodeName </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">node.nodeName.toUpperCase</span><span class="jsdoc-syntax">();
- } </span><span class="jsdoc-keyword">catch</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">) {
- </span><span class="jsdoc-var">nodeName </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">node.nodeName</span><span class="jsdoc-syntax">;
- }
- </span><span class="jsdoc-var">valid </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">valid </span><span class="jsdoc-syntax">&& !</span><span class="jsdoc-var">this.invalidHandleTypes</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">nodeName</span><span class="jsdoc-syntax">];
- </span><span class="jsdoc-var">valid </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">valid </span><span class="jsdoc-syntax">&& !</span><span class="jsdoc-var">this.invalidHandleIds</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">node.id</span><span class="jsdoc-syntax">];
-
- </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">=0, </span><span class="jsdoc-var">len</span><span class="jsdoc-syntax">=</span><span class="jsdoc-var">this.invalidHandleClasses.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">valid </span><span class="jsdoc-syntax">&& </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax"><</span><span class="jsdoc-var">len</span><span class="jsdoc-syntax">; ++</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">) {
- </span><span class="jsdoc-var">valid </span><span class="jsdoc-syntax">= !</span><span class="jsdoc-var">Dom.hasClass</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">node</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.invalidHandleClasses</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]);
- }
-
-
- </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">valid</span><span class="jsdoc-syntax">;
-
- },
-
- </span><span class="jsdoc-comment">/**
- * Create the array of horizontal tick marks if an interval was specified
- * in setXConstraint().
- * @method setXTicks
- * @private
- */
- </span><span class="jsdoc-var">setXTicks</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">iStartX</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">iTickSize</span><span class="jsdoc-syntax">) {
- </span><span class="jsdoc-var">this.xTicks </span><span class="jsdoc-syntax">= [];
- </span><span class="jsdoc-var">this.xTickSize </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">iTickSize</span><span class="jsdoc-syntax">;
-
- </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">tickMap </span><span class="jsdoc-syntax">= {};
-
- </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.initPageX</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">>= </span><span class="jsdoc-var">this.minX</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">- </span><span class="jsdoc-var">iTickSize</span><span class="jsdoc-syntax">) {
- </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">tickMap</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]) {
- </span><span class="jsdoc-var">this.xTicks</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">this.xTicks.length</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">;
- </span><span class="jsdoc-var">tickMap</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
- }
- }
-
- </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.initPageX</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax"><= </span><span class="jsdoc-var">this.maxX</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">iTickSize</span><span class="jsdoc-syntax">) {
- </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">tickMap</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]) {
- </span><span class="jsdoc-var">this.xTicks</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">this.xTicks.length</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">;
- </span><span class="jsdoc-var">tickMap</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
- }
- }
-
- </span><span class="jsdoc-var">this.xTicks.sort</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.DDM.numericSort</span><span class="jsdoc-syntax">) ;
- },
-
- </span><span class="jsdoc-comment">/**
- * Create the array of vertical tick marks if an interval was specified in
- * setYConstraint().
- * @method setYTicks
- * @private
- */
- </span><span class="jsdoc-var">setYTicks</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">iStartY</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">iTickSize</span><span class="jsdoc-syntax">) {
- </span><span class="jsdoc-var">this.yTicks </span><span class="jsdoc-syntax">= [];
- </span><span class="jsdoc-var">this.yTickSize </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">iTickSize</span><span class="jsdoc-syntax">;
-
- </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">tickMap </span><span class="jsdoc-syntax">= {};
-
- </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.initPageY</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">>= </span><span class="jsdoc-var">this.minY</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">- </span><span class="jsdoc-var">iTickSize</span><span class="jsdoc-syntax">) {
- </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">tickMap</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]) {
- </span><span class="jsdoc-var">this.yTicks</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">this.yTicks.length</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">;
- </span><span class="jsdoc-var">tickMap</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
- }
- }
-
- </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.initPageY</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax"><= </span><span class="jsdoc-var">this.maxY</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">iTickSize</span><span class="jsdoc-syntax">) {
- </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">tickMap</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]) {
- </span><span class="jsdoc-var">this.yTicks</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">this.yTicks.length</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">;
- </span><span class="jsdoc-var">tickMap</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
- }
- }
-
- </span><span class="jsdoc-var">this.yTicks.sort</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.DDM.numericSort</span><span class="jsdoc-syntax">) ;
- },
-
- </span><span class="jsdoc-comment">/**
- * By default, the element can be dragged any place on the screen. Use
- * this method to limit the horizontal travel of the element. Pass in
- * 0,0 for the parameters if you want to lock the drag to the y axis.
- * @method setXConstraint
- * @param {int} iLeft the number of pixels the element can move to the left
- * @param {int} iRight the number of pixels the element can move to the
- * right
- * @param {int} iTickSize optional parameter for specifying that the
- * element
- * should move iTickSize pixels at a time.
- */
- </span><span class="jsdoc-var">setXConstraint</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">iLeft</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">iRight</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">iTickSize</span><span class="jsdoc-syntax">) {
- </span><span class="jsdoc-var">this.leftConstraint </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">iLeft</span><span class="jsdoc-syntax">;
- </span><span class="jsdoc-var">this.rightConstraint </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">iRight</span><span class="jsdoc-syntax">;
-
- </span><span class="jsdoc-var">this.minX </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.initPageX </span><span class="jsdoc-syntax">- </span><span class="jsdoc-var">iLeft</span><span class="jsdoc-syntax">;
- </span><span class="jsdoc-var">this.maxX </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.initPageX </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">iRight</span><span class="jsdoc-syntax">;
- </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">iTickSize</span><span class="jsdoc-syntax">) { </span><span class="jsdoc-var">this.setXTicks</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.initPageX</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">iTickSize</span><span class="jsdoc-syntax">); }
-
- </span><span class="jsdoc-var">this.constrainX </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
- },
-
- </span><span class="jsdoc-comment">/**
- * Clears any constraints applied to this instance. Also clears ticks
- * since they can't exist independent of a constraint at this time.
- * @method clearConstraints
- */
- </span><span class="jsdoc-var">clearConstraints</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() {
- </span><span class="jsdoc-var">this.constrainX </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
- </span><span class="jsdoc-var">this.constrainY </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
- </span><span class="jsdoc-var">this.clearTicks</span><span class="jsdoc-syntax">();
- },
-
- </span><span class="jsdoc-comment">/**
- * Clears any tick interval defined for this instance
- * @method clearTicks
- */
- </span><span class="jsdoc-var">clearTicks</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() {
- </span><span class="jsdoc-var">this.xTicks </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">;
- </span><span class="jsdoc-var">this.yTicks </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">;
- </span><span class="jsdoc-var">this.xTickSize </span><span class="jsdoc-syntax">= 0;
- </span><span class="jsdoc-var">this.yTickSize </span><span class="jsdoc-syntax">= 0;
- },
-
- </span><span class="jsdoc-comment">/**
- * By default, the element can be dragged any place on the screen. Set
- * this to limit the vertical travel of the element. Pass in 0,0 for the
- * parameters if you want to lock the drag to the x axis.
- * @method setYConstraint
- * @param {int} iUp the number of pixels the element can move up
- * @param {int} iDown the number of pixels the element can move down
- * @param {int} iTickSize optional parameter for specifying that the
- * element should move iTickSize pixels at a time.
- */
- </span><span class="jsdoc-var">setYConstraint</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">iUp</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">iDown</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">iTickSize</span><span class="jsdoc-syntax">) {
- </span><span class="jsdoc-var">this.topConstraint </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">iUp</span><span class="jsdoc-syntax">;
- </span><span class="jsdoc-var">this.bottomConstraint </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">iDown</span><span class="jsdoc-syntax">;
-
- </span><span class="jsdoc-var">this.minY </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.initPageY </span><span class="jsdoc-syntax">- </span><span class="jsdoc-var">iUp</span><span class="jsdoc-syntax">;
- </span><span class="jsdoc-var">this.maxY </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.initPageY </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">iDown</span><span class="jsdoc-syntax">;
- </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">iTickSize</span><span class="jsdoc-syntax">) { </span><span class="jsdoc-var">this.setYTicks</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.initPageY</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">iTickSize</span><span class="jsdoc-syntax">); }
-
- </span><span class="jsdoc-var">this.constrainY </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
-
- },
-
- </span><span class="jsdoc-comment">/**
- * resetConstraints must be called if you manually reposition a dd element.
- * @method resetConstraints
- * @param {boolean} maintainOffset
- */
- </span><span class="jsdoc-var">resetConstraints</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() {
-
-
- </span><span class="jsdoc-comment">// Maintain offsets if necessary
- </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.initPageX </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">this.initPageX </span><span class="jsdoc-syntax">=== 0) {
- </span><span class="jsdoc-comment">// figure out how much this thing has moved
- </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">dx </span><span class="jsdoc-syntax">= (</span><span class="jsdoc-var">this.maintainOffset</span><span class="jsdoc-syntax">) ? </span><span class="jsdoc-var">this.lastPageX </span><span class="jsdoc-syntax">- </span><span class="jsdoc-var">this.initPageX </span><span class="jsdoc-syntax">: 0;
- </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">dy </span><span class="jsdoc-syntax">= (</span><span class="jsdoc-var">this.maintainOffset</span><span class="jsdoc-syntax">) ? </span><span class="jsdoc-var">this.lastPageY </span><span class="jsdoc-syntax">- </span><span class="jsdoc-var">this.initPageY </span><span class="jsdoc-syntax">: 0;
-
- </span><span class="jsdoc-var">this.setInitPosition</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">dx</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">dy</span><span class="jsdoc-syntax">);
-
- </span><span class="jsdoc-comment">// This is the first time we have detected the element's position
- </span><span class="jsdoc-syntax">} </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
- </span><span class="jsdoc-var">this.setInitPosition</span><span class="jsdoc-syntax">();
- }
-
- </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.constrainX</span><span class="jsdoc-syntax">) {
- </span><span class="jsdoc-var">this.setXConstraint</span><span class="jsdoc-syntax">( </span><span class="jsdoc-var">this.leftConstraint</span><span class="jsdoc-syntax">,
- </span><span class="jsdoc-var">this.rightConstraint</span><span class="jsdoc-syntax">,
- </span><span class="jsdoc-var">this.xTickSize </span><span class="jsdoc-syntax">);
- }
-
- </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.constrainY</span><span class="jsdoc-syntax">) {
- </span><span class="jsdoc-var">this.setYConstraint</span><span class="jsdoc-syntax">( </span><span class="jsdoc-var">this.topConstraint</span><span class="jsdoc-syntax">,
- </span><span class="jsdoc-var">this.bottomConstraint</span><span class="jsdoc-syntax">,
- </span><span class="jsdoc-var">this.yTickSize </span><span class="jsdoc-syntax">);
- }
- },
-
- </span><span class="jsdoc-comment">/**
- * Normally the drag element is moved pixel by pixel, but we can specify
- * that it move a number of pixels at a time. This method resolves the
- * location when we have it set up like this.
- * @method getTick
- * @param {int} val where we want to place the object
- * @param {int[]} tickArray sorted array of valid points
- * @return {int} the closest tick
- * @private
- */
- </span><span class="jsdoc-var">getTick</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">val</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">tickArray</span><span class="jsdoc-syntax">) {
-
- </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">tickArray</span><span class="jsdoc-syntax">) {
- </span><span class="jsdoc-comment">// If tick interval is not defined, it is effectively 1 pixel,
- // so we return the value passed to us.
- </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">val</span><span class="jsdoc-syntax">;
- } </span><span class="jsdoc-keyword">else if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">tickArray</span><span class="jsdoc-syntax">[0] >= </span><span class="jsdoc-var">val</span><span class="jsdoc-syntax">) {
- </span><span class="jsdoc-comment">// The value is lower than the first tick, so we return the first
- // tick.
- </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">tickArray</span><span class="jsdoc-syntax">[0];
- } </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
- </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">=0, </span><span class="jsdoc-var">len</span><span class="jsdoc-syntax">=</span><span class="jsdoc-var">tickArray.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax"><</span><span class="jsdoc-var">len</span><span class="jsdoc-syntax">; ++</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">) {
- </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">next </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">+ 1;
- </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">tickArray</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">next</span><span class="jsdoc-syntax">] && </span><span class="jsdoc-var">tickArray</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">next</span><span class="jsdoc-syntax">] >= </span><span class="jsdoc-var">val</span><span class="jsdoc-syntax">) {
- </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">diff1 </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">val </span><span class="jsdoc-syntax">- </span><span class="jsdoc-var">tickArray</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">];
- </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">diff2 </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">tickArray</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">next</span><span class="jsdoc-syntax">] - </span><span class="jsdoc-var">val</span><span class="jsdoc-syntax">;
- </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">diff2 </span><span class="jsdoc-syntax">> </span><span class="jsdoc-var">diff1</span><span class="jsdoc-syntax">) ? </span><span class="jsdoc-var">tickArray</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">] : </span><span class="jsdoc-var">tickArray</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">next</span><span class="jsdoc-syntax">];
- }
- }
-
- </span><span class="jsdoc-comment">// The value is larger than the last tick, so we return the last
- // tick.
- </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">tickArray</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">tickArray.length </span><span class="jsdoc-syntax">- 1];
- }
- },
-
- </span><span class="jsdoc-comment">/**
- * toString method
- * @method toString
- * @return {string} string representation of the dd obj
- */
- </span><span class="jsdoc-var">toString</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() {
- </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">"DragDrop " </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">this.id</span><span class="jsdoc-syntax">);
- }
-
-});
-
-})();
-</span></code></body></html>
\ No newline at end of file