Home | History | Annotate | Download | only in options
      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.
      4 
      5 cr.define('options', function() {
      6   /** @const */ var OptionsPage = options.OptionsPage;
      7 
      8   /////////////////////////////////////////////////////////////////////////////
      9   // HandlerOptions class:
     10 
     11   /**
     12    * Encapsulated handling of handler options page.
     13    * @constructor
     14    */
     15   function HandlerOptions() {
     16     this.activeNavTab = null;
     17     OptionsPage.call(this,
     18                      'handlers',
     19                      loadTimeData.getString('handlersPageTabTitle'),
     20                      'handler-options');
     21   }
     22 
     23   cr.addSingletonGetter(HandlerOptions);
     24 
     25   HandlerOptions.prototype = {
     26     __proto__: OptionsPage.prototype,
     27 
     28     /**
     29      * The handlers list.
     30      * @type {DeletableItemList}
     31      * @private
     32      */
     33     handlersList_: null,
     34 
     35     /** @override */
     36     initializePage: function() {
     37       OptionsPage.prototype.initializePage.call(this);
     38 
     39       this.createHandlersList_();
     40 
     41       $('handler-options-overlay-confirm').onclick =
     42           OptionsPage.closeOverlay.bind(OptionsPage);
     43     },
     44 
     45     /**
     46      * Creates, decorates and initializes the handlers list.
     47      * @private
     48      */
     49     createHandlersList_: function() {
     50       this.handlersList_ = $('handlers-list');
     51       options.HandlersList.decorate(this.handlersList_);
     52       this.handlersList_.autoExpands = true;
     53 
     54       this.ignoredHandlersList_ = $('ignored-handlers-list');
     55       options.IgnoredHandlersList.decorate(this.ignoredHandlersList_);
     56       this.ignoredHandlersList_.autoExpands = true;
     57     },
     58   };
     59 
     60   /**
     61    * Sets the list of handlers shown by the view.
     62    * @param {Array} Handlers to be shown in the view.
     63    */
     64   HandlerOptions.setHandlers = function(handlers) {
     65     $('handlers-list').setHandlers(handlers);
     66   };
     67 
     68   /**
     69    * Sets the list of ignored handlers shown by the view.
     70    * @param {Array} Handlers to be shown in the view.
     71    */
     72   HandlerOptions.setIgnoredHandlers = function(handlers) {
     73     $('ignored-handlers-section').hidden = handlers.length == 0;
     74     $('ignored-handlers-list').setHandlers(handlers);
     75   };
     76 
     77   return {
     78     HandlerOptions: HandlerOptions
     79   };
     80 });
     81