Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(178)

Side by Side Diff: third_party/WebKit/Source/devtools/front_end/ui_lazy/SortableDataGrid.js

Issue 2444223002: [Devtools] Cleanup DataGrid's typecast and identifier naming (Closed)
Patch Set: changes Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « third_party/WebKit/Source/devtools/front_end/ui_lazy/DataGrid.js ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 /** 5 /**
6 * @constructor 6 * @constructor
7 * @extends {WebInspector.ViewportDataGrid} 7 * @extends {WebInspector.ViewportDataGrid}
8 * @param {!Array.<!WebInspector.DataGrid.ColumnDescriptor>} columnsArray 8 * @param {!Array<!WebInspector.DataGrid.ColumnDescriptor>} columnsArray
9 * @param {function(!WebInspector.DataGridNode, string, string, string)=} editCa llback 9 * @param {function(!WebInspector.DataGridNode, string, string, string)=} editCa llback
10 * @param {function(!WebInspector.DataGridNode)=} deleteCallback 10 * @param {function(!WebInspector.DataGridNode)=} deleteCallback
11 * @param {function()=} refreshCallback 11 * @param {function()=} refreshCallback
12 * @param {function(!WebInspector.ContextMenu, !WebInspector.DataGridNode)=} con textMenuCallback 12 * @param {function(!WebInspector.ContextMenu, !WebInspector.DataGridNode)=} con textMenuCallback
13 */ 13 */
14 WebInspector.SortableDataGrid = function(columnsArray, editCallback, deleteCallb ack, refreshCallback, contextMenuCallback) 14 WebInspector.SortableDataGrid = function(columnsArray, editCallback, deleteCallb ack, refreshCallback, contextMenuCallback)
15 { 15 {
16 WebInspector.ViewportDataGrid.call(this, columnsArray, editCallback, deleteC allback, refreshCallback, contextMenuCallback); 16 WebInspector.ViewportDataGrid.call(this, columnsArray, editCallback, deleteC allback, refreshCallback, contextMenuCallback);
17 /** @type {!WebInspector.SortableDataGrid.NodeComparator} */ 17 /** @type {!WebInspector.SortableDataGrid.NodeComparator} */
18 this._sortingFunction = WebInspector.SortableDataGrid.TrivialComparator; 18 this._sortingFunction = WebInspector.SortableDataGrid.TrivialComparator;
19 this.setRootNode(new WebInspector.SortableDataGridNode()); 19 this.setRootNode(new WebInspector.SortableDataGridNode());
20 }; 20 };
21 21
22 /** @typedef {function(!WebInspector.DataGridNode, !WebInspector.DataGridNode):n umber} */ 22 /** @typedef {function(!WebInspector.DataGridNode, !WebInspector.DataGridNode):n umber} */
23 WebInspector.SortableDataGrid.NodeComparator; 23 WebInspector.SortableDataGrid.NodeComparator;
24 24
25 /** 25 /**
26 * @param {!WebInspector.DataGridNode} a 26 * @param {!WebInspector.DataGridNode} a
27 * @param {!WebInspector.DataGridNode} b 27 * @param {!WebInspector.DataGridNode} b
28 * @return {number} 28 * @return {number}
29 */ 29 */
30 WebInspector.SortableDataGrid.TrivialComparator = function(a, b) 30 WebInspector.SortableDataGrid.TrivialComparator = function(a, b)
31 { 31 {
32 return 0; 32 return 0;
33 }; 33 };
34 34
35 /** 35 /**
36 * @param {string} columnIdentifier 36 * @param {string} columnId
37 * @param {!WebInspector.DataGridNode} a 37 * @param {!WebInspector.DataGridNode} a
38 * @param {!WebInspector.DataGridNode} b 38 * @param {!WebInspector.DataGridNode} b
39 * @return {number} 39 * @return {number}
40 */ 40 */
41 WebInspector.SortableDataGrid.NumericComparator = function(columnIdentifier, a, b) 41 WebInspector.SortableDataGrid.NumericComparator = function(columnId, a, b)
42 { 42 {
43 var aValue = a.data[columnIdentifier]; 43 var aValue = a.data[columnId];
44 var bValue = b.data[columnIdentifier]; 44 var bValue = b.data[columnId];
45 var aNumber = Number(aValue instanceof Node ? aValue.textContent : aValue); 45 var aNumber = Number(aValue instanceof Node ? aValue.textContent : aValue);
46 var bNumber = Number(bValue instanceof Node ? bValue.textContent : bValue); 46 var bNumber = Number(bValue instanceof Node ? bValue.textContent : bValue);
47 return aNumber < bNumber ? -1 : (aNumber > bNumber ? 1 : 0); 47 return aNumber < bNumber ? -1 : (aNumber > bNumber ? 1 : 0);
48 }; 48 };
49 49
50 /** 50 /**
51 * @param {string} columnIdentifier 51 * @param {string} columnId
52 * @param {!WebInspector.DataGridNode} a 52 * @param {!WebInspector.DataGridNode} a
53 * @param {!WebInspector.DataGridNode} b 53 * @param {!WebInspector.DataGridNode} b
54 * @return {number} 54 * @return {number}
55 */ 55 */
56 WebInspector.SortableDataGrid.StringComparator = function(columnIdentifier, a, b ) 56 WebInspector.SortableDataGrid.StringComparator = function(columnId, a, b)
57 { 57 {
58 var aValue = a.data[columnIdentifier]; 58 var aValue = a.data[columnId];
59 var bValue = b.data[columnIdentifier]; 59 var bValue = b.data[columnId];
60 var aString = aValue instanceof Node ? aValue.textContent : String(aValue); 60 var aString = aValue instanceof Node ? aValue.textContent : String(aValue);
61 var bString = bValue instanceof Node ? bValue.textContent : String(bValue); 61 var bString = bValue instanceof Node ? bValue.textContent : String(bValue);
62 return aString < bString ? -1 : (aString > bString ? 1 : 0); 62 return aString < bString ? -1 : (aString > bString ? 1 : 0);
63 }; 63 };
64 64
65 /** 65 /**
66 * @param {!WebInspector.SortableDataGrid.NodeComparator} comparator 66 * @param {!WebInspector.SortableDataGrid.NodeComparator} comparator
67 * @param {boolean} reverseMode 67 * @param {boolean} reverseMode
68 * @param {!WebInspector.DataGridNode} a 68 * @param {!WebInspector.DataGridNode} a
69 * @param {!WebInspector.DataGridNode} b 69 * @param {!WebInspector.DataGridNode} b
70 * @return {number} 70 * @return {number}
71 */ 71 */
72 WebInspector.SortableDataGrid.Comparator = function(comparator, reverseMode, a, b) 72 WebInspector.SortableDataGrid.Comparator = function(comparator, reverseMode, a, b)
73 { 73 {
74 return reverseMode ? comparator(b, a) : comparator(a, b); 74 return reverseMode ? comparator(b, a) : comparator(a, b);
75 }; 75 };
76 76
77 /** 77 /**
78 * @param {!Array.<string>} columnNames 78 * @param {!Array.<string>} columnNames
79 * @param {!Array.<string>} values 79 * @param {!Array.<string>} values
80 * @return {?WebInspector.SortableDataGrid} 80 * @return {?WebInspector.SortableDataGrid}
81 */ 81 */
82 WebInspector.SortableDataGrid.create = function(columnNames, values) 82 WebInspector.SortableDataGrid.create = function(columnNames, values)
83 { 83 {
84 var numColumns = columnNames.length; 84 var numColumns = columnNames.length;
85 if (!numColumns) 85 if (!numColumns)
86 return null; 86 return null;
87 87
88 var columns = []; 88 var columns = /** @type {!Array<!WebInspector.DataGrid.ColumnDescriptor>} */ ([]);
89 for (var i = 0; i < columnNames.length; ++i) 89 for (var i = 0; i < columnNames.length; ++i)
90 columns.push({ title: columnNames[i], width: columnNames[i].length, sort able: true }); 90 columns.push({ id: String(i), title: columnNames[i], width: columnNames[ i].length, sortable: true });
91 91
92 var nodes = []; 92 var nodes = [];
93 for (var i = 0; i < values.length / numColumns; ++i) { 93 for (var i = 0; i < values.length / numColumns; ++i) {
94 var data = {}; 94 var data = {};
95 for (var j = 0; j < columnNames.length; ++j) 95 for (var j = 0; j < columnNames.length; ++j)
96 data[j] = values[numColumns * i + j]; 96 data[j] = values[numColumns * i + j];
97 97
98 var node = new WebInspector.SortableDataGridNode(data); 98 var node = new WebInspector.SortableDataGridNode(data);
99 node.selectable = false; 99 node.selectable = false;
100 nodes.push(node); 100 nodes.push(node);
101 } 101 }
102 102
103 var dataGrid = new WebInspector.SortableDataGrid(columns); 103 var dataGrid = new WebInspector.SortableDataGrid(columns);
104 var length = nodes.length; 104 var length = nodes.length;
105 var rootNode = dataGrid.rootNode(); 105 var rootNode = dataGrid.rootNode();
106 for (var i = 0; i < length; ++i) 106 for (var i = 0; i < length; ++i)
107 rootNode.appendChild(nodes[i]); 107 rootNode.appendChild(nodes[i]);
108 108
109 dataGrid.addEventListener(WebInspector.DataGrid.Events.SortingChanged, sortD ataGrid); 109 dataGrid.addEventListener(WebInspector.DataGrid.Events.SortingChanged, sortD ataGrid);
110 110
111 function sortDataGrid() 111 function sortDataGrid()
112 { 112 {
113 var nodes = dataGrid.rootNode().children; 113 var nodes = dataGrid.rootNode().children;
114 var sortColumnIdentifier = dataGrid.sortColumnIdentifier(); 114 var sortColumnId = dataGrid.sortColumnId();
115 if (!sortColumnIdentifier) 115 if (!sortColumnId)
116 return; 116 return;
117 117
118 var columnIsNumeric = true; 118 var columnIsNumeric = true;
119 for (var i = 0; i < nodes.length; i++) { 119 for (var i = 0; i < nodes.length; i++) {
120 var value = nodes[i].data[sortColumnIdentifier]; 120 var value = nodes[i].data[sortColumnId];
121 if (isNaN(value instanceof Node ? value.textContent : value)) { 121 if (isNaN(value instanceof Node ? value.textContent : value)) {
122 columnIsNumeric = false; 122 columnIsNumeric = false;
123 break; 123 break;
124 } 124 }
125 } 125 }
126 126
127 var comparator = columnIsNumeric ? WebInspector.SortableDataGrid.Numeric Comparator : WebInspector.SortableDataGrid.StringComparator; 127 var comparator = columnIsNumeric ? WebInspector.SortableDataGrid.Numeric Comparator : WebInspector.SortableDataGrid.StringComparator;
128 dataGrid.sortNodes(comparator.bind(null, sortColumnIdentifier), !dataGri d.isSortOrderAscending()); 128 dataGrid.sortNodes(comparator.bind(null, sortColumnId), !dataGrid.isSort OrderAscending());
129 } 129 }
130 return dataGrid; 130 return dataGrid;
131 }; 131 };
132 132
133 WebInspector.SortableDataGrid.prototype = { 133 WebInspector.SortableDataGrid.prototype = {
134 /** 134 /**
135 * @param {!WebInspector.DataGridNode} node 135 * @param {!WebInspector.DataGridNode} node
136 */ 136 */
137 insertChild: function(node) 137 insertChild: function(node)
138 { 138 {
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
178 { 178 {
179 this.children.sort(this.dataGrid._sortingFunction); 179 this.children.sort(this.dataGrid._sortingFunction);
180 for (var i = 0; i < this.children.length; ++i) 180 for (var i = 0; i < this.children.length; ++i)
181 this.children[i].recalculateSiblings(i); 181 this.children[i].recalculateSiblings(i);
182 for (var child of this.children) 182 for (var child of this.children)
183 child._sortChildren(); 183 child._sortChildren();
184 }, 184 },
185 185
186 __proto__: WebInspector.ViewportDataGridNode.prototype 186 __proto__: WebInspector.ViewportDataGridNode.prototype
187 }; 187 };
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/devtools/front_end/ui_lazy/DataGrid.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698