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

Side by Side Diff: Source/devtools/front_end/sources/SourcesPanel.js

Issue 422313002: DevTools: Remove editor in drawer experiment (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 4 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 | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2008 Apple Inc. All Rights Reserved. 2 * Copyright (C) 2008 Apple Inc. All Rights Reserved.
3 * Copyright (C) 2011 Google Inc. All rights reserved. 3 * Copyright (C) 2011 Google Inc. All rights reserved.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions 6 * modification, are permitted provided that the following conditions
7 * are met: 7 * are met:
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 * 2. Redistributions in binary form must reproduce the above copyright 10 * 2. Redistributions in binary form must reproduce the above copyright
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
60 * @implements {WebInspector.ContextMenu.Provider} 60 * @implements {WebInspector.ContextMenu.Provider}
61 * @extends {WebInspector.Panel} 61 * @extends {WebInspector.Panel}
62 * @param {!WebInspector.Workspace=} workspaceForTest 62 * @param {!WebInspector.Workspace=} workspaceForTest
63 */ 63 */
64 WebInspector.SourcesPanel = function(workspaceForTest) 64 WebInspector.SourcesPanel = function(workspaceForTest)
65 { 65 {
66 WebInspector.Panel.call(this, "sources"); 66 WebInspector.Panel.call(this, "sources");
67 this.registerRequiredCSS("sourcesPanel.css"); 67 this.registerRequiredCSS("sourcesPanel.css");
68 new WebInspector.UpgradeFileSystemDropTarget(this.element); 68 new WebInspector.UpgradeFileSystemDropTarget(this.element);
69 69
70 WebInspector.settings.showEditorInDrawer = WebInspector.settings.createSetti ng("showEditorInDrawer", true);
71
72 this._workspace = workspaceForTest || WebInspector.workspace; 70 this._workspace = workspaceForTest || WebInspector.workspace;
73 71
74 this.debugToolbar = this._createDebugToolbar(); 72 this.debugToolbar = this._createDebugToolbar();
75 this._debugToolbarDrawer = this._createDebugToolbarDrawer(); 73 this._debugToolbarDrawer = this._createDebugToolbarDrawer();
76 this._targetsToolbar = new WebInspector.TargetsToolbar(); 74 this._targetsToolbar = new WebInspector.TargetsToolbar();
77 75
78 const initialDebugSidebarWidth = 225; 76 const initialDebugSidebarWidth = 225;
79 this._splitView = new WebInspector.SplitView(true, true, "sourcesPanelSplitV iewState", initialDebugSidebarWidth); 77 this._splitView = new WebInspector.SplitView(true, true, "sourcesPanelSplitV iewState", initialDebugSidebarWidth);
80 this._splitView.enableShowModeSaving(); 78 this._splitView.enableShowModeSaving();
81 this._splitView.show(this.element); 79 this._splitView.show(this.element);
82 80
83 // Create scripts navigator 81 // Create scripts navigator
84 const initialNavigatorWidth = 225; 82 const initialNavigatorWidth = 225;
85 this.editorView = new WebInspector.SplitView(true, false, "sourcesPanelNavig atorSplitViewState", initialNavigatorWidth); 83 this.editorView = new WebInspector.SplitView(true, false, "sourcesPanelNavig atorSplitViewState", initialNavigatorWidth);
86 this.editorView.enableShowModeSaving(); 84 this.editorView.enableShowModeSaving();
87 this.editorView.element.id = "scripts-editor-split-view"; 85 this.editorView.element.id = "scripts-editor-split-view";
88 this.editorView.element.tabIndex = 0; 86 this.editorView.element.tabIndex = 0;
89 this.editorView.show(this._splitView.mainElement()); 87 this.editorView.show(this._splitView.mainElement());
90 88
91 this._navigator = new WebInspector.SourcesNavigator(this._workspace); 89 this._navigator = new WebInspector.SourcesNavigator(this._workspace);
92 this._navigator.view.setMinimumSize(100, 25); 90 this._navigator.view.setMinimumSize(100, 25);
93 this._navigator.view.show(this.editorView.sidebarElement()); 91 this._navigator.view.show(this.editorView.sidebarElement());
94 this._navigator.addEventListener(WebInspector.SourcesNavigator.Events.Source Selected, this._sourceSelected, this); 92 this._navigator.addEventListener(WebInspector.SourcesNavigator.Events.Source Selected, this._sourceSelected, this);
95 this._navigator.addEventListener(WebInspector.SourcesNavigator.Events.Source Renamed, this._sourceRenamed, this); 93 this._navigator.addEventListener(WebInspector.SourcesNavigator.Events.Source Renamed, this._sourceRenamed, this);
96 94
97 this._sourcesView = new WebInspector.SourcesView(this._workspace, this); 95 this._sourcesView = new WebInspector.SourcesView(this._workspace, this);
98 this._sourcesView.addEventListener(WebInspector.SourcesView.Events.EditorSel ected, this._editorSelected.bind(this)); 96 this._sourcesView.addEventListener(WebInspector.SourcesView.Events.EditorSel ected, this._editorSelected.bind(this));
99 this._sourcesView.addEventListener(WebInspector.SourcesView.Events.EditorClo sed, this._editorClosed.bind(this)); 97 this._sourcesView.addEventListener(WebInspector.SourcesView.Events.EditorClo sed, this._editorClosed.bind(this));
100 this._sourcesView.registerShortcuts(this.registerShortcuts.bind(this)); 98 this._sourcesView.registerShortcuts(this.registerShortcuts.bind(this));
101 99 this._sourcesView.show(this.editorView.mainElement());
102 if (WebInspector.experimentsSettings.editorInDrawer.isEnabled()) {
103 this._drawerEditorView = new WebInspector.SourcesPanel.DrawerEditorView( );
104 this._sourcesView.show(this._drawerEditorView.element);
105 } else {
106 this._sourcesView.show(this.editorView.mainElement());
107 }
108 100
109 this._debugSidebarResizeWidgetElement = document.createElementWithClass("div ", "resizer-widget"); 101 this._debugSidebarResizeWidgetElement = document.createElementWithClass("div ", "resizer-widget");
110 this._debugSidebarResizeWidgetElement.id = "scripts-debug-sidebar-resizer-wi dget"; 102 this._debugSidebarResizeWidgetElement.id = "scripts-debug-sidebar-resizer-wi dget";
111 this._splitView.addEventListener(WebInspector.SplitView.Events.ShowModeChang ed, this._updateDebugSidebarResizeWidget, this); 103 this._splitView.addEventListener(WebInspector.SplitView.Events.ShowModeChang ed, this._updateDebugSidebarResizeWidget, this);
112 this._updateDebugSidebarResizeWidget(); 104 this._updateDebugSidebarResizeWidget();
113 this._splitView.installResizer(this._debugSidebarResizeWidgetElement); 105 this._splitView.installResizer(this._debugSidebarResizeWidgetElement);
114 106
115 this.sidebarPanes = {}; 107 this.sidebarPanes = {};
116 this.sidebarPanes.watchExpressions = new WebInspector.WatchExpressionsSideba rPane(); 108 this.sidebarPanes.watchExpressions = new WebInspector.WatchExpressionsSideba rPane();
117 this.sidebarPanes.callstack = new WebInspector.CallStackSidebarPane(); 109 this.sidebarPanes.callstack = new WebInspector.CallStackSidebarPane();
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
190 }, 182 },
191 183
192 /** 184 /**
193 * @return {boolean} 185 * @return {boolean}
194 */ 186 */
195 paused: function() 187 paused: function()
196 { 188 {
197 return this._paused; 189 return this._paused;
198 }, 190 },
199 191
200 /**
201 * @return {!WebInspector.SourcesPanel.DrawerEditor}
202 */
203 _drawerEditor: function()
204 {
205 var drawerEditorInstance = WebInspector.moduleManager.instance(WebInspec tor.DrawerEditor);
206 console.assert(drawerEditorInstance instanceof WebInspector.SourcesPanel .DrawerEditor, "WebInspector.DrawerEditor module instance does not use WebInspec tor.SourcesPanel.DrawerEditor as an implementation. ");
207 return /** @type {!WebInspector.SourcesPanel.DrawerEditor} */ (drawerEdi torInstance);
208 },
209
210 wasShown: function() 192 wasShown: function()
211 { 193 {
212 WebInspector.context.setFlavor(WebInspector.SourcesPanel, this); 194 WebInspector.context.setFlavor(WebInspector.SourcesPanel, this);
213 if (WebInspector.experimentsSettings.editorInDrawer.isEnabled()) {
214 this._drawerEditor()._panelWasShown();
215 this._sourcesView.show(this.editorView.mainElement());
216 }
217 WebInspector.Panel.prototype.wasShown.call(this); 195 WebInspector.Panel.prototype.wasShown.call(this);
218 }, 196 },
219 197
220 willHide: function() 198 willHide: function()
221 { 199 {
222 WebInspector.Panel.prototype.willHide.call(this); 200 WebInspector.Panel.prototype.willHide.call(this);
223 if (WebInspector.experimentsSettings.editorInDrawer.isEnabled()) {
224 this._drawerEditor()._panelWillHide();
225 this._sourcesView.show(this._drawerEditorView.element);
226 }
227 WebInspector.context.setFlavor(WebInspector.SourcesPanel, null); 201 WebInspector.context.setFlavor(WebInspector.SourcesPanel, null);
228 }, 202 },
229 203
230 /** 204 /**
231 * @return {!WebInspector.SearchableView} 205 * @return {!WebInspector.SearchableView}
232 */ 206 */
233 searchableView: function() 207 searchableView: function()
234 { 208 {
235 return this._sourcesView.searchableView(); 209 return this._sourcesView.searchableView();
236 }, 210 },
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after
373 showUISourceCode: function(uiSourceCode, lineNumber, columnNumber, forceShow InPanel) 347 showUISourceCode: function(uiSourceCode, lineNumber, columnNumber, forceShow InPanel)
374 { 348 {
375 this._showEditor(forceShowInPanel); 349 this._showEditor(forceShowInPanel);
376 this._sourcesView.showSourceLocation(uiSourceCode, lineNumber, columnNum ber); 350 this._sourcesView.showSourceLocation(uiSourceCode, lineNumber, columnNum ber);
377 }, 351 },
378 352
379 _showEditor: function(forceShowInPanel) 353 _showEditor: function(forceShowInPanel)
380 { 354 {
381 if (this._sourcesView.isShowing()) 355 if (this._sourcesView.isShowing())
382 return; 356 return;
383 357 WebInspector.inspectorView.showPanel("sources");
384 if (this._shouldShowEditorInDrawer() && !forceShowInPanel)
385 this._drawerEditor()._show();
386 else
387 WebInspector.inspectorView.showPanel("sources");
388 }, 358 },
389 359
390 /** 360 /**
391 * @param {!WebInspector.UILocation} uiLocation 361 * @param {!WebInspector.UILocation} uiLocation
392 * @param {boolean=} forceShowInPanel 362 * @param {boolean=} forceShowInPanel
393 */ 363 */
394 showUILocation: function(uiLocation, forceShowInPanel) 364 showUILocation: function(uiLocation, forceShowInPanel)
395 { 365 {
396 this.showUISourceCode(uiLocation.uiSourceCode, uiLocation.lineNumber, ui Location.columnNumber, forceShowInPanel); 366 this.showUISourceCode(uiLocation.uiSourceCode, uiLocation.lineNumber, ui Location.columnNumber, forceShowInPanel);
397 }, 367 },
398 368
399 /** 369 /**
400 * @return {boolean}
401 */
402 _shouldShowEditorInDrawer: function()
403 {
404 return WebInspector.experimentsSettings.editorInDrawer.isEnabled() && We bInspector.settings.showEditorInDrawer.get() && WebInspector.inspectorView.isDra werEditorShown();
405 },
406
407 /**
408 * @param {!WebInspector.UISourceCode} uiSourceCode 370 * @param {!WebInspector.UISourceCode} uiSourceCode
409 */ 371 */
410 _revealInNavigator: function(uiSourceCode) 372 _revealInNavigator: function(uiSourceCode)
411 { 373 {
412 this._navigator.revealUISourceCode(uiSourceCode); 374 this._navigator.revealUISourceCode(uiSourceCode);
413 }, 375 },
414 376
415 /** 377 /**
416 * @param {boolean} ignoreExecutionLineEvents 378 * @param {boolean} ignoreExecutionLineEvents
417 */ 379 */
(...skipping 813 matching lines...) Expand 10 before | Expand all | Expand 10 after
1231 1193
1232 _removeMask: function () 1194 _removeMask: function ()
1233 { 1195 {
1234 this._dragMaskElement.remove(); 1196 this._dragMaskElement.remove();
1235 delete this._dragMaskElement; 1197 delete this._dragMaskElement;
1236 } 1198 }
1237 } 1199 }
1238 1200
1239 /** 1201 /**
1240 * @constructor 1202 * @constructor
1241 * @implements {WebInspector.DrawerEditor}
1242 */
1243 WebInspector.SourcesPanel.DrawerEditor = function()
1244 {
1245 this._panel = WebInspector.inspectorView.panel("sources");
1246 }
1247
1248 WebInspector.SourcesPanel.DrawerEditor.prototype = {
1249 /**
1250 * @return {!WebInspector.View}
1251 */
1252 view: function()
1253 {
1254 return this._panel._drawerEditorView;
1255 },
1256
1257 installedIntoDrawer: function()
1258 {
1259 if (this._panel.isShowing())
1260 this._panelWasShown();
1261 else
1262 this._panelWillHide();
1263 },
1264
1265 _panelWasShown: function()
1266 {
1267 WebInspector.inspectorView.setDrawerEditorAvailable(false);
1268 WebInspector.inspectorView.hideDrawerEditor();
1269 },
1270
1271 _panelWillHide: function()
1272 {
1273 WebInspector.inspectorView.setDrawerEditorAvailable(true);
1274 if (WebInspector.inspectorView.isDrawerEditorShown())
1275 WebInspector.inspectorView.showDrawerEditor();
1276 },
1277
1278 _show: function()
1279 {
1280 WebInspector.inspectorView.showDrawerEditor();
1281 },
1282 }
1283
1284 /**
1285 * @constructor
1286 * @extends {WebInspector.VBox}
1287 */
1288 WebInspector.SourcesPanel.DrawerEditorView = function()
1289 {
1290 WebInspector.VBox.call(this);
1291 this.element.id = "drawer-editor-view";
1292 }
1293
1294 WebInspector.SourcesPanel.DrawerEditorView.prototype = {
1295 __proto__: WebInspector.VBox.prototype
1296 }
1297
1298
1299 /**
1300 * @constructor
1301 * @implements {WebInspector.ContextMenu.Provider} 1203 * @implements {WebInspector.ContextMenu.Provider}
1302 */ 1204 */
1303 WebInspector.SourcesPanel.ContextMenuProvider = function() 1205 WebInspector.SourcesPanel.ContextMenuProvider = function()
1304 { 1206 {
1305 } 1207 }
1306 1208
1307 WebInspector.SourcesPanel.ContextMenuProvider.prototype = { 1209 WebInspector.SourcesPanel.ContextMenuProvider.prototype = {
1308 /** 1210 /**
1309 * @param {!Event} event 1211 * @param {!Event} event
1310 * @param {!WebInspector.ContextMenu} contextMenu 1212 * @param {!WebInspector.ContextMenu} contextMenu
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after
1450 */ 1352 */
1451 handleAction: function() 1353 handleAction: function()
1452 { 1354 {
1453 var panel = /** @type {?WebInspector.SourcesPanel} */ (WebInspector.insp ectorView.showPanel("sources")); 1355 var panel = /** @type {?WebInspector.SourcesPanel} */ (WebInspector.insp ectorView.showPanel("sources"));
1454 if (!panel) 1356 if (!panel)
1455 return false; 1357 return false;
1456 panel.togglePause(); 1358 panel.togglePause();
1457 return true; 1359 return true;
1458 } 1360 }
1459 } 1361 }
OLDNEW
« no previous file with comments | « Source/devtools/front_end/components/InspectorView.js ('k') | Source/devtools/front_end/sources/module.json » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698