Ext.onReady(function(){ // The action var action = new Ext.Action({ text: 'Action 1', handler: function(){ Ext.example.msg('Click','You clicked on "Action 1".'); }, iconCls: 'blist' }); var panel = new Ext.Panel({ title: 'Actions', width:600, height:300, bodyStyle: 'padding:10px;', // lazy inline style tbar: [ action, { // <-- Add the action directly to a toolbar text: 'Action Menu', menu: [action] // <-- Add the action directly to a menu } ], items: [ new Ext.Button(action) // <-- Add the action as a button ], renderTo: Ext.getBody() }); var tb = panel.getTopToolbar(); // Buttons added to the toolbar of the Panel above // to test/demo doing group operations with an action tb.add('->', { text: 'Disable', handler: function(){ action.setDisabled(!action.isDisabled()); this.setText(action.isDisabled() ? 'Enable' : 'Disable'); } }, { text: 'Change Text', handler: function(){ Ext.Msg.prompt('Enter Text', 'Enter new text for Action 1:', function(btn, text){ if(btn == 'ok' && text){ action.setText(text); action.setHandler(function(){ Ext.example.msg('Click','You clicked on "'+text+'".'); }); } }); } }, { text: 'Change Icon', handler: function(){ action.setIconClass(action.getIconClass() == 'blist' ? 'bmenu' : 'blist'); } }); tb.doLayout(); });