Поскольку вы не опубликовали полное определение класса, я могу только оценить, как должен выглядеть javascript. Вы можете использовать следующее, если у вас есть только одна простая табуляция:
postOpenObject: function (object, type) {
object.tabPanel
.getComponent(0) // get object tab
.getComponent(1) // get edit tabpanel
.getComponent(0) // get class tab
.getComponent(3) // get fourth tab in class tabpanel
.query("*[componentCls~=object_field]")[0] // get first panel with class "object_field" - could be replaced with down(...)
.getDockedComponent(0) // get toolbar
.add({
text: t('show-pdf'),
iconCls: 'pimcore_icon_pdf',
scale: 'small',
handler: function (obj) {
//do some stuff here, e.g. open a new window with an PDF download
}.bind(this, object)
});
})
В зависимости от сложности (или сложности) компоновки вашего объекта данных, вы можете удалить вызовы getComponent()
и просто перейтис вызовом down()
для тега объектов.
Обязательно измените код, если вы измените макет класса, а также рассмотрите возможность адаптации кода выше, если вы используете пользовательских макетов для каждого макета, если это необходимо.
Вы также можете взглянуть на документацию Ext.js для компонента Panel , просто найдите вызванные методы.