/**
* (c) 2000-2011 Carlos G�mez Rodr�guez, todos los derechos reservados / all rights reserved.
* Licencia en license.txt / License in license.txt
* File created: 26/07/2012 18:41:39
*/
package eu.irreality.age.swing.applet;
import java.applet.Applet;
import java.io.UnsupportedEncodingException;
import java.util.StringTokenizer;
import java.util.zip.DataFormatException;
import eu.irreality.age.util.compression.StringCompressor;
import netscape.javascript.JSException;
import netscape.javascript.JSObject;
/**
* @author carlos
*
*/
public class LocalStorageUtils
{
public static void saveData (Applet a , String name, String value)
{
try
{
JSObject win = JSObject.getWindow(a);
win.eval("localStorage.setItem('" + name + "', '" + value + "');");
}
catch (JSException ex)
{
System.out.println(ex.getMessage());
}
}
public static String loadData (Applet a , String name)
{
try
{
JSObject win = JSObject.getWindow(a);
String value = (String) win.eval("localStorage.getItem('" + name + "');");
System.out.println(value);
return value; //added by me.
}
catch (JSException ex)
{
System.out.println(ex.getMessage());
}
return null;
}
public static boolean isLocalStorageSupported ( Applet a )
{
try
{
JSObject win = JSObject.getWindow(a);
Boolean value = (Boolean) win.eval("(typeof(Storage)!=='undefined')");
return value.booleanValue(); //added by me.
}
catch (JSException ex)
{
System.out.println(ex.getMessage());
}
return false;
}
public static void saveCompressedData (Applet a , String name, String value, String encoding) throws UnsupportedEncodingException
{
String compressedValue = StringCompressor.compress(value, encoding);
saveData ( a , name , compressedValue );
}
public static String loadCompressedData (Applet a , String name, String encoding) throws UnsupportedEncodingException, DataFormatException
{
String compressedValue = loadData ( a , name );
if ( compressedValue == null ) return null;
return StringCompressor.decompress(compressedValue, encoding);
}
public static boolean saveAndValidateCompressedData (Applet a , String name, String value, String encoding) throws UnsupportedEncodingException, DataFormatException
{
String compressedValue = StringCompressor.compress(value, encoding);
saveData ( a , name , compressedValue );
String gottenValue = loadCompressedData ( a , name , encoding );
return ( value.equals(gottenValue) );
}
public static void eraseData (Applet a , String name) {
saveData(a , name, "");
}
}