1c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// Copyright (c) 2013 The Chromium Authors. All rights reserved. 2c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// found in the LICENSE file. 4c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 5c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)/** 6c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * The status view at the top of the page. It displays what mode net-internals 7c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * is in (capturing, viewing only, viewing loaded log), and may have extra 8c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * information and actions depending on the mode. 9c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) */ 10c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)var TopBarView = (function() { 11c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 'use strict'; 12c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 13c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // We inherit from View. 14c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) var superClass = DivView; 15c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 16c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) /** 17c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * Main entry point. Called once the page has loaded. 18c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * @constructor 19c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) */ 20c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) function TopBarView() { 21c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) assertFirstConstructorCall(TopBarView); 22c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 23c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) superClass.call(this, TopBarView.BOX_ID); 24c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 25c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) this.nameToSubView_ = { 26c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) capture: new CaptureStatusView(), 27c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) loaded: new LoadedStatusView(), 28c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) halted: new HaltedStatusView() 29c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) }; 30c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 31c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) this.activeSubView_ = null; 32c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) } 33c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 34c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) TopBarView.BOX_ID = 'top-bar-view'; 35c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) TopBarView.TAB_DROPDOWN_MENU_ID = 'top-bar-view-tab-selecter'; 36c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 37c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) cr.addSingletonGetter(TopBarView); 38c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 39c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) TopBarView.prototype = { 40c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // Inherit the superclass's methods. 41c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) __proto__: superClass.prototype, 42c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 43c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) switchToSubView: function(name) { 44c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) var newSubView = this.nameToSubView_[name]; 45c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 46c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) if (!newSubView) 47c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) throw Error('Invalid subview name'); 48c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 49c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) var prevSubView = this.activeSubView_; 50c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) this.activeSubView_ = newSubView; 51c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 52c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) if (prevSubView) 53c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) prevSubView.show(false); 54c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) newSubView.show(this.isVisible()); 55c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 56c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // Let the subview change the color scheme of the top bar. 57c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) $(TopBarView.BOX_ID).className = name + '-status-view'; 58c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 59c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) return newSubView; 60c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) }, 61c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) }; 62c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 63c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) return TopBarView; 64c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)})(); 65