Ext.namespace( 'instore.extlib.ui.grid' ); instore.extlib.ui.grid.DynamicGridCell = function(config) { if(config.vtype && instore.extlib.ui.Messages.validation[config.vtype]) config.vtypeText = instore.extlib.ui.Messages.validation[config.vtype]; config.maxLength = (config.xtype != "datefield") ? config.maxLength || Number.MAX_VALUE : Number.MAX_VALUE; instore.extlib.ui.util.Util.applyRecursive(config, { blankText: instore.extlib.ui.Messages.validation.blankText, maxLengthText : instore.extlib.ui.Messages.validation.maxLengthText, listeners: { "focus": function() { this.clearInvalid() } }, viewEl: null, setViewEl: function(el) { this.viewEl = el; }, markInvalid: function(msg) { if(this.viewEl != null) { Ext.apply(this, { realEl: this.el, realRendered: this.rendered, el: this.viewEl, rendered: true }); Ext.form[this.objName].superclass.markInvalid.call(this, msg); Ext.apply(this, { el: this.realEl, rendered: this.realRendered}); } else Ext.form[this.objName].superclass.markInvalid.call(this, msg); }, clearInvalid: function(msg) { if(this.viewEl != null) { Ext.apply(this, { realEl: this.el, realRendered: this.rendered, el: this.viewEl, rendered: true }); Ext.form[this.objName].superclass.clearInvalid.call(this); Ext.apply(this, { el: this.realEl, rendered: this.realRendered, viewEl: null}); } else Ext.form[this.objName].superclass.clearInvalid.call(this); } }); if(config.xtype == "datefield") { Ext.apply(config, { invalidText: instore.extlib.ui.Messages.validation.invalidDateText, minText: instore.extlib.ui.Messages.validation.minDateText, maxText: instore.extlib.ui.Messages.validation.maxDateText }); }; var xtypes_names = { textfield: "TextField", numberfield: "NumberField", datefield: "DateField", checkbox: 'Checkbox', combo: "ComboBox", monthcombo: "ComboBox", fourmonthcombo: "ComboBox", sixmonthcombo: "ComboBox", yearcombo: "ComboBox" }; config.objName = (config.xtype) ? xtypes_names[config.xtype] : xtypes_names["textfield"]; return Ext.ComponentMgr.create(config, "textfield"); };