<@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