// 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); this.getDropdown_().onchange = this.onSelectAction_.bind(this); this.getDropdown_().selectedIndex = -1; 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.ACTIONS_DROPDOWN_ID = 'capture-status-view-actions'; CaptureStatusView.CAPTURED_EVENTS_COUNT_ID = 'capture-status-view-captured-events-count'; 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(); }, getDropdown_: function() { return $(CaptureStatusView.ACTIONS_DROPDOWN_ID); }, onSelectAction_: function() { var dropdown = this.getDropdown_(); var action = dropdown.value; dropdown.selectedIndex = -1; if (action == 'stop') { $(CaptureView.STOP_BUTTON_ID).click(); } else if (action == 'reset') { $(CaptureView.RESET_BUTTON_ID).click(); } else if (action == 'clear-cache') { g_browser.sendClearAllCache(); } else if (action == 'flush-sockets') { g_browser.sendFlushSocketPools(); } else if (action == 'switch-time-format') { var tracker = SourceTracker.getInstance(); tracker.setUseRelativeTimes(!tracker.getUseRelativeTimes()); } else { throw Error('Unrecognized action: ' + action); } }, }; return CaptureStatusView; })();