ExtJS4 :Как передать аргументы в initComponent

Я использую Sencha Architect 2. Я пытаюсь создать общий элемент пользовательского интерфейса с текстовым поиском и таблицей, отображающей результаты. Общий означает, что я хочу использовать его для нескольких разных типов поиска, например. для пользователей, или ролей или еще чего-то.

Что мне определенно нравится в этом контексте в Sencha Architect 2, так это то, что он всегда генерирует классы. Вот мой сгенерированный класс:

Ext.define('ktecapp.view.ObjSearchPanel', {
    extend: 'Ext.container.Container',
    alias: 'widget.objsearchpanel',

    height: 250,
    id: 'UserSearchPanel',
    itemId: 'UserSearchPanel',
    width: 438,
    layout: {
        columns: 3,
        type: 'table'
    },

    initComponent: function() {
        var me = this;

        Ext.applyIf(me, {
            items: [
                {
                    xtype: 'textfield',
                    itemId: 'txtSearchText',
                    fieldLabel: 'Search Text',
                    colspan: 2
                },
                {
                    xtype: 'button',
                    id: 'searchObj',
                    itemId: 'searchObj',
                    text: 'Search',
                    colspan: 1
                },
                {
                    xtype: 'gridpanel',
                    height: 209,
                    itemId: 'resultGrid',
                    width: 430,
                    store: 'UserDisplayStore',
                    colspan: 3,
                    columns: [
                        {
                            xtype: 'gridcolumn',
                            width: 60,
                            dataIndex: 'ID',
                            text: 'ID'
                        },
                        {
                            xtype: 'gridcolumn',
                            width: 186,
                            dataIndex: 'DISPLAYNAME',
                            text: 'Displayname'
                        },
                        {
                            xtype: 'gridcolumn',
                            width: 123,
                            dataIndex: 'JOBTITLE',
                            text: 'Job Title'
                        },
                        {
                            xtype: 'actioncolumn',
                            width: 35,
                            icon: 'icons/zoom.png',
                            items: [
                                {
                                    icon: 'icons/zoom.png',
                                    tooltip: 'Tooltip'
                                }
                            ]
                        }
                    ],
                    viewConfig: {

                    },
                    selModel: Ext.create('Ext.selection.CheckboxModel', {

                    })
                }
            ]
        });
        me.callParent(arguments);
    }
});

Проблема, с которой я сталкиваюсь, заключается в том, что все должно быть довольно настраиваемым, индексы данных столбцов, хранилище,... Итак, как я могу получить функцию, подобную конструктору, для класса ObjSearchPanel, куда я передаю всю эту информацию? В приведенном выше коде все это выглядит жестко запрограммированным...

Заранее спасибо Kai

5
задан sha 18 June 2012 в 18:47
поделиться