Upgrade to ExtJS 3.0.0 - Released 07/06/2009
[extjs.git] / docs / source / FileProvider.html
diff --git a/docs/source/FileProvider.html b/docs/source/FileProvider.html
new file mode 100644 (file)
index 0000000..e0f651f
--- /dev/null
@@ -0,0 +1,76 @@
+<html>\r
+<head>\r
+  <title>The source code</title>\r
+    <link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />\r
+    <script type="text/javascript" src="../resources/prettify/prettify.js"></script>\r
+</head>\r
+<body  onload="prettyPrint();">\r
+    <pre class="prettyprint lang-js"><div id="cls-Ext.air.FileProvider"></div>/**\r
+ * @class Ext.air.FileProvider\r
+ * @extends Ext.state.Provider\r
+ * \r
+ * An Ext state provider implementation for Adobe AIR that stores state in the application \r
+ * storage directory.\r
+ * \r
+ * @constructor\r
+ * @param {Object} config\r
+ */\r
+Ext.air.FileProvider = function(config){\r
+    Ext.air.FileProvider.superclass.constructor.call(this);\r
+       \r
+       this.defaultState = {\r
+               mainWindow : {\r
+                       width:780,\r
+                       height:580,\r
+                       x:10,\r
+                       y:10\r
+               }\r
+       };\r
+       \r
+    Ext.apply(this, config);\r
+    this.state = this.readState();\r
+       \r
+       var provider = this;\r
+       air.NativeApplication.nativeApplication.addEventListener('exiting', function(){\r
+               provider.saveState();\r
+       });\r
+};\r
+\r
+Ext.extend(Ext.air.FileProvider, Ext.state.Provider, {\r
+       <div id="cfg-Ext.air.FileProvider-file"></div>/**\r
+        * @cfg {String} file\r
+        * The file name to use for the state file in the application storage directory\r
+        */\r
+       file: 'extstate.data',\r
+       \r
+       <div id="cfg-Ext.air.FileProvider-defaultState"></div>/**\r
+        * @cfg {Object} defaultState\r
+        * The default state if no state file can be found\r
+        */\r
+       // private\r
+    readState : function(){\r
+               var stateFile = air.File.applicationStorageDirectory.resolvePath(this.file);\r
+               if(!stateFile.exists){\r
+                       return this.defaultState || {};\r
+               }\r
+               \r
+               var stream = new air.FileStream();\r
+               stream.open(stateFile, air.FileMode.READ);\r
+               \r
+               var stateData = stream.readObject();\r
+               stream.close();\r
+               \r
+               return stateData || this.defaultState || {};\r
+    },\r
+\r
+    // private\r
+    saveState : function(name, value){\r
+        var stateFile = air.File.applicationStorageDirectory.resolvePath(this.file);\r
+               var stream = new air.FileStream();\r
+               stream.open(stateFile, air.FileMode.WRITE);\r
+               stream.writeObject(this.state);\r
+               stream.close();\r
+    }\r
+});</pre>    \r
+</body>\r
+</html>
\ No newline at end of file