/** * This mixin is applied to {@link Ext.dataview.DataItem dataitem} and to * {@link Ext.dataview.SimpleListItem simplelistitem}. * @private * @since 6.5.0 */Ext.define('Ext.dataview.GenericItem', { mixinId: 'dataviewitem', isDataViewItem: true, config: { innerCls: null, contentCls: null, /** * @cfg {Number} recordIndex * The 0-based index of the record for this item in the {@link Ext.data.Store store}. * When using {@link Ext.data.virtual.Store virtual stores} it can happen that this * value is known when the {@link Ext.Component#cfg!record record} is not yet * known. * @since 6.5.0 */ recordIndex: null }, updateRecordIndex: function(value) { this.el.dom.setAttribute('data-recordindex', value); }, getDataview: function() { return this.parent; // backwards compat }, updateInnerCls: function(cls, old) { this.innerElement.replaceCls(old, cls); }, updateContentCls: function(cls, old) { this.getInnerHtmlElement().replaceCls(old, cls); }, privates: { $dirty: false, dirtyCls: Ext.baseCSSPrefix + 'dirty', augmentToolHandler: function(tool, args) { // args = [ dataitem, tool, ev ] ==> [ dataitem, info ] var me = this; args[1] = { event: args.pop(), item: me, list: me.parent, record: me.getRecord(), tool: args[1] }; }, handleEmptyText: function(html) { var parent; if (!html) { parent = this.parent; if (parent && parent.getEmptyItemText) { html = parent.getEmptyItemText(); } } return html; }, syncDirty: function(record) { var me = this, dirty = record ? record.dirty : false; if (dirty !== me.$dirty) { me.toggleCls(me.dirtyCls, dirty); me.$dirty = dirty; } } }});