Показать сообщение отдельно
  #1 (permalink)  
Старый 10.04.2011, 14:00
dem dem вне форума
Новичок на форуме
Отправить личное сообщение для dem Посмотреть профиль Найти все сообщения от dem
 
Регистрация: 10.04.2011
Сообщений: 5

Как правильно создавать компоненты?
пишу вот так:
menuPanel = function () {
        menuPanel.superclass.constructor.call(this, {
        animate:true,
        enableDD:false,
        loader: new Ext.tree.TreeLoader(), // Note: no dataurl, register a TreeLoader to make use of createNode()
        lines: true,
        title: 'Меню',
        id:'treepanel',
                     region:'west'
                    ,layout:'fit'
                    ,frame:true
                    ,border:false
                    ,width:200
                    ,split:true
                    ,collapsible:true
                    ,collapseMode:'mini',
        root: new Ext.tree.AsyncTreeNode({
                text: 'Autos',
                draggable:false,
                children: json
                }),
        rootVisible:true,

        });
}
Ext.extend(menuPanel,Ext.tree.TreePanel,{});

Ext.reg('menutree', menuPanel);

потом:

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


Все работает, но мне не нравится что настройки позиционирования в компоненте. Если я делаю, вот так:


menuPanel = function () {
        menuPanel.superclass.constructor.call(this, {
        animate:true,
        enableDD:false,
        loader: new Ext.tree.TreeLoader(), // Note: no dataurl, register a TreeLoader to make use of createNode()
        lines: true,
        title: 'Меню',
        id:'treepanel',
        root: new Ext.tree.AsyncTreeNode({
                text: 'Autos',
                draggable:false,
                children: json
                }),
        rootVisible:true,

        });
}
Ext.extend(menuPanel,Ext.tree.TreePanel,{});

Ext.reg('menutree', menuPanel);

//А потом:

    var main_viewport = new Ext.Viewport({
        layout:'border',
        title:'Основное окно',
        items:[
            {        id:'treepanel',
                     xtype: 'menutree',
                     region:'west'
                    ,layout:'fit'
                    ,frame:true
                    ,border:false
                    ,width:200
                    ,split:true
                    ,collapsible:true
                    ,collapseMode:'mini'
            },
            pnl
         ]
    });


То панель не появляется. Как мне сделать основные части системы компонентами без настроек отображения, а потом создавать их экземпляры донастраивая. Мне нравится идея с xtype, но я что-то видимо не понял.
Ответить с цитированием