App.js
上传用户:shuoshiled
上传日期:2018-01-28
资源大小:10124k
文件大小:2k
源码类别:

中间件编程

开发平台:

JavaScript

  1. /*!  * Ext JS Library 3.0.0  * Copyright(c) 2006-2009 Ext JS, LLC  * licensing@extjs.com  * http://www.extjs.com/license  */ Ext.app.App = function(cfg){
  2.     Ext.apply(this, cfg);
  3.     this.addEvents({
  4.         'ready' : true,
  5.         'beforeunload' : true
  6.     });
  7.     Ext.onReady(this.initApp, this);
  8. };
  9. Ext.extend(Ext.app.App, Ext.util.Observable, {
  10.     isReady: false,
  11.     startMenu: null,
  12.     modules: null,
  13.     getStartConfig : function(){
  14.     },
  15.     initApp : function(){
  16.      this.startConfig = this.startConfig || this.getStartConfig();
  17.         this.desktop = new Ext.Desktop(this);
  18. this.launcher = this.desktop.taskbar.startMenu;
  19. this.modules = this.getModules();
  20.         if(this.modules){
  21.             this.initModules(this.modules);
  22.         }
  23.         this.init();
  24.         Ext.EventManager.on(window, 'beforeunload', this.onUnload, this);
  25. this.fireEvent('ready', this);
  26.         this.isReady = true;
  27.     },
  28.     getModules : Ext.emptyFn,
  29.     init : Ext.emptyFn,
  30.     initModules : function(ms){
  31. for(var i = 0, len = ms.length; i < len; i++){
  32.             var m = ms[i];
  33.             this.launcher.add(m.launcher);
  34.             m.app = this;
  35.         }
  36.     },
  37.     getModule : function(name){
  38.      var ms = this.modules;
  39.      for(var i = 0, len = ms.length; i < len; i++){
  40.      if(ms[i].id == name || ms[i].appType == name){
  41.      return ms[i];
  42. }
  43.         }
  44.         return '';
  45.     },
  46.     onReady : function(fn, scope){
  47.         if(!this.isReady){
  48.             this.on('ready', fn, scope);
  49.         }else{
  50.             fn.call(scope, this);
  51.         }
  52.     },
  53.     getDesktop : function(){
  54.         return this.desktop;
  55.     },
  56.     onUnload : function(e){
  57.         if(this.fireEvent('beforeunload', this) === false){
  58.             e.stopEvent();
  59.         }
  60.     }
  61. });