Changeset 570

Show
Ignore:
Timestamp:
01/25/06 02:57:43 (3 years ago)
Author:
therve@gmail.com
Message:

Reduce Event, update Controls for Signal

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • mochikit/branches/scriptaculous/MochiKit/Controls.js

    r533 r570  
    488488        MochiKit.DOM.hideElement(this.update); 
    489489 
    490         MochiKit.Event.observe(this.element, 'blur', 
    491             MochiKit.DOM.bindAsEventListener(this.onBlur, this)); 
    492         MochiKit.Event.observe(this.element, 'keypress', 
    493             MochiKit.DOM.bindAsEventListener(this.onKeyPress, this)); 
     490        MochiKit.Signal.connect(this.element, 'onblur', 
     491                                MochiKit.Base.bind(this.onBlur, this)); 
     492        MochiKit.Signal.connect(this.element, 'onkeypress', 
     493                                MochiKit.Base.bind(this.onKeyPress, this)); 
    494494    }, 
    495495 
     
    542542    onKeyPress: function (event) { 
    543543        if (this.active) { 
    544             switch(event.keyCode) { 
    545              case MochiKit.Event.KEY_TAB: 
    546              case MochiKit.Event.KEY_RETURN: 
     544            if (event.keyString == "KEY_TAB" || event.keyString == "KEY_RETURN") { 
    547545                 this.selectEntry(); 
    548546                 MochiKit.Event.stop(event); 
    549             case MochiKit.Event.KEY_ESC: 
     547            } else if (event.keyString == "KEY_ESCAPE") { 
    550548                 this.hide(); 
    551549                 this.active = false; 
    552550                 MochiKit.Event.stop(event); 
    553551                 return; 
    554              case MochiKit.Event.KEY_LEFT: 
    555              case MochiKit.Event.KEY_RIGHT: 
     552            } else if (event.keyString == "KEY_LEFT" || event.keyString == "KEY_RIGHT") { 
    556553                 return; 
    557              case MochiKit.Event.KEY_UP: 
     554            } 
     555            } else if (event.keyString == "KEY_UP") { 
    558556                 this.markPrevious(); 
    559557                 this.render(); 
    560558                 if (MochiKit.Base.isSafari()) { 
    561                      MochiKit.Event.stop(event); 
     559                     event.stop(); 
    562560                 } 
    563561                 return; 
    564              case MochiKit.Event.KEY_DOWN: 
     562            } 
     563            } else if (event.keyString == "KEY_DOWN") { 
    565564                 this.markNext(); 
    566565                 this.render(); 
    567566                 if (MochiKit.Base.isSafari()) { 
    568                      MochiKit.Event.stop(event); 
     567                     event.stop(); 
    569568                 } 
    570569                 return; 
    571570            } 
    572571        } else { 
    573             if (event.keyCode == MochiKit.Event.KEY_TAB || event.keyCode == MochiKit.Event.KEY_RETURN) { 
     572            if (event.keyString == "KEY_TAB" || event.keyString == "KEY_RETURN") { 
    574573                return; 
    575574            } 
     
    592591            this.render(); 
    593592        } 
    594         MochiKit.Event.stop(event); 
     593        event.stop(); 
    595594    }, 
    596595 
     
    712711 
    713712    addObservers: function (element) { 
    714         MochiKit.Event.observe(element, 'mouseover', 
    715             MochiKit.DOM.bindAsEventListener(this.onHover, this)); 
    716         MochiKit.Event.observe(element, 'click', 
    717             MochiKit.DOM.bindAsEventListener(this.onClick, this)); 
     713        MochiKit.Signal.connect(element, 'onmouseover', 
     714                                MochiKit.Base.bind(this.onHover, this)); 
     715        MochiKit.Signal.connect(element, 'onclick', 
     716                                MochiKit.Base.bind(this.onClick, this)); 
    718717    }, 
    719718 
     
    964963        this.element.title = this.options.clickToEditText; 
    965964 
    966         this.onclickListener = MochiKit.DOM.bindAsEventListener(this.enterEditMode, this); 
    967         this.mouseoverListener = MochiKit.DOM.bindAsEventListener(this.enterHover, this); 
    968         this.mouseoutListener = MochiKit.DOM.bindAsEventListener(this.leaveHover, this); 
    969         MochiKit.Event.observe(this.element, 'click', this.onclickListener); 
    970         MochiKit.Event.observe(this.element, 'mouseover', this.mouseoverListener); 
    971         MochiKit.Event.observe(this.element, 'mouseout', this.mouseoutListener); 
     965        this.onclickListener = MochiKit.Base.bind(this.enterEditMode, this); 
     966        this.mouseoverListener = MochiKit.Base.bind(this.enterHover, this); 
     967        this.mouseoutListener = MochiKit.Base.bind(this.leaveHover, this); 
     968        MochiKit.Signal.connect(this.element, 'click', this.onclickListener); 
     969        MochiKit.Signal.connect(this.element, 'mouseover', this.mouseoverListener); 
     970        MochiKit.Signal.connect(this.element, 'mouseout', this.mouseoutListener); 
    972971        if (this.options.externalControl) { 
    973             MochiKit.Event.observe(this.options.externalControl, 'click', this.onclickListener); 
    974             MochiKit.Event.observe(this.options.externalControl, 'mouseover', this.mouseoverListener); 
    975             MochiKit.Event.observe(this.options.externalControl, 'mouseout', this.mouseoutListener); 
     972            MochiKit.Signal.connect(this.options.externalControl, 'click', this.onclickListener); 
     973            MochiKit.Signal.connect(this.options.externalControl, 'mouseover', this.mouseoverListener); 
     974            MochiKit.Signal.connect(this.options.externalControl, 'mouseout', this.mouseoutListener); 
    976975        } 
    977976    }, 
     
    995994        // stop the event to avoid a page refresh in Safari 
    996995        if (evt) { 
    997             MochiKit.Event.stop(evt); 
     996            evt.stop(); 
    998997        } 
    999998        return false; 
     
    11491148        // stop the event to avoid a page refresh in Safari 
    11501149        if (arguments.length > 1) { 
    1151             MochiKit.Event.stop(arguments[0]); 
     1150            arguments[0].stop(); 
    11521151        } 
    11531152        return false; 
     
    12331232        } 
    12341233        this.leaveEditMode(); 
    1235         MochiKit.Event.stopObserving(this.element, 'click', this.onclickListener); 
    1236         MochiKit.Event.stopObserving(this.element, 'mouseover', this.mouseoverListener); 
    1237         MochiKit.Event.stopObserving(this.element, 'mouseout', this.mouseoutListener); 
     1234        MochiKit.Signal.disconnect(this.element, 'click', this.onclickListener); 
     1235        MochiKit.Signal.disconnect(this.element, 'mouseover', this.mouseoverListener); 
     1236        MochiKit.Signal.disconnect(this.element, 'mouseout', this.mouseoutListener); 
    12381237        if (this.options.externalControl) { 
    1239             MochiKit.Event.stopObserving(this.options.externalControl, 'click', this.onclickListener); 
    1240             MochiKit.Event.stopObserving(this.options.externalControl, 'mouseover', this.mouseoverListener); 
    1241             MochiKit.Event.stopObserving(this.options.externalControl, 'mouseout', this.mouseoutListener); 
     1238            MochiKit.Signal.disconnect(this.options.externalControl, 'click', this.onclickListener); 
     1239            MochiKit.Signal.disconnect(this.options.externalControl, 'mouseover', this.mouseoverListener); 
     1240            MochiKit.Signal.disconnect(this.options.externalControl, 'mouseout', this.mouseoutListener); 
    12421241        } 
    12431242    } 
  • mochikit/branches/scriptaculous/MochiKit/New.js

    r533 r570  
    400400 
    401401MochiKit.Event = { 
    402     KEY_BACKSPACE: 8, 
    403     KEY_TAB: 9, 
    404     KEY_RETURN: 13, 
    405     KEY_ESC: 27, 
    406     KEY_LEFT: 37, 
    407     KEY_UP: 38, 
    408     KEY_RIGHT: 39, 
    409     KEY_DOWN: 40, 
    410     KEY_DELETE: 46, 
    411  
    412     element: function (event) { 
    413         return event.target || event.srcElement; 
    414     }, 
    415  
    416     isLeftClick: function (event) { 
    417         return (((event.which) && (event.which == 1)) || 
    418                 ((event.button) && (event.button == 1))); 
    419     }, 
    420  
    421     pointerX: function (event) { 
    422         return event.pageX || (event.clientX + 
    423             (document.documentElement.scrollLeft || document.body.scrollLeft)); 
    424     }, 
    425  
    426     pointerY: function (event) { 
    427         return event.pageY || (event.clientY + 
    428             (document.documentElement.scrollTop || document.body.scrollTop)); 
    429     }, 
    430  
    431     stop: function (event) { 
    432         if (event.preventDefault) { 
    433             event.preventDefault(); 
    434             event.stopPropagation(); 
    435         } else { 
    436             event.returnValue = false; 
    437             event.cancelBubble = true; 
    438         } 
    439     }, 
    440  
    441402    // find the first node with the given tagName, starting from the 
    442403    // node the event was triggered on; traverses the DOM upwards 
    443404    findElement: function (event, tagName) { 
    444         var element = MochiKit.Event.element(event)
     405        var element = event.target
    445406        while (element.parentNode && (!element.tagName || 
    446407              (element.tagName.toUpperCase() != tagName.toUpperCase()))) { 
     
    448409        } 
    449410        return element; 
    450     }, 
    451  
    452     observers: false, 
    453  
    454     _observeAndCache: function (element, name, observer, useCapture) { 
    455         if (!this.observers) { 
    456             this.observers = []; 
    457         } 
    458         if (element.addEventListener) { 
    459             this.observers.push([element, name, observer, useCapture]); 
    460             element.addEventListener(name, observer, useCapture); 
    461         } else if (element.attachEvent) { 
    462             this.observers.push([element, name, observer, useCapture]); 
    463             element.attachEvent('on' + name, observer); 
    464         } 
    465     }, 
    466  
    467     unloadCache: function () { 
    468         if (!MochiKit.Event.observers) { 
    469             return; 
    470         } 
    471         for (var i = 0; i < MochiKit.Event.observers.length; i++) { 
    472             MochiKit.Event.stopObserving.apply(this, MochiKit.Event.observers[i]); 
    473             MochiKit.Event.observers[i][0] = null; 
    474         } 
    475         MochiKit.Event.observers = false; 
    476     }, 
    477  
    478     observe: function (element, name, observer, useCapture) { 
    479         var element = MochiKit.DOM.getElement(element); 
    480         useCapture = useCapture || false; 
    481  
    482         if (name == 'keypress' && (MochiKit.Base.isKHTML() || element.attachEvent)) { 
    483             name = 'keydown'; 
    484         } 
    485  
    486         this._observeAndCache(element, name, observer, useCapture); 
    487     }, 
    488  
    489     stopObserving: function (element, name, observer, useCapture) { 
    490         var element = MochiKit.DOM.getElement(element); 
    491         useCapture = useCapture || false; 
    492  
    493         if (name == 'keypress' && (MochiKit.Base.isKHTML() || element.detachEvent)) { 
    494             name = 'keydown'; 
    495         } 
    496  
    497         if (element.removeEventListener) { 
    498             element.removeEventListener(name, observer, useCapture); 
    499         } else if (element.detachEvent) { 
    500             element.detachEvent('on' + name, observer); 
    501         } 
    502411    } 
    503412}; 
    504413 
    505 /* prevent memory leaks in IE */ 
    506 MochiKit.Event.observe(window, 'unload', MochiKit.Event.unloadCache, false); 
    507