summaryrefslogtreecommitdiff
path: root/includes/js/dojox/grid/_grid/edit.js
diff options
context:
space:
mode:
Diffstat (limited to 'includes/js/dojox/grid/_grid/edit.js')
-rw-r--r--includes/js/dojox/grid/_grid/edit.js238
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);
- }
- }
-});
-
-}