001: /*
002: * MyGWT Widget Library
003: * Copyright(c) 2007, MyGWT.
004: * licensing@mygwt.net
005: *
006: * http://mygwt.net/license
007: */
008: package net.mygwt.ui.client.state;
009:
010: import java.util.Date;
011:
012: /**
013: * This is the global state manager. In order for this class to be useful, it
014: * must be initialized with a provider when your application initializes. By
015: * default, MyGWT initializes the StateManager with a CookieProvider. The
016: * provider can be replaced as needed.
017: *
018: * <dl>
019: * <dt>Events:</dt>
020: * <dd><b>StateChange</b> : (source this, name, value) <br>
021: * <div>Fires after a state change.</div>
022: * <ul>
023: * <li>source : the state manager</li>
024: * <li>name : the key name</li>
025: * <li>value : the value or <code>null</code> if cleared</li>
026: * </ul>
027: * </dd>
028: * </dl>
029: */
030: public class StateManager {
031:
032: private static Provider provider;
033:
034: /**
035: * Returns the current value for a key.
036: *
037: * @param name the key name
038: * @return the value
039: */
040: public static Object get(String name) {
041: return provider.get(name);
042: }
043:
044: /**
045: * Returns the current value for a key.
046: *
047: * @param name the key name
048: * @return the value
049: */
050: public static Date getDate(String name) {
051: return provider.getDate(name);
052: }
053:
054: /**
055: * Returns the current value for a key.
056: *
057: * @param name the key name
058: * @return the value
059: */
060: public static int getInteger(String name) {
061: return provider.getInteger(name);
062: }
063:
064: /**
065: * Returns the manager's state provider.
066: *
067: * @return the provider
068: */
069: public static Provider getProvider() {
070: return provider;
071: }
072:
073: /**
074: * Returns the current value for a key.
075: *
076: * @param name the key name
077: * @return the value
078: */
079: public static String getString(String name) {
080: return provider.getString(name);
081: }
082:
083: /**
084: * Sets a key.
085: *
086: * @param name the key name
087: * @param value the value
088: */
089: public static void set(String name, Object value) {
090: provider.set(name, value);
091: }
092:
093: /**
094: * Sets the manager's state provider.
095: *
096: * @param stateProvider the provider
097: */
098: public static void setProvider(Provider stateProvider) {
099: provider = stateProvider;
100: }
101:
102: }
|