Merge branch 'lttng-kepler'
[deliverable/tracecompass.git] / org.eclipse.linuxtools.tmf.ui / src / org / eclipse / linuxtools / tmf / ui / views / histogram / HistogramTimeRangeControl.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 * Francois Chouinard - Moved from LTTng to TMF
12 * Francois Chouinard - Simplified constructor, handle interval format change
13 *******************************************************************************/
14
15 package org.eclipse.linuxtools.tmf.ui.views.histogram;
16
17 import java.text.ParseException;
18
19 import org.eclipse.linuxtools.tmf.core.event.ITmfTimestamp;
20 import org.eclipse.linuxtools.tmf.core.event.TmfTimestamp;
21 import org.eclipse.linuxtools.tmf.core.event.TmfTimestampFormat;
22 import org.eclipse.linuxtools.tmf.core.signal.TmfSignalHandler;
23 import org.eclipse.linuxtools.tmf.core.signal.TmfSignalManager;
24 import org.eclipse.linuxtools.tmf.core.signal.TmfTimestampFormatUpdateSignal;
25 import org.eclipse.swt.widgets.Composite;
26
27 /**
28 * This control provides a group containing a text control.
29 *
30 * @version 2.0
31 * @author Francois Chouinard
32 */
33 public class HistogramTimeRangeControl extends HistogramTextControl {
34
35 // ------------------------------------------------------------------------
36 // Construction
37 // ------------------------------------------------------------------------
38
39 /**
40 * Constructor with given group and text values.
41 *
42 * @param parentView The parent histogram view.
43 * @param parent The parent composite
44 * @param groupLabel A group value
45 * @param value A text value
46 * @since 2.0
47 */
48 public HistogramTimeRangeControl(HistogramView parentView, Composite parent,
49 String groupLabel, long value)
50 {
51 super(parentView, parent, groupLabel, value);
52 TmfSignalManager.register(this);
53 }
54
55 /* (non-Javadoc)
56 * @see org.eclipse.linuxtools.tmf.ui.views.histogram.HistogramTextControl#dispose()
57 */
58 @Override
59 public void dispose() {
60 TmfSignalManager.deregister(this);
61 }
62
63 // ------------------------------------------------------------------------
64 // Operations
65 // ------------------------------------------------------------------------
66
67 /*
68 * (non-Javadoc)
69 * @see org.eclipse.linuxtools.tmf.ui.views.histogram.HistogramTextControl#updateValue()
70 */
71 @Override
72 protected void updateValue() {
73 String string = fTextValue.getText();
74 long value = getValue();
75 try {
76 value = TmfTimestampFormat.getDefaulIntervalFormat().parseValue(string);
77 } catch (ParseException e) {
78 }
79 fParentView.updateTimeRange(value);
80 }
81
82 @Override
83 public void setValue(long time) {
84 ITmfTimestamp ts = new TmfTimestamp(time, ITmfTimestamp.NANOSECOND_SCALE);
85 super.setValue(time, ts.toString(TmfTimestampFormat.getDefaulIntervalFormat()));
86 }
87
88 // ------------------------------------------------------------------------
89 // Signal Handlers
90 // ------------------------------------------------------------------------
91
92 /**
93 * Format the interval and update the display. Compute the new text size,
94 * adjust the text and group widgets and then refresh the view layout.
95 *
96 * @param signal the incoming signal
97 * @since 2.0
98 */
99 @TmfSignalHandler
100 public void intervalFormatUpdated(TmfTimestampFormatUpdateSignal signal) {
101 setValue(getValue());
102 }
103
104 }
This page took 0.033163 seconds and 5 git commands to generate.