Upgrade to ExtJS 3.0.0 - Released 07/06/2009
[extjs.git] / docs / source / FileProvider.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"><div id="cls-Ext.air.FileProvider"></div>/**\r
9  * @class Ext.air.FileProvider\r
10  * @extends Ext.state.Provider\r
11  * \r
12  * An Ext state provider implementation for Adobe AIR that stores state in the application \r
13  * storage directory.\r
14  * \r
15  * @constructor\r
16  * @param {Object} config\r
17  */\r
18 Ext.air.FileProvider = function(config){\r
19     Ext.air.FileProvider.superclass.constructor.call(this);\r
20         \r
21         this.defaultState = {\r
22                 mainWindow : {\r
23                         width:780,\r
24                         height:580,\r
25                         x:10,\r
26                         y:10\r
27                 }\r
28         };\r
29         \r
30     Ext.apply(this, config);\r
31     this.state = this.readState();\r
32         \r
33         var provider = this;\r
34         air.NativeApplication.nativeApplication.addEventListener('exiting', function(){\r
35                 provider.saveState();\r
36         });\r
37 };\r
38 \r
39 Ext.extend(Ext.air.FileProvider, Ext.state.Provider, {\r
40         <div id="cfg-Ext.air.FileProvider-file"></div>/**\r
41          * @cfg {String} file\r
42          * The file name to use for the state file in the application storage directory\r
43          */\r
44         file: 'extstate.data',\r
45         \r
46         <div id="cfg-Ext.air.FileProvider-defaultState"></div>/**\r
47          * @cfg {Object} defaultState\r
48          * The default state if no state file can be found\r
49          */\r
50         // private\r
51     readState : function(){\r
52                 var stateFile = air.File.applicationStorageDirectory.resolvePath(this.file);\r
53                 if(!stateFile.exists){\r
54                         return this.defaultState || {};\r
55                 }\r
56                 \r
57                 var stream = new air.FileStream();\r
58                 stream.open(stateFile, air.FileMode.READ);\r
59                 \r
60                 var stateData = stream.readObject();\r
61                 stream.close();\r
62                 \r
63                 return stateData || this.defaultState || {};\r
64     },\r
65 \r
66     // private\r
67     saveState : function(name, value){\r
68         var stateFile = air.File.applicationStorageDirectory.resolvePath(this.file);\r
69                 var stream = new air.FileStream();\r
70                 stream.open(stateFile, air.FileMode.WRITE);\r
71                 stream.writeObject(this.state);\r
72                 stream.close();\r
73     }\r
74 });</pre>    \r
75 </body>\r
76 </html>