工厂方法在Ext扩展中的运用

来源:互联网 发布:爱普生r330清零软件 编辑:程序博客网 时间:2024/05/17 08:22
Ext.ns('MyApp'); MyApp.AbstractFormPanel = Ext.extend(Ext.form.FormPanel, {     submitUrl:null    ,initComponent:function() {        // create config object
        var config = {};         // build config        this.buildConfig(config);         // apply config        Ext.apply(this, Ext.apply(this.initialConfig, config));         // call parent        MyApp.AbstractFormPanel.superclass.initComponent.call(this);     } // eo function initComponent     ,buildConfig:function(config) {        this.buildItems(config);        this.buildButtons(config);        this.buildTbar(config);        this.buildBbar(config);    } // eo function buildConfig     ,buildItems:function(config) {        config.items = undefined;    } // eo function buildItems     ,buildButtons:function(config) {        config.buttons = undefined;    } // eo function buildButtons     ,buildTbar:function(config) {        config.tbar = undefined;    } // eo function buildTbar     ,buildBbar:function(config) {        config.bbar = undefined;    } // eo function buildBbar }); // eo extend

例如

Ext.ns('MyApp'); MyApp.AbstractFormPanel = Ext.extend(Ext.form.FormPanel, {     defaultType:'textfield'    ,frame:true    ,width:300    ,height:200    ,labelWidth:75    ,submitUrl:null    ,submitT:'Submit'    ,cancelT:'Cancel'    ,initComponent:function() {         // create config object        var config = {            defaults:{anchor:'-10'}        };         // build config        this.buildConfig(config);         // apply config        Ext.apply(this, Ext.apply(this.initialConfig, config));         // call parent        MyApp.AbstractFormPanel.superclass.initComponent.call(this);     } // eo function initComponent     ,buildConfig:function(config) {        this.buildItems(config);        this.buildButtons(config);        this.buildTbar(config);        this.buildBbar(config);    } // eo function buildConfig     ,buildItems:function(config) {        config.items = undefined;    } // eo function buildItems     ,buildButtons:function(config) {        config.buttons = [{             text:this.submitT            ,scope:this            ,handler:this.onSubmit            ,iconCls:'icon-disk'        },{             text:this.cancelT            ,scope:this            ,handler:this.onCancel            ,iconCls:'icon-undo'        }];    } // eo function buildButtons     ,buildTbar:function(config) {        config.tbar = undefined;    } // eo function buildTbar     ,buildBbar:function(config) {        config.bbar = undefined;    } // eo function buildBbar     ,onSubmit:function() {        Ext.MessageBox.alert('Submit', this.submitUrl);    } // eo function onSubmit     ,onCancel:function() {        this.el.mask('This form is canceled');    } // eo function onCancel }); // eo extend

转自http://blog.extjs.eu/know-how/factory-functions-in-ext-extensions/

原创粉丝点击