diff options
Diffstat (limited to 'includes/js/dojox/grid/_grid/edit.js')
-rw-r--r-- | includes/js/dojox/grid/_grid/edit.js | 238 |
1 files changed, 0 insertions, 238 deletions
diff --git a/includes/js/dojox/grid/_grid/edit.js b/includes/js/dojox/grid/_grid/edit.js deleted file mode 100644 index d918423..0000000 --- a/includes/js/dojox/grid/_grid/edit.js +++ /dev/null @@ -1,238 +0,0 @@ -if(!dojo._hasResource["dojox.grid._grid.edit"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. -dojo._hasResource["dojox.grid._grid.edit"] = true; -dojo.provide("dojox.grid._grid.edit"); - -dojo.declare("dojox.grid.edit", null, { - // summary: - // Controls grid cell editing process. Owned by grid and used internally for editing. - constructor: function(inGrid){ - // inGrid: dojox.Grid - // The dojox.Grid this editor should be attached to - this.grid = inGrid; - this.connections = []; - if(dojo.isIE){ - this.connections.push(dojo.connect(document.body, "onfocus", dojo.hitch(this, "_boomerangFocus"))); - } - }, - - info: {}, - - destroy: function(){ - dojo.forEach(this.connections,dojo.disconnect); - }, - - cellFocus: function(inCell, inRowIndex){ - // summary: - // Invoke editing when cell is focused - // inCell: cell object - // Grid cell object - // inRowIndex: Integer - // Grid row index - if(this.grid.singleClickEdit || this.isEditRow(inRowIndex)){ - // if same row or quick editing, edit - this.setEditCell(inCell, inRowIndex); - }else{ - // otherwise, apply any pending row edits - this.apply(); - } - // if dynamic or static editing... - if(this.isEditing() || (inCell && (inCell.editor||0).alwaysOn)){ - // let the editor focus itself as needed - this._focusEditor(inCell, inRowIndex); - } - }, - - rowClick: function(e){ - if(this.isEditing() && !this.isEditRow(e.rowIndex)){ - this.apply(); - } - }, - - styleRow: function(inRow){ - if(inRow.index == this.info.rowIndex){ - inRow.customClasses += ' dojoxGrid-row-editing'; - } - }, - - dispatchEvent: function(e){ - var c = e.cell, ed = c && c.editor; - return ed && ed.dispatchEvent(e.dispatch, e); - }, - - // Editing - isEditing: function(){ - // summary: - // Indicates editing state of the grid. - // returns: Boolean - // True if grid is actively editing - return this.info.rowIndex !== undefined; - }, - - isEditCell: function(inRowIndex, inCellIndex){ - // summary: - // Indicates if the given cell is being edited. - // inRowIndex: Integer - // Grid row index - // inCellIndex: Integer - // Grid cell index - // returns: Boolean - // True if given cell is being edited - return (this.info.rowIndex === inRowIndex) && (this.info.cell.index == inCellIndex); - }, - - isEditRow: function(inRowIndex){ - // summary: - // Indicates if the given row is being edited. - // inRowIndex: Integer - // Grid row index - // returns: Boolean - // True if given row is being edited - return this.info.rowIndex === inRowIndex; - }, - - setEditCell: function(inCell, inRowIndex){ - // summary: - // Set the given cell to be edited - // inRowIndex: Integer - // Grid row index - // inCell: Object - // Grid cell object - if(!this.isEditCell(inRowIndex, inCell.index) && this.grid.canEdit(inCell, inRowIndex)){ - this.start(inCell, inRowIndex, this.isEditRow(inRowIndex) || inCell.editor); - } - }, - - _focusEditor: function(inCell, inRowIndex){ - dojox.grid.fire(inCell.editor, "focus", [inRowIndex]); - }, - - focusEditor: function(){ - if(this.isEditing()){ - this._focusEditor(this.info.cell, this.info.rowIndex); - } - }, - - // implement fix for focus boomerang effect on IE - _boomerangWindow: 500, - _shouldCatchBoomerang: function(){ - return this._catchBoomerang > new Date().getTime(); - }, - _boomerangFocus: function(){ - //console.log("_boomerangFocus"); - if(this._shouldCatchBoomerang()){ - // make sure we don't utterly lose focus - this.grid.focus.focusGrid(); - // let the editor focus itself as needed - this.focusEditor(); - // only catch once - this._catchBoomerang = 0; - } - }, - _doCatchBoomerang: function(){ - // give ourselves a few ms to boomerang IE focus effects - if(dojo.isIE){this._catchBoomerang = new Date().getTime() + this._boomerangWindow;} - }, - // end boomerang fix API - - start: function(inCell, inRowIndex, inEditing){ - this.grid.beginUpdate(); - this.editorApply(); - if(this.isEditing() && !this.isEditRow(inRowIndex)){ - this.applyRowEdit(); - this.grid.updateRow(inRowIndex); - } - if(inEditing){ - this.info = { cell: inCell, rowIndex: inRowIndex }; - this.grid.doStartEdit(inCell, inRowIndex); - this.grid.updateRow(inRowIndex); - }else{ - this.info = {}; - } - this.grid.endUpdate(); - // make sure we don't utterly lose focus - this.grid.focus.focusGrid(); - // let the editor focus itself as needed - this._focusEditor(inCell, inRowIndex); - // give ourselves a few ms to boomerang IE focus effects - this._doCatchBoomerang(); - }, - - _editorDo: function(inMethod){ - var c = this.info.cell - //c && c.editor && c.editor[inMethod](c, this.info.rowIndex); - c && c.editor && c.editor[inMethod](this.info.rowIndex); - }, - - editorApply: function(){ - this._editorDo("apply"); - }, - - editorCancel: function(){ - this._editorDo("cancel"); - }, - - applyCellEdit: function(inValue, inCell, inRowIndex){ - if(this.grid.canEdit(inCell, inRowIndex)){ - this.grid.doApplyCellEdit(inValue, inRowIndex, inCell.fieldIndex); - } - }, - - applyRowEdit: function(){ - this.grid.doApplyEdit(this.info.rowIndex); - }, - - apply: function(){ - // summary: - // Apply a grid edit - if(this.isEditing()){ - this.grid.beginUpdate(); - this.editorApply(); - this.applyRowEdit(); - this.info = {}; - this.grid.endUpdate(); - this.grid.focus.focusGrid(); - this._doCatchBoomerang(); - } - }, - - cancel: function(){ - // summary: - // Cancel a grid edit - if(this.isEditing()){ - this.grid.beginUpdate(); - this.editorCancel(); - this.info = {}; - this.grid.endUpdate(); - this.grid.focus.focusGrid(); - this._doCatchBoomerang(); - } - }, - - save: function(inRowIndex, inView){ - // summary: - // Save the grid editing state - // inRowIndex: Integer - // Grid row index - // inView: Object - // Grid view - var c = this.info.cell; - if(this.isEditRow(inRowIndex) && (!inView || c.view==inView) && c.editor){ - c.editor.save(c, this.info.rowIndex); - } - }, - - restore: function(inView, inRowIndex){ - // summary: - // Restores the grid editing state - // inRowIndex: Integer - // Grid row index - // inView: Object - // Grid view - var c = this.info.cell; - if(this.isEditRow(inRowIndex) && c.view == inView && c.editor){ - c.editor.restore(c, this.info.rowIndex); - } - } -}); - -} |