author | Giulio Cesare Solaroli <giulio.cesare@clipperz.com> | 2011-10-02 23:56:18 (UTC) |
---|---|---|
committer | Giulio Cesare Solaroli <giulio.cesare@clipperz.com> | 2011-10-02 23:56:18 (UTC) |
commit | ef68436ac04da078ffdcacd7e1f785473a303d45 (patch) (unidiff) | |
tree | c403752d66a2c4775f00affd4fa8431b29c5b68c /frontend/beta/js/YUI-extensions/dd/Registry.js | |
parent | 597ecfbc0249d83e1b856cbd558340c01237a360 (diff) | |
download | clipperz-ef68436ac04da078ffdcacd7e1f785473a303d45.zip clipperz-ef68436ac04da078ffdcacd7e1f785473a303d45.tar.gz clipperz-ef68436ac04da078ffdcacd7e1f785473a303d45.tar.bz2 |
First version of the newly restructured repository
Diffstat (limited to 'frontend/beta/js/YUI-extensions/dd/Registry.js') (more/less context) (ignore whitespace changes)
-rw-r--r-- | frontend/beta/js/YUI-extensions/dd/Registry.js | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/frontend/beta/js/YUI-extensions/dd/Registry.js b/frontend/beta/js/YUI-extensions/dd/Registry.js new file mode 100644 index 0000000..983b874 --- a/dev/null +++ b/frontend/beta/js/YUI-extensions/dd/Registry.js | |||
@@ -0,0 +1,80 @@ | |||
1 | // kill drag drop dependency | ||
2 | if(YAHOO.util.DragDrop){ | ||
3 | |||
4 | YAHOO.ext.dd.Registry = function(){ | ||
5 | var elements = {}; | ||
6 | var handles = {}; | ||
7 | var autoIdSeed = 0; | ||
8 | var doc = document; // local reference for IE | ||
9 | |||
10 | var getId = function(el, autogen){ | ||
11 | if(typeof el == 'string'){ | ||
12 | return el; | ||
13 | } | ||
14 | var id = el.id; | ||
15 | if(!id && autogen !== false){ | ||
16 | id = 'yddgen-' + (++autoIdSeed); | ||
17 | el.id = id; | ||
18 | } | ||
19 | return id; | ||
20 | }; | ||
21 | |||
22 | return { | ||
23 | register : function(el, data){ | ||
24 | data = data || {}; | ||
25 | if(typeof el == 'string'){ | ||
26 | el = doc.getElementById(el); | ||
27 | } | ||
28 | data.ddel = el; | ||
29 | elements[getId(el)] = data; | ||
30 | if(data.isHandle !== false){ | ||
31 | handles[data.ddel.id] = data; | ||
32 | } | ||
33 | if(data.handles){ | ||
34 | var hs = data.handles; | ||
35 | for(var i = 0, len = hs.length; i < len; i++){ | ||
36 | handles[getId(hs[i])] = data; | ||
37 | } | ||
38 | } | ||
39 | }, | ||
40 | |||
41 | unregister : function(el){ | ||
42 | var id = getId(el, false); | ||
43 | var data = elements[id]; | ||
44 | if(data){ | ||
45 | delete elements[id]; | ||
46 | if(data.handles){ | ||
47 | var hs = data.handles; | ||
48 | for(var i = 0, len = hs.length; i < len; i++){ | ||
49 | delete handles[getId(hs[i], false)]; | ||
50 | } | ||
51 | } | ||
52 | } | ||
53 | }, | ||
54 | |||
55 | getHandle : function(id){ | ||
56 | if(typeof id != 'string'){ // must be element? | ||
57 | id = id.id; | ||
58 | } | ||
59 | return handles[id]; | ||
60 | }, | ||
61 | |||
62 | getHandleFromEvent : function(e){ | ||
63 | var t = YAHOO.util.Event.getTarget(e); | ||
64 | return t ? handles[t.id] : null; | ||
65 | }, | ||
66 | |||
67 | getTarget : function(id){ | ||
68 | if(typeof id != 'string'){ // must be element? | ||
69 | id = id.id; | ||
70 | } | ||
71 | return elements[id]; | ||
72 | }, | ||
73 | |||
74 | getTargetFromEvent : function(e){ | ||
75 | var t = YAHOO.util.Event.getTarget(e); | ||
76 | return t ? elements[t.id] || handles[t.id] : null; | ||
77 | } | ||
78 | }; | ||
79 | }(); | ||
80 | } | ||