1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
6 * The status view at the top of the page when in capturing mode.
8 var CaptureStatusView
= (function() {
11 // We inherit from DivView.
12 var superClass
= DivView
;
14 function CaptureStatusView() {
15 superClass
.call(this, CaptureStatusView
.MAIN_BOX_ID
);
17 this.getDropdown_().onchange
= this.onSelectAction_
.bind(this);
18 this.getDropdown_().selectedIndex
= -1;
20 this.capturedEventsCountBox_
=
21 $(CaptureStatusView
.CAPTURED_EVENTS_COUNT_ID
);
22 this.updateEventCounts_();
24 EventsTracker
.getInstance().addLogEntryObserver(this);
27 // IDs for special HTML elements in status_view.html
28 CaptureStatusView
.MAIN_BOX_ID
= 'capture-status-view';
29 CaptureStatusView
.ACTIONS_DROPDOWN_ID
= 'capture-status-view-actions';
30 CaptureStatusView
.CAPTURED_EVENTS_COUNT_ID
=
31 'capture-status-view-captured-events-count';
33 CaptureStatusView
.prototype = {
34 // Inherit the superclass's methods.
35 __proto__
: superClass
.prototype,
38 * Called whenever new log entries have been received.
40 onReceivedLogEntries: function(logEntries
) {
41 this.updateEventCounts_();
45 * Called whenever all log events are deleted.
47 onAllLogEntriesDeleted: function() {
48 this.updateEventCounts_();
52 * Updates the counters showing how many events have been captured.
54 updateEventCounts_: function() {
55 this.capturedEventsCountBox_
.textContent
=
56 EventsTracker
.getInstance().getNumCapturedEvents();
59 getDropdown_: function() {
60 return $(CaptureStatusView
.ACTIONS_DROPDOWN_ID
);
63 onSelectAction_: function() {
64 var dropdown
= this.getDropdown_();
65 var action
= dropdown
.value
;
66 dropdown
.selectedIndex
= -1;
68 if (action
== 'stop') {
69 $(CaptureView
.STOP_BUTTON_ID
).click();
70 } else if (action
== 'reset') {
71 $(CaptureView
.RESET_BUTTON_ID
).click();
72 } else if (action
== 'clear-cache') {
73 g_browser
.sendClearAllCache();
74 } else if (action
== 'flush-sockets') {
75 g_browser
.sendFlushSocketPools();
76 } else if (action
== 'switch-time-format') {
77 var tracker
= SourceTracker
.getInstance();
78 tracker
.setUseRelativeTimes(!tracker
.getUseRelativeTimes());
80 throw Error('Unrecognized action: ' + action
);
85 return CaptureStatusView
;