123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 |
- Ext.define('PageAnalyzer.models.ComponentTreeNode', {
- extend: 'Ext.data.Model',
- fields: [
- { name: 'text', type: 'string' },
- { name: 'compId', type: 'string' },
- { name: 'refName', type: 'string' },
- { name: 'width', type: 'int'},
- { name: 'height', type: 'int'},
- { name: 'x', type: 'int'},
- { name: 'y', type: 'int'},
- { name: 'cssClass', type: 'string'},
- { name: 'xtype', type: 'string' },
- { name: 'rendered', type: 'boolean' },
- { name: 'hidden', type: 'boolean' },
- { name: 'isContainer', type: 'boolean' },
- { name: 'isElement', type: 'boolean' },
- { name: 'isComponent', type: 'boolean', defualtValue: false }
- ],
- jasmineTpl: [
- 'expect(Ext.widget({cfg})).toHaveLayout({spec});'
- ],
- isSimpleType: function(val) {
- // var t = (typeof val);
- // return (t == 'number' || t == 'string' || t == 'boolean');
- return Ext.isPrimitive(val);
- },
- isArray: function(val) {
- var t = (typeof val);
- return (Ext.isArray(val) || t == 'Ext.util.Queue');
- },
- getComponentConfig: function(initCfg) {
- var me = this,
- cfg = {},
- arry;
- initCfg = (initCfg.isComponent)
- ? initCfg.initialConfig
- : initCfg;
- if (me.isSimpleType(initCfg)) {
- return initCfg;
- }
- Ext.Object.each(initCfg, function(name, val){
- if (val) {
- if (me.isSimpleType(val)) {
- cfg[name] = val;
- } else if (val.isComponent) {
- cfg[name] = me.getComponentConfig(val.initialConfig);
- cfg['xtype'] = val.getXType();
- } else if (me.isArray(val)) {
- arry = cfg[name] || (cfg[name] = []);
- Ext.each(val, function(v) {
- if (v) {
- arry.push(me.getComponentConfig(v));
- }
- }, me);
- } else {
- cfg[name] = me.getComponentConfig(val);
- }
- }
- });
- return cfg;
- },
- getTestSpec: function() {
- var data = this.data,
- spec = {},
- children = this.childNodes,
- len = children.length,
- specs = [],
- child, i, name;
- if (data.refName == 'items' || data.refName == 'dockedItems') {
- for (i = 0; i < len; i++) {
- child = children[i];
- if (!child.data.hidden) {
- spec[i] = child.getTestSpec();
- }
- }
- return spec;
- } else if (data.isElement) {
- var dims = [];
- dims.push(data.x, data.y, data.width, data.height);
- return {
- xywh: dims.join(' ')
- };
- } else {
- for (i = 0; i < len; i++) {
- child = children[i];
- name = child.data.refName;
- if (!child.data.hidden) {
- spec[name] = child.getTestSpec();
- }
- }
- return spec;
- }
- },
- getJasmineSpec: function(){
- var me = this,
- data = me.data,
- ctx = {
- spec: Ext.JSON.encodeValue(me.getTestSpec(), '\n')
- };
- return Ext.XTemplate.getTpl(me, 'jasmineTpl').apply(ctx);
- }
- });
|