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
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
12 * An Ext state provider implementation for Adobe AIR that stores state in the application
\r
13 * storage directory.
\r
16 * @param {Object} config
\r
18 Ext.air.FileProvider = function(config){
\r
19 Ext.air.FileProvider.superclass.constructor.call(this);
\r
21 this.defaultState = {
\r
30 Ext.apply(this, config);
\r
31 this.state = this.readState();
\r
33 var provider = this;
\r
34 air.NativeApplication.nativeApplication.addEventListener('exiting', function(){
\r
35 provider.saveState();
\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
44 file: 'extstate.data',
\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
51 readState : function(){
\r
52 var stateFile = air.File.applicationStorageDirectory.resolvePath(this.file);
\r
53 if(!stateFile.exists){
\r
54 return this.defaultState || {};
\r
57 var stream = new air.FileStream();
\r
58 stream.open(stateFile, air.FileMode.READ);
\r
60 var stateData = stream.readObject();
\r
63 return stateData || this.defaultState || {};
\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