~cdparra/gelee/trunk

« back to all changes in this revision

Viewing changes to webui/ecosystem/workspace/extjs/docs/source/Registry.html

  • Committer: parra
  • Date: 2010-03-15 15:56:56 UTC
  • Revision ID: svn-v4:ac5bba68-f036-4e09-846e-8f32731cc928:trunk/gelee:1448
merged gelee at svn

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<html>
 
2
<head>
 
3
  <title>The source code</title>
 
4
    <link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />
 
5
    <script type="text/javascript" src="../resources/prettify/prettify.js"></script>
 
6
</head>
 
7
<body  onload="prettyPrint();">
 
8
    <pre class="prettyprint lang-js"><div id="cls-Ext.dd.Registry"></div>/**
 
9
 * @class Ext.dd.Registry
 
10
 * Provides easy access to all drag drop components that are registered on a page.  Items can be retrieved either
 
11
 * directly by DOM node id, or by passing in the drag drop event that occurred and looking up the event target.
 
12
 * @singleton
 
13
 */
 
14
Ext.dd.Registry = function(){
 
15
    var elements = {}; 
 
16
    var handles = {}; 
 
17
    var autoIdSeed = 0;
 
18
 
 
19
    var getId = function(el, autogen){
 
20
        if(typeof el == "string"){
 
21
            return el;
 
22
        }
 
23
        var id = el.id;
 
24
        if(!id && autogen !== false){
 
25
            id = "extdd-" + (++autoIdSeed);
 
26
            el.id = id;
 
27
        }
 
28
        return id;
 
29
    };
 
30
    
 
31
    return {
 
32
    <div id="method-Ext.dd.Registry-register"></div>/**
 
33
     * Resgister a drag drop element
 
34
     * @param {String/HTMLElement) element The id or DOM node to register
 
35
     * @param {Object} data (optional) An custom data object that will be passed between the elements that are involved
 
36
     * in drag drop operations.  You can populate this object with any arbitrary properties that your own code
 
37
     * knows how to interpret, plus there are some specific properties known to the Registry that should be
 
38
     * populated in the data object (if applicable):
 
39
     * <pre>
 
40
Value      Description<br />
 
41
---------  ------------------------------------------<br />
 
42
handles    Array of DOM nodes that trigger dragging<br />
 
43
           for the element being registered<br />
 
44
isHandle   True if the element passed in triggers<br />
 
45
           dragging itself, else false
 
46
</pre>
 
47
     */
 
48
        register : function(el, data){
 
49
            data = data || {};
 
50
            if(typeof el == "string"){
 
51
                el = document.getElementById(el);
 
52
            }
 
53
            data.ddel = el;
 
54
            elements[getId(el)] = data;
 
55
            if(data.isHandle !== false){
 
56
                handles[data.ddel.id] = data;
 
57
            }
 
58
            if(data.handles){
 
59
                var hs = data.handles;
 
60
                for(var i = 0, len = hs.length; i < len; i++){
 
61
                        handles[getId(hs[i])] = data;
 
62
                }
 
63
            }
 
64
        },
 
65
 
 
66
    <div id="method-Ext.dd.Registry-unregister"></div>/**
 
67
     * Unregister a drag drop element
 
68
     * @param {String/HTMLElement) element The id or DOM node to unregister
 
69
     */
 
70
        unregister : function(el){
 
71
            var id = getId(el, false);
 
72
            var data = elements[id];
 
73
            if(data){
 
74
                delete elements[id];
 
75
                if(data.handles){
 
76
                    var hs = data.handles;
 
77
                    for(var i = 0, len = hs.length; i < len; i++){
 
78
                        delete handles[getId(hs[i], false)];
 
79
                    }
 
80
                }
 
81
            }
 
82
        },
 
83
 
 
84
    <div id="method-Ext.dd.Registry-getHandle"></div>/**
 
85
     * Returns the handle registered for a DOM Node by id
 
86
     * @param {String/HTMLElement} id The DOM node or id to look up
 
87
     * @return {Object} handle The custom handle data
 
88
     */
 
89
        getHandle : function(id){
 
90
            if(typeof id != "string"){ // must be element?
 
91
                id = id.id;
 
92
            }
 
93
            return handles[id];
 
94
        },
 
95
 
 
96
    <div id="method-Ext.dd.Registry-getHandleFromEvent"></div>/**
 
97
     * Returns the handle that is registered for the DOM node that is the target of the event
 
98
     * @param {Event} e The event
 
99
     * @return {Object} handle The custom handle data
 
100
     */
 
101
        getHandleFromEvent : function(e){
 
102
            var t = Ext.lib.Event.getTarget(e);
 
103
            return t ? handles[t.id] : null;
 
104
        },
 
105
 
 
106
    <div id="method-Ext.dd.Registry-getTarget"></div>/**
 
107
     * Returns a custom data object that is registered for a DOM node by id
 
108
     * @param {String/HTMLElement} id The DOM node or id to look up
 
109
     * @return {Object} data The custom data
 
110
     */
 
111
        getTarget : function(id){
 
112
            if(typeof id != "string"){ // must be element?
 
113
                id = id.id;
 
114
            }
 
115
            return elements[id];
 
116
        },
 
117
 
 
118
    <div id="method-Ext.dd.Registry-getTargetFromEvent"></div>/**
 
119
     * Returns a custom data object that is registered for the DOM node that is the target of the event
 
120
     * @param {Event} e The event
 
121
     * @return {Object} data The custom data
 
122
     */
 
123
        getTargetFromEvent : function(e){
 
124
            var t = Ext.lib.Event.getTarget(e);
 
125
            return t ? elements[t.id] || handles[t.id] : null;
 
126
        }
 
127
    };
 
128
}();</pre>    
 
129
</body>
 
130
</html>
 
 
b'\\ No newline at end of file'