Mercurial > lada > lada-client
diff app/override/RowEditor.js @ 570:1f6a22107c8c
Added override for RowEditor.
author | Raimund Renkert <raimund.renkert@intevation.de> |
---|---|
date | Tue, 10 Mar 2015 12:09:50 +0100 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/override/RowEditor.js Tue Mar 10 12:09:50 2015 +0100 @@ -0,0 +1,61 @@ +/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=3) + * and comes with ABSOLUTELY NO WARRANTY! Check out + * the documentation coming with IMIS-Labordaten-Application for details. + */ + +Ext.define('Lada.override.RowEditor', { + override: 'Ext.grid.RowEditor', + + addFieldsForColumn: function(column, initial) { + var me = this, + i, + length, field; + + if (Ext.isArray(column)) { + for (i = 0, length = column.length; i < length; i++) { + me.addFieldsForColumn(column[i], initial); + } + return; + } + + if (column.getEditor) { + // Get a default display field if necessary + field = column.getEditor(null, { + xtype: 'displayfield', + // Override Field's implementation so that the default display fields will not return values. This is done because + // the display field will pick up column renderers from the grid. + getModelData: function() { + return null; + } + }); + if (column.align === 'right') { + field.fieldStyle = 'text-align:right'; + } + + if (column.xtype === 'actioncolumn') { + field.fieldCls += ' ' + Ext.baseCSSPrefix + 'form-action-col-field' + } + + if (me.isVisible() && me.context) { + if (field.is('displayfield')) { + me.renderColumnData(field, me.context.record, column); + } + else { + field.suspendEvents(); + field.setValue(me.context.record.get(column.dataIndex)); + field.resumeEvents(); + } + } + if (column.hidden) { + me.onColumnHide(column); + } else if (column.rendered && !initial) { + // Setting after initial render + me.onColumnShow(column); + } + } + me.mon(field, 'change', me.onFieldChange, me); + } +});