]> git.proxmox.com Git - extjs.git/blame - extjs/packages/core/src/Evented.js
add extjs 6.0.1 sources
[extjs.git] / extjs / packages / core / src / Evented.js
CommitLineData
6527f429
DM
1/**\r
2 * @private\r
3 */\r
4Ext.define('Ext.Evented', {\r
5\r
6 alternateClassName: 'Ext.EventedBase',\r
7\r
8 mixins: [\r
9 'Ext.mixin.Observable'\r
10 ],\r
11\r
12 initialized: false,\r
13\r
14 constructor: function(config) {\r
15 this.mixins.observable.constructor.call(this, config);\r
16 this.initialized = true;\r
17 },\r
18\r
19 onClassExtended: function(cls, data) {\r
20 if (!data.hasOwnProperty('eventedConfig')) {\r
21 return;\r
22 }\r
23\r
24 var config = data.config,\r
25 eventedConfig = data.eventedConfig,\r
26 name, cfg;\r
27\r
28 if (config) {\r
29 Ext.applyIf(config, eventedConfig);\r
30 } else {\r
31 cls.addConfig(eventedConfig);\r
32 }\r
33\r
34 /*\r
35 * These are generated setters for eventedConfig\r
36 *\r
37 * If the component is initialized, it invokes fireAction to fire the event as well,\r
38 * which indicate something has changed. Otherwise, it just executes the action\r
39 * (happens during initialization)\r
40 *\r
41 * This is helpful when we only want the event to be fired for subsequent changes.\r
42 * Also it's a major performance improvement for instantiation when fired events\r
43 * are mostly useless since there's no listeners\r
44 */\r
45\r
46 //TODO: Move this into Observable\r
47 for (name in eventedConfig) {\r
48 if (eventedConfig.hasOwnProperty(name)) {\r
49 cfg = Ext.Config.get(name);\r
50 data[cfg.names.set] = cfg.eventedSetter || cfg.getEventedSetter();\r
51 }\r
52 }\r
53 }\r
54});\r