Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.05.2011, 12:07
Новичок на форуме
Отправить личное сообщение для hyp1k Посмотреть профиль Найти все сообщения от hyp1k
 
Регистрация: 30.11.2009
Сообщений: 7

Drag&Drop + ООП
Пишу ряд классов для управления формами для создания отчетов. Например
//Класс отчетник-контейнер
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();
...
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ООП: проблема переопределения this NElias Общие вопросы Javascript 4 16.03.2011 15:43
Подправить скрипт Drag&Drop rawuk Элементы интерфейса 0 02.03.2011 11:03
ООП PHP вопрос mycoding Серверные языки и технологии 9 03.06.2010 02:57
PHP ООП и вложенные функции Tim Серверные языки и технологии 6 15.06.2009 08:01
Теряется event при перемещении объекта (Drag&Drop) seagor Events/DOM/Window 16 25.07.2007 01:28