Upgrade to ExtJS 3.0.0 - Released 07/06/2009
[extjs.git] / docs / source / App.html
1 <html>\r
2 <head>\r
3   <title>The source code</title>\r
4     <link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />\r
5     <script type="text/javascript" src="../resources/prettify/prettify.js"></script>\r
6 </head>\r
7 <body  onload="prettyPrint();">\r
8     <pre class="prettyprint lang-js">Ext.app.App = function(cfg){\r
9     Ext.apply(this, cfg);\r
10     this.addEvents({\r
11         'ready' : true,\r
12         'beforeunload' : true\r
13     });\r
14 \r
15     Ext.onReady(this.initApp, this);\r
16 };\r
17 \r
18 Ext.extend(Ext.app.App, Ext.util.Observable, {\r
19     isReady: false,\r
20     startMenu: null,\r
21     modules: null,\r
22 \r
23     getStartConfig : function(){\r
24 \r
25     },\r
26 \r
27     initApp : function(){\r
28         this.startConfig = this.startConfig || this.getStartConfig();\r
29 \r
30         this.desktop = new Ext.Desktop(this);\r
31 \r
32                 this.launcher = this.desktop.taskbar.startMenu;\r
33 \r
34                 this.modules = this.getModules();\r
35         if(this.modules){\r
36             this.initModules(this.modules);\r
37         }\r
38 \r
39         this.init();\r
40 \r
41         Ext.EventManager.on(window, 'beforeunload', this.onUnload, this);\r
42                 this.fireEvent('ready', this);\r
43         this.isReady = true;\r
44     },\r
45 \r
46     getModules : Ext.emptyFn,\r
47     init : Ext.emptyFn,\r
48 \r
49     initModules : function(ms){\r
50                 for(var i = 0, len = ms.length; i < len; i++){\r
51             var m = ms[i];\r
52             this.launcher.add(m.launcher);\r
53             m.app = this;\r
54         }\r
55     },\r
56 \r
57     getModule : function(name){\r
58         var ms = this.modules;\r
59         for(var i = 0, len = ms.length; i < len; i++){\r
60                 if(ms[i].id == name || ms[i].appType == name){\r
61                         return ms[i];\r
62                         }\r
63         }\r
64         return '';\r
65     },\r
66 \r
67     onReady : function(fn, scope){\r
68         if(!this.isReady){\r
69             this.on('ready', fn, scope);\r
70         }else{\r
71             fn.call(scope, this);\r
72         }\r
73     },\r
74 \r
75     getDesktop : function(){\r
76         return this.desktop;\r
77     },\r
78 \r
79     onUnload : function(e){\r
80         if(this.fireEvent('beforeunload', this) === false){\r
81             e.stopEvent();\r
82         }\r
83     }\r
84 });</pre>    \r
85 </body>\r
86 </html>