Improve output: distinguish between failed assertions (failures) and unexpected exceptions (errors), and print a filtered stack trace for any exception.
This commit is contained in:
commit
4f2e303079
1839 changed files with 235630 additions and 0 deletions
199
webapp/web/src/storage/browser.js
Normal file
199
webapp/web/src/storage/browser.js
Normal file
|
@ -0,0 +1,199 @@
|
|||
/*
|
||||
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.provide("dojo.storage.browser.FlashStorageProvider");
|
||||
|
||||
dojo.require("dojo.storage");
|
||||
dojo.require("dojo.flash");
|
||||
dojo.require("dojo.json");
|
||||
dojo.require("dojo.uri.*");
|
||||
|
||||
/**
|
||||
Storage provider that uses features in Flash to achieve permanent storage.
|
||||
|
||||
@author Alex Russel, alex@dojotoolkit.org
|
||||
@author Brad Neuberg, bkn3@columbia.edu
|
||||
*/
|
||||
dojo.storage.browser.FlashStorageProvider = function(){
|
||||
}
|
||||
|
||||
dojo.inherits(dojo.storage.browser.FlashStorageProvider, dojo.storage);
|
||||
|
||||
// instance methods and properties
|
||||
dojo.lang.extend(dojo.storage.browser.FlashStorageProvider, {
|
||||
namespace: "default",
|
||||
initialized: false,
|
||||
_available: null,
|
||||
_statusHandler: null,
|
||||
|
||||
initialize: function(){
|
||||
if(djConfig["disableFlashStorage"] == true){
|
||||
return;
|
||||
}
|
||||
|
||||
// initialize our Flash
|
||||
var loadedListener = function(){
|
||||
dojo.storage._flashLoaded();
|
||||
}
|
||||
dojo.flash.addLoadedListener(loadedListener);
|
||||
var swfloc6 = dojo.uri.dojoUri("Storage_version6.swf").toString();
|
||||
var swfloc8 = dojo.uri.dojoUri("Storage_version8.swf").toString();
|
||||
dojo.flash.setSwf({flash6: swfloc6, flash8: swfloc8, visible: false});
|
||||
},
|
||||
|
||||
isAvailable: function(){
|
||||
if(djConfig["disableFlashStorage"] == true){
|
||||
this._available = false;
|
||||
}
|
||||
|
||||
return this._available;
|
||||
},
|
||||
|
||||
setNamespace: function(namespace){
|
||||
this.namespace = namespace;
|
||||
},
|
||||
|
||||
put: function(key, value, resultsHandler){
|
||||
if(this.isValidKey(key) == false){
|
||||
dojo.raise("Invalid key given: " + key);
|
||||
}
|
||||
|
||||
this._statusHandler = resultsHandler;
|
||||
|
||||
// serialize the value
|
||||
// Handle strings differently so they have better performance
|
||||
if(dojo.lang.isString(value)){
|
||||
value = "string:" + value;
|
||||
}else{
|
||||
value = dojo.json.serialize(value);
|
||||
}
|
||||
|
||||
dojo.flash.comm.put(key, value, this.namespace);
|
||||
},
|
||||
|
||||
get: function(key){
|
||||
if(this.isValidKey(key) == false){
|
||||
dojo.raise("Invalid key given: " + key);
|
||||
}
|
||||
|
||||
var results = dojo.flash.comm.get(key, this.namespace);
|
||||
|
||||
if(results == ""){
|
||||
return null;
|
||||
}
|
||||
|
||||
// destringify the content back into a
|
||||
// real JavaScript object
|
||||
// Handle strings differently so they have better performance
|
||||
if(!dojo.lang.isUndefined(results) && results != null
|
||||
&& /^string:/.test(results)){
|
||||
results = results.substring("string:".length);
|
||||
}else{
|
||||
results = dojo.json.evalJson(results);
|
||||
}
|
||||
|
||||
return results;
|
||||
},
|
||||
|
||||
getKeys: function(){
|
||||
var results = dojo.flash.comm.getKeys(this.namespace);
|
||||
|
||||
if(results == ""){
|
||||
return new Array();
|
||||
}
|
||||
|
||||
// the results are returned comma seperated; split them
|
||||
results = results.split(",");
|
||||
|
||||
return results;
|
||||
},
|
||||
|
||||
clear: function(){
|
||||
dojo.flash.comm.clear(this.namespace);
|
||||
},
|
||||
|
||||
remove: function(key){
|
||||
},
|
||||
|
||||
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(){
|
||||
// hide the dialog
|
||||
dojo.flash.obj.setVisible(false);
|
||||
|
||||
// call anyone who wants to know the dialog is
|
||||
// now hidden
|
||||
if(dojo.storage.onHideSettingsUI != null &&
|
||||
!dojo.lang.isUndefined(dojo.storage.onHideSettingsUI)){
|
||||
dojo.storage.onHideSettingsUI.call(null);
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
The provider name as a string, such as
|
||||
"dojo.storage.FlashStorageProvider".
|
||||
*/
|
||||
getType: function(){
|
||||
return "dojo.storage.FlashStorageProvider";
|
||||
},
|
||||
|
||||
/** Called when the Flash is finished loading. */
|
||||
_flashLoaded: function(){
|
||||
this.initialized = true;
|
||||
|
||||
// indicate that this storage provider is now loaded
|
||||
dojo.storage.manager.loaded();
|
||||
},
|
||||
|
||||
/**
|
||||
Called if the storage system needs to tell us about the status
|
||||
of a put() request.
|
||||
*/
|
||||
_onStatus: function(statusResult, key){
|
||||
//dojo.debug("_onStatus, statusResult="+statusResult+", key="+key);
|
||||
if(statusResult == dojo.storage.PENDING){
|
||||
dojo.flash.obj.center();
|
||||
dojo.flash.obj.setVisible(true);
|
||||
}else{
|
||||
dojo.flash.obj.setVisible(false);
|
||||
}
|
||||
|
||||
if(!dojo.lang.isUndefined(dojo.storage._statusHandler)
|
||||
&& dojo.storage._statusHandler != null){
|
||||
dojo.storage._statusHandler.call(null, statusResult, key);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// register the existence of our storage providers
|
||||
dojo.storage.manager.register("dojo.storage.browser.FlashStorageProvider",
|
||||
new dojo.storage.browser.FlashStorageProvider());
|
||||
|
||||
// now that we are loaded and registered tell the storage manager to initialize
|
||||
// itself
|
||||
dojo.storage.manager.initialize();
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue