X-Git-Url: http://git.ithinksw.org/extjs.git/blobdiff_plain/3789b528d8dd8aad4558e38e22d775bcab1cbd36..f562e4c6e5fac7bcb445985b99acbea4d706e6f0:/docs/output/Ext.Class.js diff --git a/docs/output/Ext.Class.js b/docs/output/Ext.Class.js index f7174781..a5e58316 100644 --- a/docs/output/Ext.Class.js +++ b/docs/output/Ext.Class.js @@ -1,195 +1 @@ -Ext.data.JsonP.Ext_Class({ - "tagname": "class", - "name": "Ext.Class", - "doc": "
Handles class creation throughout the whole framework. Note that most of the time Ext.define should\nbe used instead, since it's a higher level wrapper that aliases to Ext.ClassManager.create\nto enable namespacing and dynamic dependency resolution.
\n\nExt.define(className, properties);\n
\n\nin which properties
is an object represent a collection of properties that apply to the class. See\nExt.ClassManager.create for more detailed instructions.
Ext.define('Person', {\n name: 'Unknown',\n\n constructor: function(name) {\n if (name) {\n this.name = name;\n }\n\n return this;\n },\n\n eat: function(foodType) {\n alert(\"I'm eating: \" + foodType);\n\n return this;\n }\n});\n\nvar aaron = new Person(\"Aaron\");\naaron.eat(\"Sandwich\"); // alert(\"I'm eating: Sandwich\");\n
\n\nExt.Class has a powerful set of extensible pre-processors which takes care of\neverything related to class creation, including but not limited to inheritance, mixins, configuration, statics, etc.
\n\nExt.define('Developer', {\n extend: 'Person',\n\n constructor: function(name, isGeek) {\n this.isGeek = isGeek;\n\n // Apply a method from the parent class' prototype\n this.callParent([name]);\n\n return this;\n\n },\n\n code: function(language) {\n alert(\"I'm coding in: \" + language);\n\n this.eat(\"Bugs\");\n\n return this;\n }\n});\n\nvar jacky = new Developer(\"Jacky\", true);\njacky.code(\"JavaScript\"); // alert(\"I'm coding in: JavaScript\");\n // alert(\"I'm eating: Bugs\");\n
\n\nSee Ext.Base.callParent for more details on calling superclass' methods
\n\nExt.define('CanPlayGuitar', {\n playGuitar: function() {\n alert(\"F#...G...D...A\");\n }\n});\n\nExt.define('CanComposeSongs', {\n composeSongs: function() { ... }\n});\n\nExt.define('CanSing', {\n sing: function() {\n alert(\"I'm on the highway to hell...\")\n }\n});\n\nExt.define('Musician', {\n extend: 'Person',\n\n mixins: {\n canPlayGuitar: 'CanPlayGuitar',\n canComposeSongs: 'CanComposeSongs',\n canSing: 'CanSing'\n }\n})\n\nExt.define('CoolPerson', {\n extend: 'Person',\n\n mixins: {\n canPlayGuitar: 'CanPlayGuitar',\n canSing: 'CanSing'\n },\n\n sing: function() {\n alert(\"Ahem....\");\n\n this.mixins.canSing.sing.call(this);\n\n alert(\"[Playing guitar at the same time...]\");\n\n this.playGuitar();\n }\n});\n\nvar me = new CoolPerson(\"Jacky\");\n\nme.sing(); // alert(\"Ahem...\");\n // alert(\"I'm on the highway to hell...\");\n // alert(\"[Playing guitar at the same time...]\");\n // alert(\"F#...G...D...A\");\n
\n\nExt.define('SmartPhone', {\n config: {\n hasTouchScreen: false,\n operatingSystem: 'Other',\n price: 500\n },\n\n isExpensive: false,\n\n constructor: function(config) {\n this.initConfig(config);\n\n return this;\n },\n\n applyPrice: function(price) {\n this.isExpensive = (price > 500);\n\n return price;\n },\n\n applyOperatingSystem: function(operatingSystem) {\n if (!(/^(iOS|Android|BlackBerry)$/i).test(operatingSystem)) {\n return 'Other';\n }\n\n return operatingSystem;\n }\n});\n\nvar iPhone = new SmartPhone({\n hasTouchScreen: true,\n operatingSystem: 'iOS'\n});\n\niPhone.getPrice(); // 500;\niPhone.getOperatingSystem(); // 'iOS'\niPhone.getHasTouchScreen(); // true;\niPhone.hasTouchScreen(); // true\n\niPhone.isExpensive; // false;\niPhone.setPrice(600);\niPhone.getPrice(); // 600\niPhone.isExpensive; // true;\n\niPhone.setOperatingSystem('AlienOS');\niPhone.getOperatingSystem(); // 'Other'\n
\n\nExt.define('Computer', {\n statics: {\n factory: function(brand) {\n // 'this' in static methods refer to the class itself\n return new this(brand);\n }\n },\n\n constructor: function() { ... }\n});\n\nvar dellComputer = Computer.factory('Dell');\n
\n\nAlso see Ext.Base.statics and Ext.Base.self for more details on accessing\nstatic properties within class methods
\n", - "extends": null, - "mixins": [ - - ], - "alternateClassNames": [ - - ], - "xtype": null, - "author": "Jacky NguyenRetrieve the array stack of default pre-processors
\n", - "params": [ - - ], - "return": { - "type": "Function", - "doc": "defaultPreprocessors
\n" - }, - "private": false, - "static": false, - "filename": "/Users/nick/Projects/sencha/SDK/platform/core/src/class/Class.js", - "linenr": 349, - "html_filename": "Class.html", - "href": "Class.html#Ext-Class-method-getDefaultPreprocessors", - "shortDoc": "Retrieve the array stack of default pre-processors
\n" - }, - { - "tagname": "method", - "name": "getPreprocessor", - "member": "Ext.Class", - "doc": "Retrieve a pre-processor callback function by its name, which has been registered before
\n", - "params": [ - { - "type": "String", - "name": "name", - "doc": "\n", - "optional": false - } - ], - "return": { - "type": "Function", - "doc": "preprocessor
\n" - }, - "private": false, - "static": false, - "filename": "/Users/nick/Projects/sencha/SDK/platform/core/src/class/Class.js", - "linenr": 335, - "html_filename": "Class.html", - "href": "Class.html#Ext-Class-method-getPreprocessor", - "shortDoc": "Retrieve a pre-processor callback function by its name, which has been registered before
\n" - }, - { - "tagname": "method", - "name": "registerPreprocessor", - "member": "Ext.Class", - "doc": "Register a new pre-processor to be used during the class creation process registerPreprocessor
\n", - "params": [ - { - "type": "String", - "name": "name", - "doc": "The pre-processor's name
\n", - "optional": false - }, - { - "type": "Function", - "name": "fn", - "doc": "The callback function to be executed. Typical format:
\n\nfunction(cls, data, fn) {\n // Your code here\n\n // Execute this when the processing is finished.\n // Asynchronous processing is perfectly ok\n if (fn) {\n fn.call(this, cls, data);\n }\n});\n
\n\nPassed arguments for this function are:
\n\n{Function} cls
: The created class{Object} data
: The set of properties passed in Ext.Class constructor{Function} fn
: The callback function that must to be executed when this pre-processor finishes,\nregardless of whether the processing is synchronous or aynchronousthis
\n" - }, - "private": false, - "static": false, - "filename": "/Users/nick/Projects/sencha/SDK/platform/core/src/class/Class.js", - "linenr": 298, - "html_filename": "Class.html", - "href": "Class.html#Ext-Class-method-registerPreprocessor", - "shortDoc": "Register a new pre-processor to be used during the class creation process registerPreprocessor
\n" - }, - { - "tagname": "method", - "name": "setDefaultPreprocessorPosition", - "member": "Ext.Class", - "doc": "Insert this pre-processor at a specific position in the stack, optionally relative to\nany existing pre-processor. For example:
\n\nExt.Class.registerPreprocessor('debug', function(cls, data, fn) {\n // Your code here\n\n if (fn) {\n fn.call(this, cls, data);\n }\n}).insertDefaultPreprocessor('debug', 'last');\n
\n",
- "params": [
- {
- "type": "String",
- "name": "name",
- "doc": "The pre-processor name. Note that it needs to be registered with\nregisterPreprocessor before this
\n", - "optional": false - }, - { - "type": "String", - "name": "offset", - "doc": "The insertion position. Four possible values are:\n'first', 'last', or: 'before', 'after' (relative to the name provided in the third argument)
\n", - "optional": false - }, - { - "type": "String", - "name": "relativeName", - "doc": "\n", - "optional": false - } - ], - "return": { - "type": "Ext.Class", - "doc": "this
\n" - }, - "private": false, - "static": false, - "filename": "/Users/nick/Projects/sencha/SDK/platform/core/src/class/Class.js", - "linenr": 370, - "html_filename": "Class.html", - "href": "Class.html#Ext-Class-method-setDefaultPreprocessorPosition", - "shortDoc": "Insert this pre-processor at a specific position in the stack, optionally relative to\nany existing pre-processor. For..." - }, - { - "tagname": "method", - "name": "setDefaultPreprocessors", - "member": "Ext.Class", - "doc": "Set the default array stack of default pre-processors
\n", - "params": [ - { - "type": "Array", - "name": "preprocessors", - "doc": "\n", - "optional": false - } - ], - "return": { - "type": "Ext.Class", - "doc": "this
\n" - }, - "private": false, - "static": false, - "filename": "/Users/nick/Projects/sencha/SDK/platform/core/src/class/Class.js", - "linenr": 358, - "html_filename": "Class.html", - "href": "Class.html#Ext-Class-method-setDefaultPreprocessors", - "shortDoc": "Set the default array stack of default pre-processors
\n" - } - ], - "property": [ - - ], - "event": [ - - ], - "filename": "/Users/nick/Projects/sencha/SDK/platform/core/src/class/Class.js", - "linenr": 1, - "html_filename": "Class.html", - "href": "Class.html#Ext-Class", - "cssVar": [ - - ], - "cssMixin": [ - - ], - "component": false, - "superclasses": [ - - ], - "subclasses": [ - - ], - "mixedInto": [ - - ], - "allMixins": [ - - ] -}); \ No newline at end of file +Ext.data.JsonP.Ext_Class({"tagname":"class","html":"Files
Handles class creation throughout the framework. This is a low level factory that is used by Ext.ClassManager and generally\nshould not be used directly. If you choose to use Ext.Class you will lose out on the namespace, aliasing and depency loading\nfeatures made available by Ext.ClassManager. The only time you would use Ext.Class directly is to create an anonymous class.
\n\nIf you wish to create a class you should use Ext.define which aliases\nExt.ClassManager.create to enable namespacing and dynamic dependency resolution.
\n\nExt.Class is the factory and not the superclass of everything. For the base class that all Ext classes inherit\nfrom, see Ext.Base.
\nList of short aliases for class names. Most useful for defining xtypes for widgets:
\n\nExt.define('MyApp.CoolPanel', {\n extend: 'Ext.panel.Panel',\n alias: ['widget.coolpanel'],\n title: 'Yeah!'\n});\n\n// Using Ext.create\nExt.widget('widget.coolpanel');\n// Using the shorthand for widgets and in xtypes\nExt.widget('panel', {\n items: [\n {xtype: 'coolpanel', html: 'Foo'},\n {xtype: 'coolpanel', html: 'Bar'}\n ]\n});\n
\nDefines alternate names for this class. For example:
\n\nExt.define('Developer', {\n alternateClassName: ['Coder', 'Hacker'],\n code: function(msg) {\n alert('Typing... ' + msg);\n }\n});\n\nvar joe = Ext.create('Developer');\njoe.code('stackoverflow');\n\nvar rms = Ext.create('Hacker');\nrms.code('hack hack');\n
\nList of configuration options with their default values, for which automatically\naccessor methods are generated. For example:
\n\nExt.define('SmartPhone', {\n config: {\n hasTouchScreen: false,\n operatingSystem: 'Other',\n price: 500\n },\n constructor: function(cfg) {\n this.initConfig(cfg);\n }\n});\n\nvar iPhone = new SmartPhone({\n hasTouchScreen: true,\n operatingSystem: 'iOS'\n});\n\niPhone.getPrice(); // 500;\niPhone.getOperatingSystem(); // 'iOS'\niPhone.getHasTouchScreen(); // true;\niPhone.hasTouchScreen(); // true\n
\nThe parent class that this class extends. For example:
\n\nExt.define('Person', {\n say: function(text) { alert(text); }\n});\n\nExt.define('Developer', {\n extend: 'Person',\n say: function(text) { this.callParent([\"print \"+text]); }\n});\n
\nList of inheritable static methods for this class.\nOtherwise just like statics but subclasses inherit these methods.
\nList of classes to mix into this class. For example:
\n\nExt.define('CanSing', {\n sing: function() {\n alert(\"I'm on the highway to hell...\")\n }\n});\n\nExt.define('Musician', {\n extend: 'Person',\n\n mixins: {\n canSing: 'CanSing'\n }\n})\n
\nDefines an override applied to a class. Note that overrides can only be created using\nExt.define. Ext.ClassManager.create only creates classes.
\n\nTo define an override, include the override property. The content of an override is\naggregated with the specified class in order to extend or modify that class. This can be\nas simple as setting default property values or it can extend and/or replace methods.\nThis can also extend the statics of the class.
\n\nOne use for an override is to break a large class into manageable pieces.
\n\n // File: /src/app/Panel.js\n\n Ext.define('My.app.Panel', {\n extend: 'Ext.panel.Panel',\n requires: [\n 'My.app.PanelPart2',\n 'My.app.PanelPart3'\n ]\n\n constructor: function (config) {\n this.callSuper(arguments); // calls Ext.panel.Panel's constructor\n //...\n },\n\n statics: {\n method: function () {\n return 'abc';\n }\n }\n });\n\n // File: /src/app/PanelPart2.js\n Ext.define('My.app.PanelPart2', {\n override: 'My.app.Panel',\n\n constructor: function (config) {\n this.callSuper(arguments); // calls My.app.Panel's constructor\n //...\n }\n });\n
\n\nAnother use of overrides is to provide optional parts of classes that can be\nindependently required. In this case, the class may even be unaware of the\noverride altogether.
\n\n Ext.define('My.ux.CoolTip', {\n override: 'Ext.tip.ToolTip',\n\n constructor: function (config) {\n this.callSuper(arguments); // calls Ext.tip.ToolTip's constructor\n //...\n }\n });\n
\n\nThe above override can now be required as normal.
\n\n Ext.define('My.app.App', {\n requires: [\n 'My.ux.CoolTip'\n ]\n });\n
\n\nOverrides can also contain statics:
\n\n Ext.define('My.app.BarMod', {\n override: 'Ext.foo.Bar',\n\n statics: {\n method: function (x) {\n return this.callSuper([x * 2]); // call Ext.foo.Bar.method\n }\n }\n });\n
\n\nIMPORTANT: An override is only included in a build if the class it overrides is\nrequired. Otherwise, the override, like the target class, is not included.
\nList of classes that have to be loaded before instantiating this class.\nFor example:
\n\nExt.define('Mother', {\n requires: ['Child'],\n giveBirth: function() {\n // we can be sure that child class is available.\n return new Child();\n }\n});\n
\nWhen set to true, the class will be instantiated as singleton. For example:
\n\nExt.define('Logger', {\n singleton: true,\n log: function(msg) {\n console.log(msg);\n }\n});\n\nLogger.log('Hello');\n
\nList of static methods for this class. For example:
\n\nExt.define('Computer', {\n statics: {\n factory: function(brand) {\n // 'this' in static methods refer to the class itself\n return new this(brand);\n }\n },\n\n constructor: function() { ... }\n});\n\nvar dellComputer = Computer.factory('Dell');\n
\nList of classes to load together with this class. These aren't neccessarily loaded before\nthis class is instantiated. For example:
\n\nExt.define('Mother', {\n uses: ['Child'],\n giveBirth: function() {\n // This code might, or might not work:\n // return new Child();\n\n // Instead use Ext.create() to load the class at the spot if not loaded already:\n return Ext.create('Child');\n }\n});\n
\nCreates new class.
\nAn object represent the properties of this class
\nThe callback function to be executed when this class is fully created.\nNote that the creation process can be asynchronous depending on the pre-processors used.
\nThe newly created class
\nRegister a new pre-processor to be used during the class creation process
\nThe pre-processor's name
\nThe callback function to be executed. Typical format:
\n\nfunction(cls, data, fn) {\n // Your code here\n\n // Execute this when the processing is finished.\n // Asynchronous processing is perfectly ok\n if (fn) {\n fn.call(this, cls, data);\n }\n});\n
\nthis
\nInserts this pre-processor at a specific position in the stack, optionally relative to\nany existing pre-processor. For example:
\n\nExt.Class.registerPreprocessor('debug', function(cls, data, fn) {\n // Your code here\n\n if (fn) {\n fn.call(this, cls, data);\n }\n}).setDefaultPreprocessorPosition('debug', 'last');\n
\nThe pre-processor name. Note that it needs to be registered with\nregisterPreprocessor before this
\nThe insertion position. Four possible values are:\n'first', 'last', or: 'before', 'after' (relative to the name provided in the third argument)
\nthis
\n