blob: 20e5a9b10f24b92a122d032bc343e412ef8cd2e8 [file] [log] [blame]
// 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;
})();