blob: 894e13f72c048120e8e58f3a1e49a9342133285c [file] [log] [blame]
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
cr.define('options', function() {
/** @const */ var OptionsPage = options.OptionsPage;
/////////////////////////////////////////////////////////////////////////////
// HandlerOptions class:
/**
* Encapsulated handling of handler options page.
* @constructor
*/
function HandlerOptions() {
this.activeNavTab = null;
OptionsPage.call(this,
'handlers',
loadTimeData.getString('handlersPageTabTitle'),
'handler-options');
}
cr.addSingletonGetter(HandlerOptions);
HandlerOptions.prototype = {
__proto__: OptionsPage.prototype,
/**
* The handlers list.
* @type {DeletableItemList}
* @private
*/
handlersList_: null,
/** @override */
initializePage: function() {
OptionsPage.prototype.initializePage.call(this);
this.createHandlersList_();
$('handler-options-overlay-confirm').onclick =
OptionsPage.closeOverlay.bind(OptionsPage);
},
/**
* Creates, decorates and initializes the handlers list.
* @private
*/
createHandlersList_: function() {
this.handlersList_ = $('handlers-list');
options.HandlersList.decorate(this.handlersList_);
this.handlersList_.autoExpands = true;
this.ignoredHandlersList_ = $('ignored-handlers-list');
options.IgnoredHandlersList.decorate(this.ignoredHandlersList_);
this.ignoredHandlersList_.autoExpands = true;
},
};
/**
* Sets the list of handlers shown by the view.
* @param {Array} Handlers to be shown in the view.
*/
HandlerOptions.setHandlers = function(handlers) {
$('handlers-list').setHandlers(handlers);
};
/**
* Sets the list of ignored handlers shown by the view.
* @param {Array} Handlers to be shown in the view.
*/
HandlerOptions.setIgnoredHandlers = function(handlers) {
$('ignored-handlers-section').hidden = handlers.length == 0;
$('ignored-handlers-list').setHandlers(handlers);
};
return {
HandlerOptions: HandlerOptions
};
});