| // 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. |
| |
| /** |
| * The status view at the top of the page. It displays what mode net-internals |
| * is in (capturing, viewing only, viewing loaded log), and may have extra |
| * information and actions depending on the mode. |
| */ |
| var StatusView = (function() { |
| 'use strict'; |
| |
| // We inherit from View. |
| var superClass = View; |
| |
| /** |
| * Main entry point. Called once the page has loaded. |
| * @constructor |
| */ |
| function StatusView() { |
| assertFirstConstructorCall(StatusView); |
| |
| superClass.call(this); |
| |
| this.subViews_ = { |
| capture: new CaptureStatusView(), |
| loaded: new LoadedStatusView(), |
| halted: new HaltedStatusView() |
| }; |
| |
| this.activeSubViewName_ = 'capture'; |
| |
| // Hide the non-active views. |
| for (var k in this.subViews_) { |
| if (k != this.activeSubViewName_) |
| this.subViews_[k].show(false); |
| } |
| } |
| |
| cr.addSingletonGetter(StatusView); |
| |
| StatusView.prototype = { |
| // Inherit the superclass's methods. |
| __proto__: superClass.prototype, |
| |
| setGeometry: function(left, top, width, height) { |
| superClass.prototype.setGeometry.call(this, left, top, width, height); |
| this.getActiveSubView_().setGeometry(left, top, width, height); |
| }, |
| |
| getHeight: function() { |
| return this.getActiveSubView_().getHeight(); |
| }, |
| |
| show: function(isVisible) { |
| superClass.prototype.show.call(this, isVisible); |
| this.getActiveSubView_().show(isVisible); |
| }, |
| |
| setLayoutParent: function(view) { |
| this.layoutParent_ = view; |
| }, |
| |
| /** |
| * Switch the active subview. |
| */ |
| switchToSubView: function(name) { |
| if (!this.subViews_[name]) |
| throw 'Invalid subview name: ' + name; |
| |
| var prevSubView = this.getActiveSubView_(); |
| this.activeSubViewName_ = name; |
| var newSubView = this.getActiveSubView_(); |
| |
| prevSubView.show(false); |
| newSubView.show(this.isVisible()); |
| |
| // Since the subview's dimensions may have changed, re-trigger a layout |
| // for our parent. |
| var view = this.layoutParent_; |
| view.setGeometry(view.getLeft(), view.getTop(), |
| view.getWidth(), view.getHeight()); |
| |
| return newSubView; |
| }, |
| |
| getActiveSubView_: function() { |
| return this.subViews_[this.activeSubViewName_]; |
| } |
| }; |
| |
| return StatusView; |
| })(); |