/** * This is the base class for a file object. This one should be extended * by classes that generate content based on templates. */Ext.define('Ext.exporter.file.Base', { extend: 'Ext.exporter.data.Base', requires: [ 'Ext.XTemplate' ], /** * @private * @property {Ext.XTemplate} tpl * * Template used to render this element */ tpl: null, destroy: function(){ this.tpl = null; this.callParent(); }, /** * Renders the content according to the template provided to the class * * @returns {String} */ render: function(){ var me = this, data = me.processRenderData(me.getRenderData()); return me.tpl ? Ext.XTemplate.getTpl(me, 'tpl').apply(data) : ''; }, /** * Use this function to pre process the render data before applying it to the template * * @param {Object} data * @return {Object} * @private */ processRenderData: function(data){ return data; }, /** * Return the data used when rendering the template * * @return {Object} */ getRenderData: function(){ var data = this.getConfig(); data.self = this; return data; }});