Commit | Line | Data |
---|---|---|
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 | ||
14 | package org.eclipse.linuxtools.tmf.ui.views; | |
15 | ||
16 | import org.eclipse.linuxtools.tmf.event.TmfEvent; | |
e31e01e8 | 17 | import org.eclipse.linuxtools.tmf.experiment.TmfExperiment; |
ff4ed569 | 18 | import org.eclipse.linuxtools.tmf.signal.TmfExperimentSelectedSignal; |
b0d3496e | 19 | import org.eclipse.linuxtools.tmf.signal.TmfSignalHandler; |
abfad0aa | 20 | import org.eclipse.linuxtools.tmf.ui.viewers.events.TmfEventsTable; |
b0d3496e | 21 | import org.eclipse.swt.widgets.Composite; |
b0d3496e | 22 | import org.eclipse.swt.widgets.Table; |
b0d3496e ASL |
23 | |
24 | /** | |
25 | * <b><u>TmfEventsView</u></b> | |
26 | * <p> | |
27 | * | |
28 | * TODO: Implement me. Please. | |
29 | * TODO: Handle column selection, sort, ... generically (nothing less...) | |
30 | * TODO: Implement hide/display columns | |
31 | */ | |
79a3a76e | 32 | public class TmfEventsView extends TmfView { |
b0d3496e | 33 | |
e31e01e8 | 34 | public static final String ID = "org.eclipse.linuxtools.tmf.ui.views.events"; |
b0d3496e | 35 | |
e31e01e8 | 36 | private TmfExperiment<TmfEvent> fExperiment; |
abfad0aa FC |
37 | private TmfEventsTable fEventsTable; |
38 | private static final int DEFAULT_CACHE_SIZE = 1000; | |
e31e01e8 | 39 | private final int fCacheSize; |
abfad0aa | 40 | private String fTitlePrefix; |
e31e01e8 FC |
41 | |
42 | // ------------------------------------------------------------------------ | |
b0d3496e | 43 | // Constructor |
e31e01e8 | 44 | // ------------------------------------------------------------------------ |
b0d3496e | 45 | |
e31e01e8 | 46 | public TmfEventsView(int cacheSize) { |
fc6ccf6f | 47 | super("TmfEventsView"); |
e31e01e8 | 48 | fCacheSize = cacheSize; |
b0d3496e ASL |
49 | } |
50 | ||
e31e01e8 FC |
51 | public TmfEventsView() { |
52 | this(DEFAULT_CACHE_SIZE); | |
53 | } | |
54 | ||
55 | // ------------------------------------------------------------------------ | |
56 | // ViewPart | |
57 | // ------------------------------------------------------------------------ | |
58 | ||
59 | @SuppressWarnings("unchecked") | |
60 | @Override | |
b0d3496e | 61 | public void createPartControl(Composite parent) { |
abfad0aa FC |
62 | fEventsTable = createEventsTable(parent, fCacheSize); |
63 | ||
64 | fTitlePrefix = getTitle(); | |
65 | ||
66 | // If an experiment is already selected, update the table | |
67 | fExperiment = (TmfExperiment<TmfEvent>) TmfExperiment.getCurrentExperiment(); | |
68 | if (fExperiment != null) { | |
69 | experimentSelected(new TmfExperimentSelectedSignal<TmfEvent>(fEventsTable, fExperiment)); | |
70 | } | |
8d2e2848 FC |
71 | } |
72 | ||
abfad0aa FC |
73 | @Override |
74 | public void dispose() { | |
75 | if (fEventsTable != null) { | |
76 | fEventsTable.dispose(); | |
b0d3496e | 77 | } |
abfad0aa FC |
78 | super.dispose(); |
79 | } | |
b0d3496e | 80 | |
abfad0aa FC |
81 | protected TmfEventsTable createEventsTable(Composite parent, int cacheSize) { |
82 | return new TmfEventsTable(parent, cacheSize); | |
83 | } | |
b0d3496e ASL |
84 | |
85 | /* (non-Javadoc) | |
86 | * @see org.eclipse.ui.part.WorkbenchPart#setFocus() | |
87 | */ | |
88 | @Override | |
89 | public void setFocus() { | |
abfad0aa | 90 | fEventsTable.setFocus(); |
b0d3496e ASL |
91 | } |
92 | ||
8d2e2848 FC |
93 | /* (non-Javadoc) |
94 | * @see java.lang.Object#toString() | |
95 | */ | |
96 | @Override | |
97 | public String toString() { | |
98 | return "[TmfEventsView]"; | |
99 | } | |
100 | ||
abfad0aa FC |
101 | protected void createColumnHeaders(Table table) { |
102 | fEventsTable.createColumnHeaders(table); | |
103 | } | |
104 | ||
105 | protected String[] extractItemFields(TmfEvent event) { | |
106 | return fEventsTable.extractItemFields(event); | |
107 | } | |
108 | ||
109 | // ------------------------------------------------------------------------ | |
b0d3496e | 110 | // Signal handlers |
e31e01e8 | 111 | // ------------------------------------------------------------------------ |
b0d3496e | 112 | |
e31e01e8 | 113 | @SuppressWarnings("unchecked") |
abfad0aa | 114 | @TmfSignalHandler |
951d134a | 115 | public void experimentSelected(TmfExperimentSelectedSignal<TmfEvent> signal) { |
abfad0aa FC |
116 | // Update the trace reference |
117 | fExperiment = (TmfExperiment<TmfEvent>) signal.getExperiment(); | |
118 | setPartName(fTitlePrefix + " - " + fExperiment.getName()); | |
b0d3496e | 119 | |
abfad0aa FC |
120 | if (fEventsTable != null) { |
121 | fEventsTable.setTrace(fExperiment); | |
122 | } | |
cb866e08 | 123 | } |
9aae0442 | 124 | |
e31e01e8 | 125 | } |