- add sources.
[platform/framework/web/crosswalk.git] / src / chrome / browser / resources / net_internals / top_bar_view.js
1 // Copyright (c) 2013 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  * The status view at the top of the page.  It displays what mode net-internals
7  * is in (capturing, viewing only, viewing loaded log), and may have extra
8  * information and actions depending on the mode.
9  */
10 var TopBarView = (function() {
11   'use strict';
12
13   // We inherit from View.
14   var superClass = DivView;
15
16   /**
17    * Main entry point. Called once the page has loaded.
18    * @constructor
19    */
20   function TopBarView() {
21     assertFirstConstructorCall(TopBarView);
22
23     superClass.call(this, TopBarView.BOX_ID);
24
25     this.nameToSubView_ = {
26       capture: new CaptureStatusView(),
27       loaded: new LoadedStatusView(),
28       halted: new HaltedStatusView()
29     };
30
31     this.activeSubView_ = null;
32   }
33
34   TopBarView.BOX_ID = 'top-bar-view';
35   TopBarView.TAB_DROPDOWN_MENU_ID = 'top-bar-view-tab-selecter';
36
37   cr.addSingletonGetter(TopBarView);
38
39   TopBarView.prototype = {
40     // Inherit the superclass's methods.
41     __proto__: superClass.prototype,
42
43     switchToSubView: function(name) {
44       var newSubView = this.nameToSubView_[name];
45
46       if (!newSubView)
47         throw Error('Invalid subview name');
48
49       var prevSubView = this.activeSubView_;
50       this.activeSubView_ = newSubView;
51
52       if (prevSubView)
53         prevSubView.show(false);
54       newSubView.show(this.isVisible());
55
56       // Let the subview change the color scheme of the top bar.
57       $(TopBarView.BOX_ID).className = name + '-status-view';
58
59       return newSubView;
60     },
61   };
62
63   return TopBarView;
64 })();