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

Unified Diff: Source/devtools/front_end/AdvancedSearchView.js

Issue 236683004: DevTools: Merge SearchView into AdvancedSearchController (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Change getter to method Created 6 years, 8 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
« no previous file with comments | « Source/devtools/front_end/AdvancedSearchController.js ('k') | Source/devtools/front_end/modules.js » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/devtools/front_end/AdvancedSearchView.js
diff --git a/Source/devtools/front_end/AdvancedSearchController.js b/Source/devtools/front_end/AdvancedSearchView.js
similarity index 74%
rename from Source/devtools/front_end/AdvancedSearchController.js
rename to Source/devtools/front_end/AdvancedSearchView.js
index 357447180ee90fc50b6bd872d69859e9384bbb49..9d39fb73a386742827bd8d3634330e106fe191f5 100644
--- a/Source/devtools/front_end/AdvancedSearchController.js
+++ b/Source/devtools/front_end/AdvancedSearchView.js
@@ -1,56 +1,77 @@
-/*
- * Copyright (C) 2011 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY GOOGLE INC. AND ITS CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GOOGLE INC.
- * OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
/**
* @constructor
+ * @extends {WebInspector.VBox}
*/
-WebInspector.AdvancedSearchController = function()
+WebInspector.AdvancedSearchView = function()
{
+ WebInspector.VBox.call(this);
+
this._searchId = 0;
+ this.element.classList.add("search-view");
+
+ this._searchPanelElement = this.element.createChild("div", "search-drawer-header");
+ this._searchPanelElement.addEventListener("keydown", this._onKeyDown.bind(this), false);
+
+ this._searchResultsElement = this.element.createChild("div");
+ this._searchResultsElement.className = "search-results";
+
+ this._search = this._searchPanelElement.createChild("input");
+ this._search.placeholder = WebInspector.UIString("Search sources");
+ this._search.setAttribute("type", "text");
+ this._search.classList.add("search-config-search");
+ this._search.setAttribute("results", "0");
+ this._search.setAttribute("size", 30);
+
+ this._ignoreCaseLabel = this._searchPanelElement.createChild("label");
+ this._ignoreCaseLabel.classList.add("search-config-label");
+ this._ignoreCaseCheckbox = this._ignoreCaseLabel.createChild("input");
+ this._ignoreCaseCheckbox.setAttribute("type", "checkbox");
+ this._ignoreCaseCheckbox.classList.add("search-config-checkbox");
+ this._ignoreCaseLabel.appendChild(document.createTextNode(WebInspector.UIString("Ignore case")));
+
+ this._regexLabel = this._searchPanelElement.createChild("label");
+ this._regexLabel.classList.add("search-config-label");
+ this._regexCheckbox = this._regexLabel.createChild("input");
+ this._regexCheckbox.setAttribute("type", "checkbox");
+ this._regexCheckbox.classList.add("search-config-checkbox");
+ this._regexLabel.appendChild(document.createTextNode(WebInspector.UIString("Regular expression")));
+
+ this._searchStatusBarElement = this.element.createChild("div", "search-status-bar-summary");
+ this._searchMessageElement = this._searchStatusBarElement.createChild("span");
+ this._searchResultsMessageElement = document.createElement("span");
+
WebInspector.settings.advancedSearchConfig = WebInspector.settings.createSetting("advancedSearchConfig", new WebInspector.SearchConfig("", true, false).toPlainObject());
+ this._load();
}
-WebInspector.AdvancedSearchController.prototype = {
- show: function()
+WebInspector.AdvancedSearchView.prototype = {
+ /**
+ * @return {!WebInspector.SearchConfig}
+ */
+ _buildSearchConfig: function()
+ {
+ return new WebInspector.SearchConfig(this._search.value, this._ignoreCaseCheckbox.checked, this._regexCheckbox.checked);
+ },
+
+ toggle: function()
{
var selection = window.getSelection();
var queryCandidate;
if (selection.rangeCount)
queryCandidate = selection.toString().replace(/\r?\n.*/, "");
- if (!this._searchView || !this._searchView.isShowing())
+ if (!this.isShowing())
WebInspector.inspectorView.showViewInDrawer("search");
if (queryCandidate)
- this._searchView._search.value = queryCandidate;
- this._searchView.focus();
+ this._search.value = queryCandidate;
+ this.focus();
- this.startIndexing();
+ this._startIndexing();
},
/**
@@ -59,7 +80,7 @@ WebInspector.AdvancedSearchController.prototype = {
_onIndexingFinished: function(finished)
{
delete this._isIndexing;
- this._searchView.indexingFinished(finished);
+ this._indexingFinished(finished);
if (!finished)
delete this._pendingSearchConfig;
if (!this._pendingSearchConfig)
@@ -69,7 +90,7 @@ WebInspector.AdvancedSearchController.prototype = {
this._innerStartSearch(searchConfig);
},
- startIndexing: function()
+ _startIndexing: function()
{
this._isIndexing = true;
// FIXME: this._currentSearchScope should be initialized based on searchConfig
@@ -77,7 +98,7 @@ WebInspector.AdvancedSearchController.prototype = {
if (this._progressIndicator)
this._progressIndicator.done();
this._progressIndicator = new WebInspector.ProgressIndicator();
- this._searchView.indexingStarted(this._progressIndicator);
+ this._indexingStarted(this._progressIndicator);
this._currentSearchScope.performIndexing(this._progressIndicator, this._onIndexingFinished.bind(this));
},
@@ -89,12 +110,13 @@ WebInspector.AdvancedSearchController.prototype = {
{
if (searchId !== this._searchId)
return;
- this._searchView.addSearchResult(searchResult);
+ this._addSearchResult(searchResult);
if (!searchResult.searchMatches.length)
return;
if (!this._searchResultsPane)
this._searchResultsPane = this._currentSearchScope.createSearchResultsPane(this._searchConfig);
- this._searchView.resultsPane = this._searchResultsPane;
+ this._resetResults();
+ this._searchResultsElement.appendChild(this._searchResultsPane.element);
this._searchResultsPane.addSearchResult(searchResult);
},
@@ -107,20 +129,20 @@ WebInspector.AdvancedSearchController.prototype = {
if (searchId !== this._searchId)
return;
if (!this._searchResultsPane)
- this._searchView.nothingFound();
- this._searchView.searchFinished(finished);
+ this._nothingFound();
+ this._searchFinished(finished);
delete this._searchConfig;
},
/**
* @param {!WebInspector.SearchConfig} searchConfig
*/
- startSearch: function(searchConfig)
+ _startSearch: function(searchConfig)
{
- this.resetSearch();
+ this._resetSearch();
++this._searchId;
if (!this._isIndexing)
- this.startIndexing();
+ this._startIndexing();
this._pendingSearchConfig = searchConfig;
},
@@ -136,21 +158,21 @@ WebInspector.AdvancedSearchController.prototype = {
if (this._progressIndicator)
this._progressIndicator.done();
this._progressIndicator = new WebInspector.ProgressIndicator();
- this._searchView.searchStarted(this._progressIndicator);
+ this._searchStarted(this._progressIndicator);
this._currentSearchScope.performSearch(searchConfig, this._progressIndicator, this._onSearchResult.bind(this, this._searchId), this._onSearchFinished.bind(this, this._searchId));
},
- resetSearch: function()
+ _resetSearch: function()
{
- this.stopSearch();
+ this._stopSearch();
if (this._searchResultsPane) {
- this._searchView.resetResults();
+ this._resetResults();
delete this._searchResultsPane;
}
},
- stopSearch: function()
+ _stopSearch: function()
{
if (this._progressIndicator)
this._progressIndicator.cancel();
@@ -166,80 +188,14 @@ WebInspector.AdvancedSearchController.prototype = {
{
// FIXME: implement multiple search scopes.
return /** @type {!Array.<!WebInspector.SearchScope>} */ (WebInspector.moduleManager.instances(WebInspector.SearchScope));
- }
-}
-
-/**
- * @constructor
- * @extends {WebInspector.VBox}
- */
-WebInspector.SearchView = function()
-{
- WebInspector.VBox.call(this);
-
- this._controller = WebInspector.advancedSearchController;
- WebInspector.advancedSearchController._searchView = this;
-
- this.element.classList.add("search-view");
-
- this._searchPanelElement = this.element.createChild("div", "search-drawer-header");
- this._searchPanelElement.addEventListener("keydown", this._onKeyDown.bind(this), false);
-
- this._searchResultsElement = this.element.createChild("div");
- this._searchResultsElement.className = "search-results";
-
- this._search = this._searchPanelElement.createChild("input");
- this._search.placeholder = WebInspector.UIString("Search sources");
- this._search.setAttribute("type", "text");
- this._search.classList.add("search-config-search");
- this._search.setAttribute("results", "0");
- this._search.setAttribute("size", 30);
-
- this._ignoreCaseLabel = this._searchPanelElement.createChild("label");
- this._ignoreCaseLabel.classList.add("search-config-label");
- this._ignoreCaseCheckbox = this._ignoreCaseLabel.createChild("input");
- this._ignoreCaseCheckbox.setAttribute("type", "checkbox");
- this._ignoreCaseCheckbox.classList.add("search-config-checkbox");
- this._ignoreCaseLabel.appendChild(document.createTextNode(WebInspector.UIString("Ignore case")));
-
- this._regexLabel = this._searchPanelElement.createChild("label");
- this._regexLabel.classList.add("search-config-label");
- this._regexCheckbox = this._regexLabel.createChild("input");
- this._regexCheckbox.setAttribute("type", "checkbox");
- this._regexCheckbox.classList.add("search-config-checkbox");
- this._regexLabel.appendChild(document.createTextNode(WebInspector.UIString("Regular expression")));
-
- this._searchStatusBarElement = this.element.createChild("div", "search-status-bar-summary");
- this._searchMessageElement = this._searchStatusBarElement.createChild("span");
- this._searchResultsMessageElement = document.createElement("span");
-
- this._load();
-}
-
-WebInspector.SearchView.prototype = {
- /**
- * @return {!WebInspector.SearchConfig}
- */
- get searchConfig()
- {
- return new WebInspector.SearchConfig(this._search.value, this._ignoreCaseCheckbox.checked, this._regexCheckbox.checked);
- },
-
- /**
- * @type {!WebInspector.SearchResultsPane}
- */
- set resultsPane(resultsPane)
- {
- this.resetResults();
- this._searchResultsElement.appendChild(resultsPane.element);
},
/**
* @param {!WebInspector.ProgressIndicator} progressIndicator
*/
- searchStarted: function(progressIndicator)
+ _searchStarted: function(progressIndicator)
{
- this.resetResults();
+ this._resetResults();
this._resetCounters();
this._searchMessageElement.textContent = WebInspector.UIString("Searching...");
@@ -254,7 +210,7 @@ WebInspector.SearchView.prototype = {
/**
* @param {!WebInspector.ProgressIndicator} progressIndicator
*/
- indexingStarted: function(progressIndicator)
+ _indexingStarted: function(progressIndicator)
{
this._searchMessageElement.textContent = WebInspector.UIString("Indexing...");
progressIndicator.show(this._searchStatusBarElement);
@@ -263,7 +219,7 @@ WebInspector.SearchView.prototype = {
/**
* @param {boolean} finished
*/
- indexingFinished: function(finished)
+ _indexingFinished: function(finished)
{
this._searchMessageElement.textContent = finished ? "" : WebInspector.UIString("Indexing interrupted.");
},
@@ -276,7 +232,7 @@ WebInspector.SearchView.prototype = {
this._searchResultsMessageElement.textContent = "";
},
- resetResults: function()
+ _resetResults: function()
{
if (this._searchingView)
this._searchingView.detach();
@@ -292,9 +248,9 @@ WebInspector.SearchView.prototype = {
this._nonEmptySearchResultsCount = 0;
},
- nothingFound: function()
+ _nothingFound: function()
{
- this.resetResults();
+ this._resetResults();
if (!this._notFoundView)
this._notFoundView = new WebInspector.EmptyView(WebInspector.UIString("No matches found."));
@@ -305,7 +261,7 @@ WebInspector.SearchView.prototype = {
/**
* @param {!WebInspector.FileBasedSearchResult} searchResult
*/
- addSearchResult: function(searchResult)
+ _addSearchResult: function(searchResult)
{
this._searchMatchesCount += searchResult.searchMatches.length;
this._searchResultsCount++;
@@ -317,7 +273,7 @@ WebInspector.SearchView.prototype = {
/**
* @param {boolean} finished
*/
- searchFinished: function(finished)
+ _searchFinished: function(finished)
{
this._searchMessageElement.textContent = finished ? WebInspector.UIString("Search finished.") : WebInspector.UIString("Search interrupted.");
},
@@ -330,7 +286,7 @@ WebInspector.SearchView.prototype = {
willHide: function()
{
- this._controller.stopSearch();
+ this._stopSearch();
},
/**
@@ -347,7 +303,7 @@ WebInspector.SearchView.prototype = {
_save: function()
{
- WebInspector.settings.advancedSearchConfig.set(this.searchConfig.toPlainObject());
+ WebInspector.settings.advancedSearchConfig.set(this._buildSearchConfig().toPlainObject());
},
_load: function()
@@ -360,12 +316,12 @@ WebInspector.SearchView.prototype = {
_onAction: function()
{
- var searchConfig = this.searchConfig;
+ var searchConfig = this._buildSearchConfig();
if (!searchConfig.query() || !searchConfig.query().length)
return;
this._save();
- this._controller.startSearch(searchConfig);
+ this._startSearch(searchConfig);
},
__proto__: WebInspector.VBox.prototype
@@ -400,11 +356,11 @@ WebInspector.SearchResultsPane.prototype = {
* @constructor
* @implements {WebInspector.ActionDelegate}
*/
-WebInspector.AdvancedSearchController.ToggleDrawerViewActionDelegate = function()
+WebInspector.AdvancedSearchView.ToggleDrawerViewActionDelegate = function()
{
}
-WebInspector.AdvancedSearchController.ToggleDrawerViewActionDelegate.prototype = {
+WebInspector.AdvancedSearchView.ToggleDrawerViewActionDelegate.prototype = {
/**
* @param {!Event} event
* @return {boolean}
@@ -413,14 +369,33 @@ WebInspector.AdvancedSearchController.ToggleDrawerViewActionDelegate.prototype =
{
if (WebInspector.Dialog.currentInstance())
return false;
- var searchView = WebInspector.advancedSearchController._searchView;
- if (!searchView || !searchView.isShowing() || searchView._search !== document.activeElement) {
+ var searchView = this._searchView();
+ if (!searchView)
+ return false;
+ if (!searchView.isShowing() || searchView._search !== document.activeElement) {
WebInspector.inspectorView.showPanel("sources");
- WebInspector.advancedSearchController.show();
+ searchView.toggle();
} else {
WebInspector.inspectorView.closeDrawer();
}
return true;
+ },
+
+ /**
+ * @return {?WebInspector.AdvancedSearchView}
+ */
+ _searchView: function()
+ {
+ if (!this._view) {
+ var extensions = WebInspector.moduleManager.extensions("drawer-view");
+ for (var i = 0; i < extensions.length; ++i) {
+ if (extensions[i].descriptor()["name"] === "search") {
+ this._view = extensions[i].instance();
+ break;
+ }
+ }
+ }
+ return this._view;
}
}
@@ -466,11 +441,6 @@ WebInspector.SearchScope.prototype = {
createSearchResultsPane: function(searchConfig) { }
}
-/**
- * @type {!WebInspector.AdvancedSearchController}
- */
-WebInspector.advancedSearchController = new WebInspector.AdvancedSearchController();
-
importScript("SearchConfig.js");
importScript("FileBasedSearchResultsPane.js");
importScript("SourcesSearchScope.js");
« no previous file with comments | « Source/devtools/front_end/AdvancedSearchController.js ('k') | Source/devtools/front_end/modules.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698