| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | |
| 5 /** | 4 /** |
| 6 * @constructor | 5 * @unrestricted |
| 7 * @extends {WebInspector.ThrottledWidget} | |
| 8 */ | 6 */ |
| 9 WebInspector.AccessibilitySidebarView = function() | 7 WebInspector.AccessibilitySidebarView = class extends WebInspector.ThrottledWidg
et { |
| 10 { | 8 constructor() { |
| 11 WebInspector.ThrottledWidget.call(this); | 9 super(); |
| 12 this._node = null; | 10 this._node = null; |
| 13 this._axNode = null; | 11 this._axNode = null; |
| 14 this._sidebarPaneStack = WebInspector.viewManager.createStackLocation(); | 12 this._sidebarPaneStack = WebInspector.viewManager.createStackLocation(); |
| 15 this._treeSubPane = new WebInspector.AXTreePane(); | 13 this._treeSubPane = new WebInspector.AXTreePane(); |
| 16 this._sidebarPaneStack.showView(this._treeSubPane); | 14 this._sidebarPaneStack.showView(this._treeSubPane); |
| 17 this._ariaSubPane = new WebInspector.ARIAAttributesPane(); | 15 this._ariaSubPane = new WebInspector.ARIAAttributesPane(); |
| 18 this._sidebarPaneStack.showView(this._ariaSubPane); | 16 this._sidebarPaneStack.showView(this._ariaSubPane); |
| 19 this._axNodeSubPane = new WebInspector.AXNodeSubPane(); | 17 this._axNodeSubPane = new WebInspector.AXNodeSubPane(); |
| 20 this._sidebarPaneStack.showView(this._axNodeSubPane); | 18 this._sidebarPaneStack.showView(this._axNodeSubPane); |
| 21 this._sidebarPaneStack.widget().show(this.element); | 19 this._sidebarPaneStack.widget().show(this.element); |
| 22 WebInspector.context.addFlavorChangeListener(WebInspector.DOMNode, this._pul
lNode, this); | 20 WebInspector.context.addFlavorChangeListener(WebInspector.DOMNode, this._pul
lNode, this); |
| 23 this._pullNode(); | 21 this._pullNode(); |
| 24 }; | 22 } |
| 25 | 23 |
| 26 WebInspector.AccessibilitySidebarView.prototype = { | 24 /** |
| 27 /** | 25 * @return {?WebInspector.DOMNode} |
| 28 * @return {?WebInspector.DOMNode} | 26 */ |
| 29 */ | 27 node() { |
| 30 node: function() | 28 return this._node; |
| 31 { | 29 } |
| 32 return this._node; | |
| 33 }, | |
| 34 | 30 |
| 35 /** | 31 /** |
| 36 * @param {?Array<!WebInspector.AccessibilityNode>} nodes | 32 * @param {?Array<!WebInspector.AccessibilityNode>} nodes |
| 37 */ | 33 */ |
| 38 accessibilityNodeCallback: function(nodes) | 34 accessibilityNodeCallback(nodes) { |
| 39 { | 35 if (!nodes) |
| 40 if (!nodes) | 36 return; |
| 41 return; | |
| 42 | 37 |
| 43 var currentAXNode = nodes[0]; | 38 var currentAXNode = nodes[0]; |
| 44 if (currentAXNode.ignored) | 39 if (currentAXNode.ignored) |
| 45 this._sidebarPaneStack.removeView(this._ariaSubPane); | 40 this._sidebarPaneStack.removeView(this._ariaSubPane); |
| 46 else | 41 else |
| 47 this._sidebarPaneStack.showView(this._ariaSubPane, this._axNodeSubPa
ne); | 42 this._sidebarPaneStack.showView(this._ariaSubPane, this._axNodeSubPane); |
| 48 | 43 |
| 49 if (this._axNodeSubPane) | 44 if (this._axNodeSubPane) |
| 50 this._axNodeSubPane.setAXNode(currentAXNode); | 45 this._axNodeSubPane.setAXNode(currentAXNode); |
| 51 if (this._treeSubPane) | 46 if (this._treeSubPane) |
| 52 this._treeSubPane.setAXNodeAndAncestors(nodes); | 47 this._treeSubPane.setAXNodeAndAncestors(nodes); |
| 53 }, | 48 } |
| 54 | 49 |
| 55 /** | 50 /** |
| 56 * @override | 51 * @override |
| 57 * @protected | 52 * @protected |
| 58 * @return {!Promise.<?>} | 53 * @return {!Promise.<?>} |
| 59 */ | 54 */ |
| 60 doUpdate: function() | 55 doUpdate() { |
| 61 { | 56 var node = this.node(); |
| 62 var node = this.node(); | 57 this._treeSubPane.setNode(node); |
| 63 this._treeSubPane.setNode(node); | 58 this._axNodeSubPane.setNode(node); |
| 64 this._axNodeSubPane.setNode(node); | 59 this._ariaSubPane.setNode(node); |
| 65 this._ariaSubPane.setNode(node); | 60 return WebInspector.AccessibilityModel.fromTarget(node.target()).getAXNodeCh
ain(node).then((nodes) => { |
| 66 return WebInspector.AccessibilityModel.fromTarget(node.target()).getAXNo
deChain(node) | 61 this.accessibilityNodeCallback(nodes); |
| 67 .then((nodes) => { this.accessibilityNodeCallback(nodes); }); | 62 }); |
| 68 }, | 63 } |
| 69 | 64 |
| 70 /** | 65 /** |
| 71 * @override | 66 * @override |
| 72 */ | 67 */ |
| 73 wasShown: function() | 68 wasShown() { |
| 74 { | 69 super.wasShown(); |
| 75 WebInspector.ThrottledWidget.prototype.wasShown.call(this); | |
| 76 | 70 |
| 77 this._treeSubPane.setNode(this.node()); | 71 this._treeSubPane.setNode(this.node()); |
| 78 this._axNodeSubPane.setNode(this.node()); | 72 this._axNodeSubPane.setNode(this.node()); |
| 79 this._ariaSubPane.setNode(this.node()); | 73 this._ariaSubPane.setNode(this.node()); |
| 80 | 74 |
| 81 WebInspector.targetManager.addModelListener(WebInspector.DOMModel, WebIn
spector.DOMModel.Events.AttrModified, this._onAttrChange, this); | 75 WebInspector.targetManager.addModelListener( |
| 82 WebInspector.targetManager.addModelListener(WebInspector.DOMModel, WebIn
spector.DOMModel.Events.AttrRemoved, this._onAttrChange, this); | 76 WebInspector.DOMModel, WebInspector.DOMModel.Events.AttrModified, this._
onAttrChange, this); |
| 83 WebInspector.targetManager.addModelListener(WebInspector.DOMModel, WebIn
spector.DOMModel.Events.CharacterDataModified, this._onNodeChange, this); | 77 WebInspector.targetManager.addModelListener( |
| 84 WebInspector.targetManager.addModelListener(WebInspector.DOMModel, WebIn
spector.DOMModel.Events.ChildNodeCountUpdated, this._onNodeChange, this); | 78 WebInspector.DOMModel, WebInspector.DOMModel.Events.AttrRemoved, this._o
nAttrChange, this); |
| 85 }, | 79 WebInspector.targetManager.addModelListener( |
| 80 WebInspector.DOMModel, WebInspector.DOMModel.Events.CharacterDataModifie
d, this._onNodeChange, this); |
| 81 WebInspector.targetManager.addModelListener( |
| 82 WebInspector.DOMModel, WebInspector.DOMModel.Events.ChildNodeCountUpdate
d, this._onNodeChange, this); |
| 83 } |
| 86 | 84 |
| 87 /** | 85 /** |
| 88 * @override | 86 * @override |
| 89 */ | 87 */ |
| 90 willHide: function() | 88 willHide() { |
| 91 { | 89 WebInspector.targetManager.removeModelListener( |
| 92 WebInspector.targetManager.removeModelListener(WebInspector.DOMModel, We
bInspector.DOMModel.Events.AttrModified, this._onAttrChange, this); | 90 WebInspector.DOMModel, WebInspector.DOMModel.Events.AttrModified, this._
onAttrChange, this); |
| 93 WebInspector.targetManager.removeModelListener(WebInspector.DOMModel, We
bInspector.DOMModel.Events.AttrRemoved, this._onAttrChange, this); | 91 WebInspector.targetManager.removeModelListener( |
| 94 WebInspector.targetManager.removeModelListener(WebInspector.DOMModel, We
bInspector.DOMModel.Events.CharacterDataModified, this._onNodeChange, this); | 92 WebInspector.DOMModel, WebInspector.DOMModel.Events.AttrRemoved, this._o
nAttrChange, this); |
| 95 WebInspector.targetManager.removeModelListener(WebInspector.DOMModel, We
bInspector.DOMModel.Events.ChildNodeCountUpdated, this._onNodeChange, this); | 93 WebInspector.targetManager.removeModelListener( |
| 96 }, | 94 WebInspector.DOMModel, WebInspector.DOMModel.Events.CharacterDataModifie
d, this._onNodeChange, this); |
| 95 WebInspector.targetManager.removeModelListener( |
| 96 WebInspector.DOMModel, WebInspector.DOMModel.Events.ChildNodeCountUpdate
d, this._onNodeChange, this); |
| 97 } |
| 97 | 98 |
| 98 _pullNode: function() | 99 _pullNode() { |
| 99 { | 100 this._node = WebInspector.context.flavor(WebInspector.DOMNode); |
| 100 this._node = WebInspector.context.flavor(WebInspector.DOMNode); | 101 this.update(); |
| 101 this.update(); | 102 } |
| 102 }, | |
| 103 | 103 |
| 104 /** | 104 /** |
| 105 * @param {!WebInspector.Event} event | 105 * @param {!WebInspector.Event} event |
| 106 */ | 106 */ |
| 107 _onAttrChange: function(event) | 107 _onAttrChange(event) { |
| 108 { | 108 if (!this.node()) |
| 109 if (!this.node()) | 109 return; |
| 110 return; | 110 var node = event.data.node; |
| 111 var node = event.data.node; | 111 if (this.node() !== node) |
| 112 if (this.node() !== node) | 112 return; |
| 113 return; | 113 this.update(); |
| 114 this.update(); | 114 } |
| 115 }, | |
| 116 | 115 |
| 117 /** | 116 /** |
| 118 * @param {!WebInspector.Event} event | 117 * @param {!WebInspector.Event} event |
| 119 */ | 118 */ |
| 120 _onNodeChange: function(event) | 119 _onNodeChange(event) { |
| 121 { | 120 if (!this.node()) |
| 122 if (!this.node()) | 121 return; |
| 123 return; | 122 var node = event.data; |
| 124 var node = event.data; | 123 if (this.node() !== node) |
| 125 if (this.node() !== node) | 124 return; |
| 126 return; | 125 this.update(); |
| 127 this.update(); | 126 } |
| 128 }, | |
| 129 | |
| 130 | |
| 131 __proto__: WebInspector.ThrottledWidget.prototype | |
| 132 }; | 127 }; |
| 133 | 128 |
| 134 /** | 129 /** |
| 135 * @constructor | 130 * @unrestricted |
| 136 * @extends {WebInspector.SimpleView} | |
| 137 * @param {string} name | |
| 138 */ | 131 */ |
| 139 WebInspector.AccessibilitySubPane = function(name) | 132 WebInspector.AccessibilitySubPane = class extends WebInspector.SimpleView { |
| 140 { | 133 /** |
| 141 WebInspector.SimpleView.call(this, name); | 134 * @param {string} name |
| 135 */ |
| 136 constructor(name) { |
| 137 super(name); |
| 142 | 138 |
| 143 this._axNode = null; | 139 this._axNode = null; |
| 144 this.registerRequiredCSS("accessibility/accessibilityNode.css"); | 140 this.registerRequiredCSS('accessibility/accessibilityNode.css'); |
| 141 } |
| 142 |
| 143 /** |
| 144 * @param {?WebInspector.AccessibilityNode} axNode |
| 145 * @protected |
| 146 */ |
| 147 setAXNode(axNode) { |
| 148 } |
| 149 |
| 150 /** |
| 151 * @return {?WebInspector.DOMNode} |
| 152 */ |
| 153 node() { |
| 154 return this._node; |
| 155 } |
| 156 |
| 157 /** |
| 158 * @param {?WebInspector.DOMNode} node |
| 159 */ |
| 160 setNode(node) { |
| 161 this._node = node; |
| 162 } |
| 163 |
| 164 /** |
| 165 * @param {string} textContent |
| 166 * @param {string=} className |
| 167 * @return {!Element} |
| 168 */ |
| 169 createInfo(textContent, className) { |
| 170 var classNameOrDefault = className || 'gray-info-message'; |
| 171 var info = this.element.createChild('div', classNameOrDefault); |
| 172 info.textContent = textContent; |
| 173 return info; |
| 174 } |
| 175 |
| 176 /** |
| 177 * @return {!TreeOutline} |
| 178 */ |
| 179 createTreeOutline() { |
| 180 var treeOutline = new TreeOutlineInShadow(); |
| 181 treeOutline.registerRequiredCSS('accessibility/accessibilityNode.css'); |
| 182 treeOutline.registerRequiredCSS('components/objectValue.css'); |
| 183 |
| 184 treeOutline.element.classList.add('hidden'); |
| 185 this.element.appendChild(treeOutline.element); |
| 186 return treeOutline; |
| 187 } |
| 145 }; | 188 }; |
| 146 | |
| 147 WebInspector.AccessibilitySubPane.prototype = { | |
| 148 /** | |
| 149 * @param {?WebInspector.AccessibilityNode} axNode | |
| 150 * @protected | |
| 151 */ | |
| 152 setAXNode: function(axNode) | |
| 153 { | |
| 154 }, | |
| 155 | |
| 156 /** | |
| 157 * @return {?WebInspector.DOMNode} | |
| 158 */ | |
| 159 node: function() | |
| 160 { | |
| 161 return this._node; | |
| 162 }, | |
| 163 | |
| 164 /** | |
| 165 * @param {?WebInspector.DOMNode} node | |
| 166 */ | |
| 167 setNode: function(node) | |
| 168 { | |
| 169 this._node = node; | |
| 170 }, | |
| 171 | |
| 172 /** | |
| 173 * @param {string} textContent | |
| 174 * @param {string=} className | |
| 175 * @return {!Element} | |
| 176 */ | |
| 177 createInfo: function(textContent, className) | |
| 178 { | |
| 179 var classNameOrDefault = className || "gray-info-message"; | |
| 180 var info = this.element.createChild("div", classNameOrDefault); | |
| 181 info.textContent = textContent; | |
| 182 return info; | |
| 183 }, | |
| 184 | |
| 185 /** | |
| 186 * @return {!TreeOutline} | |
| 187 */ | |
| 188 createTreeOutline: function() | |
| 189 { | |
| 190 var treeOutline = new TreeOutlineInShadow(); | |
| 191 treeOutline.registerRequiredCSS("accessibility/accessibilityNode.css"); | |
| 192 treeOutline.registerRequiredCSS("components/objectValue.css"); | |
| 193 | |
| 194 treeOutline.element.classList.add("hidden"); | |
| 195 this.element.appendChild(treeOutline.element); | |
| 196 return treeOutline; | |
| 197 }, | |
| 198 | |
| 199 __proto__: WebInspector.SimpleView.prototype | |
| 200 }; | |
| OLD | NEW |