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 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
96 this._updateSidebarPosition(); | 96 this._updateSidebarPosition(); |
97 this._loadSidebarViews(); | 97 this._loadSidebarViews(); |
98 | 98 |
99 /** @type {!Array.<!WebInspector.ElementsTreeOutline>} */ | 99 /** @type {!Array.<!WebInspector.ElementsTreeOutline>} */ |
100 this._treeOutlines = []; | 100 this._treeOutlines = []; |
101 /** @type {!Map.<!WebInspector.DOMModel, !WebInspector.ElementsTreeOutline>}
*/ | 101 /** @type {!Map.<!WebInspector.DOMModel, !WebInspector.ElementsTreeOutline>}
*/ |
102 this._modelToTreeOutline = new Map(); | 102 this._modelToTreeOutline = new Map(); |
103 WebInspector.targetManager.observeTargets(this); | 103 WebInspector.targetManager.observeTargets(this); |
104 WebInspector.moduleSetting("showUAShadowDOM").addChangeListener(this._showUA
ShadowDOMChanged.bind(this)); | 104 WebInspector.moduleSetting("showUAShadowDOM").addChangeListener(this._showUA
ShadowDOMChanged.bind(this)); |
105 WebInspector.targetManager.addModelListener(WebInspector.DOMModel, WebInspec
tor.DOMModel.Events.DocumentUpdated, this._documentUpdatedEvent, this); | 105 WebInspector.targetManager.addModelListener(WebInspector.DOMModel, WebInspec
tor.DOMModel.Events.DocumentUpdated, this._documentUpdatedEvent, this); |
106 if (Runtime.experiments.isEnabled("materialDesign")) | |
107 WebInspector.targetManager.addModelListener(WebInspector.DOMModel, WebIn
spector.DOMModel.Events.MarkersChanged, this._updateToolbarButtons, this); | |
108 WebInspector.extensionServer.addEventListener(WebInspector.ExtensionServer.E
vents.SidebarPaneAdded, this._extensionSidebarPaneAdded, this); | 106 WebInspector.extensionServer.addEventListener(WebInspector.ExtensionServer.E
vents.SidebarPaneAdded, this._extensionSidebarPaneAdded, this); |
109 } | 107 } |
110 | 108 |
111 WebInspector.ElementsPanel._elementsSidebarViewTitleSymbol = Symbol("title"); | 109 WebInspector.ElementsPanel._elementsSidebarViewTitleSymbol = Symbol("title"); |
112 | 110 |
113 WebInspector.ElementsPanel.prototype = { | 111 WebInspector.ElementsPanel.prototype = { |
114 /** | 112 /** |
115 * @return {!WebInspector.Toolbar} | 113 * @return {!WebInspector.Toolbar} |
116 */ | 114 */ |
117 _createElementsToolbar: function() | 115 _createElementsToolbar: function() |
118 { | 116 { |
119 var toolbar = new WebInspector.ExtensibleToolbar("elements-toolbar"); | 117 var toolbar = new WebInspector.ExtensibleToolbar("elements-toolbar"); |
120 toolbar.element.classList.add("elements-toolbar"); | |
121 this._hideElementButton = new WebInspector.ToolbarButton(WebInspector.UI
String("Hide element"), "visibility-off-toolbar-item"); | |
122 this._hideElementButton.setAction("elements.hide-element"); | |
123 toolbar.appendToolbarItem(this._hideElementButton); | |
124 | |
125 this._editAsHTMLButton = new WebInspector.ToolbarButton(WebInspector.UIS
tring("Edit as HTML"), "edit-toolbar-item"); | |
126 this._editAsHTMLButton.setAction("elements.edit-as-html"); | |
127 toolbar.appendToolbarItem(this._editAsHTMLButton); | |
128 toolbar.appendSeparator(); | |
129 | |
130 this._forceElementStateButton = new WebInspector.ToolbarMenuButton(WebIn
spector.UIString("Force element state"), "pin-toolbar-item", this._showForceElem
entStateMenu.bind(this)); | |
131 toolbar.appendToolbarItem(this._forceElementStateButton); | |
132 this._breakpointsButton = new WebInspector.ToolbarMenuButton(WebInspecto
r.UIString("Toggle breakpoints"), "add-breakpoint-toolbar-item", this._showBreak
pointsMenu.bind(this)); | |
133 toolbar.appendToolbarItem(this._breakpointsButton); | |
134 | |
135 toolbar.appendSeparator(); | |
136 if (Runtime.experiments.isEnabled("layoutEditor") && !Runtime.queryParam
("remoteFrontend")) { | 118 if (Runtime.experiments.isEnabled("layoutEditor") && !Runtime.queryParam
("remoteFrontend")) { |
137 this._layoutEditorButton = new WebInspector.ToolbarButton(WebInspect
or.UIString("Toggle Layout Editor"), "layout-editor-toolbar-item"); | 119 this._layoutEditorButton = new WebInspector.ToolbarButton(WebInspect
or.UIString("Toggle Layout Editor"), "layout-editor-toolbar-item"); |
138 toolbar.appendToolbarItem(this._layoutEditorButton); | 120 toolbar.appendToolbarItem(this._layoutEditorButton); |
139 this._layoutEditorButton.addEventListener("click", this._toggleLayou
tEditor, this); | 121 this._layoutEditorButton.addEventListener("click", this._toggleLayou
tEditor, this); |
140 toolbar.appendSeparator(); | 122 toolbar.appendSeparator(); |
141 } | 123 } |
142 return toolbar; | 124 return toolbar; |
143 }, | 125 }, |
144 | 126 |
145 _toggleHideElement: function() | 127 _toggleHideElement: function() |
146 { | 128 { |
147 var node = this.selectedDOMNode(); | 129 var node = this.selectedDOMNode(); |
148 var treeOutline = this._treeOutlineForNode(node); | 130 var treeOutline = this._treeOutlineForNode(node); |
149 if (!node || !treeOutline) | 131 if (!node || !treeOutline) |
150 return; | 132 return; |
151 treeOutline.toggleHideElement(node); | 133 treeOutline.toggleHideElement(node); |
152 }, | 134 }, |
153 | 135 |
154 _updateToolbarButtons: function() | |
155 { | |
156 if (!Runtime.experiments.isEnabled("materialDesign")) | |
157 return; | |
158 var node = this.selectedDOMNode(); | |
159 if (!node) | |
160 return; | |
161 var classText = node.getAttribute("class"); | |
162 var treeOutline = this._treeOutlineForNode(node); | |
163 this._hideElementButton.setToggled(treeOutline && treeOutline.isToggledT
oHidden(node)); | |
164 this._editAsHTMLButton.setToggled(false); | |
165 this._breakpointsButton.setEnabled(!node.pseudoType()); | |
166 this._breakpointsButton.setToggled(WebInspector.domBreakpointsSidebarPan
e.hasBreakpoints(node)); | |
167 this._forceElementStateButton.setEnabled(node.nodeType() === Node.ELEMEN
T_NODE && !node.pseudoType()); | |
168 this._forceElementStateButton.setToggled(!!WebInspector.CSSStyleModel.fr
omNode(node).pseudoState(node).length); | |
169 }, | |
170 | |
171 _toggleEditAsHTML: function() | 136 _toggleEditAsHTML: function() |
172 { | 137 { |
173 var node = this.selectedDOMNode(); | 138 var node = this.selectedDOMNode(); |
174 var treeOutline = this._treeOutlineForNode(node); | 139 var treeOutline = this._treeOutlineForNode(node); |
175 if (!node || !treeOutline) | 140 if (!node || !treeOutline) |
176 return; | 141 return; |
177 | 142 treeOutline.toggleEditAsHTML(node); |
178 var startEditing = true; | |
179 if (Runtime.experiments.isEnabled("materialDesign")) { | |
180 startEditing = !this._editAsHTMLButton.toggled(); | |
181 this._editAsHTMLButton.setToggled(startEditing); | |
182 } | |
183 treeOutline.toggleEditAsHTML(node, startEditing, this._updateToolbarButt
ons.bind(this)); | |
184 }, | |
185 | |
186 /** | |
187 * @param {!WebInspector.ContextMenu} contextMenu | |
188 */ | |
189 _showBreakpointsMenu: function(contextMenu) | |
190 { | |
191 var node = this.selectedDOMNode(); | |
192 if (!node) | |
193 return; | |
194 WebInspector.domBreakpointsSidebarPane.populateNodeContextMenu(node, con
textMenu, false); | |
195 }, | |
196 | |
197 /** | |
198 * @param {!WebInspector.ContextMenu} contextMenu | |
199 */ | |
200 _showForceElementStateMenu: function(contextMenu) | |
201 { | |
202 var node = this.selectedDOMNode(); | |
203 if (!node) | |
204 return; | |
205 WebInspector.ElementsTreeElement.populateForcedPseudoStateItems(contextM
enu, node); | |
206 }, | 143 }, |
207 | 144 |
208 _loadSidebarViews: function() | 145 _loadSidebarViews: function() |
209 { | 146 { |
210 var extensions = self.runtime.extensions("@WebInspector.Widget"); | 147 var extensions = self.runtime.extensions("@WebInspector.Widget"); |
211 | 148 |
212 for (var i = 0; i < extensions.length; ++i) { | 149 for (var i = 0; i < extensions.length; ++i) { |
213 var descriptor = extensions[i].descriptor(); | 150 var descriptor = extensions[i].descriptor(); |
214 if (descriptor["location"] !== "elements-panel") | 151 if (descriptor["location"] !== "elements-panel") |
215 continue; | 152 continue; |
(...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
391 this._breadcrumbs.setSelectedNode(selectedNode); | 328 this._breadcrumbs.setSelectedNode(selectedNode); |
392 | 329 |
393 WebInspector.context.setFlavor(WebInspector.DOMNode, selectedNode); | 330 WebInspector.context.setFlavor(WebInspector.DOMNode, selectedNode); |
394 | 331 |
395 if (selectedNode) { | 332 if (selectedNode) { |
396 selectedNode.setAsInspectedNode(); | 333 selectedNode.setAsInspectedNode(); |
397 this._lastValidSelectedNode = selectedNode; | 334 this._lastValidSelectedNode = selectedNode; |
398 } | 335 } |
399 WebInspector.notifications.dispatchEventToListeners(WebInspector.Notific
ationService.Events.SelectedNodeChanged); | 336 WebInspector.notifications.dispatchEventToListeners(WebInspector.Notific
ationService.Events.SelectedNodeChanged); |
400 this._selectedNodeChangedForTest(); | 337 this._selectedNodeChangedForTest(); |
401 if (Runtime.experiments.isEnabled("materialDesign")) | |
402 this._updateToolbarButtons(); | |
403 }, | 338 }, |
404 | 339 |
405 _selectedNodeChangedForTest: function() { }, | 340 _selectedNodeChangedForTest: function() { }, |
406 | 341 |
407 _reset: function() | 342 _reset: function() |
408 { | 343 { |
409 delete this.currentQuery; | 344 delete this.currentQuery; |
410 }, | 345 }, |
411 | 346 |
412 /** | 347 /** |
(...skipping 863 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1276 /** | 1211 /** |
1277 * @override | 1212 * @override |
1278 * @param {!WebInspector.DOMNode} node | 1213 * @param {!WebInspector.DOMNode} node |
1279 * @return {?{title: string, color: string}} | 1214 * @return {?{title: string, color: string}} |
1280 */ | 1215 */ |
1281 decorate: function(node) | 1216 decorate: function(node) |
1282 { | 1217 { |
1283 return { color: "#555", title: WebInspector.UIString("Element is hidden"
) }; | 1218 return { color: "#555", title: WebInspector.UIString("Element is hidden"
) }; |
1284 } | 1219 } |
1285 } | 1220 } |
OLD | NEW |