/** * @private */Ext.define('Ext.pivot.plugin.configurator.window.Window', { extend: 'Ext.window.Window', requires: [ 'Ext.form.Panel', 'Ext.form.FieldContainer', 'Ext.form.field.Text', 'Ext.form.field.Hidden', 'Ext.form.field.ComboBox', 'Ext.layout.container.HBox' ], modal: true, closeAction: 'destroy', initComponent: function(){ var me = this; Ext.apply(me, { layout: 'fit', items: [ me.getSettingsForm() ], buttons: [{ text: Ext.Msg.buttonText.ok, handler: me.applySettings, scope: me },{ text: Ext.Msg.buttonText.cancel, handler: me.cancelSettings, scope: me }] }); return me.callParent(arguments); }, /** * @method * Override to change settings before applying them. Return false to cancel changes. * * @param {Object} settings */ beforeApplySettings: Ext.emptyFn, /** * Override to supply own form for settings */ getSettingsForm: function(){ return { xtype: 'form', bodyPadding:5, items: [] }; }, loadSettings: function(settings){ var form = this.down('form'); if(form){ form.getForm().setValues(settings || {}); } }, applySettings: function(){ var form = this.down('form'), settings; if(form && form.getForm().isValid()) { settings = form.getForm().getValues(); if(this.beforeApplySettings(settings) !== false){ if(this.fireEvent('applysettings', this, settings) !== false){ this.cancelSettings(); } } } }, cancelSettings: function(){ this.close(); }});