Ruby on Rails | Screencasts | Download | Documentation | Weblog | Community | Source

Changeset 7835

Show
Ignore:
Timestamp:
10/11/07 06:00:45 (1 year ago)
Author:
sam
Message:

prototype: Namespace all custom event names to avoid conflicts with native DOM events.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • spinoffs/prototype/trunk/CHANGELOG

    r7833 r7835  
    11*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. 
    27 
    38* Clean up the new class API.  [sam, Tobie Langel] 
  • spinoffs/prototype/trunk/src/event.js

    r7811 r7835  
    1717  KEY_INSERT:   45, 
    1818   
    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                
    2519  cache: { }, 
    2620 
     
    115109   
    116110  function getDOMEventName(eventName) { 
    117     if (!Event.DOMEvents.include(eventName)) return "dataavailable"; 
     111    if (eventName && eventName.match(/:/)) return "dataavailable"; 
    118112    return { keypress: "keydown" }[eventName] || eventName; 
    119113  } 
     
    265259    if (fired) return; 
    266260    if (timer) window.clearInterval(timer); 
    267     document.fire("contentloaded"); 
     261    document.fire("dom:loaded"); 
    268262    fired = true; 
    269263  } 
  • spinoffs/prototype/trunk/test/unit/event.html

    r7336 r7835  
    4444      } 
    4545       
    46       span.observe("somethingHappened", observer); 
    47       span.fire("somethingHappened", { index: 1 }); 
     46      span.observe("test:somethingHappened", observer); 
     47      span.fire("test:somethingHappened", { index: 1 }); 
    4848      assert(fired); 
    4949       
    5050      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"); 
    5656      assert(!fired); 
    5757    }}, 
     
    6464      }; 
    6565       
    66       outer.observe("somethingHappened", observer); 
    67       span.fire("somethingHappened"); 
     66      outer.observe("test:somethingHappened", observer); 
     67      span.fire("test:somethingHappened"); 
    6868      assert(fired); 
    6969       
    7070      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"); 
    7676      assert(!fired); 
    7777    }}, 
     
    9090      } 
    9191       
    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"); 
    9595      assert(stopped); 
    9696      assert(!fired); 
    9797       
    9898      fired = stopped = false; 
    99       inner.stopObserving("somethingHappened", innerObserver); 
    100       span.fire("somethingHappened"); 
     99      inner.stopObserving("test:somethingHappened", innerObserver); 
     100      span.fire("test:somethingHappened"); 
    101101      assert(!stopped); 
    102102      assert(fired); 
    103103       
    104       outer.stopObserving("somethingHappened", outerObserver); 
     104      outer.stopObserving("test:somethingHappened", outerObserver); 
    105105    }}, 
    106106     
    107107    testEventObjectIsExtended: function() { with(this) {  
    108108      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"); 
    111111      assertEqual(event, observedEvent); 
    112112      assertEqual(Event.Methods.stop.methodize(), event.stop); 
    113       span.stopObserving("somethingHappened", observer); 
     113      span.stopObserving("test:somethingHappened", observer); 
    114114    }}, 
    115115     
     
    117117      var span = $("span"), target, observer = function() { target = this }; 
    118118       
    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); 
    122122      assertEqual(span, target); 
    123123      target = null; 
    124124       
    125125      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); 
    129129      assertEqual(outer, target); 
    130130    }}, 
     
    133133      var span = $("span"), count = 0, observer = function() { count++ }; 
    134134       
    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"); 
    138138      assertEqual(1, count); 
    139       span.fire("somethingElseHappened"); 
     139      span.fire("test:somethingElseHappened"); 
    140140      assertEqual(2, count); 
    141141    }}, 
     
    144144      var span = $("span"), count = 0, observer = function() { count++ }; 
    145145       
    146       span.observe("somethingHappened", observer); 
    147       span.observe("somethingElseHappened", observer); 
     146      span.observe("test:somethingHappened", observer); 
     147      span.observe("test:somethingElseHappened", observer); 
    148148      span.stopObserving(); 
    149       span.fire("somethingHappened"); 
     149      span.fire("test:somethingHappened"); 
    150150      assertEqual(0, count); 
    151       span.fire("somethingElseHappened"); 
     151      span.fire("test:somethingElseHappened"); 
    152152      assertEqual(0, count); 
    153153    }}, 
     
    156156      var span = $("span"), count = 0, observer = function() { count++ }; 
    157157       
    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"); 
    162162      assertEqual(0, count); 
    163       span.fire("somethingElseHappened"); 
     163      span.fire("test:somethingElseHappened"); 
    164164      assertEqual(1, count); 
    165       span.stopObserving("somethingElseHappened"); 
    166       span.fire("somethingElseHappened"); 
     165      span.stopObserving("test:somethingElseHappened"); 
     166      span.fire("test:somethingElseHappened"); 
    167167      assertEqual(1, count); 
    168168    }}, 
     
    171171      var span = $("span"), observer = function() { }, eventID; 
    172172       
    173       span.observe("somethingHappened", observer); 
     173      span.observe("test:somethingHappened", observer); 
    174174      eventID = span._eventID; 
    175175       
    176176      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); 
    181181      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); 
    184184    }}, 
    185185     
     
    187187      var span = $("span"), observer = function() { }; 
    188188 
    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); 
    196196      assertEqual(span, span.stopObserving()); 
    197197      assertEqual(span, span.stopObserving()); // assert it again, after there are no observers 
    198198 
    199       span.observe("somethingHappened", observer); 
    200       assertEqual(span, span.observe("somethingHappened", observer)); // try to reuse the same observer 
     199      span.observe("test:somethingHappened", observer); 
     200      assertEqual(span, span.observe("test:somethingHappened", observer)); // try to reuse the same observer 
    201201      span.stopObserving(); 
    202202    }}, 
     
    213213  }, 'testlog'); 
    214214 
    215   document.observe("contentloaded", function(event) { 
     215  document.observe("dom:loaded", function(event) { 
    216216    eventResults.contentLoaded = { 
    217217      endOfDocument: eventResults.endOfDocument,