X-Git-Url: http://git.ithinksw.org/extjs.git/blobdiff_plain/c930e9176a5a85509c5b0230e2bff5c22a591432..c8256059947f3aa8f5b0a9a2acf55e2142bb4742:/docs/source/Provider.html?ds=sidebyside diff --git a/docs/source/Provider.html b/docs/source/Provider.html index d420c804..23898d93 100644 --- a/docs/source/Provider.html +++ b/docs/source/Provider.html @@ -1,131 +1,121 @@ - -
-/** - * @class Ext.state.Provider - * Abstract base class for state provider implementations. This class provides methods - * for encoding and decoding typed variables including dates and defines the - * Provider interface. + + + ++ \ No newline at end of fileThe source code + + + + +/*! + * Ext JS Library 3.2.1 + * Copyright(c) 2006-2010 Ext JS, Inc. + * licensing@extjs.com + * http://www.extjs.com/license */ -Ext.state.Provider = function(){ - /** - * @event statechange - * Fires when a state change occurs. - * @param {Provider} this This state provider - * @param {String} key The state key which was changed - * @param {String} value The encoded value for the state - */ - this.addEvents("statechange"); - this.state = {}; - Ext.state.Provider.superclass.constructor.call(this); -}; -Ext.extend(Ext.state.Provider, Ext.util.Observable, { - /** - * Returns the current value for a key - * @param {String} name The key name - * @param {Mixed} defaultValue A default value to return if the key's value is not found - * @return {Mixed} The state data +/** + * @class Ext.direct.Provider + * @extends Ext.util.Observable + *- +Ext.direct.Provider is an abstract class meant to be extended.
+ * + *For example ExtJs implements the following subclasses:
+ *+ * @abstract + */ +Ext.direct.Provider = Ext.extend(Ext.util.Observable, { + /** + * @cfg {String} id + * The unique id of the provider (defaults to an {@link Ext#id auto-assigned id}). + * You should assign an id if you need to be able to access the provider later and you do + * not have an object reference available, for example: + *+Provider +| ++---{@link Ext.direct.JsonProvider JsonProvider} + | + +---{@link Ext.direct.PollingProvider PollingProvider} + | + +---{@link Ext.direct.RemotingProvider RemotingProvider} + *
*/ - get : function(name, defaultValue){ - return typeof this.state[name] == "undefined" ? - defaultValue : this.state[name]; - }, + + /** + * @cfg {Number} priority + * Priority of the request. Lower is higher priority, 0 means "duplex" (always on). + * All Providers default to 1 except for PollingProvider which defaults to 3. + */ + priority: 1, - /** - * Clears a value from the state - * @param {String} name The key name - */ - clear : function(name){ - delete this.state[name]; - this.fireEvent("statechange", this, name, null); + /** + * @cfg {String} type + * Required, undefined by default. The type of provider specified + * to {@link Ext.Direct Ext.Direct}.{@link Ext.Direct#addProvider addProvider} to create a + * new Provider. Acceptable values by default are:+Ext.Direct.addProvider( + { + type: 'polling', + url: 'php/poll.php', + id: 'poll-provider' + } +); + +var p = {@link Ext.Direct Ext.Direct}.{@link Ext.Direct#getProvider getProvider}('poll-provider'); +p.disconnect(); + *
+ */ + + // private + constructor : function(config){ + Ext.apply(this, config); + this.addEvents( + /** + * @event connect + * Fires when the Provider connects to the server-side + * @param {Ext.direct.Provider} provider The {@link Ext.direct.Provider Provider}. + */ + 'connect', + /** + * @event disconnect + * Fires when the Provider disconnects from the server-side + * @param {Ext.direct.Provider} provider The {@link Ext.direct.Provider Provider}. + */ + 'disconnect', + /** + * @event data + * Fires when the Provider receives data from the server-side + * @param {Ext.direct.Provider} provider The {@link Ext.direct.Provider Provider}. + * @param {event} e The {@link Ext.Direct#eventTypes Ext.Direct.Event type} that occurred. + */ + 'data', + /** + * @event exception + * Fires when the Provider receives an exception from the server-side + */ + 'exception' + ); + Ext.direct.Provider.superclass.constructor.call(this, config); }, - /** - * Sets the value for a key - * @param {String} name The key name - * @param {Mixed} value The value to set + /** + * Returns whether or not the server-side is currently connected. + * Abstract method for subclasses to implement. */ - set : function(name, value){ - this.state[name] = value; - this.fireEvent("statechange", this, name, value); + isConnected: function(){ + return false; }, - /** - * Decodes a string previously encoded with {@link #encodeValue}. - * @param {String} value The value to decode - * @return {Mixed} The decoded value + /** + * Abstract methods for subclasses to implement. */ - decodeValue : function(cookie){ - var re = /^(a|n|d|b|s|o)\:(.*)$/; - var matches = re.exec(unescape(cookie)); - if(!matches || !matches[1]) return; // non state cookie - var type = matches[1]; - var v = matches[2]; - switch(type){ - case "n": - return parseFloat(v); - case "d": - return new Date(Date.parse(v)); - case "b": - return (v == "1"); - case "a": - var all = []; - var values = v.split("^"); - for(var i = 0, len = values.length; i < len; i++){ - all.push(this.decodeValue(values[i])); - } - return all; - case "o": - var all = {}; - var values = v.split("^"); - for(var i = 0, len = values.length; i < len; i++){ - var kv = values[i].split("="); - all[kv[0]] = this.decodeValue(kv[1]); - } - return all; - default: - return v; - } - }, - - /** - * Encodes a value including type information. Decode with {@link #decodeValue}. - * @param {Mixed} value The value to encode - * @return {String} The encoded value + connect: Ext.emptyFn, + + /** + * Abstract methods for subclasses to implement. */ - encodeValue : function(v){ - var enc; - if(typeof v == "number"){ - enc = "n:" + v; - }else if(typeof v == "boolean"){ - enc = "b:" + (v ? "1" : "0"); - }else if(Ext.isDate(v)){ - enc = "d:" + v.toGMTString(); - }else if(Ext.isArray(v)){ - var flat = ""; - for(var i = 0, len = v.length; i < len; i++){ - flat += this.encodeValue(v[i]); - if(i != len-1) flat += "^"; - } - enc = "a:" + flat; - }else if(typeof v == "object"){ - var flat = ""; - for(var key in v){ - if(typeof v[key] != "function" && v[key] !== undefined){ - flat += key + "=" + this.encodeValue(v[key]) + "^"; - } - } - enc = "o:" + flat.substring(0, flat.length-1); - }else{ - enc = "s:" + v; - } - return escape(enc); - } + disconnect: Ext.emptyFn }); -+ *
- polling : {@link Ext.direct.PollingProvider PollingProvider}
+ *- remoting : {@link Ext.direct.RemotingProvider RemotingProvider}
+ *