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

Side by Side Diff: chrome/browser/resources/chromeos/login/oobe_i18n_dropdown.js

Issue 2189733006: ChromeOS: Implement Language Selection screen of material design OOBE. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Update after review. Created 4 years, 4 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
(Empty)
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
3 // found in the LICENSE file.
4
5 /**
6 * Polymer class definition for 'oobe-i18n-dropdown'.
7 */
8 Polymer({
9 is: 'oobe-i18n-dropdown',
10
11 properties: {
12 /**
13 * List of languages/keyboards to display
14 */
15 items: {
16 type: Array,
17 value: null,
18 observer: 'onItemsChanged_',
19 },
20 },
21
22 /**
23 * This flag prevents recursive calls of observers and callbacks.
24 */
25 observersDisabled_: false,
26
27 onSelect_: function(event) {
28 if (this.observersDisabled_)
29 return;
30
31 var selected = event.detail.item.item;
32 if (!selected)
33 return;
34
35 this.set('items.' + this.$$('paper-listbox').selected + '.selected', true);
36 this.fire('select-item', selected);
37 },
38
39 onDeselect_: function(e) {
40 if (this.observersDisabled_)
41 return;
42 this.set(
43 'items.' + this.$$('paper-listbox').indexOf(e.detail.item) +
44 '.selected',
45 false);
46 },
47
48 onItemsChanged_: function(items) {
49 if (this.observersDisabled_)
50 return;
51
52 if (!items)
53 return;
54
55 this.observersDisabled_ = true;
56
57 for (var i = 0; i < items.length; ++i) {
58 if (!items[i].selected)
59 continue;
stevenjb 2016/08/01 17:34:57 nit: var index = items.findIndex(function(item) {
Alexander Alekseev 2016/08/01 22:21:43 Done.
60
61 // This is needed for selectIndex() to pick up values from updated
62 // this.items (for example, translated into other language) .
63 Polymer.dom.flush();
64 // This is to force update real <input> element value even if selection
65 // index has not changed.
66 this.$.listboxDropdown.selectIndex(null);
67 this.$.listboxDropdown.selectIndex(i);
68 break;
69 }
70
71 this.observersDisabled_ = false;
72 },
73 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698