extjs-gpl
Version:
GPL licensed version of Sencha Ext JS
68 lines (59 loc) • 2.29 kB
JavaScript
/**
* The legend base class adapater for classic toolkit.
*/
Ext.define('Ext.chart.legend.LegendBase', {
extend: 'Ext.view.View',
config: {
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>'
],
nodeContainerSelector: 'div.' + Ext.baseCSSPrefix + 'legend-inner', // element that contains rows (see AbstractView)
itemSelector: 'div.' + Ext.baseCSSPrefix + 'legend-item', // row element (see AbstractView)
docked: 'bottom'
},
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);
}
});