docs/symbols/src/Roo_dd_DropTarget.js.html
[roojs1] / docs / symbols / src / Roo_dd_DropTarget.js.html
1 <html><head><title>../roojs1/Roo/dd/DropTarget.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">/*
2  * Based on:
3  * Ext JS Library 1.1.1
4  * Copyright(c) 2006-2007, Ext JS, LLC.
5  *
6  * Originally Released Under LGPL - original licence link has changed is not relivant.
7  *
8  * Fork - LGPL
9  * &lt;script type=&quot;text/javascript&quot;&gt;
10  */
11
12
13 /**
14  * @class Roo.dd.DropTarget
15  * @extends Roo.dd.DDTarget
16  * A simple class that provides the basic implementation needed to make any element a drop target that can have
17  * draggable items dropped onto it.  The drop has no effect until an implementation of notifyDrop is provided.
18  * @constructor
19  * @param {String/HTMLElement/Element} el The container element
20  * @param {Object} config
21  */
22 </span><span class="jsdoc-var">Roo.dd.DropTarget </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">config</span><span class="jsdoc-syntax">){
23     </span><span class="jsdoc-var">this.el </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.get</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">);
24     
25     </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">listeners </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">; ;
26     </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">config </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">config.listeners</span><span class="jsdoc-syntax">) {
27         </span><span class="jsdoc-var">listeners</span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">config.listeners</span><span class="jsdoc-syntax">;
28         </span><span class="jsdoc-keyword">delete </span><span class="jsdoc-var">config.listeners</span><span class="jsdoc-syntax">;
29     }
30     </span><span class="jsdoc-var">Roo.apply</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">config</span><span class="jsdoc-syntax">);
31     
32     </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.containerScroll</span><span class="jsdoc-syntax">){
33         </span><span class="jsdoc-var">Roo.dd.ScrollManager.register</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.el</span><span class="jsdoc-syntax">);
34     }
35     </span><span class="jsdoc-var">this.addEvents</span><span class="jsdoc-syntax">( {
36          </span><span class="jsdoc-comment">/**
37          * @scope Roo.dd.DropTarget
38          */
39          
40          /**
41          * @event enter
42          * The function a {@link Roo.dd.DragSource} calls once to notify this drop target that the source is now over the
43          * target.  This default implementation adds the CSS class specified by overClass (if any) to the drop element
44          * and returns the dropAllowed config value.  This method should be overridden if drop validation is required.
45          * 
46          * IMPORTANT : it should set this.overClass and this.dropAllowed
47          * 
48          * @param {Roo.dd.DragSource} source The drag source that was dragged over this drop target
49          * @param {Event} e The event
50          * @param {Object} data An object containing arbitrary data supplied by the drag source
51          */
52         </span><span class="jsdoc-string">&quot;enter&quot; </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
53         
54          </span><span class="jsdoc-comment">/**
55          * @event over
56          * The function a {@link Roo.dd.DragSource} calls continuously while it is being dragged over the target.
57          * This method will be called on every mouse movement while the drag source is over the drop target.
58          * This default implementation simply returns the dropAllowed config value.
59          * 
60          * IMPORTANT : it should set this.dropAllowed
61          * 
62          * @param {Roo.dd.DragSource} source The drag source that was dragged over this drop target
63          * @param {Event} e The event
64          * @param {Object} data An object containing arbitrary data supplied by the drag source
65          
66          */
67         </span><span class="jsdoc-string">&quot;over&quot; </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
68         </span><span class="jsdoc-comment">/**
69          * @event out
70          * The function a {@link Roo.dd.DragSource} calls once to notify this drop target that the source has been dragged
71          * out of the target without dropping.  This default implementation simply removes the CSS class specified by
72          * overClass (if any) from the drop element.
73          * @param {Roo.dd.DragSource} source The drag source that was dragged over this drop target
74          * @param {Event} e The event
75          * @param {Object} data An object containing arbitrary data supplied by the drag source
76          */
77          </span><span class="jsdoc-string">&quot;out&quot; </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
78          
79         </span><span class="jsdoc-comment">/**
80          * @event drop
81          * The function a {@link Roo.dd.DragSource} calls once to notify this drop target that the dragged item has
82          * been dropped on it.  This method has no default implementation and returns false, so you must provide an
83          * implementation that does something to process the drop event and returns true so that the drag source's
84          * repair action does not run.
85          * 
86          * IMPORTANT : it should set this.success
87          * 
88          * @param {Roo.dd.DragSource} source The drag source that was dragged over this drop target
89          * @param {Event} e The event
90          * @param {Object} data An object containing arbitrary data supplied by the drag source
91         */
92          </span><span class="jsdoc-string">&quot;drop&quot; </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true
93     </span><span class="jsdoc-syntax">});
94             
95      
96     </span><span class="jsdoc-var">Roo.dd.DropTarget.superclass.constructor.call</span><span class="jsdoc-syntax">(  </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, 
97         </span><span class="jsdoc-var">this.el.dom</span><span class="jsdoc-syntax">, 
98         </span><span class="jsdoc-var">this.ddGroup </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">this.group</span><span class="jsdoc-syntax">,
99         {
100             </span><span class="jsdoc-var">isTarget</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
101             </span><span class="jsdoc-var">listeners </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">listeners </span><span class="jsdoc-syntax">|| {} 
102            
103         
104         }
105     );
106
107 };
108
109 </span><span class="jsdoc-var">Roo.extend</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.dd.DropTarget</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">Roo.dd.DDTarget</span><span class="jsdoc-syntax">, {
110     </span><span class="jsdoc-comment">/**
111      * @cfg {String} overClass
112      * The CSS class applied to the drop target element while the drag source is over it (defaults to &quot;&quot;).
113      */
114      /**
115      * @cfg {String} ddGroup
116      * The drag drop group to handle drop events for
117      */
118      
119     /**
120      * @cfg {String} dropAllowed
121      * The CSS class returned to the drag source when drop is allowed (defaults to &quot;x-dd-drop-ok&quot;).
122      */
123     </span><span class="jsdoc-var">dropAllowed </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;x-dd-drop-ok&quot;</span><span class="jsdoc-syntax">,
124     </span><span class="jsdoc-comment">/**
125      * @cfg {String} dropNotAllowed
126      * The CSS class returned to the drag source when drop is not allowed (defaults to &quot;x-dd-drop-nodrop&quot;).
127      */
128     </span><span class="jsdoc-var">dropNotAllowed </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;x-dd-drop-nodrop&quot;</span><span class="jsdoc-syntax">,
129     </span><span class="jsdoc-comment">/**
130      * @cfg {boolean} success
131      * set this after drop listener.. 
132      */
133     </span><span class="jsdoc-var">success </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
134     </span><span class="jsdoc-comment">/**
135      * @cfg {boolean|String} valid true/false or string (ok-add/ok-sub/ok/nodrop)
136      * if the drop point is valid for over/enter..
137      */
138     </span><span class="jsdoc-var">valid </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
139     </span><span class="jsdoc-comment">// private
140     </span><span class="jsdoc-var">isTarget </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
141
142     </span><span class="jsdoc-comment">// private
143     </span><span class="jsdoc-var">isNotifyTarget </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
144     
145     </span><span class="jsdoc-comment">/**
146      * @hide
147      */
148     </span><span class="jsdoc-var">notifyEnter </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">dd</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">data</span><span class="jsdoc-syntax">)
149     {
150         </span><span class="jsdoc-var">this.valid </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
151         </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'enter'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">dd</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">data</span><span class="jsdoc-syntax">);
152         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.overClass</span><span class="jsdoc-syntax">){
153             </span><span class="jsdoc-var">this.el.addClass</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.overClass</span><span class="jsdoc-syntax">);
154         }
155         </span><span class="jsdoc-keyword">return typeof</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.valid</span><span class="jsdoc-syntax">) == </span><span class="jsdoc-string">'string' </span><span class="jsdoc-syntax">? </span><span class="jsdoc-string">'x-dd-drop-' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">this.valid </span><span class="jsdoc-syntax">: (
156             </span><span class="jsdoc-var">this.valid </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">this.dropAllowed </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.dropNotAllowed
157         </span><span class="jsdoc-syntax">);
158     },
159
160     </span><span class="jsdoc-comment">/**
161      * @hide
162      */
163     </span><span class="jsdoc-var">notifyOver </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">dd</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">data</span><span class="jsdoc-syntax">)
164     {
165         </span><span class="jsdoc-var">this.valid </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
166         </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'over'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">dd</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">data</span><span class="jsdoc-syntax">);
167         </span><span class="jsdoc-keyword">return typeof</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.valid</span><span class="jsdoc-syntax">) == </span><span class="jsdoc-string">'string' </span><span class="jsdoc-syntax">? </span><span class="jsdoc-string">'x-dd-drop-' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">this.valid </span><span class="jsdoc-syntax">: (
168             </span><span class="jsdoc-var">this.valid </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">this.dropAllowed </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.dropNotAllowed
169         </span><span class="jsdoc-syntax">);
170     },
171
172     </span><span class="jsdoc-comment">/**
173      * @hide
174      */
175     </span><span class="jsdoc-var">notifyOut </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">dd</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">data</span><span class="jsdoc-syntax">)
176     {
177         </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'out'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">dd</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">data</span><span class="jsdoc-syntax">);
178         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.overClass</span><span class="jsdoc-syntax">){
179             </span><span class="jsdoc-var">this.el.removeClass</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.overClass</span><span class="jsdoc-syntax">);
180         }
181     },
182
183     </span><span class="jsdoc-comment">/**
184      * @hide
185      */
186     </span><span class="jsdoc-var">notifyDrop </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">dd</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">data</span><span class="jsdoc-syntax">)
187     {
188         </span><span class="jsdoc-var">this.success </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
189         </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'drop'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">dd</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">data</span><span class="jsdoc-syntax">);
190         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.success</span><span class="jsdoc-syntax">;
191     }
192 });</span></code></body></html>