X-Git-Url: http://git.ithinksw.org/extjs.git/blobdiff_plain/6746dc89c47ed01b165cc1152533605f97eb8e8d..f562e4c6e5fac7bcb445985b99acbea4d706e6f0:/docs/output/Ext.data.IdGenerator.js diff --git a/docs/output/Ext.data.IdGenerator.js b/docs/output/Ext.data.IdGenerator.js new file mode 100644 index 00000000..0f4cb496 --- /dev/null +++ b/docs/output/Ext.data.IdGenerator.js @@ -0,0 +1 @@ +Ext.data.JsonP.Ext_data_IdGenerator({"tagname":"class","html":"

Hierarchy

Ext.Base
Ext.data.IdGenerator

Files

This class is a base for all id generators. It also provides lookup of id generators by\ntheir id.

\n\n

Generally, id generators are used to generate a primary key for new model instances. There\nare different approaches to solving this problem, so this mechanism has both simple use\ncases and is open to custom implementations. A Ext.data.Model requests id generation\nusing the Ext.data.Model.idgen property.

\n\n

Identity, Type and Shared IdGenerators

\n\n

It is often desirable to share IdGenerators to ensure uniqueness or common configuration.\nThis is done by giving IdGenerator instances an id property by which they can be looked\nup using the get method. To configure two Model classes\nto share one sequential id generator, you simply\nassign them the same id:

\n\n
Ext.define('MyApp.data.MyModelA', {\n    extend: 'Ext.data.Model',\n    idgen: {\n        type: 'sequential',\n        id: 'foo'\n    }\n});\n\nExt.define('MyApp.data.MyModelB', {\n    extend: 'Ext.data.Model',\n    idgen: {\n        type: 'sequential',\n        id: 'foo'\n    }\n});\n
\n\n

To make this as simple as possible for generator types that are shared by many (or all)\nModels, the IdGenerator types (such as 'sequential' or 'uuid') are also reserved as\ngenerator id's. This is used by the Ext.data.UuidGenerator which has an id equal\nto its type ('uuid'). In other words, the following Models share the same generator:

\n\n
Ext.define('MyApp.data.MyModelX', {\n    extend: 'Ext.data.Model',\n    idgen: 'uuid'\n});\n\nExt.define('MyApp.data.MyModelY', {\n    extend: 'Ext.data.Model',\n    idgen: 'uuid'\n});\n
\n\n

This can be overridden (by specifying the id explicitly), but there is no particularly\ngood reason to do so for this generator type.

\n\n

Creating Custom Generators

\n\n

An id generator should derive from this class and implement the generate method.\nThe constructor will apply config properties on new instances, so a constructor is often\nnot necessary.

\n\n

To register an id generator type, a derived class should provide an alias like so:

\n\n
Ext.define('MyApp.data.CustomIdGenerator', {\n    extend: 'Ext.data.IdGenerator',\n    alias: 'idgen.custom',\n\n    configProp: 42, // some config property w/default value\n\n    generate: function () {\n        return ... // a new id\n    }\n});\n
\n\n

Using the custom id generator is then straightforward:

\n\n
Ext.define('MyApp.data.MyModel', {\n    extend: 'Ext.data.Model',\n    idgen: 'custom'\n});\n// or...\n\nExt.define('MyApp.data.MyModel', {\n    extend: 'Ext.data.Model',\n    idgen: {\n        type: 'custom',\n        configProp: value\n    }\n});\n
\n\n

It is not recommended to mix shared generators with generator configuration. This leads\nto unpredictable results unless all configurations match (which is also redundant). In\nsuch cases, a custom generator with a default id is the best approach.

\n\n
Ext.define('MyApp.data.CustomIdGenerator', {\n    extend: 'Ext.data.SequentialIdGenerator',\n    alias: 'idgen.custom',\n\n    id: 'custom', // shared by default\n\n    prefix: 'ID_',\n    seed: 1000\n});\n\nExt.define('MyApp.data.MyModelX', {\n    extend: 'Ext.data.Model',\n    idgen: 'custom'\n});\n\nExt.define('MyApp.data.MyModelY', {\n    extend: 'Ext.data.Model',\n    idgen: 'custom'\n});\n\n// the above models share a generator that produces ID_1000, ID_1001, etc..\n
\n
Defined By

Config options

The id by which to register a new instance. ...

The id by which to register a new instance. This instance can be found using the\nget static method.

\n
Defined By

Properties

Get the reference to the current class from which this object was instantiated. ...

Get the reference to the current class from which this object was instantiated. Unlike statics,\nthis.self is scope-dependent and it's meant to be used for dynamic inheritance. See statics\nfor a detailed comparison

\n\n
Ext.define('My.Cat', {\n    statics: {\n        speciesName: 'Cat' // My.Cat.speciesName = 'Cat'\n    },\n\n    constructor: function() {\n        alert(this.self.speciesName); / dependent on 'this'\n\n        return this;\n    },\n\n    clone: function() {\n        return new this.self();\n    }\n});\n\n\nExt.define('My.SnowLeopard', {\n    extend: 'My.Cat',\n    statics: {\n        speciesName: 'Snow Leopard'         // My.SnowLeopard.speciesName = 'Snow Leopard'\n    }\n});\n\nvar cat = new My.Cat();                     // alerts 'Cat'\nvar snowLeopard = new My.SnowLeopard();     // alerts 'Snow Leopard'\n\nvar clone = snowLeopard.clone();\nalert(Ext.getClassName(clone));             // alerts 'My.SnowLeopard'\n
\n

Methods

Defined By

Instance Methods

Initializes a new instance. ...

Initializes a new instance.

\n

Parameters

  • config : Object (optional)

    Configuration object to be applied to the new instance.

    \n

Returns

( Array/Arguments args ) : Objectprotected
Call the original method that was previously overridden with override\n\nExt.define('My.Cat', {\n constructor: functi...

Call the original method that was previously overridden with override

\n\n
Ext.define('My.Cat', {\n    constructor: function() {\n        alert(\"I'm a cat!\");\n\n        return this;\n    }\n});\n\nMy.Cat.override({\n    constructor: function() {\n        alert(\"I'm going to be a cat!\");\n\n        var instance = this.callOverridden();\n\n        alert(\"Meeeeoooowwww\");\n\n        return instance;\n    }\n});\n\nvar kitty = new My.Cat(); // alerts \"I'm going to be a cat!\"\n                          // alerts \"I'm a cat!\"\n                          // alerts \"Meeeeoooowwww\"\n
\n

Parameters

  • args : Array/Arguments

    The arguments, either an array or the arguments object

    \n

Returns

  • Object

    Returns the result after calling the overridden method

    \n
( Array/Arguments args ) : Objectprotected
Call the parent's overridden method. ...

Call the parent's overridden method. For example:

\n\n
Ext.define('My.own.A', {\n    constructor: function(test) {\n        alert(test);\n    }\n});\n\nExt.define('My.own.B', {\n    extend: 'My.own.A',\n\n    constructor: function(test) {\n        alert(test);\n\n        this.callParent([test + 1]);\n    }\n});\n\nExt.define('My.own.C', {\n    extend: 'My.own.B',\n\n    constructor: function() {\n        alert(\"Going to call parent's overriden constructor...\");\n\n        this.callParent(arguments);\n    }\n});\n\nvar a = new My.own.A(1); // alerts '1'\nvar b = new My.own.B(1); // alerts '1', then alerts '2'\nvar c = new My.own.C(2); // alerts \"Going to call parent's overriden constructor...\"\n                         // alerts '2', then alerts '3'\n
\n

Parameters

  • args : Array/Arguments

    The arguments, either an array or the arguments object\nfrom the current method, for example: this.callParent(arguments)

    \n

Returns

  • Object

    Returns the result from the superclass' method

    \n
Generates and returns the next id. ...

Generates and returns the next id. This method must be implemented by the derived\nclass.

\n

Returns

Initialize configuration for this class. ...

Initialize configuration for this class. a typical example:

\n\n
Ext.define('My.awesome.Class', {\n    // The default config\n    config: {\n        name: 'Awesome',\n        isAwesome: true\n    },\n\n    constructor: function(config) {\n        this.initConfig(config);\n\n        return this;\n    }\n});\n\nvar awesome = new My.awesome.Class({\n    name: 'Super Awesome'\n});\n\nalert(awesome.getName()); // 'Super Awesome'\n
\n

Parameters

Returns

  • Object

    mixins The mixin prototypes as key - value pairs

    \n
Get the reference to the class from which this object was instantiated. ...

Get the reference to the class from which this object was instantiated. Note that unlike self,\nthis.statics() is scope-independent and it always returns the class from which it was called, regardless of what\nthis points to during run-time

\n\n
Ext.define('My.Cat', {\n    statics: {\n        totalCreated: 0,\n        speciesName: 'Cat' // My.Cat.speciesName = 'Cat'\n    },\n\n    constructor: function() {\n        var statics = this.statics();\n\n        alert(statics.speciesName);     // always equals to 'Cat' no matter what 'this' refers to\n                                        // equivalent to: My.Cat.speciesName\n\n        alert(this.self.speciesName);   // dependent on 'this'\n\n        statics.totalCreated++;\n\n        return this;\n    },\n\n    clone: function() {\n        var cloned = new this.self;                      // dependent on 'this'\n\n        cloned.groupName = this.statics().speciesName;   // equivalent to: My.Cat.speciesName\n\n        return cloned;\n    }\n});\n\n\nExt.define('My.SnowLeopard', {\n    extend: 'My.Cat',\n\n    statics: {\n        speciesName: 'Snow Leopard'     // My.SnowLeopard.speciesName = 'Snow Leopard'\n    },\n\n    constructor: function() {\n        this.callParent();\n    }\n});\n\nvar cat = new My.Cat();                 // alerts 'Cat', then alerts 'Cat'\n\nvar snowLeopard = new My.SnowLeopard(); // alerts 'Cat', then alerts 'Snow Leopard'\n\nvar clone = snowLeopard.clone();\nalert(Ext.getClassName(clone));         // alerts 'My.SnowLeopard'\nalert(clone.groupName);                 // alerts 'Cat'\n\nalert(My.Cat.totalCreated);             // alerts 3\n
\n

Returns

Defined By

Static Methods

Add / override static properties of this class. ...

Add / override static properties of this class.

\n\n
Ext.define('My.cool.Class', {\n    ...\n});\n\nMy.cool.Class.addStatics({\n    someProperty: 'someValue',      // My.cool.Class.someProperty = 'someValue'\n    method1: function() { ... },    // My.cool.Class.method1 = function() { ... };\n    method2: function() { ... }     // My.cool.Class.method2 = function() { ... };\n});\n
\n

Parameters

Returns

( Ext.Base fromClass, String/String[] members ) : Ext.Basestatic
Borrow another class' members to the prototype of this class. ...

Borrow another class' members to the prototype of this class.

\n\n
Ext.define('Bank', {\n    money: '$$$',\n    printMoney: function() {\n        alert('$$$$$$$');\n    }\n});\n\nExt.define('Thief', {\n    ...\n});\n\nThief.borrow(Bank, ['money', 'printMoney']);\n\nvar steve = new Thief();\n\nalert(steve.money); // alerts '$$$'\nsteve.printMoney(); // alerts '$$$$$$$'\n
\n

Parameters

  • fromClass : Ext.Base

    The class to borrow members from

    \n
  • members : String/String[]

    The names of the members to borrow

    \n

Returns

Create a new instance of this Class. ...

Create a new instance of this Class.

\n\n
Ext.define('My.cool.Class', {\n    ...\n});\n\nMy.cool.Class.create({\n    someConfig: true\n});\n
\n\n

All parameters are passed to the constructor of the class.

\n

Returns

Create aliases for existing prototype methods. ...

Create aliases for existing prototype methods. Example:

\n\n
Ext.define('My.cool.Class', {\n    method1: function() { ... },\n    method2: function() { ... }\n});\n\nvar test = new My.cool.Class();\n\nMy.cool.Class.createAlias({\n    method3: 'method1',\n    method4: 'method2'\n});\n\ntest.method3(); // test.method1()\n\nMy.cool.Class.createAlias('method5', 'method3');\n\ntest.method5(); // test.method3() -> test.method1()\n
\n

Parameters

Returns the IdGenerator given its config description. ...

Returns the IdGenerator given its config description.

\n

Parameters

  • config : String/Object

    If this parameter is an IdGenerator instance, it is\nsimply returned. If this is a string, it is first used as an id for lookup and\nthen, if there is no match, as a type to create a new instance. This parameter\ncan also be a config object that contains a type property (among others) that\nare used to create and configure the instance.

    \n
Get the current class' name in string format. ...

Get the current class' name in string format.

\n\n
Ext.define('My.cool.Class', {\n    constructor: function() {\n        alert(this.self.getName()); // alerts 'My.cool.Class'\n    }\n});\n\nMy.cool.Class.getName(); // 'My.cool.Class'\n
\n

Returns

Add methods / properties to the prototype of this class. ...

Add methods / properties to the prototype of this class.

\n\n
Ext.define('My.awesome.Cat', {\n    constructor: function() {\n        ...\n    }\n});\n\n My.awesome.Cat.implement({\n     meow: function() {\n        alert('Meowww...');\n     }\n });\n\n var kitty = new My.awesome.Cat;\n kitty.meow();\n
\n

Parameters

Override prototype members of this class. ...

Override prototype members of this class. Overridden methods can be invoked via\ncallOverridden

\n\n
Ext.define('My.Cat', {\n    constructor: function() {\n        alert(\"I'm a cat!\");\n\n        return this;\n    }\n});\n\nMy.Cat.override({\n    constructor: function() {\n        alert(\"I'm going to be a cat!\");\n\n        var instance = this.callOverridden();\n\n        alert(\"Meeeeoooowwww\");\n\n        return instance;\n    }\n});\n\nvar kitty = new My.Cat(); // alerts \"I'm going to be a cat!\"\n                          // alerts \"I'm a cat!\"\n                          // alerts \"Meeeeoooowwww\"\n
\n

Parameters

Returns

","allMixins":[],"meta":{"author":["Don Griffin"]},"requires":[],"deprecated":null,"extends":"Ext.Base","inheritable":false,"static":false,"superclasses":["Ext.Base","Ext.data.IdGenerator"],"singleton":false,"code_type":"ext_define","alias":null,"statics":{"property":[],"css_var":[],"css_mixin":[],"cfg":[],"method":[{"tagname":"method","deprecated":null,"static":true,"owner":"Ext.Base","template":false,"required":null,"protected":false,"name":"addStatics","id":"static-method-addStatics"},{"tagname":"method","deprecated":null,"static":true,"owner":"Ext.Base","template":false,"required":null,"protected":false,"name":"borrow","id":"static-method-borrow"},{"tagname":"method","deprecated":null,"static":true,"owner":"Ext.Base","template":false,"required":null,"protected":false,"name":"create","id":"static-method-create"},{"tagname":"method","deprecated":null,"static":true,"owner":"Ext.Base","template":false,"required":null,"protected":false,"name":"createAlias","id":"static-method-createAlias"},{"tagname":"method","deprecated":null,"static":true,"owner":"Ext.data.IdGenerator","template":false,"required":null,"protected":false,"name":"get","id":"static-method-get"},{"tagname":"method","deprecated":null,"static":true,"owner":"Ext.Base","template":false,"required":null,"protected":false,"name":"getName","id":"static-method-getName"},{"tagname":"method","deprecated":null,"static":true,"owner":"Ext.Base","template":false,"required":null,"protected":false,"name":"implement","id":"static-method-implement"},{"tagname":"method","deprecated":null,"static":true,"owner":"Ext.Base","template":false,"required":null,"protected":false,"name":"override","id":"static-method-override"}],"event":[]},"subclasses":["Ext.data.SequentialIdGenerator","Ext.data.UuidGenerator"],"uses":[],"protected":false,"mixins":[],"members":{"property":[{"tagname":"property","deprecated":null,"static":false,"owner":"Ext.Base","template":null,"required":null,"protected":true,"name":"self","id":"property-self"}],"css_var":[],"css_mixin":[],"cfg":[{"tagname":"cfg","deprecated":null,"static":false,"owner":"Ext.data.IdGenerator","template":null,"required":false,"protected":false,"name":"id","id":"cfg-id"}],"method":[{"tagname":"method","deprecated":null,"static":false,"owner":"Ext.data.IdGenerator","template":false,"required":null,"protected":false,"name":"constructor","id":"method-constructor"},{"tagname":"method","deprecated":null,"static":false,"owner":"Ext.Base","template":false,"required":null,"protected":true,"name":"callOverridden","id":"method-callOverridden"},{"tagname":"method","deprecated":null,"static":false,"owner":"Ext.Base","template":false,"required":null,"protected":true,"name":"callParent","id":"method-callParent"},{"tagname":"method","deprecated":null,"static":false,"owner":"Ext.data.IdGenerator","template":false,"required":null,"protected":false,"name":"generate","id":"method-generate"},{"tagname":"method","deprecated":null,"static":false,"owner":"Ext.Base","template":false,"required":null,"protected":true,"name":"initConfig","id":"method-initConfig"},{"tagname":"method","deprecated":null,"static":false,"owner":"Ext.Base","template":false,"required":null,"protected":true,"name":"statics","id":"method-statics"}],"event":[]},"private":false,"component":false,"name":"Ext.data.IdGenerator","alternateClassNames":[],"id":"class-Ext.data.IdGenerator","mixedInto":[],"xtypes":{},"files":[{"href":"IdGenerator.html#Ext-data-IdGenerator","filename":"IdGenerator.js"}]}); \ No newline at end of file