Changeset 7835
- Timestamp:
- 10/11/07 06:00:45 (1 year ago)
- Files:
-
- spinoffs/prototype/trunk/CHANGELOG (modified) (1 diff)
- spinoffs/prototype/trunk/src/event.js (modified) (3 diffs)
- spinoffs/prototype/trunk/test/unit/event.html (modified) (10 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
spinoffs/prototype/trunk/CHANGELOG
r7833 r7835 1 1 *SVN* 2 3 * Namespace all custom event names to avoid conflicts with native DOM events. [sam] 4 - All custom event names MUST include a namespace. Prefix custom event names for observe, stopObserving, and fire with the namespace followed by a colon. E.g. document.fire("widget:activated") 5 - The "contentloaded" event is now "dom:loaded". 6 - The Event.DOMEvents array is no longer present. If an event name does not include a namespace, the event is treated as a native event. 2 7 3 8 * Clean up the new class API. [sam, Tobie Langel] spinoffs/prototype/trunk/src/event.js
r7811 r7835 17 17 KEY_INSERT: 45, 18 18 19 DOMEvents: ['click', 'dblclick', 'mousedown', 'mouseup', 'mouseover',20 'mousemove', 'mouseout', 'keypress', 'keydown', 'keyup',21 'load', 'unload', 'abort', 'error', 'resize', 'scroll',22 'select', 'change', 'submit', 'reset', 'focus', 'blur',23 'contextmenu'],24 25 19 cache: { }, 26 20 … … 115 109 116 110 function getDOMEventName(eventName) { 117 if ( !Event.DOMEvents.include(eventName)) return "dataavailable";111 if (eventName && eventName.match(/:/)) return "dataavailable"; 118 112 return { keypress: "keydown" }[eventName] || eventName; 119 113 } … … 265 259 if (fired) return; 266 260 if (timer) window.clearInterval(timer); 267 document.fire(" contentloaded");261 document.fire("dom:loaded"); 268 262 fired = true; 269 263 } spinoffs/prototype/trunk/test/unit/event.html
r7336 r7835 44 44 } 45 45 46 span.observe(" somethingHappened", observer);47 span.fire(" somethingHappened", { index: 1 });46 span.observe("test:somethingHappened", observer); 47 span.fire("test:somethingHappened", { index: 1 }); 48 48 assert(fired); 49 49 50 50 fired = false; 51 span.fire(" somethingElseHappened");52 assert(!fired); 53 54 span.stopObserving(" somethingHappened", observer);55 span.fire(" somethingHappened");51 span.fire("test:somethingElseHappened"); 52 assert(!fired); 53 54 span.stopObserving("test:somethingHappened", observer); 55 span.fire("test:somethingHappened"); 56 56 assert(!fired); 57 57 }}, … … 64 64 }; 65 65 66 outer.observe(" somethingHappened", observer);67 span.fire(" somethingHappened");66 outer.observe("test:somethingHappened", observer); 67 span.fire("test:somethingHappened"); 68 68 assert(fired); 69 69 70 70 fired = false; 71 span.fire(" somethingElseHappened");72 assert(!fired); 73 74 outer.stopObserving(" somethingHappened", observer);75 span.fire(" somethingHappened");71 span.fire("test:somethingElseHappened"); 72 assert(!fired); 73 74 outer.stopObserving("test:somethingHappened", observer); 75 span.fire("test:somethingHappened"); 76 76 assert(!fired); 77 77 }}, … … 90 90 } 91 91 92 inner.observe(" somethingHappened", innerObserver);93 outer.observe(" somethingHappened", outerObserver);94 span.fire(" somethingHappened");92 inner.observe("test:somethingHappened", innerObserver); 93 outer.observe("test:somethingHappened", outerObserver); 94 span.fire("test:somethingHappened"); 95 95 assert(stopped); 96 96 assert(!fired); 97 97 98 98 fired = stopped = false; 99 inner.stopObserving(" somethingHappened", innerObserver);100 span.fire(" somethingHappened");99 inner.stopObserving("test:somethingHappened", innerObserver); 100 span.fire("test:somethingHappened"); 101 101 assert(!stopped); 102 102 assert(fired); 103 103 104 outer.stopObserving(" somethingHappened", outerObserver);104 outer.stopObserving("test:somethingHappened", outerObserver); 105 105 }}, 106 106 107 107 testEventObjectIsExtended: function() { with(this) { 108 108 var span = $("span"), event, observedEvent, observer = function(e) { observedEvent = e }; 109 span.observe(" somethingHappened", observer);110 event = span.fire(" somethingHappened");109 span.observe("test:somethingHappened", observer); 110 event = span.fire("test:somethingHappened"); 111 111 assertEqual(event, observedEvent); 112 112 assertEqual(Event.Methods.stop.methodize(), event.stop); 113 span.stopObserving(" somethingHappened", observer);113 span.stopObserving("test:somethingHappened", observer); 114 114 }}, 115 115 … … 117 117 var span = $("span"), target, observer = function() { target = this }; 118 118 119 span.observe(" somethingHappened", observer);120 span.fire(" somethingHappened");121 span.stopObserving(" somethingHappened", observer);119 span.observe("test:somethingHappened", observer); 120 span.fire("test:somethingHappened"); 121 span.stopObserving("test:somethingHappened", observer); 122 122 assertEqual(span, target); 123 123 target = null; 124 124 125 125 var outer = $("outer"); 126 outer.observe(" somethingHappened", observer);127 span.fire(" somethingHappened");128 outer.stopObserving(" somethingHappened", observer);126 outer.observe("test:somethingHappened", observer); 127 span.fire("test:somethingHappened"); 128 outer.stopObserving("test:somethingHappened", observer); 129 129 assertEqual(outer, target); 130 130 }}, … … 133 133 var span = $("span"), count = 0, observer = function() { count++ }; 134 134 135 span.observe(" somethingHappened", observer);136 span.observe(" somethingElseHappened", observer);137 span.fire(" somethingHappened");135 span.observe("test:somethingHappened", observer); 136 span.observe("test:somethingElseHappened", observer); 137 span.fire("test:somethingHappened"); 138 138 assertEqual(1, count); 139 span.fire(" somethingElseHappened");139 span.fire("test:somethingElseHappened"); 140 140 assertEqual(2, count); 141 141 }}, … … 144 144 var span = $("span"), count = 0, observer = function() { count++ }; 145 145 146 span.observe(" somethingHappened", observer);147 span.observe(" somethingElseHappened", observer);146 span.observe("test:somethingHappened", observer); 147 span.observe("test:somethingElseHappened", observer); 148 148 span.stopObserving(); 149 span.fire(" somethingHappened");149 span.fire("test:somethingHappened"); 150 150 assertEqual(0, count); 151 span.fire(" somethingElseHappened");151 span.fire("test:somethingElseHappened"); 152 152 assertEqual(0, count); 153 153 }}, … … 156 156 var span = $("span"), count = 0, observer = function() { count++ }; 157 157 158 span.observe(" somethingHappened", observer);159 span.observe(" somethingElseHappened", observer);160 span.stopObserving(" somethingHappened");161 span.fire(" somethingHappened");158 span.observe("test:somethingHappened", observer); 159 span.observe("test:somethingElseHappened", observer); 160 span.stopObserving("test:somethingHappened"); 161 span.fire("test:somethingHappened"); 162 162 assertEqual(0, count); 163 span.fire(" somethingElseHappened");163 span.fire("test:somethingElseHappened"); 164 164 assertEqual(1, count); 165 span.stopObserving(" somethingElseHappened");166 span.fire(" somethingElseHappened");165 span.stopObserving("test:somethingElseHappened"); 166 span.fire("test:somethingElseHappened"); 167 167 assertEqual(1, count); 168 168 }}, … … 171 171 var span = $("span"), observer = function() { }, eventID; 172 172 173 span.observe(" somethingHappened", observer);173 span.observe("test:somethingHappened", observer); 174 174 eventID = span._eventID; 175 175 176 176 assert(Event.cache[eventID]); 177 assert(Object.isArray(Event.cache[eventID] .somethingHappened));178 assertEqual(1, Event.cache[eventID] .somethingHappened.length);179 180 span.stopObserving(" somethingHappened", observer);177 assert(Object.isArray(Event.cache[eventID]["test:somethingHappened"])); 178 assertEqual(1, Event.cache[eventID]["test:somethingHappened"].length); 179 180 span.stopObserving("test:somethingHappened", observer); 181 181 assert(Event.cache[eventID]); 182 assert(Object.isArray(Event.cache[eventID] .somethingHappened));183 assertEqual(0, Event.cache[eventID] .somethingHappened.length);182 assert(Object.isArray(Event.cache[eventID]["test:somethingHappened"])); 183 assertEqual(0, Event.cache[eventID]["test:somethingHappened"].length); 184 184 }}, 185 185 … … 187 187 var span = $("span"), observer = function() { }; 188 188 189 assertEqual(span, span.observe(" somethingHappened", observer));190 assertEqual(span, span.stopObserving(" somethingHappened", observer));191 192 span.observe(" somethingHappened", observer);193 assertEqual(span, span.stopObserving(" somethingHappened"));194 195 span.observe(" somethingHappened", observer);189 assertEqual(span, span.observe("test:somethingHappened", observer)); 190 assertEqual(span, span.stopObserving("test:somethingHappened", observer)); 191 192 span.observe("test:somethingHappened", observer); 193 assertEqual(span, span.stopObserving("test:somethingHappened")); 194 195 span.observe("test:somethingHappened", observer); 196 196 assertEqual(span, span.stopObserving()); 197 197 assertEqual(span, span.stopObserving()); // assert it again, after there are no observers 198 198 199 span.observe(" somethingHappened", observer);200 assertEqual(span, span.observe(" somethingHappened", observer)); // try to reuse the same observer199 span.observe("test:somethingHappened", observer); 200 assertEqual(span, span.observe("test:somethingHappened", observer)); // try to reuse the same observer 201 201 span.stopObserving(); 202 202 }}, … … 213 213 }, 'testlog'); 214 214 215 document.observe(" contentloaded", function(event) {215 document.observe("dom:loaded", function(event) { 216 216 eventResults.contentLoaded = { 217 217 endOfDocument: eventResults.endOfDocument,