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

Side by Side Diff: chrome/browser/resources/chromeos/network_configuration/js/network_status.js

Issue 917093003: Shorten Closure template notation from Array.<*> to Array<*>. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: remove cvox Created 5 years, 10 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
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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 cr.define('network.status', function() { 5 cr.define('network.status', function() {
6 var ArrayDataModel = cr.ui.ArrayDataModel; 6 var ArrayDataModel = cr.ui.ArrayDataModel;
7 var List = cr.ui.List; 7 var List = cr.ui.List;
8 var ListItem = cr.ui.ListItem; 8 var ListItem = cr.ui.ListItem;
9 var ListSingleSelectionModel = cr.ui.ListSingleSelectionModel; 9 var ListSingleSelectionModel = cr.ui.ListSingleSelectionModel;
10 10
11 /** 11 /**
12 * Returns the entries of |dataModel| as an array. 12 * Returns the entries of |dataModel| as an array.
13 * @param {ArrayDataModel} dataModel . 13 * @param {ArrayDataModel} dataModel .
14 * @return {Array} . 14 * @return {Array} .
15 */ 15 */
16 function dataModelToArray(dataModel) { 16 function dataModelToArray(dataModel) {
17 var array = []; 17 var array = [];
18 for (var i = 0; i < dataModel.length; i++) { 18 for (var i = 0; i < dataModel.length; i++) {
19 array.push(dataModel.item(i)); 19 array.push(dataModel.item(i));
20 } 20 }
21 return array; 21 return array;
22 } 22 }
23 23
24 /** 24 /**
25 * Calculates both set difference of |a| and |b| and returns them in an array: 25 * Calculates both set difference of |a| and |b| and returns them in an array:
26 * [ a - b, b - a ]. 26 * [ a - b, b - a ].
27 * @param {Array.<T>} a . 27 * @param {Array<T>} a .
28 * @param {Array.<T>} b . 28 * @param {Array<T>} b .
29 * @param {function(T): K} toKey . 29 * @param {function(T): K} toKey .
30 * @return {Array.<Array.<T>>} . 30 * @return {Array<Array<T>>} .
31 */ 31 */
32 function differenceBy(a, b, toKey) { 32 function differenceBy(a, b, toKey) {
33 var inA = {}; 33 var inA = {};
34 a.forEach(function(elA) { 34 a.forEach(function(elA) {
35 inA[toKey(elA)] = elA; 35 inA[toKey(elA)] = elA;
36 }); 36 });
37 var bMinusA = []; 37 var bMinusA = [];
38 b.forEach(function(elB) { 38 b.forEach(function(elB) {
39 var keyB = toKey(elB); 39 var keyB = toKey(elB);
40 if (inA[keyB]) 40 if (inA[keyB])
(...skipping 24 matching lines...) Expand all
65 toRemove.forEach(function(element) { 65 toRemove.forEach(function(element) {
66 dataModel.splice(dataModel.indexOf(element), 1); 66 dataModel.splice(dataModel.indexOf(element), 1);
67 }); 67 });
68 dataModel.splice.apply(dataModel, [dataModel.length, 0].concat(toAdd)); 68 dataModel.splice.apply(dataModel, [dataModel.length, 0].concat(toAdd));
69 uiList.endBatchUpdates(); 69 uiList.endBatchUpdates();
70 } 70 }
71 71
72 /** 72 /**
73 * Creates a map of the entries of |array|. Each entry is associated to the 73 * Creates a map of the entries of |array|. Each entry is associated to the
74 * key getKey(entry). 74 * key getKey(entry).
75 * @param {Array.<T>} array . 75 * @param {Array<T>} array .
76 * @param {function(T): K} getKey . 76 * @param {function(T): K} getKey .
77 * @return {Object.<K, T>} . 77 * @return {Object<K, T>} .
78 */ 78 */
79 function createMapFromList(array, getKey) { 79 function createMapFromList(array, getKey) {
80 var result = {}; 80 var result = {};
81 array.forEach(function(entry) { 81 array.forEach(function(entry) {
82 result[getKey(entry)] = entry; 82 result[getKey(entry)] = entry;
83 }); 83 });
84 return result; 84 return result;
85 } 85 }
86 86
87 /** 87 /**
88 * Wraps each entry in |array| into an array. The result contains rows with 88 * Wraps each entry in |array| into an array. The result contains rows with
89 * one entry each. 89 * one entry each.
90 * @param {Array.<T>} array . 90 * @param {Array<T>} array .
91 * @return {Array.<Array.<T>>} . 91 * @return {Array<Array<T>>} .
92 */ 92 */
93 function arrayToTable(array) { 93 function arrayToTable(array) {
94 return array.map(function(e) { 94 return array.map(function(e) {
95 return [e]; 95 return [e];
96 }); 96 });
97 } 97 }
98 98
99 /** 99 /**
100 * The NetworkStatusList contains various button types according to the 100 * The NetworkStatusList contains various button types according to the
101 * following hierarchy. Note: this graph doesn't depict inheritance but 101 * following hierarchy. Note: this graph doesn't depict inheritance but
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
225 * @override 225 * @override
226 */ 226 */
227 decorate: function() { 227 decorate: function() {
228 this.dropdown_ = null; 228 this.dropdown_ = null;
229 this.addEventListener('click', this.toggleDropdown_.bind(this)); 229 this.addEventListener('click', this.toggleDropdown_.bind(this));
230 }, 230 },
231 231
232 /** 232 /**
233 * Returns the list of identifiers for which nested buttons will be created. 233 * Returns the list of identifiers for which nested buttons will be created.
234 * To be overridden by subclasses. 234 * To be overridden by subclasses.
235 * @return {Array.<string>} . 235 * @return {Array<string>} .
236 */ 236 */
237 getEntries: function() { 237 getEntries: function() {
238 return []; 238 return [];
239 }, 239 },
240 240
241 /** 241 /**
242 * Creates a nested button for |entry| of the current |getEntries|. 242 * Creates a nested button for |entry| of the current |getEntries|.
243 * To be overridden by subclasses. 243 * To be overridden by subclasses.
244 * @param {string} entry . 244 * @param {string} entry .
245 * @return {ListItem} . 245 * @return {ListItem} .
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after
403 /** 403 /**
404 * A map from button key to index according to |BUTTON_ORDER|. 404 * A map from button key to index according to |BUTTON_ORDER|.
405 */ 405 */
406 var BUTTON_POSITION = {}; 406 var BUTTON_POSITION = {};
407 BUTTON_ORDER.forEach(function(entry, index) { 407 BUTTON_ORDER.forEach(function(entry, index) {
408 BUTTON_POSITION[entry] = index; 408 BUTTON_POSITION[entry] = index;
409 }); 409 });
410 410
411 /** 411 /**
412 * Groups networks by type. 412 * Groups networks by type.
413 * @param {Object.<string, Object>} networkByID A map from network ID to 413 * @param {Object<string, Object>} networkByID A map from network ID to
414 * network properties. 414 * network properties.
415 * @return {Object.<string, Array.<string>>} A map from network type to the 415 * @return {Object<string, Array<string>>} A map from network type to the
416 * list of IDs of networks of that type. 416 * list of IDs of networks of that type.
417 */ 417 */
418 function createNetworkIDsByType(networkByID) { 418 function createNetworkIDsByType(networkByID) {
419 var byType = {}; 419 var byType = {};
420 for (var id in networkByID) { 420 for (var id in networkByID) {
421 var network = networkByID[id]; 421 var network = networkByID[id];
422 var group = byType[network.Type]; 422 var group = byType[network.Type];
423 if (group === undefined) { 423 if (group === undefined) {
424 group = []; 424 group = [];
425 byType[network.Type] = group; 425 byType[network.Type] = group;
(...skipping 21 matching lines...) Expand all
447 List.prototype.decorate.call(this); 447 List.prototype.decorate.call(this);
448 448
449 /** 449 /**
450 * The currently open unfolding button. 450 * The currently open unfolding button.
451 * @type {UnfoldingButton} 451 * @type {UnfoldingButton}
452 */ 452 */
453 this.openDropdown = null; 453 this.openDropdown = null;
454 454
455 /** 455 /**
456 * The set of technologies shown to the user. 456 * The set of technologies shown to the user.
457 * @type {Object.<string, boolean>} 457 * @type {Object<string, boolean>}
458 */ 458 */
459 this.technologies_ = {}; 459 this.technologies_ = {};
460 460
461 /** 461 /**
462 * A map from network type to the array of IDs of network of that type. 462 * A map from network type to the array of IDs of network of that type.
463 * @type {Object.<string, Array.<string>>} 463 * @type {Object<string, Array<string>>}
464 */ 464 */
465 this.networkIDsByType_ = {}; 465 this.networkIDsByType_ = {};
466 466
467 /** 467 /**
468 * A map from network ID to the network's properties. 468 * A map from network ID to the network's properties.
469 * @type {Object.<string, Object>} 469 * @type {Object<string, Object>}
470 */ 470 */
471 this.networkByID_ = {}; 471 this.networkByID_ = {};
472 472
473 /** 473 /**
474 * A map from network ID to the network's position in the last received 474 * A map from network ID to the network's position in the last received
475 * network list. 475 * network list.
476 * @type {Object.<string, number>} 476 * @type {Object<string, number>}
477 */ 477 */
478 this.networkIndexByID_ = {}; 478 this.networkIndexByID_ = {};
479 479
480 /** 480 /**
481 * A function that handles the various user actions. 481 * A function that handles the various user actions.
482 * See |setUserActionHandler|. 482 * See |setUserActionHandler|.
483 * @type {function({command: string, networkID: string})} 483 * @type {function({command: string, networkID: string})}
484 */ 484 */
485 this.userActionHandler_ = function() {}; 485 this.userActionHandler_ = function() {};
486 486
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
526 * |command| will be one of 526 * |command| will be one of
527 * - openConfiguration 527 * - openConfiguration
528 * @param {function({command: string, networkID: string})} handler . 528 * @param {function({command: string, networkID: string})} handler .
529 */ 529 */
530 setUserActionHandler: function(handler) { 530 setUserActionHandler: function(handler) {
531 this.userActionHandler_ = handler; 531 this.userActionHandler_ = handler;
532 }, 532 },
533 533
534 /** 534 /**
535 * @param {string} technology . 535 * @param {string} technology .
536 * @return {Array.<string>} Array of network IDs. 536 * @return {Array<string>} Array of network IDs.
537 */ 537 */
538 getNetworkIDsOfType: function(technology) { 538 getNetworkIDsOfType: function(technology) {
539 var networkIDs = this.networkIDsByType_[technology]; 539 var networkIDs = this.networkIDsByType_[technology];
540 if (!networkIDs) 540 if (!networkIDs)
541 return []; 541 return [];
542 return networkIDs; 542 return networkIDs;
543 }, 543 },
544 544
545 /** 545 /**
546 * @param {string} networkID . 546 * @param {string} networkID .
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
592 var keys = Object.keys(this.technologies_); 592 var keys = Object.keys(this.technologies_);
593 // Add keys of always visible toplevel buttons. 593 // Add keys of always visible toplevel buttons.
594 keys.push('addConnection'); 594 keys.push('addConnection');
595 updateDataModel(this, arrayToTable(keys)); 595 updateDataModel(this, arrayToTable(keys));
596 this.items.forEach(function(button) { 596 this.items.forEach(function(button) {
597 button.update(); 597 button.update();
598 }); 598 });
599 }, 599 },
600 600
601 /** 601 /**
602 * @param {Array.<string>} networkIDs . 602 * @param {Array<string>} networkIDs .
603 */ 603 */
604 updateIndexes_: function(networkIDs) { 604 updateIndexes_: function(networkIDs) {
605 var newNetworkIndexByID = {}; 605 var newNetworkIndexByID = {};
606 networkIDs.forEach(function(id, index) { 606 networkIDs.forEach(function(id, index) {
607 newNetworkIndexByID[id] = index; 607 newNetworkIndexByID[id] = index;
608 }); 608 });
609 this.networkIndexByID_ = newNetworkIndexByID; 609 this.networkIndexByID_ = newNetworkIndexByID;
610 }, 610 },
611 611
612 /** 612 /**
613 * @param {Array.<string>} networkIDs . 613 * @param {Array<string>} networkIDs .
614 */ 614 */
615 onNetworkListChanged_: function(networkIDs) { 615 onNetworkListChanged_: function(networkIDs) {
616 var diff = differenceBy(Object.keys(this.networkByID_), 616 var diff = differenceBy(Object.keys(this.networkByID_),
617 networkIDs, 617 networkIDs,
618 function(e) { return e; }); 618 function(e) { return e; });
619 var toRemove = diff[0]; 619 var toRemove = diff[0];
620 var toAdd = diff[1]; 620 var toAdd = diff[1];
621 621
622 var addCallback = this.addNetworkCallback_.bind(this); 622 var addCallback = this.addNetworkCallback_.bind(this);
623 toAdd.forEach(function(id) { 623 toAdd.forEach(function(id) {
624 console.log('NetworkStatus: Network ' + id + ' added.'); 624 console.log('NetworkStatus: Network ' + id + ' added.');
625 chrome.networkingPrivate.getProperties(id, addCallback); 625 chrome.networkingPrivate.getProperties(id, addCallback);
626 }); 626 });
627 627
628 toRemove.forEach(function(id) { 628 toRemove.forEach(function(id) {
629 console.log('NetworkStatus: Network ' + id + ' removed.'); 629 console.log('NetworkStatus: Network ' + id + ' removed.');
630 delete this.networkByID_[id]; 630 delete this.networkByID_[id];
631 }, this); 631 }, this);
632 632
633 this.updateIndexes_(networkIDs); 633 this.updateIndexes_(networkIDs);
634 this.updateDataStructuresAndButtons_(); 634 this.updateDataStructuresAndButtons_();
635 }, 635 },
636 636
637 /** 637 /**
638 * @param {Array.<string>} networkIDs . 638 * @param {Array<string>} networkIDs .
639 */ 639 */
640 onNetworksChanged_: function(networkIDs) { 640 onNetworksChanged_: function(networkIDs) {
641 var updateCallback = this.updateNetworkCallback_.bind(this); 641 var updateCallback = this.updateNetworkCallback_.bind(this);
642 networkIDs.forEach(function(id) { 642 networkIDs.forEach(function(id) {
643 console.log('NetworkStatus: Network ' + id + ' changed.'); 643 console.log('NetworkStatus: Network ' + id + ' changed.');
644 chrome.networkingPrivate.getProperties(id, updateCallback); 644 chrome.networkingPrivate.getProperties(id, updateCallback);
645 }); 645 });
646 }, 646 },
647 647
648 /** 648 /**
649 * @param {Object} network . 649 * @param {Object} network .
650 */ 650 */
651 updateNetworkCallback_: function(network) { 651 updateNetworkCallback_: function(network) {
652 this.networkByID_[network.GUID] = network; 652 this.networkByID_[network.GUID] = network;
653 this.getTechnologyButtonForType_(network.Type).update(); 653 this.getTechnologyButtonForType_(network.Type).update();
654 }, 654 },
655 655
656 /** 656 /**
657 * @param {Object} network . 657 * @param {Object} network .
658 */ 658 */
659 addNetworkCallback_: function(network) { 659 addNetworkCallback_: function(network) {
660 this.networkByID_[network.GUID] = network; 660 this.networkByID_[network.GUID] = network;
661 this.updateDataStructuresAndButtons_(); 661 this.updateDataStructuresAndButtons_();
662 }, 662 },
663 663
664 /** 664 /**
665 * @param {Array.<Object>} networks . 665 * @param {Array<Object>} networks .
666 */ 666 */
667 setVisibleNetworks: function(networks) { 667 setVisibleNetworks: function(networks) {
668 this.networkByID_ = createMapFromList( 668 this.networkByID_ = createMapFromList(
669 networks, 669 networks,
670 function(network) { 670 function(network) {
671 return network.GUID; 671 return network.GUID;
672 }); 672 });
673 this.updateIndexes_(networks.map(function(network) { 673 this.updateIndexes_(networks.map(function(network) {
674 return network.GUID; 674 return network.GUID;
675 })); 675 }));
(...skipping 12 matching lines...) Expand all
688 chrome.networkingPrivate.getNetworks( 688 chrome.networkingPrivate.getNetworks(
689 { 'networkType': 'All', 'visible': true }, 689 { 'networkType': 'All', 'visible': true },
690 this.setVisibleNetworks.bind(this)); 690 this.setVisibleNetworks.bind(this));
691 } 691 }
692 }; 692 };
693 693
694 return { 694 return {
695 NetworkStatusList: NetworkStatusList 695 NetworkStatusList: NetworkStatusList
696 }; 696 };
697 }); 697 });
OLDNEW
« no previous file with comments | « chrome/browser/resources/chromeos/login/screen_error_message.js ('k') | chrome/browser/resources/chromeos/power.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698