📄 events.js
字号:
/*
* Copyright 2001-2007 Hippo (www.hippo.nl)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
function EventManager() {
if ( !Cfx.Class.IsDefined( EventManager ) ) {
Cfx.Class.New( EventManager, baseComponent );
if ( Cfx.Class.IsInitializing( EventManager ) ) {
EventManager.Method( init );
EventManager.Method( addEventListener );
EventManager.Method( removeEventListener );
EventManager.Method( fireEvent );
EventManager.Method( executeDelayedEvents );
return;
}
}
this.InitInstance();
this.listeners = new Array();
this.delayedEvents = new QueueAsArray(10);
return this;
function init(){
if (this.log.debugging()) {
this.log.debug("initializing EventManager");
}
}
function addEventListener(obj) {
this.listeners.push(obj);
}
function removeEventListener(obj) {
this.listeners.pop(obj);
}
function fireEvent(evt, params) {
if (this.log.debugging()) {
this.log.debug("Firing event: " + evt);
}
if(this.sm.lookup("framework.authenticationmanager").isConnected()){
for (var i=0; i<this.listeners.length; i++) {
var func = this.listeners[i][evt];
if (func != undefined) {
if (this.log.debugging()) {
this.log.debug("notifying object '" + this.listeners[i].getId() + "' of event " + evt);
}
func.call(this.listeners[i], params);
}
}
}else{
if (this.log.debugging()) {
this.log.debug("Delaying event: " + evt);
}
var _this = this;
this.delayedEvents.enqueue(new DelayedEvent(evt, params));
this.sm.lookup("framework.authenticationmanager").reconnect();
}
}
function executeDelayedEvents() {
if(!this.delayedEvents.isEmpty()) {
try{
var evt = this.delayedEvents.dequeue();
this.log.debug(evt.event + " - " + evt.args);
this.fireEvent(evt.event, evt.args);
//TODO: implement recursion
//this.executeDelayedEvents();
}catch(e){
this.log.error("executeDelayedEvents()", e)
}
}
}
}
function DelayedEvent() {
if ( !Cfx.Class.IsDefined( DelayedEvent ) ) {
Cfx.Class.New( DelayedEvent );
if ( Cfx.Class.IsInitializing( DelayedEvent ) ) {
return;
}
}
this.InitInstance();
if(arguments.length) {
this.event = arguments[0];
this.args= arguments[1];
}
return this;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -