Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright (C) 2007, 2008 Apple Inc. All rights reserved. | 2 * Copyright (C) 2007, 2008 Apple Inc. All rights reserved. |
| 3 * Copyright (C) 2008 Matt Lilek <webkit@mattlilek.com> | 3 * Copyright (C) 2008 Matt Lilek <webkit@mattlilek.com> |
| 4 * Copyright (C) 2009 Joseph Pecoraro | 4 * Copyright (C) 2009 Joseph Pecoraro |
| 5 * | 5 * |
| 6 * Redistribution and use in source and binary forms, with or without | 6 * Redistribution and use in source and binary forms, with or without |
| 7 * modification, are permitted provided that the following conditions | 7 * modification, are permitted provided that the following conditions |
| 8 * are met: | 8 * are met: |
| 9 * | 9 * |
| 10 * 1. Redistributions of source code must retain the above copyright | 10 * 1. Redistributions of source code must retain the above copyright |
| (...skipping 1122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1133 return this._expandedChildrenLimit; | 1133 return this._expandedChildrenLimit; |
| 1134 }, | 1134 }, |
| 1135 | 1135 |
| 1136 set expandedChildrenLimit(x) | 1136 set expandedChildrenLimit(x) |
| 1137 { | 1137 { |
| 1138 if (this._expandedChildrenLimit === x) | 1138 if (this._expandedChildrenLimit === x) |
| 1139 return; | 1139 return; |
| 1140 | 1140 |
| 1141 this._expandedChildrenLimit = x; | 1141 this._expandedChildrenLimit = x; |
| 1142 if (this.treeOutline && !this._updateChildrenInProgress) | 1142 if (this.treeOutline && !this._updateChildrenInProgress) |
| 1143 this._updateChildren(true); | 1143 this._updateChildren(true, this.children); |
| 1144 }, | 1144 }, |
| 1145 | 1145 |
| 1146 get expandedChildCount() | 1146 get expandedChildCount() |
| 1147 { | 1147 { |
| 1148 var count = this.children.length; | 1148 var count = this.children.length; |
| 1149 if (count && this.children[count - 1]._elementCloseTag) | 1149 if (count && this.children[count - 1]._elementCloseTag) |
| 1150 count--; | 1150 count--; |
| 1151 if (count && this.children[count - 1].expandAllButton) | 1151 if (count && this.children[count - 1].expandAllButton) |
| 1152 count--; | 1152 count--; |
| 1153 return count; | 1153 return count; |
| 1154 }, | 1154 }, |
| 1155 | 1155 |
| 1156 /** | 1156 /** |
| 1157 * @param {!WebInspector.DOMNode} child | 1157 * @param {!WebInspector.DOMNode} child |
| 1158 * @return {?WebInspector.ElementsTreeElement} | 1158 * @return {?WebInspector.ElementsTreeElement} |
| 1159 */ | 1159 */ |
| 1160 _showChild: function(child) | 1160 _showChild: function(child) |
| 1161 { | 1161 { |
| 1162 if (this._elementCloseTag) | 1162 if (this._elementCloseTag) |
| 1163 return null; | 1163 return null; |
| 1164 | 1164 |
| 1165 var index = this._visibleChildren().indexOf(child); | 1165 var index = this._visibleChildren().indexOf(child); |
| 1166 if (index === -1) | 1166 if (index === -1) |
| 1167 return null; | 1167 return null; |
| 1168 | 1168 |
| 1169 if (index >= this.expandedChildrenLimit) { | 1169 if (index >= this.expandedChildrenLimit) { |
| 1170 this._expandedChildrenLimit = index + 1; | 1170 this._expandedChildrenLimit = index + 1; |
| 1171 this._updateChildren(true); | 1171 this._updateChildren(true, this.children); |
| 1172 } | 1172 } |
| 1173 | 1173 |
| 1174 // Whether index-th child is visible in the children tree | 1174 // Whether index-th child is visible in the children tree |
| 1175 return this.expandedChildCount > index ? this.children[index] : null; | 1175 return this.expandedChildCount > index ? this.children[index] : null; |
| 1176 }, | 1176 }, |
| 1177 | 1177 |
| 1178 updateSelection: function() | 1178 updateSelection: function() |
| 1179 { | 1179 { |
| 1180 var listItemElement = this.listItemElement; | 1180 var listItemElement = this.listItemElement; |
| 1181 if (!listItemElement) | 1181 if (!listItemElement) |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1232 }, | 1232 }, |
| 1233 | 1233 |
| 1234 /** | 1234 /** |
| 1235 * @param {boolean=} fullRefresh | 1235 * @param {boolean=} fullRefresh |
| 1236 */ | 1236 */ |
| 1237 updateChildren: function(fullRefresh) | 1237 updateChildren: function(fullRefresh) |
| 1238 { | 1238 { |
| 1239 if (!this.hasChildren) | 1239 if (!this.hasChildren) |
| 1240 return; | 1240 return; |
| 1241 console.assert(!this._elementCloseTag); | 1241 console.assert(!this._elementCloseTag); |
| 1242 this._node.getChildNodes(this._updateChildren.bind(this, fullRefresh)); | 1242 this._node.getChildNodes(this._updateChildren.bind(this, fullRefresh || false)); |
| 1243 }, | 1243 }, |
| 1244 | 1244 |
| 1245 /** | 1245 /** |
| 1246 * @param {!WebInspector.DOMNode} child | 1246 * @param {!WebInspector.DOMNode} child |
| 1247 * @param {number} index | 1247 * @param {number} index |
| 1248 * @param {boolean=} closingTag | 1248 * @param {boolean=} closingTag |
| 1249 * @return {!WebInspector.ElementsTreeElement} | 1249 * @return {!WebInspector.ElementsTreeElement} |
| 1250 */ | 1250 */ |
| 1251 insertChildElement: function(child, index, closingTag) | 1251 insertChildElement: function(child, index, closingTag) |
| 1252 { | 1252 { |
| 1253 var newElement = new WebInspector.ElementsTreeElement(child, closingTag) ; | 1253 var newElement = new WebInspector.ElementsTreeElement(child, closingTag) ; |
| 1254 newElement.selectable = this.treeOutline._selectEnabled; | 1254 newElement.selectable = this.treeOutline._selectEnabled; |
| 1255 this.insertChild(newElement, index); | 1255 this.insertChild(newElement, index); |
| 1256 return newElement; | 1256 return newElement; |
| 1257 }, | 1257 }, |
| 1258 | 1258 |
| 1259 moveChild: function(child, targetIndex) | 1259 moveChild: function(child, targetIndex) |
| 1260 { | 1260 { |
| 1261 var wasSelected = child.selected; | 1261 var wasSelected = child.selected; |
| 1262 this.removeChild(child); | 1262 this.removeChild(child); |
| 1263 this.insertChild(child, targetIndex); | 1263 this.insertChild(child, targetIndex); |
| 1264 if (wasSelected) | 1264 if (wasSelected) |
| 1265 child.select(); | 1265 child.select(); |
| 1266 }, | 1266 }, |
| 1267 | 1267 |
| 1268 /** | 1268 /** |
| 1269 * @param {boolean=} fullRefresh | 1269 * @param {boolean} fullRefresh |
| 1270 * @param {?Array.<!WebInspector.DOMNode>} children | |
| 1270 */ | 1271 */ |
| 1271 _updateChildren: function(fullRefresh) | 1272 _updateChildren: function(fullRefresh, children) |
| 1272 { | 1273 { |
| 1273 if (this._updateChildrenInProgress || !this.treeOutline._visible) | 1274 if (!children || this._updateChildrenInProgress || !this.treeOutline._vi sible) |
|
pfeldman
2014/11/12 17:19:39
Could reviewers explain why this is needed here?
| |
| 1274 return; | 1275 return; |
| 1275 | 1276 |
| 1276 this._updateChildrenInProgress = true; | 1277 this._updateChildrenInProgress = true; |
| 1277 var selectedNode = this.treeOutline.selectedDOMNode(); | 1278 var selectedNode = this.treeOutline.selectedDOMNode(); |
| 1278 var originalScrollTop = 0; | 1279 var originalScrollTop = 0; |
| 1279 if (fullRefresh) { | 1280 if (fullRefresh) { |
| 1280 var treeOutlineContainerElement = this.treeOutline.element.parentNod e; | 1281 var treeOutlineContainerElement = this.treeOutline.element.parentNod e; |
| 1281 originalScrollTop = treeOutlineContainerElement.scrollTop; | 1282 originalScrollTop = treeOutlineContainerElement.scrollTop; |
| 1282 var selectedTreeElement = this.treeOutline.selectedTreeElement; | 1283 var selectedTreeElement = this.treeOutline.selectedTreeElement; |
| 1283 if (selectedTreeElement && selectedTreeElement.hasAncestor(this)) | 1284 if (selectedTreeElement && selectedTreeElement.hasAncestor(this)) |
| (...skipping 1666 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2950 treeOutline.rootDOMNode = node; | 2951 treeOutline.rootDOMNode = node; |
| 2951 if (!treeOutline.children[0].hasChildren) | 2952 if (!treeOutline.children[0].hasChildren) |
| 2952 treeOutline._element.classList.add("single-node"); | 2953 treeOutline._element.classList.add("single-node"); |
| 2953 treeOutline.setVisible(true); | 2954 treeOutline.setVisible(true); |
| 2954 treeOutline.element.treeElementForTest = treeOutline.children[0] ; | 2955 treeOutline.element.treeElementForTest = treeOutline.children[0] ; |
| 2955 resolve(treeOutline.element); | 2956 resolve(treeOutline.element); |
| 2956 } | 2957 } |
| 2957 } | 2958 } |
| 2958 } | 2959 } |
| 2959 } | 2960 } |
| OLD | NEW |