/**
* The legend base class adapater for classic toolkit.
*/
Ext.define('Ext.chart.legend.LegendBase', {
extend: 'Ext.view.View',
config: {
/* eslint-disable indent, max-len */
tpl: [
'<div class="', Ext.baseCSSPrefix, 'legend-inner">', // for IE8 vertical centering
'<div class="', Ext.baseCSSPrefix, 'legend-container">',
'<tpl for=".">',
'<div class="', Ext.baseCSSPrefix, 'legend-item">',
'<span ',
'class="', Ext.baseCSSPrefix, 'legend-item-marker {[ values.disabled ? Ext.baseCSSPrefix + \'legend-item-inactive\' : \'\' ]}" ',
'style="background:{mark};">',
'</span>{name}',
'</div>',
'</tpl>',
'</div>',
'</div>'
],
/* eslint-enable indent,max-len */
// element that contains rows (see AbstractView)
nodeContainerSelector: 'div.' + Ext.baseCSSPrefix + 'legend-inner',
// row element (see AbstractView)
itemSelector: 'div.' + Ext.baseCSSPrefix + 'legend-item',
/**
* @cfg {String} docked
* The dock position of this component in its container. Can be `left`, `top`, `right`,
* or `bottom`.
*/
docked: 'bottom'
/**
* @cfg dock
* @hide
*/
},
setDocked: function(docked) {
// If we call the method 'updateDocked' instead of 'setDocked', the following error
// is thrown: "Ext.Component#setDocked" is deprecated. Please use "setDock" instead.
var me = this,
panel = me.ownerCt;
me.docked = me.dock = docked;
switch (docked) {
case 'top':
case 'bottom':
me.addCls(me.horizontalCls);
me.removeCls(me.verticalCls);
break;
case 'left':
case 'right':
me.addCls(me.verticalCls);
me.removeCls(me.horizontalCls);
break;
}
if (panel) {
panel.setDock(docked);
}
},
setStore: function(store) {
this.bindStore(store);
},
clearViewEl: function() {
this.callParent(arguments);
// The legend-container div is not removed automatically.
Ext.removeNode(this.getNodeContainer());
},
onItemClick: function(record, item, index, e) {
this.callParent(arguments);
this.toggleItem(index);
}
});