Upgrade to ExtJS 3.0.0 - Released 07/06/2009
[extjs.git] / src / state / StateManager.js
diff --git a/src/state/StateManager.js b/src/state/StateManager.js
new file mode 100644 (file)
index 0000000..c88cf8f
--- /dev/null
@@ -0,0 +1,69 @@
+/*!
+ * Ext JS Library 3.0.0
+ * Copyright(c) 2006-2009 Ext JS, LLC
+ * licensing@extjs.com
+ * http://www.extjs.com/license
+ */
+/**\r
+ * @class Ext.state.Manager\r
+ * This is the global state manager. By default all components that are "state aware" check this class\r
+ * for state information if you don't pass them a custom state provider. In order for this class\r
+ * to be useful, it must be initialized with a provider when your application initializes. Example usage:\r
+ <pre><code>\r
+// in your initialization function\r
+init : function(){\r
+   Ext.state.Manager.setProvider(new Ext.state.CookieProvider());\r
+   var win = new Window(...);\r
+   win.restoreState();\r
+}\r
+ </code></pre>\r
+ * @singleton\r
+ */\r
+Ext.state.Manager = function(){\r
+    var provider = new Ext.state.Provider();\r
+\r
+    return {\r
+        /**\r
+         * Configures the default state provider for your application\r
+         * @param {Provider} stateProvider The state provider to set\r
+         */\r
+        setProvider : function(stateProvider){\r
+            provider = stateProvider;\r
+        },\r
+\r
+        /**\r
+         * Returns the current value for a key\r
+         * @param {String} name The key name\r
+         * @param {Mixed} defaultValue The default value to return if the key lookup does not match\r
+         * @return {Mixed} The state data\r
+         */\r
+        get : function(key, defaultValue){\r
+            return provider.get(key, defaultValue);\r
+        },\r
+\r
+        /**\r
+         * Sets the value for a key\r
+         * @param {String} name The key name\r
+         * @param {Mixed} value The state data\r
+         */\r
+         set : function(key, value){\r
+            provider.set(key, value);\r
+        },\r
+\r
+        /**\r
+         * Clears a value from the state\r
+         * @param {String} name The key name\r
+         */\r
+        clear : function(key){\r
+            provider.clear(key);\r
+        },\r
+\r
+        /**\r
+         * Gets the currently configured state provider\r
+         * @return {Provider} The state provider\r
+         */\r
+        getProvider : function(){\r
+            return provider;\r
+        }\r
+    };\r
+}();
\ No newline at end of file