UNPKG

@qooxdoo/framework

Version:

The JS Framework for Coders

70 lines (59 loc) 2.29 kB
/* ************************************************************************ qooxdoo - the new era of web development http://qooxdoo.org Copyright: 2009 1&1 Internet AG, Germany, http://www.1und1.de License: MIT: https://opensource.org/licenses/MIT See the LICENSE file in the project's top-level directory for details. Authors: * Alexander Steitz (aback) ************************************************************************ */ /** * Low-level application life-cycle management. * * One can use the static methods {@link #onReady} and {@link #onShutdown} to * add callback functions, in order to get informed about the ready state or * the shutdown of the low-level application, respectively. * * @require(qx.event.Registration) * @require(qx.event.handler.Application) */ qx.Class.define("qx.bom.Lifecycle", { statics : { /** * Register a callback function, which is called in the optionally provided * context, when the application is ready. * * @param callback {Function} callback function * @param context {Object?window} context in which the callback is called */ onReady : function(callback, context) { var Registration = qx.event.Registration; var appHandler = Registration.getManager(window).getHandler(qx.event.handler.Application); // If the application is already available, execute the callback // immediately. Otherwise listen to the "ready" event to call it later. if (appHandler && appHandler.isApplicationReady()) { callback.call(context); } else { Registration.addListener(window, "ready", callback, context); } }, /** * Register a callback function, which is called in the optionally provided * context, when the application is shutdown. * <b>IMPORTANT NOTE</b>: Since it is <i>not</i> guaranteed that a * <code>shutdown</code> event is fired, you <i>cannot</i> fully rely on * getting informed. * * @param callback {Function} callback function * @param context {Object?window} context in which the callback is called */ onShutdown : function(callback, context) { qx.event.Registration.addListener(window, "shutdown", callback, context); } } });