Расширение панели Extjs - PullRequest
       2

Расширение панели Extjs

1 голос
/ 28 сентября 2011

У меня есть панель extjs.Мне нужно вызвать свойство перетаскивания и изменения размера для этой панели.

Это код для создания панели:

var childPanel = new Ext.Panel({
                    draggable: true,
                    layout: 'fit',

 ................
});

Я получил свойства перетаскивания и изменения размера с помощью кода:

Ext.override(Ext.Panel, {
                    // private
                    initEvents: function () {

                        if (this.draggable) {
                            this.initDraggable();
                        }
                        this.resizer = new Ext.Resizable(this.el, {
                            animate: true,
                            duration: '.6',
                            easing: 'backIn',
                            handles: 'all',
                            pinned: false,
                            transparent: true
                        });
                        this.resizer.on("resize", this.onResizer, this);
                    },
                    onResizer: function (oResizable, iWidth, iHeight, e) {
                        this.setHeight(iHeight);
                        this.setWidth(iWidth);
                    }
                });

Как видите, я переопределяю свойство.Поэтому все панели, которые я создаю, имеют эти свойства.Я не хочу, чтобы это было так.

Я знаю, что Ext.extend - метод, который нужно использовать, но каждый раз я получаю некоторые ошибки.Мне нужна расширенная панель с приведенным выше кодом.

Кто-нибудь может мне помочь в достижении этого?

1 Ответ

1 голос
/ 05 мая 2012

Вы устали расширяться? какие были ошибки? Вы должны помнить, чтобы вызывать конструктор суперкласса из расширенных методов.

MYDRAGRESIZEPANEL = Ext.extend(Ext.Panel,{
    // private
                initEvents: function () {
                    **MYDRAGRESIZEPANEL.superclass.constructor.call(this);**
                    if (this.draggable) {
                        this.initDraggable();
                    }
                    this.resizer = new Ext.Resizable(this.el, {
                        animate: true,
                        duration: '.6',
                        easing: 'backIn',
                        handles: 'all',
                        pinned: false,
                        transparent: true
                    });
                    this.resizer.on("resize", this.onResizer, this);
                },
                onResizer: function (oResizable, iWidth, iHeight, e) {
                    this.setHeight(iHeight);
                    this.setWidth(iWidth);
                }
});
...