|
|
|
/*
|
|
|
|
Copyright (c) 2004-2006, The Dojo Foundation
|
|
|
|
All Rights Reserved.
|
|
|
|
|
|
|
|
Licensed under the Academic Free License version 2.1 or above OR the
|
|
|
|
modified BSD license. For more information on Dojo licensing, see:
|
|
|
|
|
|
|
|
http://dojotoolkit.org/community/licensing.shtml
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
dojo.provide("dojo.storage.browser");
|
|
|
|
dojo.require("dojo.storage");
|
|
|
|
dojo.require("dojo.flash");
|
|
|
|
dojo.require("dojo.json");
|
|
|
|
dojo.require("dojo.uri.*");
|
|
|
|
dojo.storage.browser.FileStorageProvider=function(){
|
|
|
|
};
|
|
|
|
dojo.inherits(dojo.storage.browser.FileStorageProvider,dojo.storage);
|
|
|
|
dojo.storage.browser.FileStorageProvider._KEY_INDEX_FILENAME="__dojoAllKeys";
|
|
|
|
dojo.storage.browser.FileStorageProvider._APPLET_ID="__dojoFileJavaObj";
|
|
|
|
dojo.lang.extend(dojo.storage.browser.FileStorageProvider,{namespace:"default",initialized:false,_available:null,_statusHandler:null,_keyIndex:new Array(),initialize:function(){
|
|
|
|
if(djConfig["disableFileStorage"]==true){
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
this._loadKeyIndex();
|
|
|
|
this.initialized=true;
|
|
|
|
dojo.storage.manager.loaded();
|
|
|
|
},isAvailable:function(){
|
|
|
|
this._available=false;
|
|
|
|
var _1=window.location.protocol;
|
|
|
|
if(_1.indexOf("file")!=-1||_1.indexOf("chrome")!=-1){
|
|
|
|
this._available=this._isAvailableXPCOM();
|
|
|
|
if(this._available==false){
|
|
|
|
this._available=this._isAvailableActiveX();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return this._available;
|
|
|
|
},put:function(_2,_3,_4){
|
|
|
|
if(this.isValidKey(_2)==false){
|
|
|
|
dojo.raise("Invalid key given: "+_2);
|
|
|
|
}
|
|
|
|
this._statusHandler=_4;
|
|
|
|
try{
|
|
|
|
this._save(_2,_3);
|
|
|
|
_4.call(null,dojo.storage.SUCCESS,_2);
|
|
|
|
}
|
|
|
|
catch(e){
|
|
|
|
this._statusHandler.call(null,dojo.storage.FAILED,_2,e.toString());
|
|
|
|
}
|
|
|
|
},get:function(_5){
|
|
|
|
if(this.isValidKey(_5)==false){
|
|
|
|
dojo.raise("Invalid key given: "+_5);
|
|
|
|
}
|
|
|
|
var _6=this._load(_5);
|
|
|
|
return _6;
|
|
|
|
},getKeys:function(){
|
|
|
|
return this._keyIndex;
|
|
|
|
},hasKey:function(_7){
|
|
|
|
if(this.isValidKey(_7)==false){
|
|
|
|
dojo.raise("Invalid key given: "+_7);
|
|
|
|
}
|
|
|
|
this._loadKeyIndex();
|
|
|
|
var _8=false;
|
|
|
|
for(var i=0;i<this._keyIndex.length;i++){
|
|
|
|
if(this._keyIndex[i]==_7){
|
|
|
|
_8=true;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return _8;
|
|
|
|
},clear:function(){
|
|
|
|
this._loadKeyIndex();
|
|
|
|
var _a=new Array();
|
|
|
|
for(var i=0;i<this._keyIndex.length;i++){
|
|
|
|
_a[_a.length]=new String(this._keyIndex[i]);
|
|
|
|
}
|
|
|
|
for(var i=0;i<_a.length;i++){
|
|
|
|
this.remove(_a[i]);
|
|
|
|
}
|
|
|
|
},remove:function(_c){
|
|
|
|
if(this.isValidKey(_c)==false){
|
|
|
|
dojo.raise("Invalid key given: "+_c);
|
|
|
|
}
|
|
|
|
this._loadKeyIndex();
|
|
|
|
for(var i=0;i<this._keyIndex.length;i++){
|
|
|
|
if(this._keyIndex[i]==_c){
|
|
|
|
this._keyIndex.splice(i,1);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
this._save(dojo.storage.browser.FileStorageProvider._KEY_INDEX_FILENAME,this._keyIndex,false);
|
|
|
|
var _e=this._getPagePath()+_c+".txt";
|
|
|
|
if(this._isAvailableXPCOM()){
|
|
|
|
this._removeXPCOM(_e);
|
|
|
|
}else{
|
|
|
|
if(this._isAvailableActiveX()){
|
|
|
|
this._removeActiveX(_e);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
},isPermanent:function(){
|
|
|
|
return true;
|
|
|
|
},getMaximumSize:function(){
|
|
|
|
return dojo.storage.SIZE_NO_LIMIT;
|
|
|
|
},hasSettingsUI:function(){
|
|
|
|
return false;
|
|
|
|
},showSettingsUI:function(){
|
|
|
|
dojo.raise(this.getType()+" does not support a storage settings user-interface");
|
|
|
|
},hideSettingsUI:function(){
|
|
|
|
dojo.raise(this.getType()+" does not support a storage settings user-interface");
|
|
|
|
},getType:function(){
|
|
|
|
return "dojo.storage.browser.FileStorageProvider";
|
|
|
|
},_save:function(_f,_10,_11){
|
|
|
|
if(typeof _11=="undefined"){
|
|
|
|
_11=true;
|
|
|
|
}
|
|
|
|
if(dojo.lang.isString(_10)==false){
|
|
|
|
_10=dojo.json.serialize(_10);
|
|
|
|
_10="/* JavaScript */\n"+_10+"\n\n";
|
|
|
|
}
|
|
|
|
var _12=this._getPagePath()+_f+".txt";
|
|
|
|
if(this._isAvailableXPCOM()){
|
|
|
|
this._saveFileXPCOM(_12,_10);
|
|
|
|
}else{
|
|
|
|
if(this._isAvailableActiveX()){
|
|
|
|
this._saveFileActiveX(_12,_10);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if(_11){
|
|
|
|
this._updateKeyIndex(_f);
|
|
|
|
}
|
|
|
|
},_load:function(key){
|
|
|
|
var _14=this._getPagePath()+key+".txt";
|
|
|
|
var _15=null;
|
|
|
|
if(this._isAvailableXPCOM()){
|
|
|
|
_15=this._loadFileXPCOM(_14);
|
|
|
|
}else{
|
|
|
|
if(this._isAvailableActiveX()){
|
|
|
|
_15=this._loadFileActiveX(_14);
|
|
|
|
}else{
|
|
|
|
if(this._isAvailableJava()){
|
|
|
|
_15=this._loadFileJava(_14);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if(_15==null){
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
if(!dojo.lang.isUndefined(_15)&&_15!=null&&/^\/\* JavaScript \*\//.test(_15)){
|
|
|
|
_15=dojo.json.evalJson(_15);
|
|
|
|
}
|
|
|
|
return _15;
|
|
|
|
},_updateKeyIndex:function(key){
|
|
|
|
this._loadKeyIndex();
|
|
|
|
var _17=false;
|
|
|
|
for(var i=0;i<this._keyIndex.length;i++){
|
|
|
|
if(this._keyIndex[i]==key){
|
|
|
|
_17=true;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if(_17==false){
|
|
|
|
this._keyIndex[this._keyIndex.length]=key;
|
|
|
|
}
|
|
|
|
this._save(dojo.storage.browser.FileStorageProvider._KEY_INDEX_FILENAME,this._keyIndex,false);
|
|
|
|
},_loadKeyIndex:function(){
|
|
|
|
var _19=this._load(dojo.storage.browser.FileStorageProvider._KEY_INDEX_FILENAME);
|
|
|
|
if(_19==null){
|
|
|
|
this._keyIndex=new Array();
|
|
|
|
}else{
|
|
|
|
this._keyIndex=_19;
|
|
|
|
}
|
|
|
|
},_saveFileXPCOM:function(_1a,_1b){
|
|
|
|
try{
|
|
|
|
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
|
|
|
var f=Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
|
|
|
|
f.initWithPath(_1a);
|
|
|
|
var _1d=Components.classes["@mozilla.org/network/file-output-stream;1"].createInstance(Components.interfaces.nsIFileOutputStream);
|
|
|
|
_1d.init(f,32|4|8,256+128,null);
|
|
|
|
_1d.write(_1b,_1b.length);
|
|
|
|
_1d.close();
|
|
|
|
}
|
|
|
|
catch(e){
|
|
|
|
var msg=e.toString();
|
|
|
|
if(e.name&&e.message){
|
|
|
|
msg=e.name+": "+e.message;
|
|
|
|
}
|
|
|
|
dojo.raise("dojo.storage.browser.FileStorageProvider._saveFileXPCOM(): "+msg);
|
|
|
|
}
|
|
|
|
},_loadFileXPCOM:function(_1f){
|
|
|
|
try{
|
|
|
|
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
|
|
|
var f=Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
|
|
|
|
f.initWithPath(_1f);
|
|
|
|
if(f.exists()==false){
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
var inp=Components.classes["@mozilla.org/network/file-input-stream;1"].createInstance(Components.interfaces.nsIFileInputStream);
|
|
|
|
inp.init(f,1,4,null);
|
|
|
|
var _22=Components.classes["@mozilla.org/scriptableinputstream;1"].createInstance(Components.interfaces.nsIScriptableInputStream);
|
|
|
|
_22.init(inp);
|
|
|
|
var _23=_22.read(_22.available());
|
|
|
|
return _23;
|
|
|
|
}
|
|
|
|
catch(e){
|
|
|
|
var msg=e.toString();
|
|
|
|
if(e.name&&e.message){
|
|
|
|
msg=e.name+": "+e.message;
|
|
|
|
}
|
|
|
|
dojo.raise("dojo.storage.browser.FileStorageProvider._loadFileXPCOM(): "+msg);
|
|
|
|
}
|
|
|
|
return null;
|
|
|
|
},_saveFileActiveX:function(_25,_26){
|
|
|
|
try{
|
|
|
|
var _27=new ActiveXObject("Scripting.FileSystemObject");
|
|
|
|
var f=_27.OpenTextFile(_25,2,true);
|
|
|
|
f.Write(_26);
|
|
|
|
f.Close();
|
|
|
|
}
|
|
|
|
catch(e){
|
|
|
|
var msg=e.toString();
|
|
|
|
if(e.name&&e.message){
|
|
|
|
msg=e.name+": "+e.message;
|
|
|
|
}
|
|
|
|
dojo.raise("dojo.storage.browser.FileStorageProvider._saveFileActiveX(): "+msg);
|
|
|
|
}
|
|
|
|
},_loadFileActiveX:function(_2a){
|
|
|
|
try{
|
|
|
|
var _2b=new ActiveXObject("Scripting.FileSystemObject");
|
|
|
|
if(_2b.FileExists(_2a)==false){
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
var f=_2b.OpenTextFile(_2a,1);
|
|
|
|
var _2d=f.ReadAll();
|
|
|
|
f.Close();
|
|
|
|
return _2d;
|
|
|
|
}
|
|
|
|
catch(e){
|
|
|
|
var msg=e.toString();
|
|
|
|
if(e.name&&e.message){
|
|
|
|
msg=e.name+": "+e.message;
|
|
|
|
}
|
|
|
|
dojo.raise("dojo.storage.browser.FileStorageProvider._loadFileActiveX(): "+msg);
|
|
|
|
}
|
|
|
|
},_saveFileJava:function(_2f,_30){
|
|
|
|
try{
|
|
|
|
var _31=dojo.byId(dojo.storage.browser.FileStorageProvider._APPLET_ID);
|
|
|
|
_31.save(_2f,_30);
|
|
|
|
}
|
|
|
|
catch(e){
|
|
|
|
var msg=e.toString();
|
|
|
|
if(e.name&&e.message){
|
|
|
|
msg=e.name+": "+e.message;
|
|
|
|
}
|
|
|
|
dojo.raise("dojo.storage.browser.FileStorageProvider._saveFileJava(): "+msg);
|
|
|
|
}
|
|
|
|
},_loadFileJava:function(_33){
|
|
|
|
try{
|
|
|
|
var _34=dojo.byId(dojo.storage.browser.FileStorageProvider._APPLET_ID);
|
|
|
|
var _35=_34.load(_33);
|
|
|
|
return _35;
|
|
|
|
}
|
|
|
|
catch(e){
|
|
|
|
var msg=e.toString();
|
|
|
|
if(e.name&&e.message){
|
|
|
|
msg=e.name+": "+e.message;
|
|
|
|
}
|
|
|
|
dojo.raise("dojo.storage.browser.FileStorageProvider._loadFileJava(): "+msg);
|
|
|
|
}
|
|
|
|
},_isAvailableActiveX:function(){
|
|
|
|
try{
|
|
|
|
if(window.ActiveXObject){
|
|
|
|
var _37=new window.ActiveXObject("Scripting.FileSystemObject");
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
catch(e){
|
|
|
|
dojo.debug(e);
|
|
|
|
}
|
|
|
|
return false;
|
|
|
|
},_isAvailableXPCOM:function(){
|
|
|
|
try{
|
|
|
|
if(window.Components){
|
|
|
|
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
|
|
|
Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
catch(e){
|
|
|
|
dojo.debug(e);
|
|
|
|
}
|
|
|
|
return false;
|
|
|
|
},_isAvailableJava:function(){
|
|
|
|
try{
|
|
|
|
if(dojo.render.html.safari==true||dojo.render.html.opera==true()){
|
|
|
|
if(navigator.javaEnabled()==true){
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
catch(e){
|
|
|
|
dojo.debug(e);
|
|
|
|
}
|
|
|
|
return false;
|
|
|
|
},_getPagePath:function(){
|
|
|
|
var _38=window.location.pathname;
|
|
|
|
if(/\.html?$/i.test(_38)){
|
|
|
|
_38=_38.replace(/(?:\/|\\)?[^\.\/\\]*\.html?$/,"");
|
|
|
|
}
|
|
|
|
if(/^\/?[a-z]+\:/i.test(_38)){
|
|
|
|
_38=_38.replace(/^\/?/,"");
|
|
|
|
_38=_38.replace(/\//g,"\\");
|
|
|
|
}else{
|
|
|
|
if(/^[\/\\]{2,3}[^\/]/.test(_38)){
|
|
|
|
_38=_38.replace(/^[\/\\]{2,3}/,"");
|
|
|
|
_38=_38.replace(/\//g,"\\");
|
|
|
|
_38="\\\\"+_38;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if(/\/$/.test(_38)==false&&/\\$/.test(_38)==false){
|
|
|
|
if(/\//.test(_38)){
|
|
|
|
_38+="/";
|
|
|
|
}else{
|
|
|
|
_38+="\\";
|
|
|
|
}
|
|
|
|
}
|
|
|
|
_38=unescape(_38);
|
|
|
|
return _38;
|
|
|
|
},_removeXPCOM:function(_39){
|
|
|
|
try{
|
|
|
|
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
|
|
|
var f=Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
|
|
|
|
f.initWithPath(_39);
|
|
|
|
if(f.exists()==false||f.isDirectory()){
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
if(f.isFile()){
|
|
|
|
f.remove(false);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
catch(e){
|
|
|
|
dojo.raise("dojo.storage.browser.FileStorageProvider.remove(): "+e.toString());
|
|
|
|
}
|
|
|
|
},_removeActiveX:function(_3b){
|
|
|
|
try{
|
|
|
|
var _3c=new ActiveXObject("Scripting.FileSystemObject");
|
|
|
|
_3c.DeleteFile(_3b);
|
|
|
|
}
|
|
|
|
catch(e){
|
|
|
|
dojo.raise("dojo.storage.browser.FileStorageProvider.remove(): "+e.toString());
|
|
|
|
}
|
|
|
|
},_removeJava:function(_3d){
|
|
|
|
try{
|
|
|
|
var _3e=dojo.byId(dojo.storage.browser.FileStorageProvider._APPLET_ID);
|
|
|
|
_3e.remove(_3d);
|
|
|
|
}
|
|
|
|
catch(e){
|
|
|
|
var msg=e.toString();
|
|
|
|
if(e.name&&e.message){
|
|
|
|
msg=e.name+": "+e.message;
|
|
|
|
}
|
|
|
|
dojo.raise("dojo.storage.browser.FileStorageProvider._removeJava(): "+msg);
|
|
|
|
}
|
|
|
|
},_writeApplet:function(){
|
|
|
|
var _40=dojo.uri.moduleUri("dojo","../DojoFileStorageProvider.jar").toString();
|
|
|
|
var tag="<applet "+"id='"+dojo.storage.browser.FileStorageProvider._APPLET_ID+"' "+"style='position: absolute; top: -500px; left: -500px; width: 1px; height: 1px;' "+"code='DojoFileStorageProvider.class' "+"archive='"+_40+"' "+"width='1' "+"height='1' "+">"+"</applet>";
|
|
|
|
document.writeln(tag);
|
|
|
|
}});
|
|
|
|
dojo.storage.browser.WhatWGStorageProvider=function(){
|
|
|
|
};
|
|
|
|
dojo.inherits(dojo.storage.browser.WhatWGStorageProvider,dojo.storage);
|
|
|
|
dojo.lang.extend(dojo.storage.browser.WhatWGStorageProvider,{namespace:"default",initialized:false,_domain:null,_available:null,_statusHandler:null,initialize:function(){
|
|
|
|
if(djConfig["disableWhatWGStorage"]==true){
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
this._domain=location.hostname;
|
|
|
|
this.initialized=true;
|
|
|
|
dojo.storage.manager.loaded();
|
|
|
|
},isAvailable:function(){
|
|
|
|
try{
|
|
|
|
var _42=globalStorage[location.hostname];
|
|
|
|
}
|
|
|
|
catch(e){
|
|
|
|
this._available=false;
|
|
|
|
return this._available;
|
|
|
|
}
|
|
|
|
this._available=true;
|
|
|
|
return this._available;
|
|
|
|
},put:function(key,_44,_45){
|
|
|
|
if(this.isValidKey(key)==false){
|
|
|
|
dojo.raise("Invalid key given: "+key);
|
|
|
|
}
|
|
|
|
this._statusHandler=_45;
|
|
|
|
if(dojo.lang.isString(_44)){
|
|
|
|
_44="string:"+_44;
|
|
|
|
}else{
|
|
|
|
_44=dojo.json.serialize(_44);
|
|
|
|
}
|
|
|
|
window.addEventListener("storage",function(evt){
|
|
|
|
_45.call(null,dojo.storage.SUCCESS,key);
|
|
|
|
},false);
|
|
|
|
try{
|
|
|
|
var _47=globalStorage[this._domain];
|
|
|
|
_47.setItem(key,_44);
|
|
|
|
}
|
|
|
|
catch(e){
|
|
|
|
this._statusHandler.call(null,dojo.storage.FAILED,key,e.toString());
|
|
|
|
}
|
|
|
|
},get:function(key){
|
|
|
|
if(this.isValidKey(key)==false){
|
|
|
|
dojo.raise("Invalid key given: "+key);
|
|
|
|
}
|
|
|
|
var _49=globalStorage[this._domain];
|
|
|
|
var _4a=_49.getItem(key);
|
|
|
|
if(_4a==null){
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
_4a=_4a.value;
|
|
|
|
if(!dojo.lang.isUndefined(_4a)&&_4a!=null&&/^string:/.test(_4a)){
|
|
|
|
_4a=_4a.substring("string:".length);
|
|
|
|
}else{
|
|
|
|
_4a=dojo.json.evalJson(_4a);
|
|
|
|
}
|
|
|
|
return _4a;
|
|
|
|
},getKeys:function(){
|
|
|
|
var _4b=globalStorage[this._domain];
|
|
|
|
var _4c=new Array();
|
|
|
|
for(i=0;i<_4b.length;i++){
|
|
|
|
_4c[i]=_4b.key(i);
|
|
|
|
}
|
|
|
|
return _4c;
|
|
|
|
},clear:function(){
|
|
|
|
var _4d=globalStorage[this._domain];
|
|
|
|
var _4e=new Array();
|
|
|
|
for(var i=0;i<_4d.length;i++){
|
|
|
|
_4e[_4e.length]=_4d.key(i);
|
|
|
|
}
|
|
|
|
for(var i=0;i<_4e.length;i++){
|
|
|
|
_4d.removeItem(_4e[i]);
|
|
|
|
}
|
|
|
|
},remove:function(key){
|
|
|
|
var _51=globalStorage[this._domain];
|
|
|
|
_51.removeItem(key);
|
|
|
|
},isPermanent:function(){
|
|
|
|
return true;
|
|
|
|
},getMaximumSize:function(){
|
|
|
|
return dojo.storage.SIZE_NO_LIMIT;
|
|
|
|
},hasSettingsUI:function(){
|
|
|
|
return false;
|
|
|
|
},showSettingsUI:function(){
|
|
|
|
dojo.raise(this.getType()+" does not support a storage settings user-interface");
|
|
|
|
},hideSettingsUI:function(){
|
|
|
|
dojo.raise(this.getType()+" does not support a storage settings user-interface");
|
|
|
|
},getType:function(){
|
|
|
|
return "dojo.storage.browser.WhatWGProvider";
|
|
|
|
}});
|
|
|
|
dojo.storage.browser.FlashStorageProvider=function(){
|
|
|
|
};
|
|
|
|
dojo.inherits(dojo.storage.browser.FlashStorageProvider,dojo.storage);
|
|
|
|
dojo.lang.extend(dojo.storage.browser.FlashStorageProvider,{namespace:"default",initialized:false,_available:null,_statusHandler:null,initialize:function(){
|
|
|
|
if(djConfig["disableFlashStorage"]==true){
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
var _52=function(){
|
|
|
|
dojo.storage._flashLoaded();
|
|
|
|
};
|
|
|
|
dojo.flash.addLoadedListener(_52);
|
|
|
|
var _53=dojo.uri.moduleUri("dojo","../Storage_version6.swf").toString();
|
|
|
|
var _54=dojo.uri.moduleUri("dojo","../Storage_version8.swf").toString();
|
|
|
|
dojo.flash.setSwf({flash6:_53,flash8:_54,visible:false});
|
|
|
|
},isAvailable:function(){
|
|
|
|
if(djConfig["disableFlashStorage"]==true){
|
|
|
|
this._available=false;
|
|
|
|
}else{
|
|
|
|
this._available=true;
|
|
|
|
}
|
|
|
|
return this._available;
|
|
|
|
},put:function(key,_56,_57){
|
|
|
|
if(this.isValidKey(key)==false){
|
|
|
|
dojo.raise("Invalid key given: "+key);
|
|
|
|
}
|
|
|
|
this._statusHandler=_57;
|
|
|
|
if(dojo.lang.isString(_56)){
|
|
|
|
_56="string:"+_56;
|
|
|
|
}else{
|
|
|
|
_56=dojo.json.serialize(_56);
|
|
|
|
}
|
|
|
|
dojo.flash.comm.put(key,_56,this.namespace);
|
|
|
|
},get:function(key){
|
|
|
|
if(this.isValidKey(key)==false){
|
|
|
|
dojo.raise("Invalid key given: "+key);
|
|
|
|
}
|
|
|
|
var _59=dojo.flash.comm.get(key,this.namespace);
|
|
|
|
if(_59==""){
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
if(!dojo.lang.isUndefined(_59)&&_59!=null&&/^string:/.test(_59)){
|
|
|
|
_59=_59.substring("string:".length);
|
|
|
|
}else{
|
|
|
|
_59=dojo.json.evalJson(_59);
|
|
|
|
}
|
|
|
|
return _59;
|
|
|
|
},getKeys:function(){
|
|
|
|
var _5a=dojo.flash.comm.getKeys(this.namespace);
|
|
|
|
if(_5a==""){
|
|
|
|
return [];
|
|
|
|
}
|
|
|
|
return _5a.split(",");
|
|
|
|
},clear:function(){
|
|
|
|
dojo.flash.comm.clear(this.namespace);
|
|
|
|
},remove:function(key){
|
|
|
|
dojo.unimplemented("dojo.storage.browser.FlashStorageProvider.remove");
|
|
|
|
},isPermanent:function(){
|
|
|
|
return true;
|
|
|
|
},getMaximumSize:function(){
|
|
|
|
return dojo.storage.SIZE_NO_LIMIT;
|
|
|
|
},hasSettingsUI:function(){
|
|
|
|
return true;
|
|
|
|
},showSettingsUI:function(){
|
|
|
|
dojo.flash.comm.showSettings();
|
|
|
|
dojo.flash.obj.setVisible(true);
|
|
|
|
dojo.flash.obj.center();
|
|
|
|
},hideSettingsUI:function(){
|
|
|
|
dojo.flash.obj.setVisible(false);
|
|
|
|
if(dojo.storage.onHideSettingsUI!=null&&!dojo.lang.isUndefined(dojo.storage.onHideSettingsUI)){
|
|
|
|
dojo.storage.onHideSettingsUI.call(null);
|
|
|
|
}
|
|
|
|
},getType:function(){
|
|
|
|
return "dojo.storage.browser.FlashStorageProvider";
|
|
|
|
},_flashLoaded:function(){
|
|
|
|
this._initialized=true;
|
|
|
|
dojo.storage.manager.loaded();
|
|
|
|
},_onStatus:function(_5c,key){
|
|
|
|
var ds=dojo.storage;
|
|
|
|
var dfo=dojo.flash.obj;
|
|
|
|
if(_5c==ds.PENDING){
|
|
|
|
dfo.center();
|
|
|
|
dfo.setVisible(true);
|
|
|
|
}else{
|
|
|
|
dfo.setVisible(false);
|
|
|
|
}
|
|
|
|
if((!dj_undef("_statusHandler",ds))&&(ds._statusHandler!=null)){
|
|
|
|
ds._statusHandler.call(null,_5c,key);
|
|
|
|
}
|
|
|
|
}});
|
|
|
|
dojo.storage.manager.register("dojo.storage.browser.FileStorageProvider",new dojo.storage.browser.FileStorageProvider());
|
|
|
|
dojo.storage.manager.register("dojo.storage.browser.WhatWGStorageProvider",new dojo.storage.browser.WhatWGStorageProvider());
|
|
|
|
dojo.storage.manager.register("dojo.storage.browser.FlashStorageProvider",new dojo.storage.browser.FlashStorageProvider());
|
|
|
|
dojo.storage.manager.initialize();
|