Наследование в extjs. Javascript и объекты.

Бывает так, что при разработке интерфейса на extjs, необходимо иметь на странице несколько элементов, со схожими характеристиками. В extjs есть такая штука как config, куда можно записать настройки по-умолчанию многих элементов. Но можно пойти и классическим путем. Так как весь extjs - объектная библиотека, то можно созать свои компоненты, унаследовав их от стандартных. Хотя лично я не рекомендовал бы этим увлекаться. Потому, как на мой взхгляд главное в броузерных приложениях не читаемость кода, а его размер. Но в любом случае знать полезно, как наследовать свои компоненты от стандартных в extjs. Сейчас мы дешево и сердито  создадим свой пользовательский класс формы.
SuperForm = Ext.extend(Ext.form.FormPanel({
// пишем свои настройки
labelWidth: 147
,labelAlign:'right'

,initComponent:function() {

// а сюда пишем функционал для инициализации
Ext.apply(this, {
items:[{},{},{}]
,buttons:[{},{}]
});

// не забываем вызвать инициализацию родительского класса
SuperForm.superclass.initComponent.apply(this, arguments);

}

// А вот так перекрываем евенты:
,onRender:function() {
// сюда пишем свою отрисовку

// и снова не затыть вызвать ролительский метод
SuperForm.superclass.onRender.apply(this, arguments);

}

});

// И чтобы extjs смог включить ваш класс в свой репозитарий, придумаем ему xtype
// и зарегестрируем его в extjs
Ext.reg(’mysuuperform’, SuperForm)

Comments

Leave a Reply




FireStats icon Powered by FireStats