/*******************************************************************************
* Copyright (c) 2013, 2014 École Polytechnique de Montréal, Ericsson
*
* All rights reserved. This program and the accompanying materials are
* made available under the terms of the Eclipse Public License v1.0 which
* accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Florian Wininger - Initial API and implementation
* Alexandre Montplaisir - Refactoring, performance tweaks
* Bernd Hufmann - Updated signal handling
* Marc-Andre Laperle - Add time zone preference
* Geneviève Bastien - Use a tree viewer instead of a tree
*******************************************************************************/
package org.eclipse.tracecompass.tmf.ui.views.statesystem;
import java.io.File;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.IToolBarManager;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.tracecompass.internal.tmf.ui.Activator;
import org.eclipse.tracecompass.tmf.core.signal.TmfTraceSelectedSignal;
import org.eclipse.tracecompass.tmf.core.trace.ITmfTrace;
import org.eclipse.tracecompass.tmf.core.trace.TmfTraceManager;
import org.eclipse.tracecompass.tmf.ui.views.TmfView;
import org.eclipse.ui.IActionBars;
/**
* Displays the State System at a current time.
*
* @author Florian Wininger
* @author Alexandre Montplaisir
*/
public class TmfStateSystemExplorer extends TmfView {
/** The Environment View's ID */
public static final String ID = "org.eclipse.linuxtools.tmf.ui.views.ssvisualizer"; //$NON-NLS-1$
private static final Image FILTER_IMAGE =
Activator.getDefault().getImageFromPath( File.separator + "icons" + File.separator + "elcl16" + File.separator + "filter_items.gif"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
private TmfStateSystemViewer fViewer;
/**
* Default constructor
*/
public TmfStateSystemExplorer() {
super(ID);
}
// ------------------------------------------------------------------------
// ViewPart
// ------------------------------------------------------------------------
@Override
public void createPartControl(Composite parent) {
fViewer = new TmfStateSystemViewer(parent);
fillToolBar() ;
ITmfTrace trace = TmfTraceManager.getInstance().getActiveTrace();
if (trace != null) {
fViewer.traceSelected(new TmfTraceSelectedSignal(this, trace));
}
}
// ------------------------------------------------------------------------
// Part For Button Action
// ------------------------------------------------------------------------
private void fillToolBar() {
Action fFilterAction = new FilterAction();
fFilterAction.setImageDescriptor(ImageDescriptor.createFromImage(FILTER_IMAGE));
fFilterAction.setToolTipText(Messages.FilterButton) ;
fFilterAction.setChecked(false);
IActionBars bars = getViewSite().getActionBars();
IToolBarManager manager = bars.getToolBarManager();
manager.add(fFilterAction);
}
private class FilterAction extends Action {
@Override
public void run() {
fViewer.changeFilterStatus();
}
}
@Override
public void setFocus() {
fViewer.getControl().setFocus();
}
@Override
public void dispose() {
super.dispose();
if (fViewer != null) {
fViewer.dispose();
}
}
}