X-Git-Url: http://git.roojs.org/?p=roojs1;a=blobdiff_plain;f=docs.old%2Fsymbols%2Fsrc%2FRoo_form_GridField.js.html;fp=docs.old%2Fsymbols%2Fsrc%2FRoo_form_GridField.js.html;h=f6ac068240d20f17c8fce302e333ded84f01cdec;hp=0000000000000000000000000000000000000000;hb=c1c0168c0e693c4262f3f744a82419f9d9b1807f;hpb=b282409b66344f6d0ff1999b55639cfd80097128 diff --git a/docs.old/symbols/src/Roo_form_GridField.js.html b/docs.old/symbols/src/Roo_form_GridField.js.html new file mode 100644 index 0000000000..f6ac068240 --- /dev/null +++ b/docs.old/symbols/src/Roo_form_GridField.js.html @@ -0,0 +1,140 @@ +../roojs1/Roo/form/GridField.js//<script type="text/javascript"> +/** + * @class Roo.form.GridField + * @extends Roo.form.Field + * Embed a grid (or editable grid into a form) + * STATUS ALPHA + * + * This embeds a grid in a form, the value of the field should be the json encoded array of rows + * it needs + * xgrid.store = Roo.data.Store + * xgrid.store.proxy = Roo.data.MemoryProxy (data = [] ) + * xgrid.store.reader = Roo.data.JsonReader + * + * + * @constructor + * Creates a new GridField + * @param {Object} config Configuration options + */ +Roo.form.GridField = function(config){ + Roo.form.GridField.superclass.constructor.call(this, config); + +}; + +Roo.extend(Roo.form.GridField, Roo.form.Field, { + /** + * @cfg {Number} width - used to restrict width of grid.. + */ + width : 100, + /** + * @cfg {Number} height - used to restrict height of grid.. + */ + height : 50, + /** + * @cfg {Object} xgrid (xtype'd description of grid) { xtype : 'Grid', dataSource: .... } + * + *} + */ + xgrid : false, + /** + * @cfg {String/Object} autoCreate A DomHelper element spec, or true for a default element spec (defaults to + * {tag: "input", type: "checkbox", autocomplete: "off"}) + */ + // defaultAutoCreate : { tag: 'div' }, + defaultAutoCreate : { tag: 'input', type: 'hidden', autocomplete: 'new-password'}, + /** + * @cfg {String} addTitle Text to include for adding a title. + */ + addTitle : false, + // + onResize : function(){ + Roo.form.Field.superclass.onResize.apply(this, arguments); + }, + + initEvents : function(){ + // Roo.form.Checkbox.superclass.initEvents.call(this); + // has no events... + + }, + + + getResizeEl : function(){ + return this.wrap; + }, + + getPositionEl : function(){ + return this.wrap; + }, + + // private + onRender : function(ct, position){ + + this.style = this.style || 'overflow: hidden; border:1px solid #c3daf9;'; + var style = this.style; + delete this.style; + + Roo.form.GridField.superclass.onRender.call(this, ct, position); + this.wrap = this.el.wrap({cls: ''}); // not sure why ive done thsi... + this.viewEl = this.wrap.createChild({ tag: 'div' }); + if (style) { + this.viewEl.applyStyles(style); + } + if (this.width) { + this.viewEl.setWidth(this.width); + } + if (this.height) { + this.viewEl.setHeight(this.height); + } + //if(this.inputValue !== undefined){ + //this.setValue(this.value); + + + this.grid = new Roo.grid[this.xgrid.xtype](this.viewEl, this.xgrid); + + + this.grid.render(); + this.grid.getDataSource().on('remove', this.refreshValue, this); + this.grid.getDataSource().on('update', this.refreshValue, this); + this.grid.on('afteredit', this.refreshValue, this); + + }, + + + /** + * Sets the value of the item. + * @param {String} either an object or a string.. + */ + setValue : function(v){ + //this.value = v; + v = v || []; // empty set.. + // this does not seem smart - it really only affects memoryproxy grids.. + if (this.grid && this.grid.getDataSource() && typeof(v) != 'undefined') { + var ds = this.grid.getDataSource(); + // assumes a json reader.. + var data = {} + data[ds.reader.meta.root ] = typeof(v) == 'string' ? Roo.decode(v) : v; + ds.loadData( data); + } + // clear selection so it does not get stale. + if (this.grid.sm) { + this.grid.sm.clearSelections(); + } + + Roo.form.GridField.superclass.setValue.call(this, v); + this.refreshValue(); + // should load data in the grid really.... + }, + + // private + refreshValue: function() { + var val = []; + this.grid.getDataSource().each(function(r) { + val.push(r.data); + }); + this.el.dom.value = Roo.encode(val); + } + + + + +}); \ No newline at end of file