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

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 (function() {
9
10
11 /**
12 * Languages/keyboard descriptor to display
13 * @type {!OobeTypes.LanguageDsc|!Array<OobeTypes.IMEDsc>}
14 */
stevenjb 2016/08/01 22:38:39 Fix alignment
Alexander Alekseev 2016/08/01 22:57:10 Done.
15 var I18nMenuItem;
16
17 Polymer({
18 is: 'oobe-i18n-dropdown',
19
20 properties: {
21 /**
22 * List of languages/keyboards to display
23 * @type {!Array<I18nMenuItem>}
24 */
25 items: {
26 type: Array,
27 value: null,
28 observer: 'onItemsChanged_',
29 },
30 },
31
32 /**
33 * This flag prevents recursive calls of observers and callbacks.
34 */
35 observersDisabled_: false,
36
37 /**
38 * @param {!{detail: !{item: { item: {!I18nMenuItem}}}}} event
39 * @private
40 */
41 onSelect_: function(event) {
42 if (this.observersDisabled_)
43 return;
44
45 var selected = event.detail.item.item;
46 if (!selected)
47 return;
48
49 this.set('items.' + this.$$('paper-listbox').selected + '.selected', true);
50 this.fire('select-item', selected);
51 },
52
53 onDeselect_: function(e) {
54 if (this.observersDisabled_)
55 return;
56 this.set(
57 'items.' + this.$$('paper-listbox').indexOf(e.detail.item) +
58 '.selected',
59 false);
60 },
61
62 onItemsChanged_: function(items) {
63 if (this.observersDisabled_)
64 return;
65
66 if (!items)
67 return;
68
69 this.observersDisabled_ = true;
70
71 var index = items.findIndex(function(item) { return item.selected; });
72 if (index != -1) {
73 // This is needed for selectIndex() to pick up values from updated
74 // this.items (for example, translated into other language) .
75 Polymer.dom.flush();
76 // This is to force update real <input> element value even if selection
77 // index has not changed.
78 this.$.listboxDropdown.selectIndex(null);
79 this.$.listboxDropdown.selectIndex(index);
80 }
81
82 this.observersDisabled_ = false;
83 },
84 });
85 })();
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698