/* * ***** BEGIN LICENSE BLOCK ***** * Version: ZAPL 1.1 * * The contents of this file are subject to the Zimbra AJAX Public * License Version 1.1 ("License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at * http://www.zimbra.com/license * * Software distributed under the License is distributed on an "AS IS" * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See * the License for the specific language governing rights and limitations * under the License. * * The Original Code is: Zimbra AJAX Toolkit. * * The Initial Developer of the Original Code is Zimbra, Inc. * Portions created by Zimbra are Copyright (C) 2005 Zimbra, Inc. * All Rights Reserved. * * Contributor(s): * * ***** END LICENSE BLOCK ***** */ function AjxEventMgr() { this._listeners = new Object(); } AjxEventMgr.prototype.toString = function() { return "AjxEventMgr"; } AjxEventMgr.prototype.addListener = function(eventType, listener) { var lv = this._listeners[eventType]; if (lv == null) { lv = this._listeners[eventType] = new AjxVector(); } if (!lv.contains(listener)) { lv.add(listener); return true; } return false; } AjxEventMgr.prototype.notifyListeners = function(eventType, event) { var lv = this._listeners[eventType]; if (lv != null) { var a = lv.getArray(); var s = lv.size(); var retVal = null; var c = null; for (var i = 0; i < s; i++) { c = a[i]; retVal = c.handleEvent ? c.handleEvent(event) : c(event); if (retVal === false) return; } } } AjxEventMgr.prototype.isListenerRegistered = function(eventType) { var lv = this._listeners[eventType]; return (lv != null && lv.size() > 0); } AjxEventMgr.prototype.removeListener = function(eventType, listener) { var lv = this._listeners[eventType]; if (lv != null) { lv.remove(listener); return true; } return false; } AjxEventMgr.prototype.removeAll = function(eventType) { var lv = this._listeners[eventType]; if (lv != null) { lv.removeAll(); return true; } return false; }