OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2012 Google Inc. All rights reserved. | 2 * Copyright (C) 2012 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 1036 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1047 | 1047 |
1048 this.snapshot.dominatorIdsForNode(parseInt(id, 10), didGetDominators.bin
d(this)); | 1048 this.snapshot.dominatorIdsForNode(parseInt(id, 10), didGetDominators.bin
d(this)); |
1049 }, | 1049 }, |
1050 | 1050 |
1051 __proto__: WebInspector.HeapSnapshotSortableDataGrid.prototype | 1051 __proto__: WebInspector.HeapSnapshotSortableDataGrid.prototype |
1052 } | 1052 } |
1053 | 1053 |
1054 | 1054 |
1055 /** | 1055 /** |
1056 * @constructor | 1056 * @constructor |
1057 * @extends {WebInspector.DataGrid} | 1057 * @extends {WebInspector.HeapSnapshotViewportDataGrid} |
1058 */ | 1058 */ |
1059 WebInspector.AllocationDataGrid = function() | 1059 WebInspector.AllocationDataGrid = function() |
1060 { | 1060 { |
1061 var columns = [ | 1061 var columns = [ |
1062 {id: "liveCount", title: WebInspector.UIString("Live Count"), width: "72
px", sortable: true}, | 1062 {id: "liveCount", title: WebInspector.UIString("Live Count"), width: "72
px", sortable: true}, |
1063 {id: "count", title: WebInspector.UIString("Count"), width: "72px", sort
able: true}, | 1063 {id: "count", title: WebInspector.UIString("Count"), width: "72px", sort
able: true}, |
1064 {id: "liveSize", title: WebInspector.UIString("Live Size"), width: "72px
", sortable: true}, | 1064 {id: "liveSize", title: WebInspector.UIString("Live Size"), width: "72px
", sortable: true}, |
1065 {id: "size", title: WebInspector.UIString("Size"), width: "72px", sortab
le: true, sort: WebInspector.DataGrid.Order.Descending}, | 1065 {id: "size", title: WebInspector.UIString("Size"), width: "72px", sortab
le: true, sort: WebInspector.DataGrid.Order.Descending}, |
1066 {id: "name", title: WebInspector.UIString("Function"), disclosure: true,
sortable: true}, | 1066 {id: "name", title: WebInspector.UIString("Function"), disclosure: true,
sortable: true}, |
1067 ]; | 1067 ]; |
1068 WebInspector.DataGrid.call(this, columns); | 1068 WebInspector.HeapSnapshotViewportDataGrid.call(this, columns); |
1069 this._linkifier = new WebInspector.Linkifier(); | 1069 this._linkifier = new WebInspector.Linkifier(); |
1070 this.addEventListener(WebInspector.DataGrid.Events.SortingChanged, this._sor
tingChanged, this); | |
1071 } | 1070 } |
1072 | 1071 |
1073 WebInspector.AllocationDataGrid.prototype = { | 1072 WebInspector.AllocationDataGrid.prototype = { |
1074 setDataSource: function(snapshot) | 1073 setDataSource: function(snapshot) |
1075 { | 1074 { |
1076 this.snapshot = snapshot; | 1075 this.snapshot = snapshot; |
1077 this.snapshot.allocationTracesTops(didReceiveAllocationTracesTops.bind(t
his)); | 1076 this.snapshot.allocationTracesTops(didReceiveAllocationTracesTops.bind(t
his)); |
1078 | 1077 |
1079 /** | 1078 /** |
1080 * @param {!Array.<!WebInspector.HeapSnapshotCommon.SerializedAllocation
Node>} tops | 1079 * @param {!Array.<!WebInspector.HeapSnapshotCommon.SerializedAllocation
Node>} tops |
1081 * @this {WebInspector.AllocationDataGrid} | 1080 * @this {WebInspector.AllocationDataGrid} |
1082 */ | 1081 */ |
1083 function didReceiveAllocationTracesTops(tops) | 1082 function didReceiveAllocationTracesTops(tops) |
1084 { | 1083 { |
1085 this._topNodes = tops; | 1084 this._topNodes = tops; |
1086 this._populateChildren(); | 1085 this._populateChildren(); |
1087 } | 1086 } |
1088 }, | 1087 }, |
1089 | 1088 |
1090 _populateChildren: function() | 1089 _populateChildren: function() |
1091 { | 1090 { |
| 1091 this.removeTopLevelNodes(); |
1092 var root = this.rootNode(); | 1092 var root = this.rootNode(); |
1093 var tops = this._topNodes; | 1093 var tops = this._topNodes; |
1094 for (var i = 0; i < tops.length; i++) | 1094 for (var i = 0; i < tops.length; i++) |
1095 root.appendChild(new WebInspector.AllocationGridNode(this, tops[i]))
; | 1095 this.appendNode(root, new WebInspector.AllocationGridNode(this, tops
[i])); |
| 1096 this.updateVisibleNodes(true); |
1096 }, | 1097 }, |
1097 | 1098 |
1098 _sortingChanged: function() | 1099 sortingChanged: function() |
1099 { | 1100 { |
1100 this._topNodes.sort(this._createComparator()); | 1101 this._topNodes.sort(this._createComparator()); |
1101 this.rootNode().removeChildren(); | 1102 this.rootNode().removeChildren(); |
1102 this._populateChildren(); | 1103 this._populateChildren(); |
1103 }, | 1104 }, |
1104 | 1105 |
1105 | 1106 |
1106 /** | 1107 /** |
1107 * @return {function(!Object, !Object):number} | 1108 * @return {function(!Object, !Object):number} |
1108 */ | 1109 */ |
(...skipping 10 matching lines...) Expand all Loading... |
1119 { | 1120 { |
1120 if (a[fieldName] > b[fieldName]) | 1121 if (a[fieldName] > b[fieldName]) |
1121 return compareResult; | 1122 return compareResult; |
1122 if (a[fieldName] < b[fieldName]) | 1123 if (a[fieldName] < b[fieldName]) |
1123 return -compareResult; | 1124 return -compareResult; |
1124 return 0; | 1125 return 0; |
1125 } | 1126 } |
1126 return compare; | 1127 return compare; |
1127 }, | 1128 }, |
1128 | 1129 |
1129 __proto__: WebInspector.DataGrid.prototype | 1130 __proto__: WebInspector.HeapSnapshotViewportDataGrid.prototype |
1130 } | 1131 } |
OLD | NEW |