define("dojox/grid/cells/tree", [
"dojo/_base/kernel",
"../../main",
"dojo/_base/lang",
"../cells"
], function(dojo, dojox, lang){
dojox.grid.cells.TreeCell = {
formatAggregate: function(inItem, level, inRowIndexes){
var f, g=this.grid, i=g.edit.info,
d=g.aggregator ? g.aggregator.getForCell(this, level, inItem, level === this.level ? "cnt" : this.parentCell.aggregate) : (this.value || this.defaultValue);
return this._defaultFormat(d, [d, level - this.level, inRowIndexes, this]);
},
formatIndexes: function(inRowIndexes, inItem){
var f, g=this.grid, i=g.edit.info,
d=this.get ? this.get(inRowIndexes[0], inItem, inRowIndexes) : (this.value || this.defaultValue);
if(this.editable && (this.alwaysEditing || (i.rowIndex==inRowIndexes[0] && i.cell==this))){
return this.formatEditing(d, inRowIndexes[0], inRowIndexes);
}else{
return this._defaultFormat(d, [d, inRowIndexes[0], inRowIndexes, this]);
}
},
getOpenState: function(itemId){
var grid = this.grid, store = grid.store, itm = null;
if(store.isItem(itemId)){
itm = itemId;
itemId = store.getIdentity(itemId);
}
if(!this.openStates){ this.openStates = {}; }
if(typeof itemId != "string" || !(itemId in this.openStates)){
this.openStates[itemId] = grid.getDefaultOpenState(this, itm);
}
return this.openStates[itemId];
},
formatAtLevel: function(inRowIndexes, inItem, level, summaryRow, toggleClass, cellClasses){
if(!lang.isArray(inRowIndexes)){
inRowIndexes = [inRowIndexes];
}
var result = "";
if(level > this.level || (level === this.level && summaryRow)){
cellClasses.push("dojoxGridSpacerCell");
if(level === this.level){
cellClasses.push("dojoxGridTotalCell");
}
result = '';
}else if(level < this.level){
cellClasses.push("dojoxGridSummaryCell");
result = '' + this.formatAggregate(inItem, level, inRowIndexes) + '';
}else{
var ret = "";
if(this.isCollapsable){
var store = this.grid.store, id = "";
if(store.isItem(inItem)){
id = store.getIdentity(inItem);
}
cellClasses.push("dojoxGridExpandoCell");
ret = '';
}
result = ret + this.formatIndexes(inRowIndexes, inItem);
}
if(this.grid.focus.cell && this.index == this.grid.focus.cell.index &&
inRowIndexes.join('/') == this.grid.focus.rowIndex){
cellClasses.push(this.grid.focus.focusClass);
}
return result;
}
};
return dojox.grid.cells.TreeCell;
});