<!DOCTYPE html>
|
<html>
|
<head>
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
<title>The source code</title>
|
<link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />
|
<script type="text/javascript" src="../resources/prettify/prettify.js"></script>
|
<style type="text/css">
|
.highlight { display: block; background-color: #ddd; }
|
</style>
|
<script type="text/javascript">
|
function highlight() {
|
document.getElementById(location.hash.replace(/#/, "")).className = "highlight";
|
}
|
</script>
|
</head>
|
<body onload="prettyPrint(); highlight();">
|
<pre class="prettyprint lang-js"><span id='Ext-state-LocalStorageProvider'>/**
|
</span> * @class Ext.state.LocalStorageProvider
|
* A Provider implementation which saves and retrieves state via the HTML5 localStorage object.
|
* If the browser does not support local storage, there will be no attempt to read the state.
|
* Before creating this class, a check should be made to {@link Ext.supports#LocalStorage}.
|
*/
|
|
Ext.define('Ext.state.LocalStorageProvider', {
|
/* Begin Definitions */
|
|
extend: 'Ext.state.Provider',
|
|
alias: 'state.localstorage',
|
|
<span id='Ext-state-LocalStorageProvider-method-constructor'> /* End Definitions */
|
</span>
|
constructor: function(){
|
var me = this;
|
me.callParent(arguments);
|
me.store = me.getStorageObject();
|
if (me.store) {
|
me.state = me.readLocalStorage();
|
} else {
|
me.state = {};
|
}
|
},
|
|
<span id='Ext-state-LocalStorageProvider-method-readLocalStorage'> readLocalStorage: function(){
|
</span> var store = this.store,
|
i = 0,
|
len = store.length,
|
prefix = this.prefix,
|
prefixLen = prefix.length,
|
data = {},
|
key;
|
|
for (; i < len; ++i) {
|
key = store.key(i);
|
if (key.substring(0, prefixLen) == prefix) {
|
data[key.substr(prefixLen)] = this.decodeValue(store.getItem(key));
|
}
|
}
|
return data;
|
},
|
|
<span id='Ext-state-LocalStorageProvider-method-set'> set : function(name, value){
|
</span> var me = this;
|
|
me.clear(name);
|
if (typeof value == "undefined" || value === null) {
|
return;
|
}
|
me.store.setItem(me.prefix + name, me.encodeValue(value));
|
me.callParent(arguments);
|
},
|
|
<span id='Ext-state-LocalStorageProvider-method-clear'> // private
|
</span> clear : function(name){
|
this.store.removeItem(this.prefix + name);
|
this.callParent(arguments);
|
},
|
|
<span id='Ext-state-LocalStorageProvider-method-getStorageObject'> getStorageObject: function(){
|
</span> if (Ext.supports.LocalStorage) {
|
return window.localStorage;
|
}
|
//<debug>
|
Ext.Error.raise('LocalStorage is not supported by the current browser');
|
//</debug>
|
return false;
|
}
|
});
|
</pre>
|
</body>
|
</html>
|