summaryrefslogtreecommitdiff
path: root/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/core/Target.js
diff options
context:
space:
mode:
Diffstat (limited to 'webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/core/Target.js')
-rw-r--r--webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/core/Target.js299
1 files changed, 0 insertions, 299 deletions
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/core/Target.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/core/Target.js
deleted file mode 100644
index 891ac44426..0000000000
--- a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/core/Target.js
+++ /dev/null
@@ -1,299 +0,0 @@
-/* ************************************************************************
-
- qooxdoo - the new era of web development
-
- http://qooxdoo.org
-
- Copyright:
- 2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
-
- License:
- LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
-
- Authors:
- * Sebastian Werner (wpbasti)
- * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(core)
-
-************************************************************************ */
-
-/**
- * This is the main constructor for all objects that need to be connected to qx.event.type.Event objects.
- *
- * In objects created with this constructor, you find functions to addEventListener or
- * removeEventListener to or from the created object. Each event to connect to has a type in
- * form of an identification string. This type could be the name of a regular dom event like "click" or
- * something self-defined like "ready".
- *
- * @param vAutoDispose {boolean ? true} wether the object should be disposed automatically by qooxdoo
- */
-qx.OO.defineClass("qx.core.Target", qx.core.Object,
-function(vAutoDispose) {
- qx.core.Object.call(this, vAutoDispose);
-});
-
-/**
- * @private
- */
-qx.Class.EVENTPREFIX = "evt";
-
-
-
-
-/*
----------------------------------------------------------------------------
- EVENT CONNECTION
----------------------------------------------------------------------------
-*/
-
-/**
- * Add event listener to an object.
- *
- * @param vType {string} name of the event type
- * @param vFunction {Function} event callback function
- * @param vObject {object ? window} reference to the 'this' variable inside the callback
- */
-qx.Proto.addEventListener = function(vType, vFunction, vObject)
-{
- if(this._disposed) {
- return;
- }
-
- if(typeof vFunction !== "function") {
- throw new Error("qx.core.Target: addEventListener(" + vType + "): '" + vFunction + "' is not a function!");
- }
-
- // If this is the first event of given type, we need to create a subobject
- // that contains all the actions that will be assigned to this type
- if (typeof this._listeners === "undefined")
- {
- this._listeners = {};
- this._listeners[vType] = {};
- }
- else if(typeof this._listeners[vType] === "undefined")
- {
- this._listeners[vType] = {};
- }
-
- // Create a special vKey string to allow identification of each bound action
- var vKey = qx.core.Target.EVENTPREFIX + qx.core.Object.toHashCode(vFunction) + (vObject ? "_" + qx.core.Object.toHashCode(vObject) : "");
-
- // Finally set up the listeners object
- this._listeners[vType][vKey] =
- {
- handler : vFunction,
- object : vObject
- }
-}
-
-
-/**
- * Remove event listener from object
- *
- * @param vType {string} name of the event type
- * @param vFunction {Function} event callback function
- * @param vObject {object ? window} reference to the 'this' variable inside the callback
- */
-qx.Proto.removeEventListener = function(vType, vFunction, vObject)
-{
- if(this._disposed) {
- return;
- }
-
- var vListeners = this._listeners;
- if (!vListeners || typeof vListeners[vType] === "undefined") {
- return;
- }
-
- if(typeof vFunction !== "function") {
- throw new Error("qx.core.Target: removeEventListener(" + vType + "): '" + vFunction + "' is not a function!");
- }
-
- // Create a special vKey string to allow identification of each bound action
- var vKey = qx.core.Target.EVENTPREFIX + qx.core.Object.toHashCode(vFunction) + (vObject ? "_" + qx.core.Object.toHashCode(vObject) : "");
-
- // Delete object entry for this action
- delete this._listeners[vType][vKey];
-}
-
-
-
-/*
----------------------------------------------------------------------------
- EVENT CONNECTION UTILITIES
----------------------------------------------------------------------------
-*/
-
-/**
- * Check if there are one or more listeners for an event type.
- *
- * @param vType {string} name of the event type
- */
-qx.Proto.hasEventListeners = function(vType) {
- return this._listeners && typeof this._listeners[vType] !== "undefined" && !qx.lang.Object.isEmpty(this._listeners[vType]);
-}
-
-
-/**
- * Checks if the event is registered. If so it creates an event object and dispatches it.
- *
- * @param vType {string} name of the event type
- */
-qx.Proto.createDispatchEvent = function(vType)
-{
- if (this.hasEventListeners(vType)) {
- this.dispatchEvent(new qx.event.type.Event(vType), true);
- }
-}
-
-
-/**
- * Checks if the event is registered. If so it creates an event object and dispatches it.
- *
- * @param vType {string} name of the event type
- * @param vData {Object} user defined data attached to the event object
- */
-qx.Proto.createDispatchDataEvent = function(vType, vData)
-{
- if (this.hasEventListeners(vType)) {
- this.dispatchEvent(new qx.event.type.DataEvent(vType, vData), true);
- }
-}
-
-
-
-/*
----------------------------------------------------------------------------
- EVENT DISPATCH
----------------------------------------------------------------------------
-*/
-
-/**
- * Dispatch an event
- *
- * @param vEvent {qx.event.type.Event} event to dispatch
- * @param vEnableDispose {boolean} wether the event object should be disposed after all event handlers run.
- * @return {boolean} wether the event default was prevented or not. Returns true, when the event was NOT prevented.
- */
-qx.Proto.dispatchEvent = function(vEvent, vEnableDispose)
-{
- // Ignore event if eventTarget is disposed
- if(this.getDisposed() && this.getEnabled()) {
- return;
- }
-
- if (vEvent.getTarget() == null) {
- vEvent.setTarget(this);
- }
-
- if (vEvent.getCurrentTarget() == null) {
- vEvent.setCurrentTarget(this);
- }
-
- // Dispatch Event
- this._dispatchEvent(vEvent, vEnableDispose);
-
- // Read default prevented
- var defaultPrevented = vEvent._defaultPrevented;
-
- // enable dispose for event?
- vEnableDispose && vEvent.dispose();
-
- return !defaultPrevented;
-}
-
-
-/**
- * Internal event dispatch method
- *
- * @param vEvent {qx.event.type.Event} event to dispatch
- */
-qx.Proto._dispatchEvent = function(vEvent)
-{
- var vListeners = this._listeners;
- if (vListeners)
- {
- // Setup current target
- vEvent.setCurrentTarget(this);
-
- // Shortcut for listener data
- var vTypeListeners = vListeners[vEvent.getType()];
-
- if(vTypeListeners)
- {
- var vFunction, vObject;
-
- // Handle all events for the specified type
- for (var vHashCode in vTypeListeners)
- {
- // Shortcuts for handler and object
- vFunction = vTypeListeners[vHashCode].handler;
- vObject = vTypeListeners[vHashCode].object;
-
- // Call object function
- try
- {
- if(typeof vFunction === "function") {
- vFunction.call(qx.util.Validation.isValid(vObject) ? vObject : this, vEvent);
- }
- }
- catch(ex)
- {
- this.error("Could not dispatch event of type \"" + vEvent.getType() + "\"", ex);
- }
- }
- }
- }
-
- // Bubble event to parents
- // TODO: Move this to Parent or Widget?
- if(vEvent.getBubbles() && !vEvent.getPropagationStopped() && this.getParent)
- {
- var vParent = this.getParent();
- if (vParent && !vParent.getDisposed() && vParent.getEnabled()) {
- vParent._dispatchEvent(vEvent);
- }
- }
-}
-
-
-
-
-/*
----------------------------------------------------------------------------
- DISPOSER
----------------------------------------------------------------------------
-*/
-
-/**
- * Destructor.
- */
-qx.Proto.dispose = function()
-{
- if(this.getDisposed()) {
- return;
- }
-
- if (typeof this._listeners === "object")
- {
- for (var vType in this._listeners)
- {
- var listener = this._listeners[vType];
- for (var vKey in listener)
- {
- listener[vKey] = null;
- }
-
- this._listeners[vType] = null;
- }
- }
-
- this._listeners = null;
-
- return qx.core.Object.prototype.dispose.call(this);
-}