| /* |
| Copyright (c) 2004-2009, The Dojo Foundation All Rights Reserved. |
| Available via Academic Free License >= 2.1 OR the modified BSD license. |
| see: http://dojotoolkit.org/license for details |
| */ |
| |
| |
| if(!dojo._hasResource["dojox.storage.FlashStorageProvider"]){ |
| dojo._hasResource["dojox.storage.FlashStorageProvider"]=true; |
| dojo.provide("dojox.storage.FlashStorageProvider"); |
| dojo.require("dojox.flash"); |
| dojo.require("dojox.storage.manager"); |
| dojo.require("dojox.storage.Provider"); |
| dojo.declare("dojox.storage.FlashStorageProvider",dojox.storage.Provider,{initialized:false,_available:null,_statusHandler:null,_flashReady:false,_pageReady:false,initialize:function(){ |
| if(dojo.config["disableFlashStorage"]==true){ |
| return; |
| } |
| dojox.flash.addLoadedListener(dojo.hitch(this,function(){ |
| this._flashReady=true; |
| if(this._flashReady&&this._pageReady){ |
| this._loaded(); |
| } |
| })); |
| var _1=dojo.moduleUrl("dojox","storage/Storage.swf").toString(); |
| dojox.flash.setSwf(_1,false); |
| dojo.connect(dojo,"loaded",this,function(){ |
| this._pageReady=true; |
| if(this._flashReady&&this._pageReady){ |
| this._loaded(); |
| } |
| }); |
| },setFlushDelay:function(_2){ |
| if(_2===null||typeof _2==="undefined"||isNaN(_2)){ |
| throw new Error("Invalid argunment: "+_2); |
| } |
| dojox.flash.comm.setFlushDelay(String(_2)); |
| },getFlushDelay:function(){ |
| return Number(dojox.flash.comm.getFlushDelay()); |
| },flush:function(_3){ |
| if(_3==null||typeof _3=="undefined"){ |
| _3=dojox.storage.DEFAULT_NAMESPACE; |
| } |
| dojox.flash.comm.flush(_3); |
| },isAvailable:function(){ |
| return (this._available=!dojo.config["disableFlashStorage"]); |
| },put:function(_4,_5,_6,_7){ |
| if(!this.isValidKey(_4)){ |
| throw new Error("Invalid key given: "+_4); |
| } |
| if(!_7){ |
| _7=dojox.storage.DEFAULT_NAMESPACE; |
| } |
| if(!this.isValidKey(_7)){ |
| throw new Error("Invalid namespace given: "+_7); |
| } |
| this._statusHandler=_6; |
| if(dojo.isString(_5)){ |
| _5="string:"+_5; |
| }else{ |
| _5=dojo.toJson(_5); |
| } |
| dojox.flash.comm.put(_4,_5,_7); |
| },putMultiple:function(_8,_9,_a,_b){ |
| if(!this.isValidKeyArray(_8)||!_9 instanceof Array||_8.length!=_9.length){ |
| throw new Error("Invalid arguments: keys = ["+_8+"], values = ["+_9+"]"); |
| } |
| if(!_b){ |
| _b=dojox.storage.DEFAULT_NAMESPACE; |
| } |
| if(!this.isValidKey(_b)){ |
| throw new Error("Invalid namespace given: "+_b); |
| } |
| this._statusHandler=_a; |
| var _c=_8.join(","); |
| var _d=[]; |
| for(var i=0;i<_9.length;i++){ |
| if(dojo.isString(_9[i])){ |
| _9[i]="string:"+_9[i]; |
| }else{ |
| _9[i]=dojo.toJson(_9[i]); |
| } |
| _d[i]=_9[i].length; |
| } |
| var _e=_9.join(""); |
| var _f=_d.join(","); |
| dojox.flash.comm.putMultiple(_c,_e,_f,_b); |
| },get:function(key,_10){ |
| if(!this.isValidKey(key)){ |
| throw new Error("Invalid key given: "+key); |
| } |
| if(!_10){ |
| _10=dojox.storage.DEFAULT_NAMESPACE; |
| } |
| if(!this.isValidKey(_10)){ |
| throw new Error("Invalid namespace given: "+_10); |
| } |
| var _11=dojox.flash.comm.get(key,_10); |
| if(_11==""){ |
| return null; |
| } |
| return this._destringify(_11); |
| },getMultiple:function(_12,_13){ |
| if(!this.isValidKeyArray(_12)){ |
| throw new ("Invalid key array given: "+_12); |
| } |
| if(!_13){ |
| _13=dojox.storage.DEFAULT_NAMESPACE; |
| } |
| if(!this.isValidKey(_13)){ |
| throw new Error("Invalid namespace given: "+_13); |
| } |
| var _14=_12.join(","); |
| var _15=dojox.flash.comm.getMultiple(_14,_13); |
| var _16=eval("("+_15+")"); |
| for(var i=0;i<_16.length;i++){ |
| _16[i]=(_16[i]=="")?null:this._destringify(_16[i]); |
| } |
| return _16; |
| },_destringify:function(_17){ |
| if(dojo.isString(_17)&&(/^string:/.test(_17))){ |
| _17=_17.substring("string:".length); |
| }else{ |
| _17=dojo.fromJson(_17); |
| } |
| return _17; |
| },getKeys:function(_18){ |
| if(!_18){ |
| _18=dojox.storage.DEFAULT_NAMESPACE; |
| } |
| if(!this.isValidKey(_18)){ |
| throw new Error("Invalid namespace given: "+_18); |
| } |
| var _19=dojox.flash.comm.getKeys(_18); |
| if(_19==null||_19=="null"){ |
| _19=""; |
| } |
| _19=_19.split(","); |
| _19.sort(); |
| return _19; |
| },getNamespaces:function(){ |
| var _1a=dojox.flash.comm.getNamespaces(); |
| if(_1a==null||_1a=="null"){ |
| _1a=dojox.storage.DEFAULT_NAMESPACE; |
| } |
| _1a=_1a.split(","); |
| _1a.sort(); |
| return _1a; |
| },clear:function(_1b){ |
| if(!_1b){ |
| _1b=dojox.storage.DEFAULT_NAMESPACE; |
| } |
| if(!this.isValidKey(_1b)){ |
| throw new Error("Invalid namespace given: "+_1b); |
| } |
| dojox.flash.comm.clear(_1b); |
| },remove:function(key,_1c){ |
| if(!_1c){ |
| _1c=dojox.storage.DEFAULT_NAMESPACE; |
| } |
| if(!this.isValidKey(_1c)){ |
| throw new Error("Invalid namespace given: "+_1c); |
| } |
| dojox.flash.comm.remove(key,_1c); |
| },removeMultiple:function(_1d,_1e){ |
| if(!this.isValidKeyArray(_1d)){ |
| dojo.raise("Invalid key array given: "+_1d); |
| } |
| if(!_1e){ |
| _1e=dojox.storage.DEFAULT_NAMESPACE; |
| } |
| if(!this.isValidKey(_1e)){ |
| throw new Error("Invalid namespace given: "+_1e); |
| } |
| var _1f=_1d.join(","); |
| dojox.flash.comm.removeMultiple(_1f,_1e); |
| },isPermanent:function(){ |
| return true; |
| },getMaximumSize:function(){ |
| return dojox.storage.SIZE_NO_LIMIT; |
| },hasSettingsUI:function(){ |
| return true; |
| },showSettingsUI:function(){ |
| dojox.flash.comm.showSettings(); |
| dojox.flash.obj.setVisible(true); |
| dojox.flash.obj.center(); |
| },hideSettingsUI:function(){ |
| dojox.flash.obj.setVisible(false); |
| if(dojo.isFunction(dojox.storage.onHideSettingsUI)){ |
| dojox.storage.onHideSettingsUI.call(null); |
| } |
| },getResourceList:function(){ |
| return []; |
| },_loaded:function(){ |
| this._allNamespaces=this.getNamespaces(); |
| this.initialized=true; |
| dojox.storage.manager.loaded(); |
| },_onStatus:function(_20,key,_21){ |
| var ds=dojox.storage; |
| var dfo=dojox.flash.obj; |
| if(_20==ds.PENDING){ |
| dfo.center(); |
| dfo.setVisible(true); |
| }else{ |
| dfo.setVisible(false); |
| } |
| if(ds._statusHandler){ |
| ds._statusHandler.call(null,_20,key,null,_21); |
| } |
| }}); |
| dojox.storage.manager.register("dojox.storage.FlashStorageProvider",new dojox.storage.FlashStorageProvider()); |
| } |