2011-09-28 92 views
1

我有一個extjs面板。我需要爲此面板誘導一個拖動和調整大小的屬性。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是使用的方法,但是每次我收到一些錯誤。我需要的是具有上述代碼的擴展面板。

任何人都可以幫助我實現這一目標嗎?

+0

我同意Benoit,請張貼您遇到問題的擴展代碼 – dougajmcdonald

回答

1

你累了嗎?錯誤是什麼? 你應該remmeber從擴展方法中調用超類的構造函數。

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); 
       } 
});