]> git.pond.sub.org Git - eow/blobdiff - static/dojo-release-1.1.1/dojox/grid/_grid/cell.js
add Dojo 1.1.1
[eow] / static / dojo-release-1.1.1 / dojox / grid / _grid / cell.js
diff --git a/static/dojo-release-1.1.1/dojox/grid/_grid/cell.js b/static/dojo-release-1.1.1/dojox/grid/_grid/cell.js
new file mode 100644 (file)
index 0000000..52f92e8
--- /dev/null
@@ -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);
+                       });
+               }
+       }
+});
+
+}