Fix for bug 384417: Incorrect range displayed in histogram tool tip.
[deliverable/tracecompass.git] / org.eclipse.linuxtools.tmf.ui / src / org / eclipse / linuxtools / tmf / ui / views / histogram / TimeRangeHistogram.java
1 /*******************************************************************************
2 * Copyright (c) 2011, 2012 Ericsson
3 *
4 * All rights reserved. This program and the accompanying materials are
5 * made available under the terms of the Eclipse Public License v1.0 which
6 * accompanies this distribution, and is available at
7 * http://www.eclipse.org/legal/epl-v10.html
8 *
9 * Contributors:
10 * Francois Chouinard - Initial API and implementation
11 * Bernd Hufmann - Changed to updated histogram data model
12 * Francois Chouinard - Moved from LTTng to TMF
13 *******************************************************************************/
14
15 package org.eclipse.linuxtools.tmf.ui.views.histogram;
16
17 import org.eclipse.swt.widgets.Composite;
18
19 /**
20 * <p>
21 * A basic histogram widget that displays the event distribution of a specific time range of a trace.
22 * It has the following additional features:
23 * <ul>
24 * <li>zoom in: mouse wheel up (or forward)
25 * <li>zoom out: mouse wheel down (or backward)
26 * </ul>
27 *
28 * @version 1.0
29 * @author Francois Chouinard
30 */
31 public class TimeRangeHistogram extends Histogram {
32
33 // ------------------------------------------------------------------------
34 // Attributes
35 // ------------------------------------------------------------------------
36
37 private HistogramZoom fZoom = null;
38
39 // ------------------------------------------------------------------------
40 // Constructor
41 // ------------------------------------------------------------------------
42 /**
43 * Constructor
44 * @param view The parent histogram view
45 * @param parent The parent composite
46 */
47 public TimeRangeHistogram(HistogramView view, Composite parent) {
48 super(view, parent);
49 fZoom = new HistogramZoom(this, fCanvas, getStartTime(), getTimeLimit());
50 }
51
52 // ------------------------------------------------------------------------
53 // Operations
54 // ------------------------------------------------------------------------
55
56 /*
57 * (non-Javadoc)
58 * @see org.eclipse.linuxtools.tmf.ui.views.histogram.Histogram#updateTimeRange(long, long)
59 */
60 @Override
61 public void updateTimeRange(long startTime, long endTime) {
62 ((HistogramView) fParentView).updateTimeRange(startTime, endTime);
63 }
64
65 /*
66 * (non-Javadoc)
67 * @see org.eclipse.linuxtools.tmf.ui.views.histogram.Histogram#clear()
68 */
69 @Override
70 public synchronized void clear() {
71 if (fZoom != null)
72 fZoom.stop();
73 super.clear();
74 }
75
76 /**
77 * Sets the time range of the histogram
78 * @param startTime The start time
79 * @param duration The duration of the time range
80 */
81 public synchronized void setTimeRange(long startTime, long duration) {
82 fZoom.setNewRange(startTime, duration);
83 }
84
85 /**
86 * Sets the full time range of the whole trace.
87 * @param startTime The start time
88 * @param endTime The end time
89 */
90 public void setFullRange(long startTime, long endTime) {
91 long currentFirstEvent = getStartTime();
92 fZoom.setFullRange((currentFirstEvent == 0) ? startTime : currentFirstEvent, endTime);
93 }
94
95 }
This page took 0.032314 seconds and 5 git commands to generate.