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

Side by Side Diff: third_party/WebKit/Source/devtools/front_end/sources/NavigatorView.js

Issue 2604883002: DevTools: namespace globals (Closed)
Patch Set: address CL feedback Created 3 years, 11 months 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) 2012 Google Inc. All rights reserved. 2 * Copyright (C) 2012 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 * 1. Redistributions of source code must retain the above copyright 8 * 1. 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 * 10 *
(...skipping 16 matching lines...) Expand all
27 */ 27 */
28 /** 28 /**
29 * @implements {SDK.TargetManager.Observer} 29 * @implements {SDK.TargetManager.Observer}
30 * @unrestricted 30 * @unrestricted
31 */ 31 */
32 Sources.NavigatorView = class extends UI.VBox { 32 Sources.NavigatorView = class extends UI.VBox {
33 constructor() { 33 constructor() {
34 super(); 34 super();
35 this.registerRequiredCSS('sources/navigatorView.css'); 35 this.registerRequiredCSS('sources/navigatorView.css');
36 36
37 this._scriptsTree = new TreeOutlineInShadow(); 37 this._scriptsTree = new UI.TreeOutlineInShadow();
38 this._scriptsTree.registerRequiredCSS('sources/navigatorTree.css'); 38 this._scriptsTree.registerRequiredCSS('sources/navigatorTree.css');
39 this._scriptsTree.setComparator(Sources.NavigatorView._treeElementsCompare); 39 this._scriptsTree.setComparator(Sources.NavigatorView._treeElementsCompare);
40 this.element.appendChild(this._scriptsTree.element); 40 this.element.appendChild(this._scriptsTree.element);
41 this.setDefaultFocusedElement(this._scriptsTree.element); 41 this.setDefaultFocusedElement(this._scriptsTree.element);
42 42
43 /** @type {!Map.<!Workspace.UISourceCode, !Array<!Sources.NavigatorUISourceC odeTreeNode>>} */ 43 /** @type {!Map.<!Workspace.UISourceCode, !Array<!Sources.NavigatorUISourceC odeTreeNode>>} */
44 this._uiSourceCodeNodes = new Map(); 44 this._uiSourceCodeNodes = new Map();
45 /** @type {!Map.<string, !Sources.NavigatorFolderTreeNode>} */ 45 /** @type {!Map.<string, !Sources.NavigatorFolderTreeNode>} */
46 this._subfolderNodes = new Map(); 46 this._subfolderNodes = new Map();
47 47
(...skipping 26 matching lines...) Expand all
74 Persistence.Persistence.Events.BindingRemoved, this._onBindingRemoved, this); 74 Persistence.Persistence.Events.BindingRemoved, this._onBindingRemoved, this);
75 } 75 }
76 SDK.targetManager.addEventListener(SDK.TargetManager.Events.NameChanged, thi s._targetNameChanged, this); 76 SDK.targetManager.addEventListener(SDK.TargetManager.Events.NameChanged, thi s._targetNameChanged, this);
77 77
78 SDK.targetManager.observeTargets(this); 78 SDK.targetManager.observeTargets(this);
79 this._resetWorkspace(Workspace.workspace); 79 this._resetWorkspace(Workspace.workspace);
80 this._workspace.uiSourceCodes().forEach(this._addUISourceCode.bind(this)); 80 this._workspace.uiSourceCodes().forEach(this._addUISourceCode.bind(this));
81 } 81 }
82 82
83 /** 83 /**
84 * @param {!TreeElement} treeElement 84 * @param {!UI.TreeElement} treeElement
85 */ 85 */
86 static _treeElementOrder(treeElement) { 86 static _treeElementOrder(treeElement) {
87 if (treeElement._boostOrder) 87 if (treeElement._boostOrder)
88 return 0; 88 return 0;
89 89
90 if (!Sources.NavigatorView._typeOrders) { 90 if (!Sources.NavigatorView._typeOrders) {
91 var weights = {}; 91 var weights = {};
92 var types = Sources.NavigatorView.Types; 92 var types = Sources.NavigatorView.Types;
93 weights[types.Root] = 1; 93 weights[types.Root] = 1;
94 weights[types.Domain] = 10; 94 weights[types.Domain] = 10;
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
141 141
142 var searchLabel = Common.UIString('Search in folder'); 142 var searchLabel = Common.UIString('Search in folder');
143 if (!path || !path.trim()) { 143 if (!path || !path.trim()) {
144 path = '*'; 144 path = '*';
145 searchLabel = Common.UIString('Search in all files'); 145 searchLabel = Common.UIString('Search in all files');
146 } 146 }
147 contextMenu.appendItem(searchLabel, searchPath); 147 contextMenu.appendItem(searchLabel, searchPath);
148 } 148 }
149 149
150 /** 150 /**
151 * @param {!TreeElement} treeElement1 151 * @param {!UI.TreeElement} treeElement1
152 * @param {!TreeElement} treeElement2 152 * @param {!UI.TreeElement} treeElement2
153 * @return {number} 153 * @return {number}
154 */ 154 */
155 static _treeElementsCompare(treeElement1, treeElement2) { 155 static _treeElementsCompare(treeElement1, treeElement2) {
156 var typeWeight1 = Sources.NavigatorView._treeElementOrder(treeElement1); 156 var typeWeight1 = Sources.NavigatorView._treeElementOrder(treeElement1);
157 var typeWeight2 = Sources.NavigatorView._treeElementOrder(treeElement2); 157 var typeWeight2 = Sources.NavigatorView._treeElementOrder(treeElement2);
158 158
159 if (typeWeight1 > typeWeight2) 159 if (typeWeight1 > typeWeight2)
160 return 1; 160 return 1;
161 if (typeWeight1 < typeWeight2) 161 if (typeWeight1 < typeWeight2)
162 return -1; 162 return -1;
(...skipping 665 matching lines...) Expand 10 before | Expand all | Expand 10 after
828 Frame: 'frame', 828 Frame: 'frame',
829 NetworkFolder: 'nw-folder', 829 NetworkFolder: 'nw-folder',
830 Root: 'root', 830 Root: 'root',
831 SourceMapFolder: 'sm-folder', 831 SourceMapFolder: 'sm-folder',
832 Worker: 'worker' 832 Worker: 'worker'
833 }; 833 };
834 834
835 /** 835 /**
836 * @unrestricted 836 * @unrestricted
837 */ 837 */
838 Sources.NavigatorFolderTreeElement = class extends TreeElement { 838 Sources.NavigatorFolderTreeElement = class extends UI.TreeElement {
839 /** 839 /**
840 * @param {!Sources.NavigatorView} navigatorView 840 * @param {!Sources.NavigatorView} navigatorView
841 * @param {string} type 841 * @param {string} type
842 * @param {string} title 842 * @param {string} title
843 * @param {function(boolean)=} hoverCallback 843 * @param {function(boolean)=} hoverCallback
844 */ 844 */
845 constructor(navigatorView, type, title, hoverCallback) { 845 constructor(navigatorView, type, title, hoverCallback) {
846 super('', true); 846 super('', true);
847 this.listItemElement.classList.add('navigator-' + type + '-tree-item', 'navi gator-folder-tree-item'); 847 this.listItemElement.classList.add('navigator-' + type + '-tree-item', 'navi gator-folder-tree-item');
848 this._nodeType = type; 848 this._nodeType = type;
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
919 if (!this._hoverCallback) 919 if (!this._hoverCallback)
920 return; 920 return;
921 this._hovered = false; 921 this._hovered = false;
922 this._hoverCallback(false); 922 this._hoverCallback(false);
923 } 923 }
924 }; 924 };
925 925
926 /** 926 /**
927 * @unrestricted 927 * @unrestricted
928 */ 928 */
929 Sources.NavigatorSourceTreeElement = class extends TreeElement { 929 Sources.NavigatorSourceTreeElement = class extends UI.TreeElement {
930 /** 930 /**
931 * @param {!Sources.NavigatorView} navigatorView 931 * @param {!Sources.NavigatorView} navigatorView
932 * @param {!Workspace.UISourceCode} uiSourceCode 932 * @param {!Workspace.UISourceCode} uiSourceCode
933 * @param {string} title 933 * @param {string} title
934 * @param {!Sources.NavigatorUISourceCodeTreeNode} node 934 * @param {!Sources.NavigatorUISourceCodeTreeNode} node
935 */ 935 */
936 constructor(navigatorView, uiSourceCode, title, node) { 936 constructor(navigatorView, uiSourceCode, title, node) {
937 super('', false); 937 super('', false);
938 this._nodeType = Sources.NavigatorView.Types.File; 938 this._nodeType = Sources.NavigatorView.Types.File;
939 this._node = node; 939 this._node = node;
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
1078 * @param {string} type 1078 * @param {string} type
1079 */ 1079 */
1080 constructor(id, type) { 1080 constructor(id, type) {
1081 this.id = id; 1081 this.id = id;
1082 this._type = type; 1082 this._type = type;
1083 /** @type {!Map.<string, !Sources.NavigatorTreeNode>} */ 1083 /** @type {!Map.<string, !Sources.NavigatorTreeNode>} */
1084 this._children = new Map(); 1084 this._children = new Map();
1085 } 1085 }
1086 1086
1087 /** 1087 /**
1088 * @return {!TreeElement} 1088 * @return {!UI.TreeElement}
1089 */ 1089 */
1090 treeNode() { 1090 treeNode() {
1091 throw 'Not implemented'; 1091 throw 'Not implemented';
1092 } 1092 }
1093 1093
1094 dispose() { 1094 dispose() {
1095 } 1095 }
1096 1096
1097 /** 1097 /**
1098 * @return {boolean} 1098 * @return {boolean}
(...skipping 24 matching lines...) Expand all
1123 return; 1123 return;
1124 if (this.parent) 1124 if (this.parent)
1125 this.parent.populate(); 1125 this.parent.populate();
1126 this._populated = true; 1126 this._populated = true;
1127 this.wasPopulated(); 1127 this.wasPopulated();
1128 } 1128 }
1129 1129
1130 wasPopulated() { 1130 wasPopulated() {
1131 var children = this.children(); 1131 var children = this.children();
1132 for (var i = 0; i < children.length; ++i) 1132 for (var i = 0; i < children.length; ++i)
1133 this.treeNode().appendChild(/** @type {!TreeElement} */ (children[i].treeN ode())); 1133 this.treeNode().appendChild(/** @type {!UI.TreeElement} */ (children[i].tr eeNode()));
1134 } 1134 }
1135 1135
1136 /** 1136 /**
1137 * @param {!Sources.NavigatorTreeNode} node 1137 * @param {!Sources.NavigatorTreeNode} node
1138 */ 1138 */
1139 didAddChild(node) { 1139 didAddChild(node) {
1140 if (this.isPopulated()) 1140 if (this.isPopulated())
1141 this.treeNode().appendChild(/** @type {!TreeElement} */ (node.treeNode())) ; 1141 this.treeNode().appendChild(/** @type {!UI.TreeElement} */ (node.treeNode( )));
1142 } 1142 }
1143 1143
1144 /** 1144 /**
1145 * @param {!Sources.NavigatorTreeNode} node 1145 * @param {!Sources.NavigatorTreeNode} node
1146 */ 1146 */
1147 willRemoveChild(node) { 1147 willRemoveChild(node) {
1148 if (this.isPopulated()) 1148 if (this.isPopulated())
1149 this.treeNode().removeChild(/** @type {!TreeElement} */ (node.treeNode())) ; 1149 this.treeNode().removeChild(/** @type {!UI.TreeElement} */ (node.treeNode( )));
1150 } 1150 }
1151 1151
1152 /** 1152 /**
1153 * @return {boolean} 1153 * @return {boolean}
1154 */ 1154 */
1155 isPopulated() { 1155 isPopulated() {
1156 return this._populated; 1156 return this._populated;
1157 } 1157 }
1158 1158
1159 /** 1159 /**
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
1217 /** 1217 /**
1218 * @override 1218 * @override
1219 * @return {boolean} 1219 * @return {boolean}
1220 */ 1220 */
1221 isRoot() { 1221 isRoot() {
1222 return true; 1222 return true;
1223 } 1223 }
1224 1224
1225 /** 1225 /**
1226 * @override 1226 * @override
1227 * @return {!TreeElement} 1227 * @return {!UI.TreeElement}
1228 */ 1228 */
1229 treeNode() { 1229 treeNode() {
1230 return this._navigatorView._scriptsTree.rootElement(); 1230 return this._navigatorView._scriptsTree.rootElement();
1231 } 1231 }
1232 }; 1232 };
1233 1233
1234 /** 1234 /**
1235 * @unrestricted 1235 * @unrestricted
1236 */ 1236 */
1237 Sources.NavigatorUISourceCodeTreeNode = class extends Sources.NavigatorTreeNode { 1237 Sources.NavigatorUISourceCodeTreeNode = class extends Sources.NavigatorTreeNode {
(...skipping 11 matching lines...) Expand all
1249 1249
1250 /** 1250 /**
1251 * @return {!Workspace.UISourceCode} 1251 * @return {!Workspace.UISourceCode}
1252 */ 1252 */
1253 uiSourceCode() { 1253 uiSourceCode() {
1254 return this._uiSourceCode; 1254 return this._uiSourceCode;
1255 } 1255 }
1256 1256
1257 /** 1257 /**
1258 * @override 1258 * @override
1259 * @return {!TreeElement} 1259 * @return {!UI.TreeElement}
1260 */ 1260 */
1261 treeNode() { 1261 treeNode() {
1262 if (this._treeElement) 1262 if (this._treeElement)
1263 return this._treeElement; 1263 return this._treeElement;
1264 1264
1265 this._treeElement = new Sources.NavigatorSourceTreeElement(this._navigatorVi ew, this._uiSourceCode, '', this); 1265 this._treeElement = new Sources.NavigatorSourceTreeElement(this._navigatorVi ew, this._uiSourceCode, '', this);
1266 this.updateTitle(); 1266 this.updateTitle();
1267 1267
1268 var updateTitleBound = this.updateTitle.bind(this, undefined); 1268 var updateTitleBound = this.updateTitle.bind(this, undefined);
1269 this._eventListeners = [ 1269 this._eventListeners = [
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after
1394 constructor(navigatorView, project, id, type, folderPath, title) { 1394 constructor(navigatorView, project, id, type, folderPath, title) {
1395 super(id, type); 1395 super(id, type);
1396 this._navigatorView = navigatorView; 1396 this._navigatorView = navigatorView;
1397 this._project = project; 1397 this._project = project;
1398 this._folderPath = folderPath; 1398 this._folderPath = folderPath;
1399 this._title = title; 1399 this._title = title;
1400 } 1400 }
1401 1401
1402 /** 1402 /**
1403 * @override 1403 * @override
1404 * @return {!TreeElement} 1404 * @return {!UI.TreeElement}
1405 */ 1405 */
1406 treeNode() { 1406 treeNode() {
1407 if (this._treeElement) 1407 if (this._treeElement)
1408 return this._treeElement; 1408 return this._treeElement;
1409 this._treeElement = this._createTreeElement(this._title, this); 1409 this._treeElement = this._createTreeElement(this._title, this);
1410 this.updateTitle(); 1410 this.updateTitle();
1411 return this._treeElement; 1411 return this._treeElement;
1412 } 1412 }
1413 1413
1414 updateTitle() { 1414 updateTitle() {
1415 if (!this._treeElement || this._project.type() !== Workspace.projectTypes.Fi leSystem) 1415 if (!this._treeElement || this._project.type() !== Workspace.projectTypes.Fi leSystem)
1416 return; 1416 return;
1417 var absoluteFileSystemPath = 1417 var absoluteFileSystemPath =
1418 Persistence.FileSystemWorkspaceBinding.fileSystemPath(this._project.id() ) + '/' + this._folderPath; 1418 Persistence.FileSystemWorkspaceBinding.fileSystemPath(this._project.id() ) + '/' + this._folderPath;
1419 var hasMappedFiles = Runtime.experiments.isEnabled('persistence2') ? 1419 var hasMappedFiles = Runtime.experiments.isEnabled('persistence2') ?
1420 Persistence.persistence.filePathHasBindings(absoluteFileSystemPath) : 1420 Persistence.persistence.filePathHasBindings(absoluteFileSystemPath) :
1421 true; 1421 true;
1422 this._treeElement.listItemElement.classList.toggle('has-mapped-files', hasMa ppedFiles); 1422 this._treeElement.listItemElement.classList.toggle('has-mapped-files', hasMa ppedFiles);
1423 } 1423 }
1424 1424
1425 /** 1425 /**
1426 * @return {!TreeElement} 1426 * @return {!UI.TreeElement}
1427 */ 1427 */
1428 _createTreeElement(title, node) { 1428 _createTreeElement(title, node) {
1429 if (this._project.type() !== Workspace.projectTypes.FileSystem) { 1429 if (this._project.type() !== Workspace.projectTypes.FileSystem) {
1430 try { 1430 try {
1431 title = decodeURI(title); 1431 title = decodeURI(title);
1432 } catch (e) { 1432 } catch (e) {
1433 } 1433 }
1434 } 1434 }
1435 var treeElement = new Sources.NavigatorFolderTreeElement(this._navigatorView , this._type, title); 1435 var treeElement = new Sources.NavigatorFolderTreeElement(this._navigatorView , this._type, title);
1436 treeElement.setNode(node); 1436 treeElement.setNode(node);
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after
1563 1563
1564 /** 1564 /**
1565 * @param {function(boolean)} hoverCallback 1565 * @param {function(boolean)} hoverCallback
1566 */ 1566 */
1567 setHoverCallback(hoverCallback) { 1567 setHoverCallback(hoverCallback) {
1568 this._hoverCallback = hoverCallback; 1568 this._hoverCallback = hoverCallback;
1569 } 1569 }
1570 1570
1571 /** 1571 /**
1572 * @override 1572 * @override
1573 * @return {!TreeElement} 1573 * @return {!UI.TreeElement}
1574 */ 1574 */
1575 treeNode() { 1575 treeNode() {
1576 if (this._treeElement) 1576 if (this._treeElement)
1577 return this._treeElement; 1577 return this._treeElement;
1578 this._treeElement = 1578 this._treeElement =
1579 new Sources.NavigatorFolderTreeElement(this._navigatorView, this._type, this._title, this._hoverCallback); 1579 new Sources.NavigatorFolderTreeElement(this._navigatorView, this._type, this._title, this._hoverCallback);
1580 this._treeElement.setNode(this); 1580 this._treeElement.setNode(this);
1581 return this._treeElement; 1581 return this._treeElement;
1582 } 1582 }
1583 1583
(...skipping 26 matching lines...) Expand all
1610 /** 1610 /**
1611 * @param {string} title 1611 * @param {string} title
1612 * @override 1612 * @override
1613 */ 1613 */
1614 setTitle(title) { 1614 setTitle(title) {
1615 this._title = title; 1615 this._title = title;
1616 if (this._treeElement) 1616 if (this._treeElement)
1617 this._treeElement.title = this._title; 1617 this._treeElement.title = this._title;
1618 } 1618 }
1619 }; 1619 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698