2011-09-28 62 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); 
       } 
});