]>
Commit | Line | Data |
---|---|---|
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 | |
7 | Ext.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 | |
17 | Ext.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 | }); |