/EQT_V1/EQTWebApp/fckeditor/editor/_source/classes/fckevents.js
JavaScript | 71 lines | 37 code | 7 blank | 27 comment | 8 complexity | 9403c817758e33c73a47fb557d394780 MD5 | raw file
Possible License(s): LGPL-2.1
1/* 2 * FCKeditor - The text editor for Internet - http://www.fckeditor.net 3 * Copyright (C) 2003-2009 Frederico Caldeira Knabben 4 * 5 * == BEGIN LICENSE == 6 * 7 * Licensed under the terms of any of the following licenses at your 8 * choice: 9 * 10 * - GNU General Public License Version 2 or later (the "GPL") 11 * http://www.gnu.org/licenses/gpl.html 12 * 13 * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") 14 * http://www.gnu.org/licenses/lgpl.html 15 * 16 * - Mozilla Public License Version 1.1 or later (the "MPL") 17 * http://www.mozilla.org/MPL/MPL-1.1.html 18 * 19 * == END LICENSE == 20 * 21 * FCKEvents Class: used to handle events is a advanced way. 22 */ 23 24var FCKEvents = function( eventsOwner ) 25{ 26 this.Owner = eventsOwner ; 27 this._RegisteredEvents = new Object() ; 28} 29 30FCKEvents.prototype.AttachEvent = function( eventName, functionPointer ) 31{ 32 var aTargets ; 33 34 if ( !( aTargets = this._RegisteredEvents[ eventName ] ) ) 35 this._RegisteredEvents[ eventName ] = [ functionPointer ] ; 36 else 37 { 38 // Check that the event handler isn't already registered with the same listener 39 // It doesn't detect function pointers belonging to an object (at least in Gecko) 40 if ( aTargets.IndexOf( functionPointer ) == -1 ) 41 aTargets.push( functionPointer ) ; 42 } 43} 44 45FCKEvents.prototype.FireEvent = function( eventName, params ) 46{ 47 var bReturnValue = true ; 48 49 var oCalls = this._RegisteredEvents[ eventName ] ; 50 51 if ( oCalls ) 52 { 53 for ( var i = 0 ; i < oCalls.length ; i++ ) 54 { 55 try 56 { 57 bReturnValue = ( oCalls[ i ]( this.Owner, params ) && bReturnValue ) ; 58 } 59 catch(e) 60 { 61 // Ignore the following error. It may happen if pointing to a 62 // script not anymore available (#934): 63 // -2146823277 = Can't execute code from a freed script 64 if ( e.number != -2146823277 ) 65 throw e ; 66 } 67 } 68 } 69 70 return bReturnValue ; 71}