OLD | NEW |
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 |
(...skipping 19 matching lines...) Expand all Loading... |
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]) |
41 delete inA[keyB]; | 41 delete inA[keyB]; |
42 } else { | 42 else |
43 bMinusA.push(elB); | 43 bMinusA.push(elB); |
44 } | |
45 }); | 44 }); |
46 var aMinusB = []; | 45 var aMinusB = []; |
47 for (var keyA in inA) { | 46 for (var keyA in inA) { |
48 aMinusB.push(inA[keyA]); | 47 aMinusB.push(inA[keyA]); |
49 } | 48 } |
50 return [aMinusB, bMinusA]; | 49 return [aMinusB, bMinusA]; |
51 } | 50 } |
52 | 51 |
53 /** | 52 /** |
54 * Updates the data model of |uiList| to |newList|. Ensures that unchanged | 53 * Updates the data model of |uiList| to |newList|. Ensures that unchanged |
(...skipping 512 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
567 */ | 566 */ |
568 getTechnologyButtonForType_: function(networkType) { | 567 getTechnologyButtonForType_: function(networkType) { |
569 var buttons = this.items; | 568 var buttons = this.items; |
570 for (var i = 0; i < buttons.length; i++) { | 569 for (var i = 0; i < buttons.length; i++) { |
571 var button = buttons[i]; | 570 var button = buttons[i]; |
572 if (button instanceof TechnologyButton && | 571 if (button instanceof TechnologyButton && |
573 button.technology === networkType) { | 572 button.technology === networkType) { |
574 return button; | 573 return button; |
575 } | 574 } |
576 } | 575 } |
| 576 console.log('TechnologyButton for type ' + networkType + |
| 577 ' requested but not found.'); |
577 return null; | 578 return null; |
578 }, | 579 }, |
579 | 580 |
580 updateTechnologiesFromNetworks_: function() { | 581 updateTechnologiesFromNetworks_: function() { |
581 var newTechnologies = {}; | 582 var newTechnologies = {}; |
582 Object.keys(this.networkIDsByType_).forEach(function(technology) { | 583 Object.keys(this.networkIDsByType_).forEach(function(technology) { |
583 newTechnologies[technology] = true; | 584 newTechnologies[technology] = true; |
584 }); | 585 }); |
585 this.technologies_ = newTechnologies; | 586 this.technologies_ = newTechnologies; |
586 }, | 587 }, |
(...skipping 26 matching lines...) Expand all Loading... |
613 */ | 614 */ |
614 onNetworkListChanged_: function(networkIDs) { | 615 onNetworkListChanged_: function(networkIDs) { |
615 var diff = differenceBy(Object.keys(this.networkByID_), | 616 var diff = differenceBy(Object.keys(this.networkByID_), |
616 networkIDs, | 617 networkIDs, |
617 function(e) { return e; }); | 618 function(e) { return e; }); |
618 var toRemove = diff[0]; | 619 var toRemove = diff[0]; |
619 var toAdd = diff[1]; | 620 var toAdd = diff[1]; |
620 | 621 |
621 var addCallback = this.addNetworkCallback_.bind(this); | 622 var addCallback = this.addNetworkCallback_.bind(this); |
622 toAdd.forEach(function(id) { | 623 toAdd.forEach(function(id) { |
| 624 console.log('NetworkStatus: Network ' + id + ' added.'); |
623 chrome.networkingPrivate.getProperties(id, addCallback); | 625 chrome.networkingPrivate.getProperties(id, addCallback); |
624 }); | 626 }); |
625 | 627 |
626 toRemove.forEach(function(id) { | 628 toRemove.forEach(function(id) { |
| 629 console.log('NetworkStatus: Network ' + id + ' removed.'); |
627 delete this.networkByID_[id]; | 630 delete this.networkByID_[id]; |
628 }, this); | 631 }, this); |
629 | 632 |
630 this.updateIndexes_(networkIDs); | 633 this.updateIndexes_(networkIDs); |
631 this.updateDataStructuresAndButtons_(); | 634 this.updateDataStructuresAndButtons_(); |
632 }, | 635 }, |
633 | 636 |
634 /** | 637 /** |
635 * @param {Array.<string>} networkIDs . | 638 * @param {Array.<string>} networkIDs . |
636 */ | 639 */ |
637 onNetworksChanged_: function(networkIDs) { | 640 onNetworksChanged_: function(networkIDs) { |
638 var updateCallback = this.updateNetworkCallback_.bind(this); | 641 var updateCallback = this.updateNetworkCallback_.bind(this); |
639 networkIDs.forEach(function(id) { | 642 networkIDs.forEach(function(id) { |
| 643 console.log('NetworkStatus: Network ' + id + ' changed.'); |
640 chrome.networkingPrivate.getProperties(id, updateCallback); | 644 chrome.networkingPrivate.getProperties(id, updateCallback); |
641 }); | 645 }); |
642 }, | 646 }, |
643 | 647 |
644 /** | 648 /** |
645 * @param {Object} network . | 649 * @param {Object} network . |
646 */ | 650 */ |
647 updateNetworkCallback_: function(network) { | 651 updateNetworkCallback_: function(network) { |
648 this.networkByID_[network.GUID] = network; | 652 this.networkByID_[network.GUID] = network; |
649 this.getTechnologyButtonForType_(network.Type).update(); | 653 this.getTechnologyButtonForType_(network.Type).update(); |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
684 chrome.networkingPrivate.getVisibleNetworks( | 688 chrome.networkingPrivate.getVisibleNetworks( |
685 'All', | 689 'All', |
686 this.setVisibleNetworks.bind(this)); | 690 this.setVisibleNetworks.bind(this)); |
687 } | 691 } |
688 }; | 692 }; |
689 | 693 |
690 return { | 694 return { |
691 NetworkStatusList: NetworkStatusList | 695 NetworkStatusList: NetworkStatusList |
692 }; | 696 }; |
693 }); | 697 }); |
OLD | NEW |