source: Dev/trunk/src/client/dojox/grid/cells/tree.js @ 532

Last change on this file since 532 was 483, checked in by hendrikvanantwerpen, 11 years ago

Added Dojo 1.9.3 release.

File size: 2.9 KB
Line 
1define([
2        "dojo/_base/kernel",
3        "../../main",
4        "dojo/_base/lang",
5        "../cells"
6], function(dojo, dojox, lang){
7
8dojox.grid.cells.TreeCell = {
9        formatAggregate: function(inItem, level, inRowIndexes){
10                var f, g=this.grid, i=g.edit.info,
11                        d=g.aggregator ? g.aggregator.getForCell(this, level, inItem, level === this.level ? "cnt" : this.parentCell.aggregate) : (this.value || this.defaultValue);
12                var ret = this._defaultFormat(d, [d, level - this.level, inRowIndexes, this]);
13                var dir = this.textDir || this.grid.textDir;
14                if(dir && this._enforceTextDirWithUcc){
15                    ret = this._enforceTextDirWithUcc(dir, ret);
16                }
17                return ret;
18        },
19        formatIndexes: function(inRowIndexes, inItem){
20                var f, g=this.grid, i=g.edit.info,
21                        d=this.get ? this.get(inRowIndexes[0], inItem, inRowIndexes) : (this.value || this.defaultValue);
22                if(this.editable && (this.alwaysEditing || (i.rowIndex==inRowIndexes[0] && i.cell==this))){
23                        return this.formatEditing(d, inRowIndexes[0], inRowIndexes);
24                }else{
25                        var ret = this._defaultFormat(d, [d, inRowIndexes[0], inRowIndexes, this]);
26                        var dir = this.textDir || this.grid.textDir;
27                        if(dir && this._enforceTextDirWithUcc){
28                            ret = this._enforceTextDirWithUcc(dir, ret);
29                        }
30                        return ret;
31                }
32        },
33        getOpenState: function(itemId){
34                var grid = this.grid, store = grid.store, itm = null;
35                if(store.isItem(itemId)){
36                        itm = itemId;
37                        itemId = store.getIdentity(itemId);
38                }
39                if(!this.openStates){ this.openStates = {}; }
40                if(typeof itemId != "string" || !(itemId in this.openStates)){
41                        this.openStates[itemId] = grid.getDefaultOpenState(this, itm);
42                }
43                return this.openStates[itemId];
44        },
45        formatAtLevel: function(inRowIndexes, inItem, level, summaryRow, toggleClass, cellClasses){
46                if(!lang.isArray(inRowIndexes)){
47                        inRowIndexes = [inRowIndexes];
48                }
49                var result = "";
50                if(level > this.level || (level === this.level && summaryRow)){
51                        cellClasses.push("dojoxGridSpacerCell");
52                        if(level === this.level){
53                                cellClasses.push("dojoxGridTotalCell");
54                        }
55                        result = '<span></span>';
56                }else if(level < this.level){
57                        cellClasses.push("dojoxGridSummaryCell");
58                        result = '<span class="dojoxGridSummarySpan">' + this.formatAggregate(inItem, level, inRowIndexes) + '</span>';
59                }else{
60                        var ret = "";
61                        if(this.isCollapsable){
62                                var store = this.grid.store, id = "";
63                                if(store.isItem(inItem)){
64                                        id = store.getIdentity(inItem);
65                                }
66                                cellClasses.push("dojoxGridExpandoCell");
67                                ret = '<span ' + dojo._scopeName + 'Type="dojox.grid._Expando" level="' + level + '" class="dojoxGridExpando"' +
68                                                '" toggleClass="' + toggleClass + '" itemId="' + id + '" cellIdx="' + this.index + '"></span>';
69                        }
70                        result = ret + this.formatIndexes(inRowIndexes, inItem);
71                }
72
73                if(this.grid.focus.cell && this.index == this.grid.focus.cell.index &&
74                        inRowIndexes.join('/') == this.grid.focus.rowIndex){
75                        cellClasses.push(this.grid.focus.focusClass);
76                }
77
78                return result;
79        }
80};
81
82return dojox.grid.cells.TreeCell;
83
84});
Note: See TracBrowser for help on using the repository browser.