Subversion Repositories Applications.papyrus

Rev

Blame | Last modification | View Log | RSS feed

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);
                        });
                }
        }
});

}