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

Unified Diff: third_party/WebKit/Source/devtools/front_end/sources/WatchExpressionsSidebarPane.js

Issue 2238003002: DevTools: migrate sources panel sidebar to views. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: review comments addressed Created 4 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 side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/devtools/front_end/sources/WatchExpressionsSidebarPane.js
diff --git a/third_party/WebKit/Source/devtools/front_end/sources/WatchExpressionsSidebarPane.js b/third_party/WebKit/Source/devtools/front_end/sources/WatchExpressionsSidebarPane.js
index 1325380cd9d083def102a7e72994ff9fa2695271..728b3073fcca3a9b6f11113b1ce8e0ae643afb19 100644
--- a/third_party/WebKit/Source/devtools/front_end/sources/WatchExpressionsSidebarPane.js
+++ b/third_party/WebKit/Source/devtools/front_end/sources/WatchExpressionsSidebarPane.js
@@ -30,58 +30,43 @@
/**
* @constructor
- * @extends {WebInspector.SimpleView}
+ * @extends {WebInspector.ThrottledWidget}
+ * @implements {WebInspector.ActionDelegate}
+ * @implements {WebInspector.ToolbarItem.ItemsProvider}
+ * @implements {WebInspector.ContextMenu.Provider}
*/
WebInspector.WatchExpressionsSidebarPane = function()
{
- WebInspector.SimpleView.call(this, WebInspector.UIString("Watch"));
+ WebInspector.ThrottledWidget.call(this);
this.registerRequiredCSS("components/objectValue.css");
- this._requiresUpdate = true;
/** @type {!Array.<!WebInspector.WatchExpression>} */
this._watchExpressions = [];
this._watchExpressionsSetting = WebInspector.settings.createLocalSetting("watchExpressions", []);
- var addButton = new WebInspector.ToolbarButton(WebInspector.UIString("Add expression"), "add-toolbar-item");
- addButton.addEventListener("click", this._addButtonClicked.bind(this));
- this.addToolbarItem(addButton);
- var refreshButton = new WebInspector.ToolbarButton(WebInspector.UIString("Refresh"), "refresh-toolbar-item");
- refreshButton.addEventListener("click", this._refreshButtonClicked.bind(this));
- this.addToolbarItem(refreshButton);
+ this._addButton = new WebInspector.ToolbarButton(WebInspector.UIString("Add expression"), "add-toolbar-item");
+ this._addButton.addEventListener("click", this._addButtonClicked.bind(this));
+ this._refreshButton = new WebInspector.ToolbarButton(WebInspector.UIString("Refresh"), "refresh-toolbar-item");
+ this._refreshButton.addEventListener("click", this._refreshButtonClicked.bind(this));
this._bodyElement = this.element.createChild("div", "vbox watch-expressions");
this._bodyElement.addEventListener("contextmenu", this._contextMenu.bind(this), false);
this._expandController = new WebInspector.ObjectPropertiesSectionExpandController();
- WebInspector.context.addFlavorChangeListener(WebInspector.ExecutionContext, this._refreshExpressions, this);
- WebInspector.context.addFlavorChangeListener(WebInspector.DebuggerModel.CallFrame, this._refreshExpressions, this);
+ WebInspector.context.addFlavorChangeListener(WebInspector.ExecutionContext, this.update, this);
+ WebInspector.context.addFlavorChangeListener(WebInspector.DebuggerModel.CallFrame, this.update, this);
this._linkifier = new WebInspector.Linkifier();
+ this.update();
}
WebInspector.WatchExpressionsSidebarPane.prototype = {
- wasShown: function()
- {
- this._refreshExpressionsIfNeeded();
- },
-
- _refreshExpressions: function()
- {
- this._requiresUpdate = true;
- this._refreshExpressionsIfNeeded();
- },
-
/**
- * @param {string} expressionString
+ * @override
+ * @return {!Array<!WebInspector.ToolbarItem>}
*/
- addExpression: function(expressionString)
+ toolbarItems: function()
{
- this.revealView();
- if (this._requiresUpdate) {
- this._rebuildWatchExpressions();
- delete this._requiresUpdate;
- }
- this._createWatchExpression(expressionString);
- this._saveExpressions();
+ return [this._addButton, this._refreshButton];
},
/**
@@ -102,15 +87,6 @@ WebInspector.WatchExpressionsSidebarPane.prototype = {
this._watchExpressionsSetting.set(toSave);
},
- _refreshExpressionsIfNeeded: function()
- {
- if (this._requiresUpdate && this.isShowing()) {
- this._rebuildWatchExpressions();
- delete this._requiresUpdate;
- } else
- this._requiresUpdate = true;
- },
-
/**
* @param {!WebInspector.Event=} event
*/
@@ -118,7 +94,7 @@ WebInspector.WatchExpressionsSidebarPane.prototype = {
{
if (event)
event.consume(true);
- this.revealView();
+ WebInspector.viewManager.showView("sources.watch");
this._createWatchExpression(null).startEditing();
},
@@ -128,10 +104,14 @@ WebInspector.WatchExpressionsSidebarPane.prototype = {
_refreshButtonClicked: function(event)
{
event.consume();
- this._refreshExpressions();
+ this.update();
},
- _rebuildWatchExpressions: function()
+ /**
+ * @override
+ * @return {!Promise.<?>}
+ */
+ doUpdate: function()
{
this._linkifier.reset();
this._bodyElement.removeChildren();
@@ -146,6 +126,7 @@ WebInspector.WatchExpressionsSidebarPane.prototype = {
this._createWatchExpression(expression);
}
+ return Promise.resolve();
},
/**
@@ -212,10 +193,40 @@ WebInspector.WatchExpressionsSidebarPane.prototype = {
{
this._watchExpressions = [];
this._saveExpressions();
- this._rebuildWatchExpressions();
+ this.update();
+ },
+
+ /**
+ * @override
+ * @param {!WebInspector.Context} context
+ * @param {string} actionId
+ * @return {boolean}
+ */
+ handleAction: function(context, actionId)
+ {
+ var frame = WebInspector.context.flavor(WebInspector.UISourceCodeFrame);
+ if (!frame)
+ return false;
+ var text = frame.textEditor.copyRange(frame.textEditor.selection());
+ WebInspector.viewManager.showView("sources.watch");
+ this.doUpdate();
+ this._createWatchExpression(text);
+ this._saveExpressions();
+ return true;
+ },
+
+ /**
+ * @override
+ * @param {!Event} event
+ * @param {!WebInspector.ContextMenu} contextMenu
+ * @param {!Object} target
+ */
+ appendApplicableItems: function(event, contextMenu, target)
+ {
+ contextMenu.appendAction("sources.add-to-watch");
},
- __proto__: WebInspector.SimpleView.prototype
+ __proto__: WebInspector.ThrottledWidget.prototype
}
/**

Powered by Google App Engine
This is Rietveld 408576698