You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
84 lines
2.9 KiB
84 lines
2.9 KiB
define([ |
|
"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); |
|
var ret = this._defaultFormat(d, [d, level - this.level, inRowIndexes, this]); |
|
var dir = this.textDir || this.grid.textDir; |
|
if(dir && this._enforceTextDirWithUcc){ |
|
ret = this._enforceTextDirWithUcc(dir, ret); |
|
} |
|
return ret; |
|
}, |
|
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{ |
|
var ret = this._defaultFormat(d, [d, inRowIndexes[0], inRowIndexes, this]); |
|
var dir = this.textDir || this.grid.textDir; |
|
if(dir && this._enforceTextDirWithUcc){ |
|
ret = this._enforceTextDirWithUcc(dir, ret); |
|
} |
|
return ret; |
|
} |
|
}, |
|
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 = '<span></span>'; |
|
}else if(level < this.level){ |
|
cellClasses.push("dojoxGridSummaryCell"); |
|
result = '<span class="dojoxGridSummarySpan">' + this.formatAggregate(inItem, level, inRowIndexes) + '</span>'; |
|
}else{ |
|
var ret = ""; |
|
if(this.isCollapsable){ |
|
var store = this.grid.store, id = ""; |
|
if(store.isItem(inItem)){ |
|
id = store.getIdentity(inItem); |
|
} |
|
cellClasses.push("dojoxGridExpandoCell"); |
|
ret = '<span ' + dojo._scopeName + 'Type="dojox.grid._Expando" level="' + level + '" class="dojoxGridExpando"' + |
|
'" toggleClass="' + toggleClass + '" itemId="' + id + '" cellIdx="' + this.index + '"></span>'; |
|
} |
|
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; |
|
|
|
}); |