[su_icon_text icon=”icon: info-circle” icon_color=”#5b63df” class=”saki-info-box”]Code in this post can be obsolete, however, principles and theory may still apply.[/su_icon_text]
See also:
- Writing a Big Application in Ext
- Abstract classes with Ext JS
- Factory Functions in Ext Extensions (Abstract Classes)
// vim: ts=4:sw=4:nu:fdc=2:nospell /*global Ext:true, AbstractPanel:true */ /*jslint browser:true, laxbreak:true */ // create namespace Ext.ns('AbstractPanel'); /** * @class AbstractPanel * @extends Ext.Panel * * AbstractPanel File Pattern * * @author Ing. Jozef Sakáloš * @copyright (c) 2010, Ing. Jozef Sakáloš * @version 1.0 * @revision $Id$ * @depends * * @see http://tdg-i.com/364/abstract-classes-with-ext-js * @see http://extjs-eu.omni8.net/writing-a-big-application-in-ext/ * @see http://extjs-eu.omni8.net/factory-functions-in-ext-extensions/ * * @license This file is released under the * <a href="http://www.gnu.org/licenses/gpl.html" target="_blank" data-mce-href="http://www.gnu.org/licenses/gpl.html">GNU GPL 3.0</a> * license. It’s free for use in GPL and GPL compatible open source software, * but if you want to use the component in a commercial software (closed source), * you have to get a commercial license. */ AbstractPanel = Ext.extend(Ext.Panel, { // default options - can be overridden on instantiation // Do NOT put arrays or objects here border:false // {{{ // private ,initComponent:function() { // create config object var config = {}; // build config this.buildConfig(config); // apply config Ext.apply(this, Ext.apply(this.initialConfig, config)); // call parent AbstractPanel.superclass.initComponent.call(this); } // eo function initComponent // }}} // {{{ /** * Builds the config object * @param {Object} config The config object is passed here * from initComponent by reference. Do not create or return * a new config object, add to the passed one instead. * * You can override this function if you need to customize it * or you can override individual build functions called. */ ,buildConfig:function(config) { this.buildItems(config); this.buildButtons(config); this.buildTbar(config); this.buildBbar(config); } // eo function buildConfig // }}} // {{{ /** * Builds items * @param {Object} config The config object is passed here * from buildConfig by reference. Do not create or return * a new config object, add to the passed one instead. * * You can override this function if you need to customize it. */ ,buildItems:function(config) { config.items = undefined; } // eo function buildItems // }}} // {{{ /** * Builds buttons * @param {Object} config The config object is passed here * from buildConfig by reference. Do not create or return * a new config object, add to the passed one instead. * * You can override this function if you need to customize it. */ ,buildButtons:function(config) { config.buttons = undefined; } // eo function buildButtons // }}} // {{{ /** * Builds top toolbar and its items * @param {Object} config The config object is passed here * from buildConfig by reference. Do not create or return * a new config object, add to the passed one instead. * * You can override this function if you need to customize it. */ ,buildTbar:function(config) { config.tbar = undefined; } // eo function buildTbar // }}} // {{{ /** * Builds bottom toolbar and its items * @param {Object} config The config object is passed here * from buildConfig by reference. Do not create or return * a new config object, add to the passed one instead. * * You can override this function if you need to customize it. */ ,buildBbar:function(config) { config.bbar = undefined; } // eo function buildBbar // }}} }); // eo extend // eof
I'm a well seasoned developer, consultant and educator of web applications based mainly on Sencha libraries, PHP, MySQL and Node.js. Besides (Apple) computers, I love photography and mountain biking.
Follow me:
Latest posts by saki (see all)
- Ext, Angular, React, and Vue - 27. June 2019
- The Site Resurgence - 11. February 2018
- Configuring ViewModel Hierarchy - 19. June 2015