Clear Up
SharpKit Reference

StoreManager Class

Contains a collection of all stores that are created that have an identifier. An identifier can be assigned by setting the storeId property. When a store is in the StoreManager, it can be referred to via it's identifier:

  
    Ext.create('Ext.data.Store', {
            model: 'SomeModel',
            storeId: 'myStore'
            });
            var store = Ext.data.StoreManager.lookup('myStore');
            

Also note that the lookup method is aliased to Ext.getStore for convenience.

If a store is registered with the StoreManager, you can also refer to the store by it's identifier when registering it with any Component that consumes data from a store:

  
    Ext.create('Ext.data.Store', {
            model: 'SomeModel',
            storeId: 'myStore'
            });
            Ext.create('Ext.view.View', {
            store: 'myStore',
            // other configuration here
            });
            

Namespace: Ext.data

Constructors

Methods

Name Description
add(object, object) Adds an item to the collection. Fires the add event when complete.
addAll(object) Adds all elements of an Array or an Object to the collection.
addEvents(object) Adds the specified events to the list of events which this Observable may fire.
addListener(object, Delegate, object, object) Appends an event handler to this object. For example:
myGridPanel.on("mouseover", this.onMouseOver, this);
            
The method also allows for a single argument to be passed which is a config object containing properties which specify multiple events. For example:
myGridPanel.on({
            cellClick: this.onCellClick,
            mouseover: this.onMouseOver,
            mouseout: this.onMouseOut,
            scope: this // Important. Ensure "this" is correct during handler execution
            });
            
One can also specify options for each event handler separately:
myGridPanel.on({
            cellClick: {fn: this.onCellClick, scope: this, single: true},
            mouseover: {fn: panel.onMouseOver, scope: panel}
            });
            
Names of methods in a specified scope may also be used. Note that scope MUST be specified to use this option:
myGridPanel.on({
            cellClick: {fn: 'onCellClick', scope: this, single: true},
            mouseover: {fn: 'onMouseOver', scope: panel}
            });
            
addManagedListener(object, object, Delegate, object, object) Adds listeners to any Observable object (or Ext.Element) which are automatically removed when this Component is destroyed.
callOverridden(object) Call the original method that was previously overridden with override
  Ext.define('My.Cat', {
            constructor: function() {
            alert("I'm a cat!");
            }
            });
            My.Cat.override({
            constructor: function() {
            alert("I'm going to be a cat!");
            this.callOverridden();
            alert("Meeeeoooowwww");
            }
            });
            var kitty = new My.Cat(); // alerts "I'm going to be a cat!"
            // alerts "I'm a cat!"
            // alerts "Meeeeoooowwww"
            

This method has been deprecated

as of 4.1. Use callParent instead.

callParent(object) Call the "parent" method of the current method. That is the method previously overridden by derivation or by an override (see Ext.define).
  Ext.define('My.Base', {
            constructor: function (x) {
            this.x = x;
            },
            statics: {
            method: function (x) {
            return x;
            }
            }
            });
            Ext.define('My.Derived', {
            extend: 'My.Base',
            constructor: function () {
            this.callParent([21]);
            }
            });
            var obj = new My.Derived();
            alert(obj.x);  // alerts 21
            
This can be used with an override as follows:
  Ext.define('My.DerivedOverride', {
            override: 'My.Derived',
            constructor: function (x) {
            this.callParent([x*2]); // calls original My.Derived constructor
            }
            });
            var obj = new My.Derived();
            alert(obj.x);  // now alerts 42
            
This also works with static methods.
  Ext.define('My.Derived2', {
            extend: 'My.Base',
            statics: {
            method: function (x) {
            return this.callParent([x*2]); // calls My.Base.method
            }
            }
            });
            alert(My.Base.method(10);     // alerts 10
            alert(My.Derived2.method(10); // alerts 20
            
Lastly, it also works with overridden static methods.
  Ext.define('My.Derived2Override', {
            override: 'My.Derived2',
            statics: {
            method: function (x) {
            return this.callParent([x*2]); // calls My.Derived2.method
            }
            }
            });
            alert(My.Derived2.method(10); // now alerts 40
            
clear() Removes all items from the collection. Fires the clear event when complete.
clearListeners() Removes all listeners for this object including the managed listeners
clearManagedListeners() Removes all managed listeners for this object.
clone() Creates a shallow copy of this collection
collect(JsString, object, object) Collects unique values of a particular property in this MixedCollection
contains(object) Returns true if the collection contains the passed Object as an item.
containsKey(JsString) Returns true if the collection contains the passed Object as a key.
each(Delegate, object) Executes the specified function once for every item in the collection. The function should return a boolean value. Returning false from the function will stop the iteration.
eachKey(Delegate, object) Executes the specified function once for every key in the collection, passing each key, and its associated item as the first two parameters.
enableBubble(object) Enables events fired by this Observable to bubble up an owner hierarchy by calling this.getBubbleTarget() if present. There is no implementation in the Observable base class. This is commonly used by Ext.Components to bubble events to owner Containers. See Ext.Component.getBubbleTarget. The default implementation in Ext.Component returns the Component's immediate owner. But if a known target is required, this can be overridden to access the required target more quickly. Example:
  Ext.override(Ext.form.field.Base, {
            //  Add functionality to Field's initComponent to enable the change event to bubble
            initComponent : Ext.Function.createSequence(Ext.form.field.Base.prototype.initComponent, function() {
            this.enableBubble('change');
            }),
            //  We know that we want Field's events to bubble directly to the FormPanel.
            getBubbleTarget : function() {
            if (!this.formPanel) {
            this.formPanel = this.findParentByType('form');
            }
            return this.formPanel;
            }
            });
            var myForm = new Ext.formPanel({
            title: 'User Details',
            items: [{
            ...
            }],
            listeners: {
            change: function() {
            // Title goes red if form has been modified.
            myForm.header.setStyle('color', 'red');
            }
            }
            });
            
filter(object, object, object, object) Filters the objects in this collection by a set of Filters, or by a single property/value pair with optional parameters for substring matching and case sensitivity. See Filter for an example of using Filter objects (preferred). Alternatively, MixedCollection can be easily filtered by property like this:
//create a simple store with a few people defined
            var people = new Ext.util.MixedCollection();
            people.addAll([
            {id: 1, age: 25, name: 'Ed'},
            {id: 2, age: 24, name: 'Tommy'},
            {id: 3, age: 24, name: 'Arne'},
            {id: 4, age: 26, name: 'Aaron'}
            ]);
            //a new MixedCollection containing only the items where age == 24
            var middleAged = people.filter('age', 24);
            
filterBy(Delegate, object) Filter by a function. Returns a new collection that has been filtered. The passed function will be called with each object in the collection. If the function returns true, the value is included otherwise it is filtered.
findBy(Delegate, object) Returns the first item in the collection which elicits a true return value from the passed selection function.
findIndex(JsString, object, object, object, object) Finds the index of the first matching object in this collection by a specific property/value.
findIndexBy(Delegate, object, object) Find the index of the first matching object in this collection by a function. If the function returns true it is considered a match.
findInsertionIndex(object, object) Calculates the insertion index of the new item based upon the comparison function passed, or the current sort order.
fireEvent(JsString, Object[]) Fires the specified event with the passed parameters (minus the event name, plus the options object passed to addListener). An event may be set to bubble up an Observable parent hierarchy (See Ext.Component.getBubbleTarget) by calling enableBubble.
first() Returns the first item in the collection.
generateComparator() Returns a comparator function which compares two items and returns -1, 0, or 1 depending on the currently defined set of sorters. If there are no sorters defined, it returns a function which returns 0 meaning that no sorting will occur.
get(object) Returns the item associated with the passed key OR index. Key has priority over index. This is the equivalent of calling getByKey first, then if nothing matched calling getAt.
getAt(JsNumber) Returns the item at the specified index.
getByKey(object) Returns the item associated with the passed key.
getCount() Returns the number of items in the collection.
getFirstSorter() Gets the first sorter from the sorters collection, excluding any groupers that may be in place
getInitialConfig(object) Returns the initial configuration passed to constructor when instantiating this class.
getKey(object) MixedCollection has a generic way to fetch keys if you implement getKey. The default implementation simply returns item.id but you can provide your own implementation to return a different value as in the following examples:
// normal way
            var mc = new Ext.util.MixedCollection();
            mc.add(someEl.dom.id, someEl);
            mc.add(otherEl.dom.id, otherEl);
            //and so on
            // using getKey
            var mc = new Ext.util.MixedCollection();
            mc.getKey = function(el){
            return el.dom.id;
            };
            mc.add(someEl);
            mc.add(otherEl);
            // or via the constructor
            var mc = new Ext.util.MixedCollection(false, function(el){
            return el.dom.id;
            });
            mc.add(someEl);
            mc.add(otherEl);
            
getRange(object, object) Returns a range of items in this collection
hasListener(JsString) Checks to see if this object has any listeners for a specified event, or whether the event bubbles. The answer indicates whether the event needs firing or not.
indexOf(object) Returns index within the collection of the passed Object.
indexOfKey(JsString) Returns index within the collection of the passed key.
initConfig(object) Initialize configuration for this class. a typical example:
  Ext.define('My.awesome.Class', {
            // The default config
            config: {
            name: 'Awesome',
            isAwesome: true
            },
            constructor: function(config) {
            this.initConfig(config);
            }
            });
            var awesome = new My.awesome.Class({
            name: 'Super Awesome'
            });
            alert(awesome.getName()); // 'Super Awesome'
            
initSortable() Performs initialization of this mixin. Component classes using this mixin should call this method during their own initialization.
insert(JsNumber, JsString, object) Inserts an item at the specified index in the collection. Fires the add event when complete.
last() Returns the last item in the collection.
lookup(object) Gets a registered Store by id
mon(object, object, Delegate, object, object) Shorthand for addManagedListener. Adds listeners to any Observable object (or Ext.Element) which are automatically removed when this Component is destroyed.
mun(object, object, Delegate, object) Shorthand for removeManagedListener. Removes listeners that were added by the mon method.
on(object, Delegate, object, object) Shorthand for addListener. Appends an event handler to this object. For example:
myGridPanel.on("mouseover", this.onMouseOver, this);
            
The method also allows for a single argument to be passed which is a config object containing properties which specify multiple events. For example:
myGridPanel.on({
            cellClick: this.onCellClick,
            mouseover: this.onMouseOver,
            mouseout: this.onMouseOut,
            scope: this // Important. Ensure "this" is correct during handler execution
            });
            
One can also specify options for each event handler separately:
myGridPanel.on({
            cellClick: {fn: this.onCellClick, scope: this, single: true},
            mouseover: {fn: panel.onMouseOver, scope: panel}
            });
            
Names of methods in a specified scope may also be used. Note that scope MUST be specified to use this option:
myGridPanel.on({
            cellClick: {fn: 'onCellClick', scope: this, single: true},
            mouseover: {fn: 'onMouseOver', scope: panel}
            });
            
register(Store) Registers one or more Stores with the StoreManager. You do not normally need to register stores manually. Any store initialized with a Ext.data.Store.storeId will be auto-registered.
relayEvents(object, JsArray<T>, object) Relays selected events from the specified Observable as if the events were fired by this. For example if you are extending Grid, you might decide to forward some events from store. So you can do this inside your initComponent:
this.relayEvents(this.getStore(), ['load']);
            
The grid instance will then have an observable 'load' event which will be passed the parameters of the store's load event and any function fired with the grid's load event would have access to the grid using the this keyword.
remove(object) Remove an item from the collection.
removeAll(JsArray) Remove all items in the passed array from the collection.
removeAt(JsNumber) Remove an item from a specified index in the collection. Fires the remove event when complete.
removeAtKey(JsString) Removed an item associated with the passed key fom the collection.
removeListener(JsString, Delegate, object) Removes an event handler.
removeManagedListener(object, object, Delegate, object) Removes listeners that were added by the mon method.
reorder(object) Reorders each of the items based on a mapping from old index to new index. Internally this just translates into a sort. The 'sort' event is fired whenever reordering has occured.
replace(JsString, object) Replaces an item in the collection. Fires the replace event when complete.
resumeEvents() Resumes firing events (see suspendEvents). If events were suspended using the queueSuspended parameter, then all events fired during event suspension will be sent to any listeners now.
sort(object, object) Sorts the data in the Store by one or more of its properties. Example usage:
//sort by a single field
            myStore.sort('myField', 'DESC');
            //sorting by multiple fields
            myStore.sort([
            {
            property : 'age',
            direction: 'ASC'
            },
            {
            property : 'name',
            direction: 'DESC'
            }
            ]);
            
Internally, Store converts the passed arguments into an array of Ext.util.Sorter instances, and delegates the actual sorting to its internal Ext.util.MixedCollection. When passing a single string argument to sort, Store maintains a ASC/DESC toggler per field, so this code:
store.sort('myField');
            store.sort('myField');
            
Is equivalent to this code, because Store handles the toggling automatically:
store.sort('myField', 'ASC');
            store.sort('myField', 'DESC');
            
sortBy(Delegate) Sorts the collection by a single sorter function
sortByKey(object, Delegate) Sorts this collection by keys.
statics() Get the reference to the class from which this object was instantiated. Note that unlike self, this.statics() is scope-independent and it always returns the class from which it was called, regardless of what this points to during run-time
  Ext.define('My.Cat', {
            statics: {
            totalCreated: 0,
            speciesName: 'Cat' // My.Cat.speciesName = 'Cat'
            },
            constructor: function() {
            var statics = this.statics();
            alert(statics.speciesName);     // always equals to 'Cat' no matter what 'this' refers to
            // equivalent to: My.Cat.speciesName
            alert(this.self.speciesName);   // dependent on 'this'
            statics.totalCreated++;
            },
            clone: function() {
            var cloned = new this.self;                      // dependent on 'this'
            cloned.groupName = this.statics().speciesName;   // equivalent to: My.Cat.speciesName
            return cloned;
            }
            });
            Ext.define('My.SnowLeopard', {
            extend: 'My.Cat',
            statics: {
            speciesName: 'Snow Leopard'     // My.SnowLeopard.speciesName = 'Snow Leopard'
            },
            constructor: function() {
            this.callParent();
            }
            });
            var cat = new My.Cat();                 // alerts 'Cat', then alerts 'Cat'
            var snowLeopard = new My.SnowLeopard(); // alerts 'Cat', then alerts 'Snow Leopard'
            var clone = snowLeopard.clone();
            alert(Ext.getClassName(clone));         // alerts 'My.SnowLeopard'
            alert(clone.groupName);                 // alerts 'Cat'
            alert(My.Cat.totalCreated);             // alerts 3
            
sum(JsString, object, object, object) Collects all of the values of the given property and returns their sum
suspendEvents(bool) Suspends the firing of all events. (see resumeEvents)
un(JsString, Delegate, object) Shorthand for removeListener. Removes an event handler.
unregister(object) Unregisters one or more Stores with the StoreManager

Fields

Name Description
allowFunctions Specify true if the addAll function should add function references to the collection. Defaults to false. Defaults to: false
listeners Overrides: Ext.util.Observable.listeners

Properties

Name Description
defaultSortDirection The default sort direction to use if one is not specified. Defaults to: "ASC"
hasListeners This object holds a key for any event that has a listener. The listener may be set directly on the instance, or on its class or a super class (via observe) or on the MVC EventBus. The values of this object are truthy (a non-zero number) and falsy (0 or undefined). They do not represent an exact count of listeners. The value for an event is truthy if the event must be fired and is falsy if there is no need to fire the event. The intended use of this property is to avoid the expense of fireEvent calls when there are no listeners. This can be particularly helpful when one would otherwise have to call fireEvent hundreds or thousands of times. It is used like this:
if (this.hasListeners.foo) {
           this.fireEvent('foo', this, arg1);
           }
            
isMixedCollection true in this class to identify an object as an instantiated MixedCollection, or subclass thereof. Defaults to: true
isObservable true in this class to identify an object as an instantiated Observable, or subclass thereof. Defaults to: true
isSortable true in this class to identify an object as an instantiated Sortable, or subclass thereof. Defaults to: true
sorters The collection of Sorters currently applied to this Store
sortRoot The property in each item that contains the data to sort.
© Copyright 2005-2011 SharpKit. All rights reserved.