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

Side by Side Diff: third_party/WebKit/Source/devtools/front_end/ui_lazy/DataGrid.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
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2008 Apple Inc. All Rights Reserved. 2 * Copyright (C) 2008 Apple 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 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 1. Redistributions of source code must retain the above copyright 7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright 9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after
131 * title: (string|undefined), 131 * title: (string|undefined),
132 * titleDOMFragment: (?DocumentFragment|undefined), 132 * titleDOMFragment: (?DocumentFragment|undefined),
133 * sortable: boolean, 133 * sortable: boolean,
134 * sort: (?WebInspector.DataGrid.Order|undefined), 134 * sort: (?WebInspector.DataGrid.Order|undefined),
135 * align: (?WebInspector.DataGrid.Align|undefined), 135 * align: (?WebInspector.DataGrid.Align|undefined),
136 * fixedWidth: (boolean|undefined), 136 * fixedWidth: (boolean|undefined),
137 * editable: (boolean|undefined), 137 * editable: (boolean|undefined),
138 * nonSelectable: (boolean|undefined), 138 * nonSelectable: (boolean|undefined),
139 * longText: (boolean|undefined), 139 * longText: (boolean|undefined),
140 * disclosure: (boolean|undefined), 140 * disclosure: (boolean|undefined),
141 * identifier: (string|undefined),
142 * weight: (number|undefined) 141 * weight: (number|undefined)
143 * }} 142 * }}
144 */ 143 */
145 WebInspector.DataGrid.ColumnDescriptor; 144 WebInspector.DataGrid.ColumnDescriptor;
146 145
147 /** @enum {symbol} */ 146 /** @enum {symbol} */
148 WebInspector.DataGrid.Events = { 147 WebInspector.DataGrid.Events = {
149 SelectedNode: Symbol("SelectedNode"), 148 SelectedNode: Symbol("SelectedNode"),
150 DeselectedNode: Symbol("DeselectedNode"), 149 DeselectedNode: Symbol("DeselectedNode"),
151 SortingChanged: Symbol("SortingChanged"), 150 SortingChanged: Symbol("SortingChanged"),
152 ColumnsResized: Symbol("ColumnsResized"), 151 ColumnsResized: Symbol("ColumnsResized"),
153 PaddingChanged: Symbol("PaddingChanged") 152 PaddingChanged: Symbol("PaddingChanged")
154 }; 153 };
155 154
156 /** @enum {string} */ 155 /** @enum {string} */
157 WebInspector.DataGrid.Order = { 156 WebInspector.DataGrid.Order = {
158 Ascending: "sort-ascending", 157 Ascending: "sort-ascending",
159 Descending: "sort-descending" 158 Descending: "sort-descending"
160 }; 159 };
161 160
162 /** @enum {string} */ 161 /** @enum {string} */
163 WebInspector.DataGrid.Align = { 162 WebInspector.DataGrid.Align = {
164 Center: "center", 163 Center: "center",
165 Right: "right" 164 Right: "right"
166 }; 165 };
167 166
168 WebInspector.DataGrid._preferredWidthSymbol = Symbol("preferredWidth"); 167 WebInspector.DataGrid._preferredWidthSymbol = Symbol("preferredWidth");
168 WebInspector.DataGrid._columnIdSymbol = Symbol("columnId");
169 169
170 WebInspector.DataGrid.prototype = { 170 WebInspector.DataGrid.prototype = {
171 /** 171 /**
172 * @return {!Element} 172 * @return {!Element}
173 */ 173 */
174 headerTableBody: function() 174 headerTableBody: function()
175 { 175 {
176 return this._headerTableBody; 176 return this._headerTableBody;
177 }, 177 },
178 178
179 /** 179 /**
180 * @param {!WebInspector.DataGrid.ColumnDescriptor} column 180 * @param {!WebInspector.DataGrid.ColumnDescriptor} column
181 * @param {number=} position 181 * @param {number=} position
182 */ 182 */
183 _innerAddColumn: function(column, position) 183 _innerAddColumn: function(column, position)
184 { 184 {
185 var columnIdentifier = column.identifier = column.id || String(Object.ke ys(this._columns).length); 185 var columnId = column.id;
186 if (columnIdentifier in this._columns) 186 if (columnId in this._columns)
187 this._innerRemoveColumn(columnIdentifier); 187 this._innerRemoveColumn(columnId);
188 188
189 if (position === undefined) 189 if (position === undefined)
190 position = this._columnsArray.length; 190 position = this._columnsArray.length;
191 191
192 this._columnsArray.splice(position, 0, column); 192 this._columnsArray.splice(position, 0, column);
193 this._columns[columnIdentifier] = column; 193 this._columns[columnId] = column;
194 if (column.disclosure) 194 if (column.disclosure)
195 this.disclosureColumnIdentifier = columnIdentifier; 195 this.disclosureColumnId = columnId;
196 196
197 var cell = createElement("th"); 197 var cell = createElement("th");
198 cell.className = columnIdentifier + "-column"; 198 cell.className = columnId + "-column";
199 cell.columnIdentifier = String(columnIdentifier); 199 cell[WebInspector.DataGrid._columnIdSymbol] = columnId;
200 this._headerTableHeaders[columnIdentifier] = cell; 200 this._headerTableHeaders[columnId] = cell;
201 201
202 var div = createElement("div"); 202 var div = createElement("div");
203 if (column.titleDOMFragment) 203 if (column.titleDOMFragment)
204 div.appendChild(column.titleDOMFragment); 204 div.appendChild(column.titleDOMFragment);
205 else 205 else
206 div.textContent = column.title; 206 div.textContent = column.title;
207 cell.appendChild(div); 207 cell.appendChild(div);
208 208
209 if (column.sort) { 209 if (column.sort) {
210 cell.classList.add(column.sort); 210 cell.classList.add(column.sort);
(...skipping 10 matching lines...) Expand all
221 /** 221 /**
222 * @param {!WebInspector.DataGrid.ColumnDescriptor} column 222 * @param {!WebInspector.DataGrid.ColumnDescriptor} column
223 * @param {number=} position 223 * @param {number=} position
224 */ 224 */
225 addColumn: function(column, position) 225 addColumn: function(column, position)
226 { 226 {
227 this._innerAddColumn(column, position); 227 this._innerAddColumn(column, position);
228 }, 228 },
229 229
230 /** 230 /**
231 * @param {string} columnIdentifier 231 * @param {string} columnId
232 */ 232 */
233 _innerRemoveColumn: function(columnIdentifier) 233 _innerRemoveColumn: function(columnId)
234 { 234 {
235 var column = this._columns[columnIdentifier]; 235 var column = this._columns[columnId];
236 if (!column) 236 if (!column)
237 return; 237 return;
238 delete this._columns[columnIdentifier]; 238 delete this._columns[columnId];
239 var index = this._columnsArray.findIndex(columnConfig => columnConfig.id entifier === columnIdentifier); 239 var index = this._columnsArray.findIndex(columnConfig => columnConfig.id === columnId);
240 this._columnsArray.splice(index, 1); 240 this._columnsArray.splice(index, 1);
241 var cell = this._headerTableHeaders[columnIdentifier]; 241 var cell = this._headerTableHeaders[columnId];
242 if (cell.parentElement) 242 if (cell.parentElement)
243 cell.parentElement.removeChild(cell); 243 cell.parentElement.removeChild(cell);
244 delete this._headerTableHeaders[columnIdentifier]; 244 delete this._headerTableHeaders[columnId];
245 }, 245 },
246 246
247 /** 247 /**
248 * @param {string} columnIdentifier 248 * @param {string} columnId
249 */ 249 */
250 removeColumn: function(columnIdentifier) 250 removeColumn: function(columnId)
251 { 251 {
252 this._innerRemoveColumn(columnIdentifier); 252 this._innerRemoveColumn(columnId);
253 }, 253 },
254 254
255 /** 255 /**
256 * @param {string} cellClass 256 * @param {string} cellClass
257 */ 257 */
258 setCellClass: function(cellClass) 258 setCellClass: function(cellClass)
259 { 259 {
260 this._cellClass = cellClass; 260 this._cellClass = cellClass;
261 }, 261 },
262 262
263 _refreshHeader: function() 263 _refreshHeader: function()
264 { 264 {
265 this._headerTableColumnGroup.removeChildren(); 265 this._headerTableColumnGroup.removeChildren();
266 this._dataTableColumnGroup.removeChildren(); 266 this._dataTableColumnGroup.removeChildren();
267 this._headerRow.removeChildren(); 267 this._headerRow.removeChildren();
268 this._topFillerRow.removeChildren(); 268 this._topFillerRow.removeChildren();
269 this._bottomFillerRow.removeChildren(); 269 this._bottomFillerRow.removeChildren();
270 270
271 for (var i = 0; i < this._visibleColumnsArray.length; ++i) { 271 for (var i = 0; i < this._visibleColumnsArray.length; ++i) {
272 var column = this._visibleColumnsArray[i]; 272 var column = this._visibleColumnsArray[i];
273 var columnIdentifier = column.identifier || String(i); 273 var columnId = column.id;
274 var headerColumn = this._headerTableColumnGroup.createChild("col"); 274 var headerColumn = this._headerTableColumnGroup.createChild("col");
275 var dataColumn = this._dataTableColumnGroup.createChild("col"); 275 var dataColumn = this._dataTableColumnGroup.createChild("col");
276 if (column.width) { 276 if (column.width) {
277 headerColumn.style.width = column.width; 277 headerColumn.style.width = column.width;
278 dataColumn.style.width = column.width; 278 dataColumn.style.width = column.width;
279 } 279 }
280 this._headerRow.appendChild(this._headerTableHeaders[columnIdentifie r]); 280 this._headerRow.appendChild(this._headerTableHeaders[columnId]);
281 this._topFillerRow.createChild("td", "top-filler-td"); 281 this._topFillerRow.createChild("td", "top-filler-td");
282 this._bottomFillerRow.createChild("td", "bottom-filler-td").columnId entifier_ = columnIdentifier; 282 this._bottomFillerRow.createChild("td", "bottom-filler-td")[WebInspe ctor.DataGrid._columnIdSymbol] = columnId;
283 } 283 }
284 284
285 this._headerRow.createChild("th", "corner"); 285 this._headerRow.createChild("th", "corner");
286 this._topFillerRow.createChild("td", "corner").classList.add("top-filler -td"); 286 this._topFillerRow.createChild("td", "corner").classList.add("top-filler -td");
287 this._bottomFillerRow.createChild("td", "corner").classList.add("bottom- filler-td"); 287 this._bottomFillerRow.createChild("td", "corner").classList.add("bottom- filler-td");
288 this._headerTableColumnGroup.createChild("col", "corner"); 288 this._headerTableColumnGroup.createChild("col", "corner");
289 this._dataTableColumnGroup.createChild("col", "corner"); 289 this._dataTableColumnGroup.createChild("col", "corner");
290 }, 290 },
291 291
292 /** 292 /**
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
331 rootNode: function() 331 rootNode: function()
332 { 332 {
333 return this._rootNode; 333 return this._rootNode;
334 }, 334 },
335 335
336 _ondblclick: function(event) 336 _ondblclick: function(event)
337 { 337 {
338 if (this._editing || this._editingNode) 338 if (this._editing || this._editingNode)
339 return; 339 return;
340 340
341 var columnIdentifier = this.columnIdentifierFromNode(event.target); 341 var columnId = this.columnIdFromNode(event.target);
342 if (!columnIdentifier || !this._columns[columnIdentifier].editable) 342 if (!columnId || !this._columns[columnId].editable)
343 return; 343 return;
344 this._startEditing(event.target); 344 this._startEditing(event.target);
345 }, 345 },
346 346
347 /** 347 /**
348 * @param {!WebInspector.DataGridNode} node 348 * @param {!WebInspector.DataGridNode} node
349 * @param {number} cellIndex 349 * @param {number} cellIndex
350 */ 350 */
351 _startEditingColumnOfDataGridNode: function(node, cellIndex) 351 _startEditingColumnOfDataGridNode: function(node, cellIndex)
352 { 352 {
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
391 this.updateWidths(); 391 this.updateWidths();
392 }, 392 },
393 393
394 _startEditingConfig: function(element) 394 _startEditingConfig: function(element)
395 { 395 {
396 return new WebInspector.InplaceEditor.Config(this._editingCommitted.bind (this), this._editingCancelled.bind(this), element.textContent); 396 return new WebInspector.InplaceEditor.Config(this._editingCommitted.bind (this), this._editingCancelled.bind(this), element.textContent);
397 }, 397 },
398 398
399 _editingCommitted: function(element, newText, oldText, context, moveDirectio n) 399 _editingCommitted: function(element, newText, oldText, context, moveDirectio n)
400 { 400 {
401 var columnIdentifier = this.columnIdentifierFromNode(element); 401 var columnId = this.columnIdFromNode(element);
402 if (!columnIdentifier) { 402 if (!columnId) {
403 this._editingCancelled(element); 403 this._editingCancelled(element);
404 return; 404 return;
405 } 405 }
406 var column = this._columns[columnIdentifier]; 406 var column = this._columns[columnId];
407 var cellIndex = this._visibleColumnsArray.indexOf(column); 407 var cellIndex = this._visibleColumnsArray.indexOf(column);
408 var textBeforeEditing = this._editingNode.data[columnIdentifier]; 408 var textBeforeEditing = this._editingNode.data[columnId];
409 var currentEditingNode = this._editingNode; 409 var currentEditingNode = this._editingNode;
410 410
411 /** 411 /**
412 * @param {boolean} wasChange 412 * @param {boolean} wasChange
413 * @this {WebInspector.DataGrid} 413 * @this {WebInspector.DataGrid}
414 */ 414 */
415 function moveToNextIfNeeded(wasChange) 415 function moveToNextIfNeeded(wasChange)
416 { 416 {
417 if (!moveDirection) 417 if (!moveDirection)
418 return; 418 return;
(...skipping 30 matching lines...) Expand all
449 } 449 }
450 } 450 }
451 451
452 if (textBeforeEditing === newText) { 452 if (textBeforeEditing === newText) {
453 this._editingCancelled(element); 453 this._editingCancelled(element);
454 moveToNextIfNeeded.call(this, false); 454 moveToNextIfNeeded.call(this, false);
455 return; 455 return;
456 } 456 }
457 457
458 // Update the text in the datagrid that we typed 458 // Update the text in the datagrid that we typed
459 this._editingNode.data[columnIdentifier] = newText; 459 this._editingNode.data[columnId] = newText;
460 460
461 // Make the callback - expects an editing node (table row), the column n umber that is being edited, 461 // Make the callback - expects an editing node (table row), the column n umber that is being edited,
462 // the text that used to be there, and the new text. 462 // the text that used to be there, and the new text.
463 this._editCallback(this._editingNode, columnIdentifier, textBeforeEditin g, newText); 463 this._editCallback(this._editingNode, columnId, textBeforeEditing, newTe xt);
464 464
465 if (this._editingNode.isCreationNode) 465 if (this._editingNode.isCreationNode)
466 this.addCreationNode(false); 466 this.addCreationNode(false);
467 467
468 this._editingCancelled(element); 468 this._editingCancelled(element);
469 moveToNextIfNeeded.call(this, true); 469 moveToNextIfNeeded.call(this, true);
470 }, 470 },
471 471
472 _editingCancelled: function(element) 472 _editingCancelled: function(element)
473 { 473 {
(...skipping 13 matching lines...) Expand all
487 for (var i = cellIndex + increment; (i >= 0) && (i < columns.length); i += increment) { 487 for (var i = cellIndex + increment; (i >= 0) && (i < columns.length); i += increment) {
488 if (columns[i].editable) 488 if (columns[i].editable)
489 return i; 489 return i;
490 } 490 }
491 return -1; 491 return -1;
492 }, 492 },
493 493
494 /** 494 /**
495 * @return {?string} 495 * @return {?string}
496 */ 496 */
497 sortColumnIdentifier: function() 497 sortColumnId: function()
498 { 498 {
499 if (!this._sortColumnCell) 499 if (!this._sortColumnCell)
500 return null; 500 return null;
501 return this._sortColumnCell.columnIdentifier; 501 return this._sortColumnCell[WebInspector.DataGrid._columnIdSymbol];
502 }, 502 },
503 503
504 /** 504 /**
505 * @return {?string} 505 * @return {?string}
506 */ 506 */
507 sortOrder: function() 507 sortOrder: function()
508 { 508 {
509 if (!this._sortColumnCell || this._sortColumnCell.classList.contains(Web Inspector.DataGrid.Order.Ascending)) 509 if (!this._sortColumnCell || this._sortColumnCell.classList.contains(Web Inspector.DataGrid.Order.Ascending))
510 return WebInspector.DataGrid.Order.Ascending; 510 return WebInspector.DataGrid.Order.Ascending;
511 if (this._sortColumnCell.classList.contains(WebInspector.DataGrid.Order. Descending)) 511 if (this._sortColumnCell.classList.contains(WebInspector.DataGrid.Order. Descending))
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
580 { 580 {
581 var widths = []; 581 var widths = [];
582 for (var i = 0; i < this._columnsArray.length; ++i) 582 for (var i = 0; i < this._columnsArray.length; ++i)
583 widths.push((this._columnsArray[i].title || "").length); 583 widths.push((this._columnsArray[i].title || "").length);
584 584
585 maxDescentLevel = maxDescentLevel || 0; 585 maxDescentLevel = maxDescentLevel || 0;
586 var children = this._enumerateChildren(this._rootNode, [], maxDescentLev el + 1); 586 var children = this._enumerateChildren(this._rootNode, [], maxDescentLev el + 1);
587 for (var i = 0; i < children.length; ++i) { 587 for (var i = 0; i < children.length; ++i) {
588 var node = children[i]; 588 var node = children[i];
589 for (var j = 0; j < this._columnsArray.length; ++j) { 589 for (var j = 0; j < this._columnsArray.length; ++j) {
590 var text = node.data[this._columnsArray[j].identifier] || ""; 590 var text = node.data[this._columnsArray[j].id];
591 if (text.length > widths[j]) 591 if (text.length > widths[j])
592 widths[j] = text.length; 592 widths[j] = text.length;
593 } 593 }
594 } 594 }
595 595
596 widths = this._autoSizeWidths(widths, minPercent, maxPercent); 596 widths = this._autoSizeWidths(widths, minPercent, maxPercent);
597 597
598 for (var i = 0; i < this._columnsArray.length; ++i) 598 for (var i = 0; i < this._columnsArray.length; ++i)
599 this._columnsArray[i].weight = widths[i]; 599 this._columnsArray[i].weight = widths[i];
600 this._columnWidthsInitialized = false; 600 this._columnWidthsInitialized = false;
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
660 this._loadColumnWeights(); 660 this._loadColumnWeights();
661 }, 661 },
662 662
663 _loadColumnWeights: function() 663 _loadColumnWeights: function()
664 { 664 {
665 if (!this._columnWeightsSetting) 665 if (!this._columnWeightsSetting)
666 return; 666 return;
667 var weights = this._columnWeightsSetting.get(); 667 var weights = this._columnWeightsSetting.get();
668 for (var i = 0; i < this._columnsArray.length; ++i) { 668 for (var i = 0; i < this._columnsArray.length; ++i) {
669 var column = this._columnsArray[i]; 669 var column = this._columnsArray[i];
670 var weight = weights[column.identifier]; 670 var weight = weights[column.id];
671 if (weight) 671 if (weight)
672 column.weight = weight; 672 column.weight = weight;
673 } 673 }
674 this._applyColumnWeights(); 674 this._applyColumnWeights();
675 }, 675 },
676 676
677 _saveColumnWeights: function() 677 _saveColumnWeights: function()
678 { 678 {
679 if (!this._columnWeightsSetting) 679 if (!this._columnWeightsSetting)
680 return; 680 return;
681 var weights = {}; 681 var weights = {};
682 for (var i = 0; i < this._columnsArray.length; ++i) { 682 for (var i = 0; i < this._columnsArray.length; ++i) {
683 var column = this._columnsArray[i]; 683 var column = this._columnsArray[i];
684 weights[column.identifier] = column.weight; 684 weights[column.id] = column.weight;
685 } 685 }
686 this._columnWeightsSetting.set(weights); 686 this._columnWeightsSetting.set(weights);
687 }, 687 },
688 688
689 wasShown: function() 689 wasShown: function()
690 { 690 {
691 this._loadColumnWeights(); 691 this._loadColumnWeights();
692 }, 692 },
693 693
694 willHide: function() 694 willHide: function()
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
735 }, 735 },
736 736
737 /** 737 /**
738 * @param {!Object.<string, boolean>} columnsVisibility 738 * @param {!Object.<string, boolean>} columnsVisibility
739 */ 739 */
740 setColumnsVisiblity: function(columnsVisibility) 740 setColumnsVisiblity: function(columnsVisibility)
741 { 741 {
742 this._visibleColumnsArray = []; 742 this._visibleColumnsArray = [];
743 for (var i = 0; i < this._columnsArray.length; ++i) { 743 for (var i = 0; i < this._columnsArray.length; ++i) {
744 var column = this._columnsArray[i]; 744 var column = this._columnsArray[i];
745 if (columnsVisibility[column.identifier || String(i)]) 745 if (columnsVisibility[column.id])
746 this._visibleColumnsArray.push(column); 746 this._visibleColumnsArray.push(column);
747 } 747 }
748 this._refreshHeader(); 748 this._refreshHeader();
749 this._applyColumnWeights(); 749 this._applyColumnWeights();
750 var nodes = this._enumerateChildren(this.rootNode(), [], -1); 750 var nodes = this._enumerateChildren(this.rootNode(), [], -1);
751 for (var i = 0; i < nodes.length; ++i) 751 for (var i = 0; i < nodes.length; ++i)
752 nodes[i].refresh(); 752 nodes[i].refresh();
753 }, 753 },
754 754
755 get scrollContainer() 755 get scrollContainer()
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after
916 dataGridNodeFromNode: function(target) 916 dataGridNodeFromNode: function(target)
917 { 917 {
918 var rowElement = target.enclosingNodeOrSelfWithNodeName("tr"); 918 var rowElement = target.enclosingNodeOrSelfWithNodeName("tr");
919 return rowElement && rowElement._dataGridNode; 919 return rowElement && rowElement._dataGridNode;
920 }, 920 },
921 921
922 /** 922 /**
923 * @param {!Node} target 923 * @param {!Node} target
924 * @return {?string} 924 * @return {?string}
925 */ 925 */
926 columnIdentifierFromNode: function(target) 926 columnIdFromNode: function(target)
927 { 927 {
928 var cellElement = target.enclosingNodeOrSelfWithNodeName("td"); 928 var cellElement = target.enclosingNodeOrSelfWithNodeName("td");
929 return cellElement && cellElement.columnIdentifier_; 929 return cellElement && cellElement[WebInspector.DataGrid._columnIdSymbol] ;
930 }, 930 },
931 931
932 _clickInHeaderCell: function(event) 932 _clickInHeaderCell: function(event)
933 { 933 {
934 var cell = event.target.enclosingNodeOrSelfWithNodeName("th"); 934 var cell = event.target.enclosingNodeOrSelfWithNodeName("th");
935 if (!cell || (cell.columnIdentifier === undefined) || !cell.classList.co ntains("sortable")) 935 if (!cell || (cell[WebInspector.DataGrid._columnIdSymbol] === undefined) || !cell.classList.contains("sortable"))
936 return; 936 return;
937 937
938 var sortOrder = WebInspector.DataGrid.Order.Ascending; 938 var sortOrder = WebInspector.DataGrid.Order.Ascending;
939 if ((cell === this._sortColumnCell) && this.isSortOrderAscending()) 939 if ((cell === this._sortColumnCell) && this.isSortOrderAscending())
940 sortOrder = WebInspector.DataGrid.Order.Descending; 940 sortOrder = WebInspector.DataGrid.Order.Descending;
941 941
942 if (this._sortColumnCell) 942 if (this._sortColumnCell)
943 this._sortColumnCell.classList.remove(WebInspector.DataGrid.Order.As cending, WebInspector.DataGrid.Order.Descending); 943 this._sortColumnCell.classList.remove(WebInspector.DataGrid.Order.As cending, WebInspector.DataGrid.Order.Descending);
944 this._sortColumnCell = cell; 944 this._sortColumnCell = cell;
945 945
946 cell.classList.add(sortOrder); 946 cell.classList.add(sortOrder);
947 947
948 this.dispatchEventToListeners(WebInspector.DataGrid.Events.SortingChange d); 948 this.dispatchEventToListeners(WebInspector.DataGrid.Events.SortingChange d);
949 }, 949 },
950 950
951 /** 951 /**
952 * @param {string} columnIdentifier 952 * @param {string} columnId
953 * @param {!WebInspector.DataGrid.Order} sortOrder 953 * @param {!WebInspector.DataGrid.Order} sortOrder
954 */ 954 */
955 markColumnAsSortedBy: function(columnIdentifier, sortOrder) 955 markColumnAsSortedBy: function(columnId, sortOrder)
956 { 956 {
957 if (this._sortColumnCell) 957 if (this._sortColumnCell)
958 this._sortColumnCell.classList.remove(WebInspector.DataGrid.Order.As cending, WebInspector.DataGrid.Order.Descending); 958 this._sortColumnCell.classList.remove(WebInspector.DataGrid.Order.As cending, WebInspector.DataGrid.Order.Descending);
959 this._sortColumnCell = this._headerTableHeaders[columnIdentifier]; 959 this._sortColumnCell = this._headerTableHeaders[columnId];
960 this._sortColumnCell.classList.add(sortOrder); 960 this._sortColumnCell.classList.add(sortOrder);
961 }, 961 },
962 962
963 /** 963 /**
964 * @param {string} columnIdentifier 964 * @param {string} columnId
965 * @return {!Element} 965 * @return {!Element}
966 */ 966 */
967 headerTableHeader: function(columnIdentifier) 967 headerTableHeader: function(columnId)
968 { 968 {
969 return this._headerTableHeaders[columnIdentifier]; 969 return this._headerTableHeaders[columnId];
970 }, 970 },
971 971
972 _mouseDownInDataTable: function(event) 972 _mouseDownInDataTable: function(event)
973 { 973 {
974 var gridNode = this.dataGridNodeFromNode(event.target); 974 var gridNode = this.dataGridNodeFromNode(event.target);
975 if (!gridNode || !gridNode.selectable) 975 if (!gridNode || !gridNode.selectable)
976 return; 976 return;
977 977
978 if (gridNode.isEventWithinDisclosureTriangle(event)) 978 if (gridNode.isEventWithinDisclosureTriangle(event))
979 return; 979 return;
980 980
981 var columnIdentifier = this.columnIdentifierFromNode(event.target); 981 var columnId = this.columnIdFromNode(event.target);
982 if (columnIdentifier && this._columns[columnIdentifier].nonSelectable) 982 if (columnId && this._columns[columnId].nonSelectable)
983 return; 983 return;
984 984
985 if (event.metaKey) { 985 if (event.metaKey) {
986 if (gridNode.selected) 986 if (gridNode.selected)
987 gridNode.deselect(); 987 gridNode.deselect();
988 else 988 else
989 gridNode.select(); 989 gridNode.select();
990 } else 990 } else
991 gridNode.select(); 991 gridNode.select();
992 }, 992 },
993 993
994 _contextMenuInDataTable: function(event) 994 _contextMenuInDataTable: function(event)
995 { 995 {
996 var contextMenu = new WebInspector.ContextMenu(event); 996 var contextMenu = new WebInspector.ContextMenu(event);
997 997
998 var gridNode = this.dataGridNodeFromNode(event.target); 998 var gridNode = this.dataGridNodeFromNode(event.target);
999 if (this._refreshCallback && (!gridNode || gridNode !== this.creationNod e)) 999 if (this._refreshCallback && (!gridNode || gridNode !== this.creationNod e))
1000 contextMenu.appendItem(WebInspector.UIString("Refresh"), this._refre shCallback.bind(this)); 1000 contextMenu.appendItem(WebInspector.UIString("Refresh"), this._refre shCallback.bind(this));
1001 1001
1002 if (gridNode && gridNode.selectable && !gridNode.isEventWithinDisclosure Triangle(event)) { 1002 if (gridNode && gridNode.selectable && !gridNode.isEventWithinDisclosure Triangle(event)) {
1003 if (this._editCallback) { 1003 if (this._editCallback) {
1004 if (gridNode === this.creationNode) 1004 if (gridNode === this.creationNode)
1005 contextMenu.appendItem(WebInspector.UIString.capitalize("Add ^new"), this._startEditing.bind(this, event.target)); 1005 contextMenu.appendItem(WebInspector.UIString.capitalize("Add ^new"), this._startEditing.bind(this, event.target));
1006 else { 1006 else {
1007 var columnIdentifier = this.columnIdentifierFromNode(event.t arget); 1007 var columnId = this.columnIdFromNode(event.target);
1008 if (columnIdentifier && this._columns[columnIdentifier].edit able) 1008 if (columnId && this._columns[columnId].editable)
1009 contextMenu.appendItem(WebInspector.UIString("Edit \"%s\ "", this._columns[columnIdentifier].title), this._startEditing.bind(this, event. target)); 1009 contextMenu.appendItem(WebInspector.UIString("Edit \"%s\ "", this._columns[columnId].title), this._startEditing.bind(this, event.target)) ;
1010 } 1010 }
1011 } 1011 }
1012 if (this._deleteCallback && gridNode !== this.creationNode) 1012 if (this._deleteCallback && gridNode !== this.creationNode)
1013 contextMenu.appendItem(WebInspector.UIString.capitalize("Delete" ), this._deleteCallback.bind(this, gridNode)); 1013 contextMenu.appendItem(WebInspector.UIString.capitalize("Delete" ), this._deleteCallback.bind(this, gridNode));
1014 if (this._contextMenuCallback) 1014 if (this._contextMenuCallback)
1015 this._contextMenuCallback(contextMenu, gridNode); 1015 this._contextMenuCallback(contextMenu, gridNode);
1016 } 1016 }
1017 1017
1018 contextMenu.show(); 1018 contextMenu.show();
1019 }, 1019 },
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
1128 1128
1129 /** 1129 /**
1130 * @param {string} columnId 1130 * @param {string} columnId
1131 * @return {number} 1131 * @return {number}
1132 */ 1132 */
1133 columnOffset: function(columnId) 1133 columnOffset: function(columnId)
1134 { 1134 {
1135 if (!this.element.offsetWidth) 1135 if (!this.element.offsetWidth)
1136 return 0; 1136 return 0;
1137 for (var i = 1; i < this._visibleColumnsArray.length; ++i) { 1137 for (var i = 1; i < this._visibleColumnsArray.length; ++i) {
1138 if (columnId === this._visibleColumnsArray[i].identifier) { 1138 if (columnId === this._visibleColumnsArray[i].id) {
1139 if (this._resizers[i - 1]) 1139 if (this._resizers[i - 1])
1140 return this._resizers[i - 1].__position; 1140 return this._resizers[i - 1].__position;
1141 } 1141 }
1142 } 1142 }
1143 return 0; 1143 return 0;
1144 }, 1144 },
1145 1145
1146 _endResizerDragging: function(event) 1146 _endResizerDragging: function(event)
1147 { 1147 {
1148 this._currentResizer = null; 1148 this._currentResizer = null;
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
1254 }, 1254 },
1255 1255
1256 /** 1256 /**
1257 * @protected 1257 * @protected
1258 */ 1258 */
1259 createCells: function() 1259 createCells: function()
1260 { 1260 {
1261 this._element.removeChildren(); 1261 this._element.removeChildren();
1262 var columnsArray = this.dataGrid._visibleColumnsArray; 1262 var columnsArray = this.dataGrid._visibleColumnsArray;
1263 for (var i = 0; i < columnsArray.length; ++i) 1263 for (var i = 0; i < columnsArray.length; ++i)
1264 this._element.appendChild(this.createCell(columnsArray[i].identifier || String(i))); 1264 this._element.appendChild(this.createCell(columnsArray[i].id));
1265 this._element.appendChild(this._createTDWithClass("corner")); 1265 this._element.appendChild(this._createTDWithClass("corner"));
1266 }, 1266 },
1267 1267
1268 get data() 1268 get data()
1269 { 1269 {
1270 return this._data; 1270 return this._data;
1271 }, 1271 },
1272 1272
1273 set data(x) 1273 set data(x)
1274 { 1274 {
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after
1404 _createTDWithClass: function(className) 1404 _createTDWithClass: function(className)
1405 { 1405 {
1406 var cell = createElementWithClass("td", className); 1406 var cell = createElementWithClass("td", className);
1407 var cellClass = this.dataGrid._cellClass; 1407 var cellClass = this.dataGrid._cellClass;
1408 if (cellClass) 1408 if (cellClass)
1409 cell.classList.add(cellClass); 1409 cell.classList.add(cellClass);
1410 return cell; 1410 return cell;
1411 }, 1411 },
1412 1412
1413 /** 1413 /**
1414 * @param {string} columnIdentifier 1414 * @param {string} columnId
1415 * @return {!Element} 1415 * @return {!Element}
1416 */ 1416 */
1417 createTD: function(columnIdentifier) 1417 createTD: function(columnId)
1418 { 1418 {
1419 var cell = this._createTDWithClass(columnIdentifier + "-column"); 1419 var cell = this._createTDWithClass(columnId + "-column");
1420 cell.columnIdentifier_ = columnIdentifier; 1420 cell[WebInspector.DataGrid._columnIdSymbol] = columnId;
1421 1421
1422 var alignment = this.dataGrid._columns[columnIdentifier].align; 1422 var alignment = this.dataGrid._columns[columnId].align;
1423 if (alignment) 1423 if (alignment)
1424 cell.classList.add(alignment); 1424 cell.classList.add(alignment);
1425 1425
1426 if (columnIdentifier === this.dataGrid.disclosureColumnIdentifier) { 1426 if (columnId === this.dataGrid.disclosureColumnId) {
1427 cell.classList.add("disclosure"); 1427 cell.classList.add("disclosure");
1428 if (this.leftPadding) 1428 if (this.leftPadding)
1429 cell.style.setProperty("padding-left", this.leftPadding + "px"); 1429 cell.style.setProperty("padding-left", this.leftPadding + "px");
1430 } 1430 }
1431 1431
1432 return cell; 1432 return cell;
1433 }, 1433 },
1434 1434
1435 /** 1435 /**
1436 * @param {string} columnIdentifier 1436 * @param {string} columnId
1437 * @return {!Element} 1437 * @return {!Element}
1438 */ 1438 */
1439 createCell: function(columnIdentifier) 1439 createCell: function(columnId)
1440 { 1440 {
1441 var cell = this.createTD(columnIdentifier); 1441 var cell = this.createTD(columnId);
1442 1442
1443 var data = this.data[columnIdentifier]; 1443 var data = this.data[columnId];
1444 if (data instanceof Node) { 1444 if (data instanceof Node) {
1445 cell.appendChild(data); 1445 cell.appendChild(data);
1446 } else { 1446 } else {
1447 cell.textContent = data; 1447 cell.textContent = data;
1448 if (this.dataGrid._columns[columnIdentifier].longText) 1448 if (this.dataGrid._columns[columnId].longText)
1449 cell.title = data; 1449 cell.title = data;
1450 } 1450 }
1451 1451
1452 return cell; 1452 return cell;
1453 }, 1453 },
1454 1454
1455 /** 1455 /**
1456 * @return {number} 1456 * @return {number}
1457 */ 1457 */
1458 nodeSelfHeight: function() 1458 nodeSelfHeight: function()
(...skipping 477 matching lines...) Expand 10 before | Expand all | Expand 10 after
1936 detachChildWidgets: function() 1936 detachChildWidgets: function()
1937 { 1937 {
1938 WebInspector.Widget.prototype.detachChildWidgets.call(this); 1938 WebInspector.Widget.prototype.detachChildWidgets.call(this);
1939 for (var dataGrid of this._dataGrids) 1939 for (var dataGrid of this._dataGrids)
1940 this.element.removeChild(dataGrid.element); 1940 this.element.removeChild(dataGrid.element);
1941 this._dataGrids = []; 1941 this._dataGrids = [];
1942 }, 1942 },
1943 1943
1944 __proto__: WebInspector.VBox.prototype 1944 __proto__: WebInspector.VBox.prototype
1945 }; 1945 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698