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

Side by Side Diff: third_party/WebKit/Source/devtools/front_end/layer_viewer/LayerTreeOutline.js

Issue 2493373002: DevTools: rename WebInspector into modules. (Closed)
Patch Set: for bots 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) 2013 Google Inc. All rights reserved. 2 * Copyright (C) 2013 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 10 matching lines...) Expand all
21 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 21 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
22 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 22 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
23 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 23 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
24 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 24 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 */ 29 */
30 /** 30 /**
31 * @implements {WebInspector.LayerView} 31 * @implements {LayerViewer.LayerView}
32 * @unrestricted 32 * @unrestricted
33 */ 33 */
34 WebInspector.LayerTreeOutline = class extends WebInspector.Object { 34 LayerViewer.LayerTreeOutline = class extends Common.Object {
35 /** 35 /**
36 * @param {!WebInspector.LayerViewHost} layerViewHost 36 * @param {!LayerViewer.LayerViewHost} layerViewHost
37 */ 37 */
38 constructor(layerViewHost) { 38 constructor(layerViewHost) {
39 super(); 39 super();
40 this._layerViewHost = layerViewHost; 40 this._layerViewHost = layerViewHost;
41 this._layerViewHost.registerView(this); 41 this._layerViewHost.registerView(this);
42 42
43 this._treeOutline = new TreeOutlineInShadow(); 43 this._treeOutline = new TreeOutlineInShadow();
44 this._treeOutline.element.classList.add('layer-tree', 'overflow-auto'); 44 this._treeOutline.element.classList.add('layer-tree', 'overflow-auto');
45 this._treeOutline.element.addEventListener('mousemove', this._onMouseMove.bi nd(this), false); 45 this._treeOutline.element.addEventListener('mousemove', this._onMouseMove.bi nd(this), false);
46 this._treeOutline.element.addEventListener('mouseout', this._onMouseMove.bin d(this), false); 46 this._treeOutline.element.addEventListener('mouseout', this._onMouseMove.bin d(this), false);
47 this._treeOutline.element.addEventListener('contextmenu', this._onContextMen u.bind(this), true); 47 this._treeOutline.element.addEventListener('contextmenu', this._onContextMen u.bind(this), true);
48 48
49 this._lastHoveredNode = null; 49 this._lastHoveredNode = null;
50 this.element = this._treeOutline.element; 50 this.element = this._treeOutline.element;
51 this._layerViewHost.showInternalLayersSetting().addChangeListener(this._upda te, this); 51 this._layerViewHost.showInternalLayersSetting().addChangeListener(this._upda te, this);
52 } 52 }
53 53
54 focus() { 54 focus() {
55 this._treeOutline.focus(); 55 this._treeOutline.focus();
56 } 56 }
57 57
58 /** 58 /**
59 * @param {?WebInspector.LayerView.Selection} selection 59 * @param {?LayerViewer.LayerView.Selection} selection
60 * @override 60 * @override
61 */ 61 */
62 selectObject(selection) { 62 selectObject(selection) {
63 this.hoverObject(null); 63 this.hoverObject(null);
64 var layer = selection && selection.layer(); 64 var layer = selection && selection.layer();
65 var node = layer && layer[WebInspector.LayerTreeElement._symbol]; 65 var node = layer && layer[LayerViewer.LayerTreeElement._symbol];
66 if (node) 66 if (node)
67 node.revealAndSelect(true); 67 node.revealAndSelect(true);
68 else if (this._treeOutline.selectedTreeElement) 68 else if (this._treeOutline.selectedTreeElement)
69 this._treeOutline.selectedTreeElement.deselect(); 69 this._treeOutline.selectedTreeElement.deselect();
70 } 70 }
71 71
72 /** 72 /**
73 * @param {?WebInspector.LayerView.Selection} selection 73 * @param {?LayerViewer.LayerView.Selection} selection
74 * @override 74 * @override
75 */ 75 */
76 hoverObject(selection) { 76 hoverObject(selection) {
77 var layer = selection && selection.layer(); 77 var layer = selection && selection.layer();
78 var node = layer && layer[WebInspector.LayerTreeElement._symbol]; 78 var node = layer && layer[LayerViewer.LayerTreeElement._symbol];
79 if (node === this._lastHoveredNode) 79 if (node === this._lastHoveredNode)
80 return; 80 return;
81 if (this._lastHoveredNode) 81 if (this._lastHoveredNode)
82 this._lastHoveredNode.setHovered(false); 82 this._lastHoveredNode.setHovered(false);
83 if (node) 83 if (node)
84 node.setHovered(true); 84 node.setHovered(true);
85 this._lastHoveredNode = node; 85 this._lastHoveredNode = node;
86 } 86 }
87 87
88 /** 88 /**
89 * @param {?WebInspector.LayerTreeBase} layerTree 89 * @param {?SDK.LayerTreeBase} layerTree
90 * @override 90 * @override
91 */ 91 */
92 setLayerTree(layerTree) { 92 setLayerTree(layerTree) {
93 this._layerTree = layerTree; 93 this._layerTree = layerTree;
94 this._update(); 94 this._update();
95 } 95 }
96 96
97 _update() { 97 _update() {
98 var showInternalLayers = this._layerViewHost.showInternalLayersSetting().get (); 98 var showInternalLayers = this._layerViewHost.showInternalLayersSetting().get ();
99 var seenLayers = new Map(); 99 var seenLayers = new Map();
100 var root = null; 100 var root = null;
101 if (this._layerTree) { 101 if (this._layerTree) {
102 if (!showInternalLayers) 102 if (!showInternalLayers)
103 root = this._layerTree.contentRoot(); 103 root = this._layerTree.contentRoot();
104 if (!root) 104 if (!root)
105 root = this._layerTree.root(); 105 root = this._layerTree.root();
106 } 106 }
107 107
108 /** 108 /**
109 * @param {!WebInspector.Layer} layer 109 * @param {!SDK.Layer} layer
110 * @this {WebInspector.LayerTreeOutline} 110 * @this {LayerViewer.LayerTreeOutline}
111 */ 111 */
112 function updateLayer(layer) { 112 function updateLayer(layer) {
113 if (!layer.drawsContent() && !showInternalLayers) 113 if (!layer.drawsContent() && !showInternalLayers)
114 return; 114 return;
115 if (seenLayers.get(layer)) 115 if (seenLayers.get(layer))
116 console.assert(false, 'Duplicate layer: ' + layer.id()); 116 console.assert(false, 'Duplicate layer: ' + layer.id());
117 seenLayers.set(layer, true); 117 seenLayers.set(layer, true);
118 var node = layer[WebInspector.LayerTreeElement._symbol]; 118 var node = layer[LayerViewer.LayerTreeElement._symbol];
119 var parentLayer = layer.parent(); 119 var parentLayer = layer.parent();
120 // Skip till nearest visible ancestor. 120 // Skip till nearest visible ancestor.
121 while (parentLayer && parentLayer !== root && !parentLayer.drawsContent() && !showInternalLayers) 121 while (parentLayer && parentLayer !== root && !parentLayer.drawsContent() && !showInternalLayers)
122 parentLayer = parentLayer.parent(); 122 parentLayer = parentLayer.parent();
123 var parent = 123 var parent =
124 layer === root ? this._treeOutline.rootElement() : parentLayer[WebInsp ector.LayerTreeElement._symbol]; 124 layer === root ? this._treeOutline.rootElement() : parentLayer[LayerVi ewer.LayerTreeElement._symbol];
125 if (!parent) { 125 if (!parent) {
126 console.assert(false, 'Parent is not in the tree'); 126 console.assert(false, 'Parent is not in the tree');
127 return; 127 return;
128 } 128 }
129 if (!node) { 129 if (!node) {
130 node = new WebInspector.LayerTreeElement(this, layer); 130 node = new LayerViewer.LayerTreeElement(this, layer);
131 parent.appendChild(node); 131 parent.appendChild(node);
132 // Expand all new non-content layers to expose content layers better. 132 // Expand all new non-content layers to expose content layers better.
133 if (!layer.drawsContent()) 133 if (!layer.drawsContent())
134 node.expand(); 134 node.expand();
135 } else { 135 } else {
136 if (node.parent !== parent) { 136 if (node.parent !== parent) {
137 var oldSelection = this._treeOutline.selectedTreeElement; 137 var oldSelection = this._treeOutline.selectedTreeElement;
138 if (node.parent) 138 if (node.parent)
139 node.parent.removeChild(node); 139 node.parent.removeChild(node);
140 parent.appendChild(node); 140 parent.appendChild(node);
(...skipping 14 matching lines...) Expand all
155 var nextNode = node.nextSibling || node.parent; 155 var nextNode = node.nextSibling || node.parent;
156 node.parent.removeChild(node); 156 node.parent.removeChild(node);
157 if (node === this._lastHoveredNode) 157 if (node === this._lastHoveredNode)
158 this._lastHoveredNode = null; 158 this._lastHoveredNode = null;
159 node = nextNode; 159 node = nextNode;
160 } 160 }
161 } 161 }
162 if (!this._treeOutline.selectedTreeElement) { 162 if (!this._treeOutline.selectedTreeElement) {
163 var elementToSelect = this._layerTree.contentRoot() || this._layerTree.roo t(); 163 var elementToSelect = this._layerTree.contentRoot() || this._layerTree.roo t();
164 if (elementToSelect) 164 if (elementToSelect)
165 elementToSelect[WebInspector.LayerTreeElement._symbol].revealAndSelect(t rue); 165 elementToSelect[LayerViewer.LayerTreeElement._symbol].revealAndSelect(tr ue);
166 } 166 }
167 } 167 }
168 168
169 /** 169 /**
170 * @param {!Event} event 170 * @param {!Event} event
171 */ 171 */
172 _onMouseMove(event) { 172 _onMouseMove(event) {
173 var node = this._treeOutline.treeElementFromEvent(event); 173 var node = this._treeOutline.treeElementFromEvent(event);
174 if (node === this._lastHoveredNode) 174 if (node === this._lastHoveredNode)
175 return; 175 return;
176 this._layerViewHost.hoverObject(this._selectionForNode(node)); 176 this._layerViewHost.hoverObject(this._selectionForNode(node));
177 } 177 }
178 178
179 /** 179 /**
180 * @param {!WebInspector.LayerTreeElement} node 180 * @param {!LayerViewer.LayerTreeElement} node
181 */ 181 */
182 _selectedNodeChanged(node) { 182 _selectedNodeChanged(node) {
183 this._layerViewHost.selectObject(this._selectionForNode(node)); 183 this._layerViewHost.selectObject(this._selectionForNode(node));
184 } 184 }
185 185
186 /** 186 /**
187 * @param {!Event} event 187 * @param {!Event} event
188 */ 188 */
189 _onContextMenu(event) { 189 _onContextMenu(event) {
190 var selection = this._selectionForNode(this._treeOutline.treeElementFromEven t(event)); 190 var selection = this._selectionForNode(this._treeOutline.treeElementFromEven t(event));
191 var contextMenu = new WebInspector.ContextMenu(event); 191 var contextMenu = new UI.ContextMenu(event);
192 this._layerViewHost.showContextMenu(contextMenu, selection); 192 this._layerViewHost.showContextMenu(contextMenu, selection);
193 } 193 }
194 194
195 /** 195 /**
196 * @param {?TreeElement} node 196 * @param {?TreeElement} node
197 * @return {?WebInspector.LayerView.Selection} 197 * @return {?LayerViewer.LayerView.Selection}
198 */ 198 */
199 _selectionForNode(node) { 199 _selectionForNode(node) {
200 return node && node._layer ? new WebInspector.LayerView.LayerSelection(node. _layer) : null; 200 return node && node._layer ? new LayerViewer.LayerView.LayerSelection(node._ layer) : null;
201 } 201 }
202 }; 202 };
203 203
204 /** 204 /**
205 * @unrestricted 205 * @unrestricted
206 */ 206 */
207 WebInspector.LayerTreeElement = class extends TreeElement { 207 LayerViewer.LayerTreeElement = class extends TreeElement {
208 /** 208 /**
209 * @param {!WebInspector.LayerTreeOutline} tree 209 * @param {!LayerViewer.LayerTreeOutline} tree
210 * @param {!WebInspector.Layer} layer 210 * @param {!SDK.Layer} layer
211 */ 211 */
212 constructor(tree, layer) { 212 constructor(tree, layer) {
213 super(); 213 super();
214 this._treeOutline = tree; 214 this._treeOutline = tree;
215 this._layer = layer; 215 this._layer = layer;
216 this._layer[WebInspector.LayerTreeElement._symbol] = this; 216 this._layer[LayerViewer.LayerTreeElement._symbol] = this;
217 this._update(); 217 this._update();
218 } 218 }
219 219
220 _update() { 220 _update() {
221 var node = this._layer.nodeForSelfOrAncestor(); 221 var node = this._layer.nodeForSelfOrAncestor();
222 var title = createDocumentFragment(); 222 var title = createDocumentFragment();
223 title.createTextChild(node ? WebInspector.DOMPresentationUtils.simpleSelecto r(node) : '#' + this._layer.id()); 223 title.createTextChild(node ? Components.DOMPresentationUtils.simpleSelector( node) : '#' + this._layer.id());
224 var details = title.createChild('span', 'dimmed'); 224 var details = title.createChild('span', 'dimmed');
225 details.textContent = WebInspector.UIString(' (%d × %d)', this._layer.width( ), this._layer.height()); 225 details.textContent = Common.UIString(' (%d × %d)', this._layer.width(), thi s._layer.height());
226 this.title = title; 226 this.title = title;
227 } 227 }
228 228
229 /** 229 /**
230 * @override 230 * @override
231 * @return {boolean} 231 * @return {boolean}
232 */ 232 */
233 onselect() { 233 onselect() {
234 this._treeOutline._selectedNodeChanged(this); 234 this._treeOutline._selectedNodeChanged(this);
235 return false; 235 return false;
236 } 236 }
237 237
238 /** 238 /**
239 * @param {boolean} hovered 239 * @param {boolean} hovered
240 */ 240 */
241 setHovered(hovered) { 241 setHovered(hovered) {
242 this.listItemElement.classList.toggle('hovered', hovered); 242 this.listItemElement.classList.toggle('hovered', hovered);
243 } 243 }
244 }; 244 };
245 245
246 WebInspector.LayerTreeElement._symbol = Symbol('layer'); 246 LayerViewer.LayerTreeElement._symbol = Symbol('layer');
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698