Ext.namespace('Zarafa.addressbook.ui');
* @class Zarafa.addressbook.ui.AddressBookContextMenu
* @extends Zarafa.core.ui.menu.ConditionalMenu
* @xtype zarafa.addressbookcontextmenu
*
* The context menu for the {@link Zarafa.addressbook.ui.AddressBookPanel AddressBookPanel}.
*/
Zarafa.addressbook.ui.AddressBookContextMenu = Ext.extend(Zarafa.core.ui.menu.ConditionalMenu, {
// Insertion points for this class
* @insert context.addressbook.contextmenu.actions
* Insertion point for adding extra context menu items in this context menu.
* @param {Zarafa.addressbook.ui.AddressBookContextMenu} contextmeny This contextmenu
*/
* @cfg {Boolean} enableSelect Enable the "Select" menu item. This requires a special handler
* to be provided which is called when a particular recipient or recipients have been selected.
*/
enableSelect : false,
/**
* @cfg {Function} selectHandler Only used when {@link #enableSelect} is true. This function
* is called when the "select" button has been pressed. This function will be called with
* the selected {@link Ext.data.Record records} as argument.
*/
selectHandler : undefined,
* @cfg {Object} selectScope The scope in which {@link #selectHandler} will be called.
*/
selectScope : undefined,
* @cfg {Zarafa.core.ui.ContentPanel} contentpanel The content panel from where the contextmenu is requested
*/
dialog : undefined,
* @constructor
* @param {Object} config Configuration object
*/
constructor : function(config)
{
config = config || {};
Ext.applyIf(config, {
items: [{
xtype: 'zarafa.conditionalitem',
text: _('Select'),
// iconCls: FIXME
beforeShow : function(item, records) { item.setDisabled(!this.enableSelect); },
handler: this.onSelect,
scope: this
},{
xtype: 'zarafa.conditionalitem',
text: _('Show Details'),
iconCls: 'icon_contact',
singleSelectOnly: true,
handler: this.onOpenDetails,
scope: this
},{
xtype: 'menuseparator'
},
container.populateInsertionPoint('context.addressbook.contextmenu.actions', this)
]
});
Zarafa.addressbook.ui.AddressBookContextMenu.superclass.constructor.call(this, config);
},
* Event handler which is called when the "Select" item has been selected. This
* will obtain the current {@link #records} and pass them to {@link #selectHandler}.
* @private
*/
onSelect : function()
{
if (Ext.isFunction(this.selectHandler)) {
this.selectHandler.call(this.selectScope || this, this.records);
}
},
* Event handler which is called when the "Details" item has been selected. This
* will obtain the current {@link #records} and use them to open the
* {@link Zarafa.addressbook.Actions#openDetailsContent details dialog}.
* @private
*/
onOpenDetails : function()
{
Zarafa.addressbook.Actions.openDetailsContent(this.records);
}
});
Ext.reg('zarafa.addressbookcontextmenu', Zarafa.addressbook.ui.AddressBookContextMenu);