1.写extjs plugin插件关键是知道它的的父块是谁,在插件里this.cmp就能获取载入的父级容器
2.插件init()是继承于observable ,这个方法必不可少,执行于initComponent()之后,可以在此处注册父级容器的事件句柄
以达到关联的作用。木想到插件还是挺容易写的.
Ext.define("Ext.ux.ContextMenu",{
extend:"Ext.AbstractPlugin"
,alias:"plugin.contextMenu"
,mixins:["Ext.util.Observable"]
,owner:""
,menu:""
,config:{ }
,constructor:function(config){
var me=this;
Ext.apply(this.config,config);
me.callParent([config]);
}
,init:function(){
var me=this;
me.owner=me.cmp.itemView;
me.menu=me.getMenu();
me.owner.on("itemcontextmenu",me.doMenu,me);
}
,getMenu:function(){
var me=this;
return Ext.create("Ext.menu.Menu",{
50
,bodyCls:"baseColor"
,plain:false
,items:[{
text:"delete"
,handler:function(){
alert("hi");
}
}
,{
text:"上移"
}
,{
text:"下移"
}]
});
}
,doMenu:function(owner,record,item,index,e,eOpsts){
var me=this;
e.preventDefault();
me.menu.showAt(e.xy,true);
}
});