Пишу ряд классов для управления формами для создания отчетов. Например
//Класс отчетник-контейнер
Esdv.Reporter = Ext.extend(Ext.TabPanel, {
height: 300
,initComponent:function() {
Ext.apply(this, {
activeTab: 0
,defaults:{autoScroll: true}
,items:[
...
]
});
Esdv.Reporter.superclass.initComponent.apply(this, arguments);
}
});
Ext.reg('esdvreportcontainer', Esdv.Reporter);
Дальше хочу сделать формы наследники от панелей, в следующем куске кода
работает закомментированный кусок, но хочется в строке notifyDrop: .... указать метод notifyDrop_GridSelectedObjects как сейчас и сделано, однако
в текущем состоянии появляется ошибка в методе notifyDrop_GridSelectedObject, поле this.GridSelectedObjects - undefined , а вообще в методе afterrender_GridSelectedObjects ошибки в строке var grid = this.GridSelectedObjects; не возникает
Почему такое происходит не понимаю. Помогите, пожалуйста.
//Класс ReportConsumption для создания заказа отчета
Esdv.ReportConsumption = Ext.extend(Ext.Panel, {
GridSelectedObjects: {}
, buildObjectTree: function () {
return new Ext.tree.TreePanel({
title: 'Дерево объектов',
height: 300,
loader: TreeLoader,
animate: true,
containerScroll: true,
autoScroll: true,
root: new Ext.tree.AsyncTreeNode({
id: 'null',
text: 'root',
nodeType: 'async'
}),
rootVisible: false,
fitToFrame: true,
border: true,
enableDD: true,
ddGroup: 'grid2tree',
defaults: {
collapsible: true,
split: true,
bodyStyle: 'padding:15px'
}
});
}
, biuldGridSelectedObjects: function () {
var that = this;
var grid = new Ext.grid.GridPanel({
...
});
return grid;
}
, afterrender_GridSelectedObjects: function (sender) {
var gridTargetEl = this.GridSelectedObjects.getView().scroller.dom;
var that = this;
var grid = this.GridSelectedObjects;
var GridDropTarget = new Ext.dd.DropTarget(gridTargetEl, {
ddGroup: 'grid2tree',
/*notifyDrop: function (ddSource, e, data) {
e.cancel = false;
var node = ddSource.dragData.node;
var r = [];
r = populate(node);
that.GridSelectedObjects.store.add(r);
return true;
}*/
notifyDrop: that.notifyDrop_GridSelectedObjects
});
}
, notifyDrop_GridSelectedObjects: function (ddSource, e, data) {
e.cancel = false;
var node = ddSource.dragData.node;
var r = [];
r = populate(node);
this.GridSelectedObjects.store.add(r);
return true;
}
...
, buildItems: function () {
this.GridSelectedObjects = this.biuldGridSelectedObjects();
...