 Chromium Code Reviews
 Chromium Code Reviews Issue 2900843002:
  DevTools: remove BreakpointsSidebarPaneBase and breakpointsList.css  (Closed)
    
  
    Issue 2900843002:
  DevTools: remove BreakpointsSidebarPaneBase and breakpointsList.css  (Closed) 
  | 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/breakpointsList.css'); | 
| 38 this.listElement.classList.add('dom-breakpoints-list'); | 38 this.registerRequiredCSS('components/domBreakpointsSidebarPane.css'); | 
| 39 | |
| 40 this._listElement = createElementWithClass('ol', 'breakpoint-list'); | |
| 
dgozman
2017/05/30 21:53:39
While we are here, let's change ol to div.
 
luoe
2017/05/31 03:09:24
Done.
 | |
| 41 this._emptyElement = this.contentElement.createChild('div', 'gray-info-messa ge'); | |
| 42 this._emptyElement.textContent = Common.UIString('No Breakpoints'); | |
| 39 | 43 | 
| 40 /** @type {!Map<!SDK.DOMDebuggerModel.DOMBreakpoint, !Components.DOMBreakpoi ntsSidebarPane.Item>} */ | 44 /** @type {!Map<!SDK.DOMDebuggerModel.DOMBreakpoint, !Components.DOMBreakpoi ntsSidebarPane.Item>} */ | 
| 41 this._items = new Map(); | 45 this._items = new Map(); | 
| 42 SDK.targetManager.addModelListener( | 46 SDK.targetManager.addModelListener( | 
| 43 SDK.DOMDebuggerModel, SDK.DOMDebuggerModel.Events.DOMBreakpointAdded, th is._breakpointAdded, this); | 47 SDK.DOMDebuggerModel, SDK.DOMDebuggerModel.Events.DOMBreakpointAdded, th is._breakpointAdded, this); | 
| 44 SDK.targetManager.addModelListener( | 48 SDK.targetManager.addModelListener( | 
| 45 SDK.DOMDebuggerModel, SDK.DOMDebuggerModel.Events.DOMBreakpointToggled, this._breakpointToggled, this); | 49 SDK.DOMDebuggerModel, SDK.DOMDebuggerModel.Events.DOMBreakpointToggled, this._breakpointToggled, this); | 
| 46 SDK.targetManager.addModelListener( | 50 SDK.targetManager.addModelListener( | 
| 47 SDK.DOMDebuggerModel, SDK.DOMDebuggerModel.Events.DOMBreakpointsRemoved, this._breakpointsRemoved, this); | 51 SDK.DOMDebuggerModel, SDK.DOMDebuggerModel.Events.DOMBreakpointsRemoved, this._breakpointsRemoved, this); | 
| 48 | 52 | 
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 110 | 114 | 
| 111 /** | 115 /** | 
| 112 * @param {!Common.Event} event | 116 * @param {!Common.Event} event | 
| 113 */ | 117 */ | 
| 114 _breakpointsRemoved(event) { | 118 _breakpointsRemoved(event) { | 
| 115 var breakpoints = /** @type {!Array<!SDK.DOMDebuggerModel.DOMBreakpoint>} */ (event.data); | 119 var breakpoints = /** @type {!Array<!SDK.DOMDebuggerModel.DOMBreakpoint>} */ (event.data); | 
| 116 for (var breakpoint of breakpoints) { | 120 for (var breakpoint of breakpoints) { | 
| 117 var item = this._items.get(breakpoint); | 121 var item = this._items.get(breakpoint); | 
| 118 if (item) { | 122 if (item) { | 
| 119 this._items.delete(breakpoint); | 123 this._items.delete(breakpoint); | 
| 120 this.removeListElement(item.element); | 124 this._listElement.removeChild(item.element); | 
| 121 } | 125 } | 
| 122 } | 126 } | 
| 127 if (!this._listElement.firstChild && this._listElement.parentElement === thi s.contentElement) | |
| 128 this.contentElement.replaceChild(this._emptyElement, this._listElement); | |
| 
dgozman
2017/05/30 21:53:39
Just toggle a hidden class and leave them both in
 
luoe
2017/05/31 03:09:24
Done.  Yeah, that's simpler.
 | |
| 123 } | 129 } | 
| 124 | 130 | 
| 125 /** | 131 /** | 
| 126 * @param {!SDK.DOMDebuggerModel.DOMBreakpoint} breakpoint | 132 * @param {!SDK.DOMDebuggerModel.DOMBreakpoint} breakpoint | 
| 127 */ | 133 */ | 
| 128 _addBreakpoint(breakpoint) { | 134 _addBreakpoint(breakpoint) { | 
| 129 var element = createElement('li'); | 135 var element = createElement('li'); | 
| 130 element.addEventListener('contextmenu', this._contextMenu.bind(this, breakpo int), true); | 136 element.addEventListener('contextmenu', this._contextMenu.bind(this, breakpo int), true); | 
| 131 | 137 | 
| 132 var checkboxLabel = UI.CheckboxLabel.create('', breakpoint.enabled); | 138 var checkboxLabel = UI.CheckboxLabel.create('', breakpoint.enabled); | 
| (...skipping 10 matching lines...) Expand all Loading... | |
| 143 labelElement.appendChild(linkifiedNode); | 149 labelElement.appendChild(linkifiedNode); | 
| 144 | 150 | 
| 145 var description = createElement('div'); | 151 var description = createElement('div'); | 
| 146 description.textContent = Components.DOMBreakpointsSidebarPane.BreakpointTyp eLabels.get(breakpoint.type); | 152 description.textContent = Components.DOMBreakpointsSidebarPane.BreakpointTyp eLabels.get(breakpoint.type); | 
| 147 labelElement.appendChild(description); | 153 labelElement.appendChild(description); | 
| 148 | 154 | 
| 149 var item = {breakpoint: breakpoint, element: element, checkbox: checkboxElem ent}; | 155 var item = {breakpoint: breakpoint, element: element, checkbox: checkboxElem ent}; | 
| 150 element._item = item; | 156 element._item = item; | 
| 151 this._items.set(breakpoint, item); | 157 this._items.set(breakpoint, item); | 
| 152 | 158 | 
| 153 var currentElement = this.listElement.firstChild; | 159 var currentElement = this._listElement.firstChild; | 
| 154 while (currentElement) { | 160 while (currentElement) { | 
| 155 if (currentElement._item && currentElement._item.breakpoint.type < breakpo int.type) | 161 if (currentElement._item && currentElement._item.breakpoint.type < breakpo int.type) | 
| 156 break; | 162 break; | 
| 157 currentElement = currentElement.nextSibling; | 163 currentElement = currentElement.nextSibling; | 
| 158 } | 164 } | 
| 159 this.addListElement(element, currentElement); | 165 this._listElement.insertBefore(element, currentElement); | 
| 166 if (this._emptyElement.parentElement === this.contentElement) | |
| 167 this.contentElement.replaceChild(this._listElement, this._emptyElement); | |
| 160 } | 168 } | 
| 161 | 169 | 
| 162 /** | 170 /** | 
| 163 * @param {!SDK.DOMDebuggerModel.DOMBreakpoint} breakpoint | 171 * @param {!SDK.DOMDebuggerModel.DOMBreakpoint} breakpoint | 
| 164 * @param {!Event} event | 172 * @param {!Event} event | 
| 165 */ | 173 */ | 
| 166 _contextMenu(breakpoint, event) { | 174 _contextMenu(breakpoint, event) { | 
| 167 var contextMenu = new UI.ContextMenu(event); | 175 var contextMenu = new UI.ContextMenu(event); | 
| 168 contextMenu.appendItem(Common.UIString.capitalize('Remove ^breakpoint'), () => { | 176 contextMenu.appendItem(Common.UIString.capitalize('Remove ^breakpoint'), () => { | 
| 169 breakpoint.domDebuggerModel.removeDOMBreakpoint(breakpoint.node, breakpoin t.type); | 177 breakpoint.domDebuggerModel.removeDOMBreakpoint(breakpoint.node, breakpoin t.type); | 
| (...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 266 | 274 | 
| 267 var breakpointsMenu = contextMenu.appendSubMenuItem(Common.UIString('Break o n...')); | 275 var breakpointsMenu = contextMenu.appendSubMenuItem(Common.UIString('Break o n...')); | 
| 268 for (var key in SDK.DOMDebuggerModel.DOMBreakpoint.Type) { | 276 for (var key in SDK.DOMDebuggerModel.DOMBreakpoint.Type) { | 
| 269 var type = SDK.DOMDebuggerModel.DOMBreakpoint.Type[key]; | 277 var type = SDK.DOMDebuggerModel.DOMBreakpoint.Type[key]; | 
| 270 var label = Components.DOMBreakpointsSidebarPane.BreakpointTypeNouns.get(t ype); | 278 var label = Components.DOMBreakpointsSidebarPane.BreakpointTypeNouns.get(t ype); | 
| 271 breakpointsMenu.appendCheckboxItem( | 279 breakpointsMenu.appendCheckboxItem( | 
| 272 label, toggleBreakpoint.bind(null, type), domDebuggerModel.hasDOMBreak point(node, type)); | 280 label, toggleBreakpoint.bind(null, type), domDebuggerModel.hasDOMBreak point(node, type)); | 
| 273 } | 281 } | 
| 274 } | 282 } | 
| 275 }; | 283 }; | 
| OLD | NEW |