]> git.proxmox.com Git - extjs.git/blame - extjs/examples/classic/sandbox/js/App.js
add extjs 6.0.1 sources
[extjs.git] / extjs / examples / classic / sandbox / js / App.js
CommitLineData
6527f429
DM
1/*!\r
2 * Ext JS Library 3.3.1\r
3 * Copyright(c) 2006-2014 Sencha Inc.\r
4 * licensing@sencha.com\r
5 * http://www.sencha.com/license\r
6 */\r
7Ext.app.App = function(cfg){\r
8 Ext.apply(this, cfg);\r
9 this.addEvents({\r
10 'ready' : true,\r
11 'beforeunload' : true\r
12 });\r
13\r
14 Ext.onReady(this.initApp, this);\r
15};\r
16\r
17Ext.extend(Ext.app.App, Ext.util.Observable, {\r
18 isReady: false,\r
19 startMenu: null,\r
20 modules: null,\r
21\r
22 getStartConfig : function(){\r
23\r
24 },\r
25\r
26 initApp : function(){\r
27 this.startConfig = this.startConfig || this.getStartConfig();\r
28\r
29 this.desktop = new Ext.Desktop(this);\r
30\r
31 this.launcher = this.desktop.taskbar.startMenu;\r
32\r
33 this.modules = this.getModules();\r
34 if(this.modules){\r
35 this.initModules(this.modules);\r
36 }\r
37\r
38 this.init();\r
39\r
40 Ext.getWin().on('beforeunload', this.onUnload, this);\r
41 this.fireEvent('ready', this);\r
42 this.isReady = true;\r
43 },\r
44\r
45 getModules : Ext.emptyFn,\r
46 init : Ext.emptyFn,\r
47\r
48 initModules : function(ms){\r
49 for(var i = 0, len = ms.length; i < len; i++){\r
50 var m = ms[i];\r
51 this.launcher.add(m.launcher);\r
52 m.app = this;\r
53 }\r
54 },\r
55\r
56 getModule : function(name){\r
57 var ms = this.modules;\r
58 for(var i = 0, len = ms.length; i < len; i++){\r
59 if(ms[i].id == name || ms[i].appType == name){\r
60 return ms[i];\r
61 }\r
62 }\r
63 return '';\r
64 },\r
65\r
66 onReady : function(fn, scope){\r
67 if(!this.isReady){\r
68 this.on('ready', fn, scope);\r
69 }else{\r
70 fn.call(scope, this);\r
71 }\r
72 },\r
73\r
74 getDesktop : function(){\r
75 return this.desktop;\r
76 },\r
77\r
78 onUnload : function(e){\r
79 if(this.fireEvent('beforeunload', this) === false){\r
80 e.stopEvent();\r
81 }\r
82 }\r
83});