1 // Copyright (c) 2012 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.
5 cr
.define('options', function() {
6 /** @const */ var DictionaryWordsList
=
7 options
.dictionary_words
.DictionaryWordsList
;
8 /** @const */ var Page
= cr
.ui
.pageManager
.Page
;
9 /** @const */ var PageManager
= cr
.ui
.pageManager
.PageManager
;
12 * Adding and removing words in custom spelling dictionary.
14 * @extends {cr.ui.pageManager.Page}
16 function EditDictionaryOverlay() {
17 Page
.call(this, 'editDictionary',
18 loadTimeData
.getString('languageDictionaryOverlayPage'),
19 'language-dictionary-overlay-page');
22 cr
.addSingletonGetter(EditDictionaryOverlay
);
24 EditDictionaryOverlay
.prototype = {
25 __proto__
: Page
.prototype,
28 * A list of words in the dictionary.
29 * @type {options.dictionary_words.DictionaryWordsList}
35 * The input field for searching for words in the dictionary.
42 * The paragraph of text that indicates that search returned no results.
46 noMatchesLabel_
: null,
49 initializePage: function() {
50 Page
.prototype.initializePage
.call(this);
52 this.wordList_
= $('language-dictionary-overlay-word-list');
53 DictionaryWordsList
.decorate(this.wordList_
);
54 this.wordList_
.onWordListChanged = function() {
55 this.onWordListChanged_();
58 this.searchField_
= $('language-dictionary-overlay-search-field');
59 this.searchField_
.onsearch = function(e
) {
60 this.wordList_
.search(e
.currentTarget
.value
);
62 this.searchField_
.onkeydown = function(e
) {
63 // Don't propagate enter key events. Otherwise the default button will
65 if (e
.keyIdentifier
== 'Enter')
69 this.noMatchesLabel_
= getRequiredElement(
70 'language-dictionary-overlay-no-matches');
72 $('language-dictionary-overlay-done-button').onclick = function(e
) {
73 PageManager
.closeOverlay();
78 * Refresh the dictionary words when the page is displayed.
81 didShowPage: function() {
82 chrome
.send('refreshDictionaryWords');
86 * Update the view based on the changes in the word list.
89 onWordListChanged_: function() {
90 if (this.searchField_
.value
.length
> 0 && this.wordList_
.empty
) {
91 this.noMatchesLabel_
.hidden
= false;
92 this.wordList_
.classList
.add('no-search-matches');
94 this.noMatchesLabel_
.hidden
= true;
95 this.wordList_
.classList
.remove('no-search-matches');
100 EditDictionaryOverlay
.setWordList = function(entries
) {
101 EditDictionaryOverlay
.getInstance().wordList_
.setWordList(entries
);
104 EditDictionaryOverlay
.updateWords = function(add_words
, remove_words
) {
105 EditDictionaryOverlay
.getInstance().wordList_
.addWords(add_words
);
106 EditDictionaryOverlay
.getInstance().wordList_
.removeWords(remove_words
);
109 EditDictionaryOverlay
.getWordListForTesting = function() {
110 return EditDictionaryOverlay
.getInstance().wordList_
;
114 EditDictionaryOverlay
: EditDictionaryOverlay