tmf: TmfTraceManager improvements
[deliverable/tracecompass.git] / org.eclipse.tracecompass.tmf.ui / src / org / eclipse / tracecompass / tmf / ui / views / statesystem / TmfStateSystemExplorer.java
1 /*******************************************************************************
2 * Copyright (c) 2013, 2014 École Polytechnique de Montréal, 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 * Florian Wininger - Initial API and implementation
11 * Alexandre Montplaisir - Refactoring, performance tweaks
12 * Bernd Hufmann - Updated signal handling
13 * Marc-Andre Laperle - Add time zone preference
14 * Geneviève Bastien - Use a tree viewer instead of a tree
15 *******************************************************************************/
16
17 package org.eclipse.tracecompass.tmf.ui.views.statesystem;
18
19 import java.io.File;
20
21 import org.eclipse.jface.action.Action;
22 import org.eclipse.jface.action.IToolBarManager;
23 import org.eclipse.jface.resource.ImageDescriptor;
24 import org.eclipse.swt.graphics.Image;
25 import org.eclipse.swt.widgets.Composite;
26 import org.eclipse.tracecompass.internal.tmf.ui.Activator;
27 import org.eclipse.tracecompass.tmf.core.signal.TmfTraceSelectedSignal;
28 import org.eclipse.tracecompass.tmf.core.trace.ITmfTrace;
29 import org.eclipse.tracecompass.tmf.core.trace.TmfTraceManager;
30 import org.eclipse.tracecompass.tmf.ui.views.TmfView;
31 import org.eclipse.ui.IActionBars;
32
33 /**
34 * Displays the State System at a current time.
35 *
36 * @author Florian Wininger
37 * @author Alexandre Montplaisir
38 */
39 public class TmfStateSystemExplorer extends TmfView {
40
41 /** The Environment View's ID */
42 public static final String ID = "org.eclipse.linuxtools.tmf.ui.views.ssview"; //$NON-NLS-1$
43
44 private static final Image FILTER_IMAGE =
45 Activator.getDefault().getImageFromPath( File.separator + "icons" + File.separator + "elcl16" + File.separator + "filter_items.gif"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
46
47 private TmfStateSystemViewer fViewer;
48
49 /**
50 * Default constructor
51 */
52 public TmfStateSystemExplorer() {
53 super(ID);
54 }
55
56 // ------------------------------------------------------------------------
57 // ViewPart
58 // ------------------------------------------------------------------------
59
60 @Override
61 public void createPartControl(Composite parent) {
62
63 fViewer = new TmfStateSystemViewer(parent);
64
65 fillToolBar() ;
66
67 ITmfTrace trace = TmfTraceManager.getInstance().getActiveTrace();
68 if (trace != null) {
69 fViewer.traceSelected(new TmfTraceSelectedSignal(this, trace));
70 }
71
72 }
73
74 // ------------------------------------------------------------------------
75 // Part For Button Action
76 // ------------------------------------------------------------------------
77
78 private void fillToolBar() {
79 Action fFilterAction = new FilterAction();
80 fFilterAction.setImageDescriptor(ImageDescriptor.createFromImage(FILTER_IMAGE));
81 fFilterAction.setToolTipText(Messages.FilterButton) ;
82 fFilterAction.setChecked(false);
83
84 IActionBars bars = getViewSite().getActionBars();
85 IToolBarManager manager = bars.getToolBarManager();
86 manager.add(fFilterAction);
87 }
88
89 private class FilterAction extends Action {
90 @Override
91 public void run() {
92 fViewer.changeFilterStatus();
93 }
94 }
95
96 @Override
97 public void setFocus() {
98 }
99
100 @Override
101 public void dispose() {
102 super.dispose();
103 if (fViewer != null) {
104 fViewer.dispose();
105 }
106 }
107 }
This page took 0.038104 seconds and 5 git commands to generate.