Ответ 1
Контекстное меню - это просто плавающее меню, поэтому просто возьмите контекстное меню и покажите меню. Так как кнопка не имеет контекстного меню, вы можете напрямую захватить htmlelement (или обертку Element) и прослушать событие contextmenu
пример:
contextMenu = new Ext.menu.Menu({
items: [{
text: 'Edit',
iconCls: 'edit',
handler: edit
}]
});
Ext.getCmp('your-button').getEl().on('contextmenu', function(e) {
e.preventDefault();
contextMenu.show(Ext.getCmp('your-button').getEl());
});