Blame | Last modification | View Log | RSS feed
if(!dojo._hasResource["dojox.grid._data.dijitEditors"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.dojo._hasResource["dojox.grid._data.dijitEditors"] = true;dojo.provide("dojox.grid._data.dijitEditors");dojo.require("dojox.grid._data.editors");dojo.require("dijit.form.DateTextBox");dojo.require("dijit.form.TimeTextBox");dojo.require("dijit.form.ComboBox");dojo.require("dijit.form.CheckBox");dojo.require("dijit.form.TextBox");dojo.require("dijit.form.NumberSpinner");dojo.require("dijit.form.NumberTextBox");dojo.require("dijit.form.CurrencyTextBox");dojo.require("dijit.form.Slider");dojo.require("dijit.Editor");dojo.declare("dojox.grid.editors.Dijit", dojox.grid.editors.base, {editorClass: "dijit.form.TextBox",constructor: function(inCell){this.editor = null;this.editorClass = dojo.getObject(this.cell.editorClass || this.editorClass);},format: function(inDatum, inRowIndex){this.needFormatNode(inDatum, inRowIndex);return "<div></div>";},getValue: function(inRowIndex){return this.editor.getValue();},setValue: function(inRowIndex, inValue){if(this.editor&&this.editor.setValue){this.editor.setValue(inValue);}else{this.inherited(arguments);}},getEditorProps: function(inDatum){return dojo.mixin({}, this.cell.editorProps||{}, {constraints: dojo.mixin({}, this.cell.constraint) || {}, //TODO: really just for ValidationTextBoxesvalue: inDatum});},createEditor: function(inNode, inDatum, inRowIndex){return new this.editorClass(this.getEditorProps(inDatum), inNode);},attachEditor: function(inNode, inDatum, inRowIndex){inNode.appendChild(this.editor.domNode);this.setValue(inRowIndex, inDatum);},formatNode: function(inNode, inDatum, inRowIndex){if(!this.editorClass){return inDatum;}if(!this.editor){this.editor = this.createEditor.apply(this, arguments);}else{this.attachEditor.apply(this, arguments);}this.sizeEditor.apply(this, arguments);this.cell.grid.rowHeightChanged(inRowIndex);this.focus();},sizeEditor: function(inNode, inDatum, inRowIndex){varp = this.cell.getNode(inRowIndex),box = dojo.contentBox(p);dojo.marginBox(this.editor.domNode, {w: box.w});},focus: function(inRowIndex, inNode){if(this.editor){setTimeout(dojo.hitch(this.editor, function(){dojox.grid.fire(this, "focus");}), 0);}},_finish: function(inRowIndex){this.inherited(arguments);dojox.grid.removeNode(this.editor.domNode);}});dojo.declare("dojox.grid.editors.ComboBox", dojox.grid.editors.Dijit, {editorClass: "dijit.form.ComboBox",getEditorProps: function(inDatum){var items=[];dojo.forEach(this.cell.options, function(o){items.push({name: o, value: o});});var store = new dojo.data.ItemFileReadStore({data: {identifier:"name", items: items}});return dojo.mixin({}, this.cell.editorProps||{}, {value: inDatum,store: store});},getValue: function(){var e = this.editor;// make sure to apply the displayed valuee.setDisplayedValue(e.getDisplayedValue());return e.getValue();}});dojo.declare("dojox.grid.editors.DateTextBox", dojox.grid.editors.Dijit, {editorClass: "dijit.form.DateTextBox",setValue: function(inRowIndex, inValue){if(this.editor){this.editor.setValue(new Date(inValue));}else{this.inherited(arguments);}},getEditorProps: function(inDatum){return dojo.mixin(this.inherited(arguments), {value: new Date(inDatum)});}});dojo.declare("dojox.grid.editors.CheckBox", dojox.grid.editors.Dijit, {editorClass: "dijit.form.CheckBox",getValue: function(){return this.editor.checked;}});dojo.declare("dojox.grid.editors.Editor", dojox.grid.editors.Dijit, {editorClass: "dijit.Editor",getEditorProps: function(inDatum){return dojo.mixin({}, this.cell.editorProps||{}, {height: this.cell.editorHeight || "100px"});},createEditor: function(inNode, inDatum, inRowIndex){// editor needs its value set after creationvar editor = new this.editorClass(this.getEditorProps(inDatum), inNode);editor.setValue(inDatum);return editor;},formatNode: function(inNode, inDatum, inRowIndex){this.inherited(arguments);// FIXME: seem to need to reopen the editor and display the toolbarvar e = this.editor;e.open();if(this.cell.editorToolbar){dojo.place(e.toolbar.domNode, e.editingArea, "before");}}});}