New file |
0,0 → 1,66 |
if(!dojo._hasResource["dojox.grid._grid.cell"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. |
dojo._hasResource["dojox.grid._grid.cell"] = true; |
dojo.provide("dojox.grid._grid.cell"); |
|
dojo.declare("dojox.grid.cell", null, { |
// summary: |
// Respresents a grid cell and contains information about column options and methods |
// for retrieving cell related information. |
// Each column in a grid layout has a cell object and most events and many methods |
// provide access to these objects. |
styles: '', |
constructor: function(inProps){ |
dojo.mixin(this, inProps); |
if(this.editor){this.editor = new this.editor(this);} |
}, |
// data source |
format: function(inRowIndex){ |
// summary: |
// provides the html for a given grid cell. |
// inRowIndex: int |
// grid row index |
// returns: html for a given grid cell |
var f, i=this.grid.edit.info, d=this.get ? this.get(inRowIndex) : this.value; |
if(this.editor && (this.editor.alwaysOn || (i.rowIndex==inRowIndex && i.cell==this))){ |
return this.editor.format(d, inRowIndex); |
}else{ |
return (f = this.formatter) ? f.call(this, d, inRowIndex) : d; |
} |
}, |
// utility |
getNode: function(inRowIndex){ |
// summary: |
// gets the dom node for a given grid cell. |
// inRowIndex: int |
// grid row index |
// returns: dom node for a given grid cell |
return this.view.getCellNode(inRowIndex, this.index); |
}, |
isFlex: function(){ |
var uw = this.unitWidth; |
return uw && (uw=='auto' || uw.slice(-1)=='%'); |
}, |
// edit support |
applyEdit: function(inValue, inRowIndex){ |
this.grid.edit.applyCellEdit(inValue, this, inRowIndex); |
}, |
cancelEdit: function(inRowIndex){ |
this.grid.doCancelEdit(inRowIndex); |
}, |
_onEditBlur: function(inRowIndex){ |
if(this.grid.edit.isEditCell(inRowIndex, this.index)){ |
//console.log('editor onblur', e); |
this.grid.edit.apply(); |
} |
}, |
registerOnBlur: function(inNode, inRowIndex){ |
if(this.commitOnBlur){ |
dojo.connect(inNode, "onblur", function(e){ |
// hack: if editor still thinks this editor is current some ms after it blurs, assume we've focused away from grid |
setTimeout(dojo.hitch(this, "_onEditBlur", inRowIndex), 250); |
}); |
} |
} |
}); |
|
} |