@interface name="KitEvents" alias="$ENV">
Extension point for defining kit event listeners
(c) SAP AG 2003-2006. All rights reserved.
+
# For complete description of listener
definition see @env:KitEvents!EVENT_LISTENER
?
*
# Represents a property of the listener
You can assign the 'type' attribute for
evaluating the value of the property
as a function
Example
onshapemenu
function defineListener(def) {
if (!def) return null;
if (typeof def != 'object' || typeof def.func != 'function') return raiseKitError('Invalid event listener definition near %where%', STR(def));
def.type = LOWER(def.type);
if (!(def.type in $DOM.allEvents)) return raiseKitError('Unknown event listener "'+def.type+'"');
if (def.object) {
var C = $DOM.toQName(def.object);
if (!C) return raiseKitError('Invalid class filter for event listener "'+def.type+'"');
def.object = C;
}
var key=def.type;
if (def.property) key += '.'+def.property;
def.id = _kitListenerIds.length;
if (!(key in _kitListeners)) _kitListeners[key] = [];
_kitListeners[key].push(def);
_kitListenerIds[def.id] = def;
return def;
}
<@method name="getEventType">
Gets a specified kit event type
The requested event type name
The requested event type definition
function getEventType(type) {
return $DOM.allEvents[LOWER(type)];
}
<@method name="getEventTypesTable">
Gets the complete kit events types table
Returns the table of all kit event types, indexed by type name
Event id's are stored in lowercase. Use @lib:Basic!LOWER macro to convert the event's id to lowercase
before using it as the index in this table.
function getEventTypesTable() {
return $DOM.allEvents;
}
<@method name="getListener">
Gets a specified kit event listener definition
event listener Id
The requested event listener definition
function getListener(id) {
return _kitListenerIds[id] || null;
}
<@method name="getListenersTable">
Gets the complete kit event listeners table
Table of event listeners definitions, indexed by id
function getListenersTable() {
return _kitListeners;
}
<@method name="removeListener">
Removes a specified event listener definition
The id of the event listener to remove
function removeListener(id) {
var def = _kitListenerIds[id] || null;
if (!def) remove;
var key=def.type;
if (def.property) key += '.'+def.property;
var A=_kitListeners[key];
if (A) {
for (var i=0, len=A.length; i
Parses the given listener node and returns a string which represents its details
Listener node to parse
function parseListener(listenerNode) {
var map = getNodeProps(listenerNode);
var res = "$ENV.defineListener(" + __xmlMap2Str(map) + ");";
return res;
}
<@struct name="EVENT_TYPE">
Represents a kit event type
The EVENT_TYPE structure is made of:
Name | Type | Description
type | String | Event type name
0..n | String | Event parameter names
<@struct name="EVENT_LISTENER">
Represents a kit event listener definition
The EVENT_LISTENER structure is made of:
Name | Type | Description
id | Number | Unique listener Id (created automatically by the system)
type | String | Event type to listen to
func | Function | Function to be invoked by the event listener
object | String | Restrict listener to events triggered on specified class of objects
property | String | Restrict listener to events on specified property name