d3996e936be3ed12b542f9b6b5778219d2b4f8a3
[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-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">);
26     
27     </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.containerScroll</span><span class="jsdoc-syntax">){
28         </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">);
29     }
30     
31      
32     </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">, 
33         </span><span class="jsdoc-var">this.el.dom</span><span class="jsdoc-syntax">, 
34         </span><span class="jsdoc-var">this.ddGroup </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">this.group</span><span class="jsdoc-syntax">,
35         {
36             </span><span class="jsdoc-var">isTarget</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
37             </span><span class="jsdoc-var">events </span><span class="jsdoc-syntax">: {
38                  </span><span class="jsdoc-comment">/**
39                  * @scope Roo.dd.DropTarget
40                  */
41                  
42                  /**
43                  * @event enter
44                  * The function a {@link Roo.dd.DragSource} calls once to notify this drop target that the source is now over the
45                  * target.  This default implementation adds the CSS class specified by overClass (if any) to the drop element
46                  * and returns the dropAllowed config value.  This method should be overridden if drop validation is required.
47                  * 
48                  * IMPORTANT : it should set this.overClass and this.dropAllowed
49                  * 
50                  * @param {Roo.dd.DragSource} source The drag source that was dragged over this drop target
51                  * @param {Event} e The event
52                  * @param {Object} data An object containing arbitrary data supplied by the drag source
53                  */
54                 </span><span class="jsdoc-string">&quot;enter&quot; </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
55                 
56                  </span><span class="jsdoc-comment">/**
57                  * @event over
58                  * The function a {@link Roo.dd.DragSource} calls continuously while it is being dragged over the target.
59                  * This method will be called on every mouse movement while the drag source is over the drop target.
60                  * This default implementation simply returns the dropAllowed config value.
61                  * 
62                  * IMPORTANT : it should set this.dropAllowed
63                  * 
64                  * @param {Roo.dd.DragSource} source The drag source that was dragged over this drop target
65                  * @param {Event} e The event
66                  * @param {Object} data An object containing arbitrary data supplied by the drag source
67                  
68                  */
69                 </span><span class="jsdoc-string">&quot;over&quot; </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
70                 </span><span class="jsdoc-comment">/**
71                  * @event out
72                  * The function a {@link Roo.dd.DragSource} calls once to notify this drop target that the source has been dragged
73                  * out of the target without dropping.  This default implementation simply removes the CSS class specified by
74                  * overClass (if any) from the drop element.
75                  * @param {Roo.dd.DragSource} source The drag source that was dragged over this drop target
76                  * @param {Event} e The event
77                  * @param {Object} data An object containing arbitrary data supplied by the drag source
78                  */
79                  </span><span class="jsdoc-string">&quot;out&quot; </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
80                  
81                 </span><span class="jsdoc-comment">/**
82                  * @event drop
83                  * The function a {@link Roo.dd.DragSource} calls once to notify this drop target that the dragged item has
84                  * been dropped on it.  This method has no default implementation and returns false, so you must provide an
85                  * implementation that does something to process the drop event and returns true so that the drag source's
86                  * repair action does not run.
87                  * 
88                  * IMPORTANT : it should set this.success
89                  * 
90                  * @param {Roo.dd.DragSource} source The drag source that was dragged over this drop target
91                  * @param {Event} e The event
92                  * @param {Object} data An object containing arbitrary data supplied by the drag source
93                 */
94                  </span><span class="jsdoc-string">&quot;drop&quot; </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true
95             </span><span class="jsdoc-syntax">}
96                 
97         
98         }
99     );
100
101 };
102
103 </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">, {
104     </span><span class="jsdoc-comment">/**
105      * @cfg {String} overClass
106      * The CSS class applied to the drop target element while the drag source is over it (defaults to &quot;&quot;).
107      */
108      /**
109      * @cfg {String} ddGroup
110      * The drag drop group to handle drop events for
111      */
112      
113     /**
114      * @cfg {String} dropAllowed
115      * The CSS class returned to the drag source when drop is allowed (defaults to &quot;x-dd-drop-ok&quot;).
116      */
117     </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">,
118     </span><span class="jsdoc-comment">/**
119      * @cfg {String} dropNotAllowed
120      * The CSS class returned to the drag source when drop is not allowed (defaults to &quot;x-dd-drop-nodrop&quot;).
121      */
122     </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">,
123     </span><span class="jsdoc-comment">/**
124      * @cfg {boolean} success
125      * set this after drop listener.. 
126      */
127     </span><span class="jsdoc-var">success </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
128     </span><span class="jsdoc-comment">/**
129      * @cfg {boolean} valid
130      * if the drop point is valid for over/enter..
131      */
132     </span><span class="jsdoc-var">valid </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
133     </span><span class="jsdoc-comment">// private
134     </span><span class="jsdoc-var">isTarget </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
135
136     </span><span class="jsdoc-comment">// private
137     </span><span class="jsdoc-var">isNotifyTarget </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
138     
139     </span><span class="jsdoc-comment">/**
140      * @hide
141      */
142     </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">){
143         </span><span class="jsdoc-var">this.valid </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
144         </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">this</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">);
145         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.overClass</span><span class="jsdoc-syntax">){
146             </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">);
147         }
148         </span><span class="jsdoc-keyword">return </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</span><span class="jsdoc-syntax">;
149     },
150
151     </span><span class="jsdoc-comment">/**
152      * @hide
153      */
154     </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">){
155         </span><span class="jsdoc-var">this.valid </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
156         </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">this</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">);
157         </span><span class="jsdoc-keyword">return </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</span><span class="jsdoc-syntax">;
158     },
159
160     </span><span class="jsdoc-comment">/**
161      * @hide
162      */
163     </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">){
164         </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">this</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">);
165         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.overClass</span><span class="jsdoc-syntax">){
166             </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">);
167         }
168     },
169
170     </span><span class="jsdoc-comment">/**
171      * @hide
172      */
173     </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">){
174         </span><span class="jsdoc-var">this.success </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
175         </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">this</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         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.success</span><span class="jsdoc-syntax">;
177     }
178 });</span></code></body></html>