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

Side by Side 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: 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 /* 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 * Copyright (C) 2011 Google Inc. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be
3 * 3 // found in the LICENSE file.
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are
6 * met:
7 *
8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 *
11 * 2. Redistributions in binary form must reproduce the above
12 * copyright notice, this list of conditions and the following disclaimer
13 * in the documentation and/or other materials provided with the
14 * distribution.
15 *
16 * THIS SOFTWARE IS PROVIDED BY GOOGLE INC. AND ITS CONTRIBUTORS
17 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
18 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
19 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GOOGLE INC.
20 * OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
21 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
22 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 */
28 4
29 /** 5 /**
30 * @constructor 6 * @constructor
7 * @extends {WebInspector.VBox}
31 */ 8 */
32 WebInspector.AdvancedSearchController = function() 9 WebInspector.AdvancedSearchView = function()
33 { 10 {
11 WebInspector.VBox.call(this);
12
34 this._searchId = 0; 13 this._searchId = 0;
35 14
15 this.element.classList.add("search-view");
16
17 this._searchPanelElement = this.element.createChild("div", "search-drawer-he ader");
18 this._searchPanelElement.addEventListener("keydown", this._onKeyDown.bind(th is), false);
19
20 this._searchResultsElement = this.element.createChild("div");
21 this._searchResultsElement.className = "search-results";
22
23 this._search = this._searchPanelElement.createChild("input");
24 this._search.placeholder = WebInspector.UIString("Search sources");
25 this._search.setAttribute("type", "text");
26 this._search.classList.add("search-config-search");
27 this._search.setAttribute("results", "0");
28 this._search.setAttribute("size", 30);
29
30 this._ignoreCaseLabel = this._searchPanelElement.createChild("label");
31 this._ignoreCaseLabel.classList.add("search-config-label");
32 this._ignoreCaseCheckbox = this._ignoreCaseLabel.createChild("input");
33 this._ignoreCaseCheckbox.setAttribute("type", "checkbox");
34 this._ignoreCaseCheckbox.classList.add("search-config-checkbox");
35 this._ignoreCaseLabel.appendChild(document.createTextNode(WebInspector.UIStr ing("Ignore case")));
36
37 this._regexLabel = this._searchPanelElement.createChild("label");
38 this._regexLabel.classList.add("search-config-label");
39 this._regexCheckbox = this._regexLabel.createChild("input");
40 this._regexCheckbox.setAttribute("type", "checkbox");
41 this._regexCheckbox.classList.add("search-config-checkbox");
42 this._regexLabel.appendChild(document.createTextNode(WebInspector.UIString(" Regular expression")));
43
44 this._searchStatusBarElement = this.element.createChild("div", "search-statu s-bar-summary");
45 this._searchMessageElement = this._searchStatusBarElement.createChild("span" );
46 this._searchResultsMessageElement = document.createElement("span");
47
36 WebInspector.settings.advancedSearchConfig = WebInspector.settings.createSet ting("advancedSearchConfig", new WebInspector.SearchConfig("", true, false).toPl ainObject()); 48 WebInspector.settings.advancedSearchConfig = WebInspector.settings.createSet ting("advancedSearchConfig", new WebInspector.SearchConfig("", true, false).toPl ainObject());
49 this._load();
37 } 50 }
38 51
39 WebInspector.AdvancedSearchController.prototype = { 52 WebInspector.AdvancedSearchView.prototype = {
40 show: function() 53 /**
54 * @return {!WebInspector.SearchConfig}
55 */
56 get searchConfig()
vsevik 2014/04/14 13:28:57 Let's make it a method instead.
57 {
58 return new WebInspector.SearchConfig(this._search.value, this._ignoreCas eCheckbox.checked, this._regexCheckbox.checked);
59 },
60
61 toggle: function()
41 { 62 {
42 var selection = window.getSelection(); 63 var selection = window.getSelection();
43 var queryCandidate; 64 var queryCandidate;
44 if (selection.rangeCount) 65 if (selection.rangeCount)
45 queryCandidate = selection.toString().replace(/\r?\n.*/, ""); 66 queryCandidate = selection.toString().replace(/\r?\n.*/, "");
46 67
47 if (!this._searchView || !this._searchView.isShowing()) 68 if (!this.isShowing())
48 WebInspector.inspectorView.showViewInDrawer("search"); 69 WebInspector.inspectorView.showViewInDrawer("search");
49 if (queryCandidate) 70 if (queryCandidate)
50 this._searchView._search.value = queryCandidate; 71 this._search.value = queryCandidate;
51 this._searchView.focus(); 72 this.focus();
52 73
53 this.startIndexing(); 74 this._startIndexing();
54 }, 75 },
55 76
56 /** 77 /**
57 * @param {boolean} finished 78 * @param {boolean} finished
58 */ 79 */
59 _onIndexingFinished: function(finished) 80 _onIndexingFinished: function(finished)
60 { 81 {
61 delete this._isIndexing; 82 delete this._isIndexing;
62 this._searchView.indexingFinished(finished); 83 this._indexingFinished(finished);
63 if (!finished) 84 if (!finished)
64 delete this._pendingSearchConfig; 85 delete this._pendingSearchConfig;
65 if (!this._pendingSearchConfig) 86 if (!this._pendingSearchConfig)
66 return; 87 return;
67 var searchConfig = this._pendingSearchConfig 88 var searchConfig = this._pendingSearchConfig
68 delete this._pendingSearchConfig; 89 delete this._pendingSearchConfig;
69 this._innerStartSearch(searchConfig); 90 this._innerStartSearch(searchConfig);
70 }, 91 },
71 92
72 startIndexing: function() 93 _startIndexing: function()
73 { 94 {
74 this._isIndexing = true; 95 this._isIndexing = true;
75 // FIXME: this._currentSearchScope should be initialized based on search Config 96 // FIXME: this._currentSearchScope should be initialized based on search Config
76 this._currentSearchScope = this._searchScopes()[0]; 97 this._currentSearchScope = this._searchScopes()[0];
77 if (this._progressIndicator) 98 if (this._progressIndicator)
78 this._progressIndicator.done(); 99 this._progressIndicator.done();
79 this._progressIndicator = new WebInspector.ProgressIndicator(); 100 this._progressIndicator = new WebInspector.ProgressIndicator();
80 this._searchView.indexingStarted(this._progressIndicator); 101 this._indexingStarted(this._progressIndicator);
81 this._currentSearchScope.performIndexing(this._progressIndicator, this._ onIndexingFinished.bind(this)); 102 this._currentSearchScope.performIndexing(this._progressIndicator, this._ onIndexingFinished.bind(this));
82 }, 103 },
83 104
84 /** 105 /**
85 * @param {number} searchId 106 * @param {number} searchId
86 * @param {!WebInspector.FileBasedSearchResult} searchResult 107 * @param {!WebInspector.FileBasedSearchResult} searchResult
87 */ 108 */
88 _onSearchResult: function(searchId, searchResult) 109 _onSearchResult: function(searchId, searchResult)
89 { 110 {
90 if (searchId !== this._searchId) 111 if (searchId !== this._searchId)
91 return; 112 return;
92 this._searchView.addSearchResult(searchResult); 113 this._addSearchResult(searchResult);
93 if (!searchResult.searchMatches.length) 114 if (!searchResult.searchMatches.length)
94 return; 115 return;
95 if (!this._searchResultsPane) 116 if (!this._searchResultsPane)
96 this._searchResultsPane = this._currentSearchScope.createSearchResul tsPane(this._searchConfig); 117 this._searchResultsPane = this._currentSearchScope.createSearchResul tsPane(this._searchConfig);
97 this._searchView.resultsPane = this._searchResultsPane; 118 this._resetResults();
119 this._searchResultsElement.appendChild(this._searchResultsPane.element);
98 this._searchResultsPane.addSearchResult(searchResult); 120 this._searchResultsPane.addSearchResult(searchResult);
99 }, 121 },
100 122
101 /** 123 /**
102 * @param {number} searchId 124 * @param {number} searchId
103 * @param {boolean} finished 125 * @param {boolean} finished
104 */ 126 */
105 _onSearchFinished: function(searchId, finished) 127 _onSearchFinished: function(searchId, finished)
106 { 128 {
107 if (searchId !== this._searchId) 129 if (searchId !== this._searchId)
108 return; 130 return;
109 if (!this._searchResultsPane) 131 if (!this._searchResultsPane)
110 this._searchView.nothingFound(); 132 this._nothingFound();
111 this._searchView.searchFinished(finished); 133 this._searchFinished(finished);
112 delete this._searchConfig; 134 delete this._searchConfig;
113 }, 135 },
114 136
115 /** 137 /**
116 * @param {!WebInspector.SearchConfig} searchConfig 138 * @param {!WebInspector.SearchConfig} searchConfig
117 */ 139 */
118 startSearch: function(searchConfig) 140 _startSearch: function(searchConfig)
119 { 141 {
120 this.resetSearch(); 142 this._resetSearch();
121 ++this._searchId; 143 ++this._searchId;
122 if (!this._isIndexing) 144 if (!this._isIndexing)
123 this.startIndexing(); 145 this._startIndexing();
124 this._pendingSearchConfig = searchConfig; 146 this._pendingSearchConfig = searchConfig;
125 }, 147 },
126 148
127 /** 149 /**
128 * @param {!WebInspector.SearchConfig} searchConfig 150 * @param {!WebInspector.SearchConfig} searchConfig
129 */ 151 */
130 _innerStartSearch: function(searchConfig) 152 _innerStartSearch: function(searchConfig)
131 { 153 {
132 this._searchConfig = searchConfig; 154 this._searchConfig = searchConfig;
133 // FIXME: this._currentSearchScope should be initialized based on search Config 155 // FIXME: this._currentSearchScope should be initialized based on search Config
134 this._currentSearchScope = this._searchScopes()[0]; 156 this._currentSearchScope = this._searchScopes()[0];
135 157
136 if (this._progressIndicator) 158 if (this._progressIndicator)
137 this._progressIndicator.done(); 159 this._progressIndicator.done();
138 this._progressIndicator = new WebInspector.ProgressIndicator(); 160 this._progressIndicator = new WebInspector.ProgressIndicator();
139 this._searchView.searchStarted(this._progressIndicator); 161 this._searchStarted(this._progressIndicator);
140 this._currentSearchScope.performSearch(searchConfig, this._progressIndic ator, this._onSearchResult.bind(this, this._searchId), this._onSearchFinished.bi nd(this, this._searchId)); 162 this._currentSearchScope.performSearch(searchConfig, this._progressIndic ator, this._onSearchResult.bind(this, this._searchId), this._onSearchFinished.bi nd(this, this._searchId));
141 }, 163 },
142 164
143 resetSearch: function() 165 _resetSearch: function()
144 { 166 {
145 this.stopSearch(); 167 this._stopSearch();
146 168
147 if (this._searchResultsPane) { 169 if (this._searchResultsPane) {
148 this._searchView.resetResults(); 170 this._resetResults();
149 delete this._searchResultsPane; 171 delete this._searchResultsPane;
150 } 172 }
151 }, 173 },
152 174
153 stopSearch: function() 175 _stopSearch: function()
154 { 176 {
155 if (this._progressIndicator) 177 if (this._progressIndicator)
156 this._progressIndicator.cancel(); 178 this._progressIndicator.cancel();
157 if (this._currentSearchScope) 179 if (this._currentSearchScope)
158 this._currentSearchScope.stopSearch(); 180 this._currentSearchScope.stopSearch();
159 delete this._searchConfig; 181 delete this._searchConfig;
160 }, 182 },
161 183
162 /** 184 /**
163 * @return {!Array.<!WebInspector.SearchScope>} 185 * @return {!Array.<!WebInspector.SearchScope>}
164 */ 186 */
165 _searchScopes: function() 187 _searchScopes: function()
166 { 188 {
167 // FIXME: implement multiple search scopes. 189 // FIXME: implement multiple search scopes.
168 return /** @type {!Array.<!WebInspector.SearchScope>} */ (WebInspector.m oduleManager.instances(WebInspector.SearchScope)); 190 return /** @type {!Array.<!WebInspector.SearchScope>} */ (WebInspector.m oduleManager.instances(WebInspector.SearchScope));
169 }
170 }
171
172 /**
173 * @constructor
174 * @extends {WebInspector.VBox}
175 */
176 WebInspector.SearchView = function()
177 {
178 WebInspector.VBox.call(this);
179
180 this._controller = WebInspector.advancedSearchController;
181 WebInspector.advancedSearchController._searchView = this;
182
183 this.element.classList.add("search-view");
184
185 this._searchPanelElement = this.element.createChild("div", "search-drawer-he ader");
186 this._searchPanelElement.addEventListener("keydown", this._onKeyDown.bind(th is), false);
187
188 this._searchResultsElement = this.element.createChild("div");
189 this._searchResultsElement.className = "search-results";
190
191 this._search = this._searchPanelElement.createChild("input");
192 this._search.placeholder = WebInspector.UIString("Search sources");
193 this._search.setAttribute("type", "text");
194 this._search.classList.add("search-config-search");
195 this._search.setAttribute("results", "0");
196 this._search.setAttribute("size", 30);
197
198 this._ignoreCaseLabel = this._searchPanelElement.createChild("label");
199 this._ignoreCaseLabel.classList.add("search-config-label");
200 this._ignoreCaseCheckbox = this._ignoreCaseLabel.createChild("input");
201 this._ignoreCaseCheckbox.setAttribute("type", "checkbox");
202 this._ignoreCaseCheckbox.classList.add("search-config-checkbox");
203 this._ignoreCaseLabel.appendChild(document.createTextNode(WebInspector.UIStr ing("Ignore case")));
204
205 this._regexLabel = this._searchPanelElement.createChild("label");
206 this._regexLabel.classList.add("search-config-label");
207 this._regexCheckbox = this._regexLabel.createChild("input");
208 this._regexCheckbox.setAttribute("type", "checkbox");
209 this._regexCheckbox.classList.add("search-config-checkbox");
210 this._regexLabel.appendChild(document.createTextNode(WebInspector.UIString(" Regular expression")));
211
212 this._searchStatusBarElement = this.element.createChild("div", "search-statu s-bar-summary");
213 this._searchMessageElement = this._searchStatusBarElement.createChild("span" );
214 this._searchResultsMessageElement = document.createElement("span");
215
216 this._load();
217 }
218
219 WebInspector.SearchView.prototype = {
220 /**
221 * @return {!WebInspector.SearchConfig}
222 */
223 get searchConfig()
224 {
225 return new WebInspector.SearchConfig(this._search.value, this._ignoreCas eCheckbox.checked, this._regexCheckbox.checked);
226 },
227
228 /**
229 * @type {!WebInspector.SearchResultsPane}
230 */
231 set resultsPane(resultsPane)
232 {
233 this.resetResults();
234 this._searchResultsElement.appendChild(resultsPane.element);
235 }, 191 },
236 192
237 /** 193 /**
238 * @param {!WebInspector.ProgressIndicator} progressIndicator 194 * @param {!WebInspector.ProgressIndicator} progressIndicator
239 */ 195 */
240 searchStarted: function(progressIndicator) 196 _searchStarted: function(progressIndicator)
241 { 197 {
242 this.resetResults(); 198 this._resetResults();
243 this._resetCounters(); 199 this._resetCounters();
244 200
245 this._searchMessageElement.textContent = WebInspector.UIString("Searchin g..."); 201 this._searchMessageElement.textContent = WebInspector.UIString("Searchin g...");
246 progressIndicator.show(this._searchStatusBarElement); 202 progressIndicator.show(this._searchStatusBarElement);
247 this._updateSearchResultsMessage(); 203 this._updateSearchResultsMessage();
248 204
249 if (!this._searchingView) 205 if (!this._searchingView)
250 this._searchingView = new WebInspector.EmptyView(WebInspector.UIStri ng("Searching...")); 206 this._searchingView = new WebInspector.EmptyView(WebInspector.UIStri ng("Searching..."));
251 this._searchingView.show(this._searchResultsElement); 207 this._searchingView.show(this._searchResultsElement);
252 }, 208 },
253 209
254 /** 210 /**
255 * @param {!WebInspector.ProgressIndicator} progressIndicator 211 * @param {!WebInspector.ProgressIndicator} progressIndicator
256 */ 212 */
257 indexingStarted: function(progressIndicator) 213 _indexingStarted: function(progressIndicator)
258 { 214 {
259 this._searchMessageElement.textContent = WebInspector.UIString("Indexing ..."); 215 this._searchMessageElement.textContent = WebInspector.UIString("Indexing ...");
260 progressIndicator.show(this._searchStatusBarElement); 216 progressIndicator.show(this._searchStatusBarElement);
261 }, 217 },
262 218
263 /** 219 /**
264 * @param {boolean} finished 220 * @param {boolean} finished
265 */ 221 */
266 indexingFinished: function(finished) 222 _indexingFinished: function(finished)
267 { 223 {
268 this._searchMessageElement.textContent = finished ? "" : WebInspector.UI String("Indexing interrupted."); 224 this._searchMessageElement.textContent = finished ? "" : WebInspector.UI String("Indexing interrupted.");
269 }, 225 },
270 226
271 _updateSearchResultsMessage: function() 227 _updateSearchResultsMessage: function()
272 { 228 {
273 if (this._searchMatchesCount && this._searchResultsCount) 229 if (this._searchMatchesCount && this._searchResultsCount)
274 this._searchResultsMessageElement.textContent = WebInspector.UIStrin g("Found %d matches in %d files.", this._searchMatchesCount, this._nonEmptySearc hResultsCount); 230 this._searchResultsMessageElement.textContent = WebInspector.UIStrin g("Found %d matches in %d files.", this._searchMatchesCount, this._nonEmptySearc hResultsCount);
275 else 231 else
276 this._searchResultsMessageElement.textContent = ""; 232 this._searchResultsMessageElement.textContent = "";
277 }, 233 },
278 234
279 resetResults: function() 235 _resetResults: function()
280 { 236 {
281 if (this._searchingView) 237 if (this._searchingView)
282 this._searchingView.detach(); 238 this._searchingView.detach();
283 if (this._notFoundView) 239 if (this._notFoundView)
284 this._notFoundView.detach(); 240 this._notFoundView.detach();
285 this._searchResultsElement.removeChildren(); 241 this._searchResultsElement.removeChildren();
286 }, 242 },
287 243
288 _resetCounters: function() 244 _resetCounters: function()
289 { 245 {
290 this._searchMatchesCount = 0; 246 this._searchMatchesCount = 0;
291 this._searchResultsCount = 0; 247 this._searchResultsCount = 0;
292 this._nonEmptySearchResultsCount = 0; 248 this._nonEmptySearchResultsCount = 0;
293 }, 249 },
294 250
295 nothingFound: function() 251 _nothingFound: function()
296 { 252 {
297 this.resetResults(); 253 this._resetResults();
298 254
299 if (!this._notFoundView) 255 if (!this._notFoundView)
300 this._notFoundView = new WebInspector.EmptyView(WebInspector.UIStrin g("No matches found.")); 256 this._notFoundView = new WebInspector.EmptyView(WebInspector.UIStrin g("No matches found."));
301 this._notFoundView.show(this._searchResultsElement); 257 this._notFoundView.show(this._searchResultsElement);
302 this._searchResultsMessageElement.textContent = WebInspector.UIString("N o matches found."); 258 this._searchResultsMessageElement.textContent = WebInspector.UIString("N o matches found.");
303 }, 259 },
304 260
305 /** 261 /**
306 * @param {!WebInspector.FileBasedSearchResult} searchResult 262 * @param {!WebInspector.FileBasedSearchResult} searchResult
307 */ 263 */
308 addSearchResult: function(searchResult) 264 _addSearchResult: function(searchResult)
309 { 265 {
310 this._searchMatchesCount += searchResult.searchMatches.length; 266 this._searchMatchesCount += searchResult.searchMatches.length;
311 this._searchResultsCount++; 267 this._searchResultsCount++;
312 if (searchResult.searchMatches.length) 268 if (searchResult.searchMatches.length)
313 this._nonEmptySearchResultsCount++; 269 this._nonEmptySearchResultsCount++;
314 this._updateSearchResultsMessage(); 270 this._updateSearchResultsMessage();
315 }, 271 },
316 272
317 /** 273 /**
318 * @param {boolean} finished 274 * @param {boolean} finished
319 */ 275 */
320 searchFinished: function(finished) 276 _searchFinished: function(finished)
321 { 277 {
322 this._searchMessageElement.textContent = finished ? WebInspector.UIStrin g("Search finished.") : WebInspector.UIString("Search interrupted."); 278 this._searchMessageElement.textContent = finished ? WebInspector.UIStrin g("Search finished.") : WebInspector.UIString("Search interrupted.");
323 }, 279 },
324 280
325 focus: function() 281 focus: function()
326 { 282 {
327 WebInspector.setCurrentFocusElement(this._search); 283 WebInspector.setCurrentFocusElement(this._search);
328 this._search.select(); 284 this._search.select();
329 }, 285 },
330 286
331 willHide: function() 287 willHide: function()
332 { 288 {
333 this._controller.stopSearch(); 289 this._stopSearch();
334 }, 290 },
335 291
336 /** 292 /**
337 * @param {?Event} event 293 * @param {?Event} event
338 */ 294 */
339 _onKeyDown: function(event) 295 _onKeyDown: function(event)
340 { 296 {
341 switch (event.keyCode) { 297 switch (event.keyCode) {
342 case WebInspector.KeyboardShortcut.Keys.Enter.code: 298 case WebInspector.KeyboardShortcut.Keys.Enter.code:
343 this._onAction(); 299 this._onAction();
(...skipping 14 matching lines...) Expand all
358 this._regexCheckbox.checked = searchConfig.isRegex(); 314 this._regexCheckbox.checked = searchConfig.isRegex();
359 }, 315 },
360 316
361 _onAction: function() 317 _onAction: function()
362 { 318 {
363 var searchConfig = this.searchConfig; 319 var searchConfig = this.searchConfig;
364 if (!searchConfig.query() || !searchConfig.query().length) 320 if (!searchConfig.query() || !searchConfig.query().length)
365 return; 321 return;
366 322
367 this._save(); 323 this._save();
368 this._controller.startSearch(searchConfig); 324 this._startSearch(searchConfig);
369 }, 325 },
370 326
371 __proto__: WebInspector.VBox.prototype 327 __proto__: WebInspector.VBox.prototype
372 } 328 }
373 329
374 /** 330 /**
375 * @constructor 331 * @constructor
376 * @param {!WebInspector.ProjectSearchConfig} searchConfig 332 * @param {!WebInspector.ProjectSearchConfig} searchConfig
377 */ 333 */
378 WebInspector.SearchResultsPane = function(searchConfig) 334 WebInspector.SearchResultsPane = function(searchConfig)
(...skipping 14 matching lines...) Expand all
393 /** 349 /**
394 * @param {!WebInspector.FileBasedSearchResult} searchResult 350 * @param {!WebInspector.FileBasedSearchResult} searchResult
395 */ 351 */
396 addSearchResult: function(searchResult) { } 352 addSearchResult: function(searchResult) { }
397 } 353 }
398 354
399 /** 355 /**
400 * @constructor 356 * @constructor
401 * @implements {WebInspector.ActionDelegate} 357 * @implements {WebInspector.ActionDelegate}
402 */ 358 */
403 WebInspector.AdvancedSearchController.ToggleDrawerViewActionDelegate = function( ) 359 WebInspector.AdvancedSearchView.ToggleDrawerViewActionDelegate = function()
404 { 360 {
405 } 361 }
406 362
407 WebInspector.AdvancedSearchController.ToggleDrawerViewActionDelegate.prototype = { 363 WebInspector.AdvancedSearchView.ToggleDrawerViewActionDelegate.prototype = {
408 /** 364 /**
409 * @param {!Event} event 365 * @param {!Event} event
410 * @return {boolean} 366 * @return {boolean}
411 */ 367 */
412 handleAction: function(event) 368 handleAction: function(event)
413 { 369 {
414 if (WebInspector.Dialog.currentInstance()) 370 if (WebInspector.Dialog.currentInstance())
415 return false; 371 return false;
416 var searchView = WebInspector.advancedSearchController._searchView; 372 var searchView = this._searchView();
417 if (!searchView || !searchView.isShowing() || searchView._search !== doc ument.activeElement) { 373 if (!searchView)
374 return false;
375 if (!searchView.isShowing() || searchView._search !== document.activeEle ment) {
418 WebInspector.inspectorView.showPanel("sources"); 376 WebInspector.inspectorView.showPanel("sources");
419 WebInspector.advancedSearchController.show(); 377 searchView.toggle();
420 } else { 378 } else {
421 WebInspector.inspectorView.closeDrawer(); 379 WebInspector.inspectorView.closeDrawer();
422 } 380 }
423 return true; 381 return true;
382 },
383
384 /**
385 * @return {?WebInspector.AdvancedSearchView}
386 */
387 _searchView: function()
388 {
389 if (!this._view) {
390 var extensions = WebInspector.moduleManager.extensions("drawer-view" );
391 for (var i = 0; i < extensions.length; ++i) {
392 if (extensions[i].descriptor()["name"] === "search") {
393 this._view = extensions[i].instance();
394 break;
395 }
396 }
397 }
398 return this._view;
424 } 399 }
425 } 400 }
426 401
427 402
428 /** 403 /**
429 * @constructor 404 * @constructor
430 * @param {!WebInspector.UISourceCode} uiSourceCode 405 * @param {!WebInspector.UISourceCode} uiSourceCode
431 * @param {!Array.<!Object>} searchMatches 406 * @param {!Array.<!Object>} searchMatches
432 */ 407 */
433 WebInspector.FileBasedSearchResult = function(uiSourceCode, searchMatches) { 408 WebInspector.FileBasedSearchResult = function(uiSourceCode, searchMatches) {
(...skipping 25 matching lines...) Expand all
459 434
460 stopSearch: function() { }, 435 stopSearch: function() { },
461 436
462 /** 437 /**
463 * @param {!WebInspector.ProjectSearchConfig} searchConfig 438 * @param {!WebInspector.ProjectSearchConfig} searchConfig
464 * @return {!WebInspector.SearchResultsPane} 439 * @return {!WebInspector.SearchResultsPane}
465 */ 440 */
466 createSearchResultsPane: function(searchConfig) { } 441 createSearchResultsPane: function(searchConfig) { }
467 } 442 }
468 443
469 /**
470 * @type {!WebInspector.AdvancedSearchController}
471 */
472 WebInspector.advancedSearchController = new WebInspector.AdvancedSearchControlle r();
473
474 importScript("SearchConfig.js"); 444 importScript("SearchConfig.js");
475 importScript("FileBasedSearchResultsPane.js"); 445 importScript("FileBasedSearchResultsPane.js");
476 importScript("SourcesSearchScope.js"); 446 importScript("SourcesSearchScope.js");
OLDNEW
« 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