Показать сообщение отдельно
  #7 (permalink)  
Старый 11.04.2011, 19:07
VKS VKS вне форума
Профессор
Отправить личное сообщение для VKS Посмотреть профиль Найти все сообщения от VKS
 
Регистрация: 24.09.2010
Сообщений: 178

Описываем абстрактный класс, куда выносим то, что у нас планируется использовать во всех компонентах такого типа, данный абстрактный класс пустой.

Ext.ns('App');

App.AbstractPanel = Ext.extend(Ext.Panel, {
  
    initComponent: function() {
 
        // create config object
        var config = {};
 
        // build config
        this.buildConfig(config);
 
        // apply config
        Ext.apply(this, Ext.apply(this.initialConfig, config));
 
        // call parent
        App.AbstractPanel.superclass.initComponent.call(this);
 
    }, // eo function initComponent
    
    buildConfig: function(config) {
        this.buildItems(config);
    }, // eo function buildConfig
    
    buildItems: function(config) {
        config.items = undefined;
    } // eo function buildItems
    
});


Пишем свой преднастроенный класс

Ext.ns('App.Catalog');
App.Catalog.Panel = Ext.extend(App.AbstractPanel, {
    
    buildItems:function(config) {
        config.items = [{
	    title	    : 'Левая панель',
	    region	    : 'west',
	    layout	    : 'fit',
	    width	    : 260,
	    split	    : true,
	    collapsible	    : true,
	    autoScroll	    : true,
	    margins	    : '5 0 5 5',
	    cmargins	    : '5 5 5 5'
        },{
	    title	    : 'Правая панель',
	    region	    : 'center',
	    layout	    : 'fit',
	    margins	    : '5 5 5 0',
	    cmargins	    : '5 5 5 0'
        }];
    } // eo function buildItems

});
// Register xtype
Ext.reg('catalogpanel', App.Catalog.Panel);


Ну и далее уже где вам нужно вызывете catalogpanel через xtype, например в лайоуте, например:

var main_viewport = new Ext.Viewport({
        layout:'border',
        title:'Основное окно',
        items:[{xtype: 'catalogpanel', layout: 'border', border: false}]
    });

Последний раз редактировалось VKS, 11.04.2011 в 19:17.
Ответить с цитированием