Re-structure LTTng sub-project as per the Linux Tools guidelines
[deliverable/tracecompass.git] / org.eclipse.linuxtools.tmf.ui / src / org / eclipse / linuxtools / tmf / ui / views / events / TmfEventsView.java
CommitLineData
b0d3496e 1/*******************************************************************************
e31e01e8 2 * Copyright (c) 2009, 2010 Ericsson
b0d3496e
ASL
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
abfad0aa 11 * Patrick Tasse - Factored out events table
b0d3496e
ASL
12 *******************************************************************************/
13
12c155f5 14package org.eclipse.linuxtools.tmf.ui.views.events;
b0d3496e 15
6c13869b
FC
16import org.eclipse.linuxtools.tmf.core.event.TmfEvent;
17import org.eclipse.linuxtools.tmf.core.experiment.TmfExperiment;
18import org.eclipse.linuxtools.tmf.core.signal.TmfExperimentDisposedSignal;
19import org.eclipse.linuxtools.tmf.core.signal.TmfExperimentSelectedSignal;
20import org.eclipse.linuxtools.tmf.core.signal.TmfSignalHandler;
8e31f2d2 21import org.eclipse.linuxtools.tmf.ui.TmfUiPlugin;
abfad0aa 22import org.eclipse.linuxtools.tmf.ui.viewers.events.TmfEventsTable;
12c155f5 23import org.eclipse.linuxtools.tmf.ui.views.TmfView;
b0d3496e 24import org.eclipse.swt.widgets.Composite;
b0d3496e
ASL
25
26/**
27 * <b><u>TmfEventsView</u></b>
28 * <p>
29 *
30 * TODO: Implement me. Please.
31 * TODO: Handle column selection, sort, ... generically (nothing less...)
32 * TODO: Implement hide/display columns
33 */
79a3a76e 34public class TmfEventsView extends TmfView {
b0d3496e 35
3b38ea61 36 public static final String ID = "org.eclipse.linuxtools.tmf.ui.views.events"; //$NON-NLS-1$
b0d3496e 37
e31e01e8 38 private TmfExperiment<TmfEvent> fExperiment;
abfad0aa 39 private TmfEventsTable fEventsTable;
529ee6a9 40 private static final int DEFAULT_CACHE_SIZE = 100;
e31e01e8 41 private final int fCacheSize;
abfad0aa 42 private String fTitlePrefix;
e31e01e8
FC
43
44 // ------------------------------------------------------------------------
b0d3496e 45 // Constructor
e31e01e8 46 // ------------------------------------------------------------------------
b0d3496e 47
e31e01e8 48 public TmfEventsView(int cacheSize) {
3b38ea61 49 super("TmfEventsView"); //$NON-NLS-1$
e31e01e8 50 fCacheSize = cacheSize;
b0d3496e
ASL
51 }
52
e31e01e8
FC
53 public TmfEventsView() {
54 this(DEFAULT_CACHE_SIZE);
55 }
56
57 // ------------------------------------------------------------------------
58 // ViewPart
59 // ------------------------------------------------------------------------
60
e31e01e8 61 @Override
3b38ea61 62 @SuppressWarnings("unchecked")
b0d3496e 63 public void createPartControl(Composite parent) {
abfad0aa
FC
64 fEventsTable = createEventsTable(parent, fCacheSize);
65
66 fTitlePrefix = getTitle();
67
68 // If an experiment is already selected, update the table
69 fExperiment = (TmfExperiment<TmfEvent>) TmfExperiment.getCurrentExperiment();
70 if (fExperiment != null) {
71 experimentSelected(new TmfExperimentSelectedSignal<TmfEvent>(fEventsTable, fExperiment));
72 }
8d2e2848
FC
73 }
74
abfad0aa
FC
75 @Override
76 public void dispose() {
77 if (fEventsTable != null) {
78 fEventsTable.dispose();
b0d3496e 79 }
abfad0aa
FC
80 super.dispose();
81 }
b0d3496e 82
abfad0aa
FC
83 protected TmfEventsTable createEventsTable(Composite parent, int cacheSize) {
84 return new TmfEventsTable(parent, cacheSize);
85 }
b0d3496e
ASL
86
87 /* (non-Javadoc)
88 * @see org.eclipse.ui.part.WorkbenchPart#setFocus()
89 */
90 @Override
91 public void setFocus() {
abfad0aa 92 fEventsTable.setFocus();
b0d3496e
ASL
93 }
94
8d2e2848
FC
95 /* (non-Javadoc)
96 * @see java.lang.Object#toString()
97 */
98 @Override
3b38ea61 99 @SuppressWarnings("nls")
8d2e2848
FC
100 public String toString() {
101 return "[TmfEventsView]";
102 }
103
abfad0aa 104 // ------------------------------------------------------------------------
b0d3496e 105 // Signal handlers
e31e01e8 106 // ------------------------------------------------------------------------
b0d3496e 107
e31e01e8 108 @SuppressWarnings("unchecked")
abfad0aa 109 @TmfSignalHandler
951d134a 110 public void experimentSelected(TmfExperimentSelectedSignal<TmfEvent> signal) {
abfad0aa 111 // Update the trace reference
8e31f2d2
FC
112 TmfExperiment<TmfEvent> exp = (TmfExperiment<TmfEvent>) signal.getExperiment();
113 if (!exp.equals(fExperiment)) {
114 fExperiment = exp;
115 setPartName(fTitlePrefix + " - " + fExperiment.getName()); //$NON-NLS-1$
116 if (fEventsTable != null) {
117 fEventsTable.setTrace(fExperiment, false);
118 }
abfad0aa 119 }
cb866e08 120 }
9aae0442 121
8e31f2d2
FC
122 @SuppressWarnings("unchecked")
123 @TmfSignalHandler
124 public void experimentDisposed(TmfExperimentDisposedSignal<TmfEvent> signal) {
125 // Clear the trace reference
126 TmfExperiment<TmfEvent> experiment = (TmfExperiment<TmfEvent>) signal.getExperiment();
127 if (experiment.equals(fExperiment)) {
128 fEventsTable.setTrace(null, false);
129 }
130
131 TmfUiPlugin.getDefault().getWorkbench().getWorkbenchWindows()[0].getShell().getDisplay().syncExec(new Runnable() {
132 @Override
133 public void run() {
134 setPartName(fTitlePrefix);
135 }
136 });
137 }
138
e31e01e8 139}
This page took 0.04203 seconds and 5 git commands to generate.