// 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 when in capturing mode. */ var CaptureStatusView = (function() { 'use strict'; // We inherit from DivView. var superClass = DivView; function CaptureStatusView() { superClass.call(this, CaptureStatusView.MAIN_BOX_ID); $(CaptureStatusView.STOP_BUTTON_ID).onclick = switchToViewOnlyMode_; $(CaptureStatusView.RESET_BUTTON_ID).onclick = EventsTracker.getInstance().deleteAllLogEntries.bind( EventsTracker.getInstance()); $(CaptureStatusView.CLEAR_CACHE_BUTTON_ID).onclick = g_browser.sendClearAllCache.bind(g_browser); $(CaptureStatusView.FLUSH_SOCKETS_BUTTON_ID).onclick = g_browser.sendFlushSocketPools.bind(g_browser); $(CaptureStatusView.TOGGLE_EXTRAS_ID).onclick = this.toggleExtras_.bind(this); this.capturedEventsCountBox_ = $(CaptureStatusView.CAPTURED_EVENTS_COUNT_ID); this.updateEventCounts_(); EventsTracker.getInstance().addLogEntryObserver(this); } // IDs for special HTML elements in status_view.html CaptureStatusView.MAIN_BOX_ID = 'capture-status-view'; CaptureStatusView.STOP_BUTTON_ID = 'capture-status-view-stop'; CaptureStatusView.RESET_BUTTON_ID = 'capture-status-view-reset'; CaptureStatusView.CLEAR_CACHE_BUTTON_ID = 'capture-status-view-clear-cache'; CaptureStatusView.FLUSH_SOCKETS_BUTTON_ID = 'capture-status-view-flush-sockets'; CaptureStatusView.CAPTURED_EVENTS_COUNT_ID = 'capture-status-view-captured-events-count'; CaptureStatusView.TOGGLE_EXTRAS_ID = 'capture-status-view-toggle-extras'; CaptureStatusView.EXTRAS_ID = 'capture-status-view-extras'; CaptureStatusView.prototype = { // Inherit the superclass's methods. __proto__: superClass.prototype, /** * Called whenever new log entries have been received. */ onReceivedLogEntries: function(logEntries) { this.updateEventCounts_(); }, /** * Called whenever all log events are deleted. */ onAllLogEntriesDeleted: function() { this.updateEventCounts_(); }, /** * Updates the counters showing how many events have been captured. */ updateEventCounts_: function() { this.capturedEventsCountBox_.textContent = EventsTracker.getInstance().getNumCapturedEvents(); }, /** * Toggles the visibility of the "extras" action bar. */ toggleExtras_: function() { var toggle = $(CaptureStatusView.TOGGLE_EXTRAS_ID); var extras = $(CaptureStatusView.EXTRAS_ID); var isVisible = extras.style.display == ''; // Toggle between the left-facing triangle and right-facing triange. toggle.className = isVisible ? 'capture-status-view-rotateleft' : 'capture-status-view-rotateright'; setNodeDisplay(extras, !isVisible); } }; /** * Calls the corresponding function of MainView. This is needed because we * can't call MainView.getInstance() in the constructor, as it hasn't been * created yet. */ function switchToViewOnlyMode_() { MainView.getInstance().switchToViewOnlyMode(); } return CaptureStatusView; })();