| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2011 Google Inc. All rights reserved. | 2 * Copyright (C) 2011 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 13 matching lines...) Expand all Loading... |
| 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 /** | 31 /** |
| 32 * @implements {UI.ContextFlavorListener} | 32 * @implements {UI.ContextFlavorListener} |
| 33 */ | 33 */ |
| 34 Components.DOMBreakpointsSidebarPane = class extends Components.BreakpointsSideb
arPaneBase { | 34 Components.DOMBreakpointsSidebarPane = class extends UI.VBox { |
| 35 constructor() { | 35 constructor() { |
| 36 super(); | 36 super(true); |
| 37 this.registerRequiredCSS('components/breakpointsList.css'); | 37 this.registerRequiredCSS('components/domBreakpointsSidebarPane.css'); |
| 38 this.listElement.classList.add('dom-breakpoints-list'); | 38 |
| 39 this._listElement = this.contentElement.createChild('div', 'breakpoint-list
hidden'); |
| 40 this._emptyElement = this.contentElement.createChild('div', 'gray-info-messa
ge'); |
| 41 this._emptyElement.textContent = Common.UIString('No Breakpoints'); |
| 39 | 42 |
| 40 /** @type {!Map<!SDK.DOMDebuggerModel.DOMBreakpoint, !Components.DOMBreakpoi
ntsSidebarPane.Item>} */ | 43 /** @type {!Map<!SDK.DOMDebuggerModel.DOMBreakpoint, !Components.DOMBreakpoi
ntsSidebarPane.Item>} */ |
| 41 this._items = new Map(); | 44 this._items = new Map(); |
| 42 SDK.targetManager.addModelListener( | 45 SDK.targetManager.addModelListener( |
| 43 SDK.DOMDebuggerModel, SDK.DOMDebuggerModel.Events.DOMBreakpointAdded, th
is._breakpointAdded, this); | 46 SDK.DOMDebuggerModel, SDK.DOMDebuggerModel.Events.DOMBreakpointAdded, th
is._breakpointAdded, this); |
| 44 SDK.targetManager.addModelListener( | 47 SDK.targetManager.addModelListener( |
| 45 SDK.DOMDebuggerModel, SDK.DOMDebuggerModel.Events.DOMBreakpointToggled,
this._breakpointToggled, this); | 48 SDK.DOMDebuggerModel, SDK.DOMDebuggerModel.Events.DOMBreakpointToggled,
this._breakpointToggled, this); |
| 46 SDK.targetManager.addModelListener( | 49 SDK.targetManager.addModelListener( |
| 47 SDK.DOMDebuggerModel, SDK.DOMDebuggerModel.Events.DOMBreakpointsRemoved,
this._breakpointsRemoved, this); | 50 SDK.DOMDebuggerModel, SDK.DOMDebuggerModel.Events.DOMBreakpointsRemoved,
this._breakpointsRemoved, this); |
| 48 | 51 |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 110 | 113 |
| 111 /** | 114 /** |
| 112 * @param {!Common.Event} event | 115 * @param {!Common.Event} event |
| 113 */ | 116 */ |
| 114 _breakpointsRemoved(event) { | 117 _breakpointsRemoved(event) { |
| 115 var breakpoints = /** @type {!Array<!SDK.DOMDebuggerModel.DOMBreakpoint>} */
(event.data); | 118 var breakpoints = /** @type {!Array<!SDK.DOMDebuggerModel.DOMBreakpoint>} */
(event.data); |
| 116 for (var breakpoint of breakpoints) { | 119 for (var breakpoint of breakpoints) { |
| 117 var item = this._items.get(breakpoint); | 120 var item = this._items.get(breakpoint); |
| 118 if (item) { | 121 if (item) { |
| 119 this._items.delete(breakpoint); | 122 this._items.delete(breakpoint); |
| 120 this.removeListElement(item.element); | 123 this._listElement.removeChild(item.element); |
| 121 } | 124 } |
| 122 } | 125 } |
| 126 if (!this._listElement.firstChild) { |
| 127 this._emptyElement.classList.remove('hidden'); |
| 128 this._listElement.classList.add('hidden'); |
| 129 } |
| 123 } | 130 } |
| 124 | 131 |
| 125 /** | 132 /** |
| 126 * @param {!SDK.DOMDebuggerModel.DOMBreakpoint} breakpoint | 133 * @param {!SDK.DOMDebuggerModel.DOMBreakpoint} breakpoint |
| 127 */ | 134 */ |
| 128 _addBreakpoint(breakpoint) { | 135 _addBreakpoint(breakpoint) { |
| 129 var element = createElement('li'); | 136 var element = createElementWithClass('div', 'breakpoint-entry'); |
| 130 element.addEventListener('contextmenu', this._contextMenu.bind(this, breakpo
int), true); | 137 element.addEventListener('contextmenu', this._contextMenu.bind(this, breakpo
int), true); |
| 131 | 138 |
| 132 var checkboxLabel = UI.CheckboxLabel.create('', breakpoint.enabled); | 139 var checkboxLabel = UI.CheckboxLabel.create('', breakpoint.enabled); |
| 133 var checkboxElement = checkboxLabel.checkboxElement; | 140 var checkboxElement = checkboxLabel.checkboxElement; |
| 134 checkboxElement.addEventListener('click', this._checkboxClicked.bind(this, b
reakpoint), false); | 141 checkboxElement.addEventListener('click', this._checkboxClicked.bind(this, b
reakpoint), false); |
| 135 element.appendChild(checkboxLabel); | 142 element.appendChild(checkboxLabel); |
| 136 | 143 |
| 137 var labelElement = createElementWithClass('div', 'dom-breakpoint'); | 144 var labelElement = createElementWithClass('div', 'dom-breakpoint'); |
| 138 element.appendChild(labelElement); | 145 element.appendChild(labelElement); |
| 139 | 146 |
| 140 var linkifiedNode = Components.DOMPresentationUtils.linkifyNodeReference(bre
akpoint.node); | 147 var linkifiedNode = Components.DOMPresentationUtils.linkifyNodeReference(bre
akpoint.node); |
| 141 linkifiedNode.classList.add('monospace'); | 148 linkifiedNode.classList.add('monospace'); |
| 142 linkifiedNode.style.display = 'block'; | 149 linkifiedNode.style.display = 'block'; |
| 143 labelElement.appendChild(linkifiedNode); | 150 labelElement.appendChild(linkifiedNode); |
| 144 | 151 |
| 145 var description = createElement('div'); | 152 var description = createElement('div'); |
| 146 description.textContent = Components.DOMBreakpointsSidebarPane.BreakpointTyp
eLabels.get(breakpoint.type); | 153 description.textContent = Components.DOMBreakpointsSidebarPane.BreakpointTyp
eLabels.get(breakpoint.type); |
| 147 labelElement.appendChild(description); | 154 labelElement.appendChild(description); |
| 148 | 155 |
| 149 var item = {breakpoint: breakpoint, element: element, checkbox: checkboxElem
ent}; | 156 var item = {breakpoint: breakpoint, element: element, checkbox: checkboxElem
ent}; |
| 150 element._item = item; | 157 element._item = item; |
| 151 this._items.set(breakpoint, item); | 158 this._items.set(breakpoint, item); |
| 152 | 159 |
| 153 var currentElement = this.listElement.firstChild; | 160 var currentElement = this._listElement.firstChild; |
| 154 while (currentElement) { | 161 while (currentElement) { |
| 155 if (currentElement._item && currentElement._item.breakpoint.type < breakpo
int.type) | 162 if (currentElement._item && currentElement._item.breakpoint.type < breakpo
int.type) |
| 156 break; | 163 break; |
| 157 currentElement = currentElement.nextSibling; | 164 currentElement = currentElement.nextSibling; |
| 158 } | 165 } |
| 159 this.addListElement(element, currentElement); | 166 this._listElement.insertBefore(element, currentElement); |
| 167 this._emptyElement.classList.add('hidden'); |
| 168 this._listElement.classList.remove('hidden'); |
| 160 } | 169 } |
| 161 | 170 |
| 162 /** | 171 /** |
| 163 * @param {!SDK.DOMDebuggerModel.DOMBreakpoint} breakpoint | 172 * @param {!SDK.DOMDebuggerModel.DOMBreakpoint} breakpoint |
| 164 * @param {!Event} event | 173 * @param {!Event} event |
| 165 */ | 174 */ |
| 166 _contextMenu(breakpoint, event) { | 175 _contextMenu(breakpoint, event) { |
| 167 var contextMenu = new UI.ContextMenu(event); | 176 var contextMenu = new UI.ContextMenu(event); |
| 168 contextMenu.appendItem(Common.UIString.capitalize('Remove ^breakpoint'), ()
=> { | 177 contextMenu.appendItem(Common.UIString.capitalize('Remove ^breakpoint'), ()
=> { |
| 169 breakpoint.domDebuggerModel.removeDOMBreakpoint(breakpoint.node, breakpoin
t.type); | 178 breakpoint.domDebuggerModel.removeDOMBreakpoint(breakpoint.node, breakpoin
t.type); |
| (...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 266 | 275 |
| 267 var breakpointsMenu = contextMenu.appendSubMenuItem(Common.UIString('Break o
n...')); | 276 var breakpointsMenu = contextMenu.appendSubMenuItem(Common.UIString('Break o
n...')); |
| 268 for (var key in SDK.DOMDebuggerModel.DOMBreakpoint.Type) { | 277 for (var key in SDK.DOMDebuggerModel.DOMBreakpoint.Type) { |
| 269 var type = SDK.DOMDebuggerModel.DOMBreakpoint.Type[key]; | 278 var type = SDK.DOMDebuggerModel.DOMBreakpoint.Type[key]; |
| 270 var label = Components.DOMBreakpointsSidebarPane.BreakpointTypeNouns.get(t
ype); | 279 var label = Components.DOMBreakpointsSidebarPane.BreakpointTypeNouns.get(t
ype); |
| 271 breakpointsMenu.appendCheckboxItem( | 280 breakpointsMenu.appendCheckboxItem( |
| 272 label, toggleBreakpoint.bind(null, type), domDebuggerModel.hasDOMBreak
point(node, type)); | 281 label, toggleBreakpoint.bind(null, type), domDebuggerModel.hasDOMBreak
point(node, type)); |
| 273 } | 282 } |
| 274 } | 283 } |
| 275 }; | 284 }; |
| OLD | NEW |