OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 /** | 5 /** |
6 * @constructor | 6 * @constructor |
7 */ | 7 */ |
8 WebInspector.CommandMenu = function() | 8 WebInspector.CommandMenu = function() |
9 { | 9 { |
10 this._commands = []; | 10 this._commands = []; |
11 this._loadCommands(); | 11 this._loadCommands(); |
12 } | 12 }; |
13 | 13 |
14 WebInspector.CommandMenu.prototype = { | 14 WebInspector.CommandMenu.prototype = { |
15 _loadCommands: function() | 15 _loadCommands: function() |
16 { | 16 { |
17 // Populate panels. | 17 // Populate panels. |
18 var panelExtensions = self.runtime.extensions(WebInspector.Panel); | 18 var panelExtensions = self.runtime.extensions(WebInspector.Panel); |
19 for (var extension of panelExtensions) | 19 for (var extension of panelExtensions) |
20 this._commands.push(WebInspector.CommandMenu.createRevealPanelComman
d(extension)); | 20 this._commands.push(WebInspector.CommandMenu.createRevealPanelComman
d(extension)); |
21 | 21 |
22 // Populate drawers. | 22 // Populate drawers. |
(...skipping 15 matching lines...) Expand all Loading... |
38 } | 38 } |
39 }, | 39 }, |
40 | 40 |
41 /** | 41 /** |
42 * @return {!Array.<!WebInspector.CommandMenu.Command>} | 42 * @return {!Array.<!WebInspector.CommandMenu.Command>} |
43 */ | 43 */ |
44 commands: function() | 44 commands: function() |
45 { | 45 { |
46 return this._commands; | 46 return this._commands; |
47 } | 47 } |
48 } | 48 }; |
49 | 49 |
50 /** | 50 /** |
51 * @constructor | 51 * @constructor |
52 * @extends {WebInspector.FilteredListWidget.Delegate} | 52 * @extends {WebInspector.FilteredListWidget.Delegate} |
53 */ | 53 */ |
54 WebInspector.CommandMenuDelegate = function() | 54 WebInspector.CommandMenuDelegate = function() |
55 { | 55 { |
56 WebInspector.FilteredListWidget.Delegate.call(this, []); | 56 WebInspector.FilteredListWidget.Delegate.call(this, []); |
57 this._commands = []; | 57 this._commands = []; |
58 this._appendAvailableCommands(); | 58 this._appendAvailableCommands(); |
59 } | 59 }; |
60 | 60 |
61 WebInspector.CommandMenuDelegate.MaterialPaletteColors = ["#F44336", "#E91E63",
"#9C27B0", "#673AB7", "#3F51B5", "#03A9F4", "#00BCD4", "#009688", "#4CAF50", "#8
BC34A", "#CDDC39", "#FFC107", "#FF9800", "#FF5722", "#795548", "#9E9E9E", "#607D
8B"]; | 61 WebInspector.CommandMenuDelegate.MaterialPaletteColors = ["#F44336", "#E91E63",
"#9C27B0", "#673AB7", "#3F51B5", "#03A9F4", "#00BCD4", "#009688", "#4CAF50", "#8
BC34A", "#CDDC39", "#FFC107", "#FF9800", "#FF5722", "#795548", "#9E9E9E", "#607D
8B"]; |
62 | 62 |
63 WebInspector.CommandMenuDelegate.prototype = { | 63 WebInspector.CommandMenuDelegate.prototype = { |
64 _appendAvailableCommands: function() | 64 _appendAvailableCommands: function() |
65 { | 65 { |
66 var allCommands = WebInspector.commandMenu.commands(); | 66 var allCommands = WebInspector.commandMenu.commands(); |
67 | 67 |
68 // Populate whitelisted actions. | 68 // Populate whitelisted actions. |
69 var actions = WebInspector.actionRegistry.availableActions(); | 69 var actions = WebInspector.actionRegistry.availableActions(); |
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
178 /** | 178 /** |
179 * @override | 179 * @override |
180 * @return {boolean} | 180 * @return {boolean} |
181 */ | 181 */ |
182 renderMonospace: function() | 182 renderMonospace: function() |
183 { | 183 { |
184 return false; | 184 return false; |
185 }, | 185 }, |
186 | 186 |
187 __proto__: WebInspector.FilteredListWidget.Delegate.prototype | 187 __proto__: WebInspector.FilteredListWidget.Delegate.prototype |
188 } | 188 }; |
189 | 189 |
190 /** | 190 /** |
191 * @constructor | 191 * @constructor |
192 * @param {string} category | 192 * @param {string} category |
193 * @param {string} title | 193 * @param {string} title |
194 * @param {string} key | 194 * @param {string} key |
195 * @param {string} shortcut | 195 * @param {string} shortcut |
196 * @param {function()} executeHandler | 196 * @param {function()} executeHandler |
197 * @param {function()=} availableHandler | 197 * @param {function()=} availableHandler |
198 */ | 198 */ |
199 WebInspector.CommandMenu.Command = function(category, title, key, shortcut, exec
uteHandler, availableHandler) | 199 WebInspector.CommandMenu.Command = function(category, title, key, shortcut, exec
uteHandler, availableHandler) |
200 { | 200 { |
201 this._category = category; | 201 this._category = category; |
202 this._title = title; | 202 this._title = title; |
203 this._key = category + "\0" + title + "\0" + key; | 203 this._key = category + "\0" + title + "\0" + key; |
204 this._shortcut = shortcut; | 204 this._shortcut = shortcut; |
205 this._executeHandler = executeHandler; | 205 this._executeHandler = executeHandler; |
206 this._availableHandler = availableHandler; | 206 this._availableHandler = availableHandler; |
207 } | 207 }; |
208 | 208 |
209 WebInspector.CommandMenu.Command.prototype = { | 209 WebInspector.CommandMenu.Command.prototype = { |
210 /** | 210 /** |
211 * @return {string} | 211 * @return {string} |
212 */ | 212 */ |
213 category: function() | 213 category: function() |
214 { | 214 { |
215 return this._category; | 215 return this._category; |
216 }, | 216 }, |
217 | 217 |
(...skipping 26 matching lines...) Expand all Loading... |
244 */ | 244 */ |
245 available: function() | 245 available: function() |
246 { | 246 { |
247 return this._availableHandler ? this._availableHandler() : true; | 247 return this._availableHandler ? this._availableHandler() : true; |
248 }, | 248 }, |
249 | 249 |
250 execute: function() | 250 execute: function() |
251 { | 251 { |
252 this._executeHandler(); | 252 this._executeHandler(); |
253 } | 253 } |
254 } | 254 }; |
255 | 255 |
256 /** | 256 /** |
257 * @param {string} category | 257 * @param {string} category |
258 * @param {string} keys | 258 * @param {string} keys |
259 * @param {string} title | 259 * @param {string} title |
260 * @param {string} shortcut | 260 * @param {string} shortcut |
261 * @param {function()} executeHandler | 261 * @param {function()} executeHandler |
262 * @param {function()=} availableHandler | 262 * @param {function()=} availableHandler |
263 * @return {!WebInspector.CommandMenu.Command} | 263 * @return {!WebInspector.CommandMenu.Command} |
264 */ | 264 */ |
265 WebInspector.CommandMenu.createCommand = function(category, keys, title, shortcu
t, executeHandler, availableHandler) | 265 WebInspector.CommandMenu.createCommand = function(category, keys, title, shortcu
t, executeHandler, availableHandler) |
266 { | 266 { |
267 // Separate keys by null character, to prevent fuzzy matching from matching
across them. | 267 // Separate keys by null character, to prevent fuzzy matching from matching
across them. |
268 var key = keys.replace(/,/g, "\0"); | 268 var key = keys.replace(/,/g, "\0"); |
269 return new WebInspector.CommandMenu.Command(category, title, key, shortcut,
executeHandler, availableHandler); | 269 return new WebInspector.CommandMenu.Command(category, title, key, shortcut,
executeHandler, availableHandler); |
270 } | 270 }; |
271 | 271 |
272 /** | 272 /** |
273 * @param {!Runtime.Extension} extension | 273 * @param {!Runtime.Extension} extension |
274 * @param {string} title | 274 * @param {string} title |
275 * @param {V} value | 275 * @param {V} value |
276 * @return {!WebInspector.CommandMenu.Command} | 276 * @return {!WebInspector.CommandMenu.Command} |
277 * @template V | 277 * @template V |
278 */ | 278 */ |
279 WebInspector.CommandMenu.createSettingCommand = function(extension, title, value
) | 279 WebInspector.CommandMenu.createSettingCommand = function(extension, title, value
) |
280 { | 280 { |
281 var category = extension.descriptor()["category"] || ""; | 281 var category = extension.descriptor()["category"] || ""; |
282 var tags = extension.descriptor()["tags"] || ""; | 282 var tags = extension.descriptor()["tags"] || ""; |
283 var setting = WebInspector.settings.moduleSetting(extension.descriptor()["se
ttingName"]); | 283 var setting = WebInspector.settings.moduleSetting(extension.descriptor()["se
ttingName"]); |
284 return WebInspector.CommandMenu.createCommand(category, tags, title, "", set
ting.set.bind(setting, value), availableHandler); | 284 return WebInspector.CommandMenu.createCommand(category, tags, title, "", set
ting.set.bind(setting, value), availableHandler); |
285 | 285 |
286 /** | 286 /** |
287 * @return {boolean} | 287 * @return {boolean} |
288 */ | 288 */ |
289 function availableHandler() | 289 function availableHandler() |
290 { | 290 { |
291 return setting.get() !== value; | 291 return setting.get() !== value; |
292 } | 292 } |
293 } | 293 }; |
294 | 294 |
295 /** | 295 /** |
296 * @param {!WebInspector.Action} action | 296 * @param {!WebInspector.Action} action |
297 * @return {!WebInspector.CommandMenu.Command} | 297 * @return {!WebInspector.CommandMenu.Command} |
298 */ | 298 */ |
299 WebInspector.CommandMenu.createActionCommand = function(action) | 299 WebInspector.CommandMenu.createActionCommand = function(action) |
300 { | 300 { |
301 var shortcut = WebInspector.shortcutRegistry.shortcutTitleForAction(action.i
d()) || ""; | 301 var shortcut = WebInspector.shortcutRegistry.shortcutTitleForAction(action.i
d()) || ""; |
302 return WebInspector.CommandMenu.createCommand(action.category(), action.tags
(), action.title(), shortcut, action.execute.bind(action)); | 302 return WebInspector.CommandMenu.createCommand(action.category(), action.tags
(), action.title(), shortcut, action.execute.bind(action)); |
303 } | 303 }; |
304 | 304 |
305 /** | 305 /** |
306 * @param {!Runtime.Extension} extension | 306 * @param {!Runtime.Extension} extension |
307 * @return {!WebInspector.CommandMenu.Command} | 307 * @return {!WebInspector.CommandMenu.Command} |
308 */ | 308 */ |
309 WebInspector.CommandMenu.createRevealPanelCommand = function(extension) | 309 WebInspector.CommandMenu.createRevealPanelCommand = function(extension) |
310 { | 310 { |
311 var panelName = extension.descriptor()["name"]; | 311 var panelName = extension.descriptor()["name"]; |
312 var tags = extension.descriptor()["tags"] || ""; | 312 var tags = extension.descriptor()["tags"] || ""; |
313 return WebInspector.CommandMenu.createCommand(WebInspector.UIString("Panel")
, tags, WebInspector.UIString("Show %s", extension.title()), "", executeHandler,
availableHandler); | 313 return WebInspector.CommandMenu.createCommand(WebInspector.UIString("Panel")
, tags, WebInspector.UIString("Show %s", extension.title()), "", executeHandler,
availableHandler); |
314 | 314 |
315 /** | 315 /** |
316 * @return {boolean} | 316 * @return {boolean} |
317 */ | 317 */ |
318 function availableHandler() | 318 function availableHandler() |
319 { | 319 { |
320 return true; | 320 return true; |
321 } | 321 } |
322 | 322 |
323 function executeHandler() | 323 function executeHandler() |
324 { | 324 { |
325 WebInspector.viewManager.showView(panelName); | 325 WebInspector.viewManager.showView(panelName); |
326 } | 326 } |
327 } | 327 }; |
328 | 328 |
329 /** | 329 /** |
330 * @param {!Runtime.Extension} extension | 330 * @param {!Runtime.Extension} extension |
331 * @return {!WebInspector.CommandMenu.Command} | 331 * @return {!WebInspector.CommandMenu.Command} |
332 */ | 332 */ |
333 WebInspector.CommandMenu.createRevealDrawerCommand = function(extension) | 333 WebInspector.CommandMenu.createRevealDrawerCommand = function(extension) |
334 { | 334 { |
335 var drawerId = extension.descriptor()["id"]; | 335 var drawerId = extension.descriptor()["id"]; |
336 var executeHandler = WebInspector.viewManager.showView.bind(WebInspector.vie
wManager, drawerId); | 336 var executeHandler = WebInspector.viewManager.showView.bind(WebInspector.vie
wManager, drawerId); |
337 var tags = extension.descriptor()["tags"] || ""; | 337 var tags = extension.descriptor()["tags"] || ""; |
338 return WebInspector.CommandMenu.createCommand(WebInspector.UIString("Drawer"
), tags, WebInspector.UIString("Show %s", extension.title()), "", executeHandler
); | 338 return WebInspector.CommandMenu.createCommand(WebInspector.UIString("Drawer"
), tags, WebInspector.UIString("Show %s", extension.title()), "", executeHandler
); |
339 } | 339 }; |
340 | 340 |
341 /** @type {!WebInspector.CommandMenu} */ | 341 /** @type {!WebInspector.CommandMenu} */ |
342 WebInspector.commandMenu = new WebInspector.CommandMenu(); | 342 WebInspector.commandMenu = new WebInspector.CommandMenu(); |
343 | 343 |
344 /** | 344 /** |
345 * @constructor | 345 * @constructor |
346 * @implements {WebInspector.ActionDelegate} | 346 * @implements {WebInspector.ActionDelegate} |
347 */ | 347 */ |
348 WebInspector.CommandMenu.ShowActionDelegate = function() | 348 WebInspector.CommandMenu.ShowActionDelegate = function() |
349 { | 349 { |
350 } | 350 }; |
351 | 351 |
352 WebInspector.CommandMenu.ShowActionDelegate.prototype = { | 352 WebInspector.CommandMenu.ShowActionDelegate.prototype = { |
353 /** | 353 /** |
354 * @override | 354 * @override |
355 * @param {!WebInspector.Context} context | 355 * @param {!WebInspector.Context} context |
356 * @param {string} actionId | 356 * @param {string} actionId |
357 * @return {boolean} | 357 * @return {boolean} |
358 */ | 358 */ |
359 handleAction: function(context, actionId) | 359 handleAction: function(context, actionId) |
360 { | 360 { |
361 new WebInspector.FilteredListWidget(new WebInspector.CommandMenuDelegate
()).showAsDialog(); | 361 new WebInspector.FilteredListWidget(new WebInspector.CommandMenuDelegate
()).showAsDialog(); |
362 InspectorFrontendHost.bringToFront(); | 362 InspectorFrontendHost.bringToFront(); |
363 return true; | 363 return true; |
364 } | 364 } |
365 } | 365 }; |
366 | 366 |
OLD | NEW |