1 /*******************************************************************************
2 * Copyright (c) 2009, 2010, 2012 Ericsson
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
10 * Francois Chouinard - Initial API and implementation
11 * Bernd Hufmann - Added possibility to pin view
12 *******************************************************************************/
14 package org
.eclipse
.linuxtools
.tmf
.ui
.views
;
16 import org
.eclipse
.jface
.action
.IToolBarManager
;
17 import org
.eclipse
.jface
.action
.Separator
;
18 import org
.eclipse
.linuxtools
.tmf
.core
.component
.ITmfComponent
;
19 import org
.eclipse
.linuxtools
.tmf
.core
.signal
.TmfSignal
;
20 import org
.eclipse
.linuxtools
.tmf
.core
.signal
.TmfSignalManager
;
21 import org
.eclipse
.ui
.IWorkbenchActionConstants
;
22 import org
.eclipse
.ui
.part
.ViewPart
;
25 * Basic abstract TMF view class implementation.
27 * It registers any sub class to the signal manager for receiving and sending
31 * @author Francois Chouinard
33 public abstract class TmfView
extends ViewPart
implements ITmfComponent
{
35 private final String fName
;
37 * Action class for pinning of TmfView.
40 protected PinTmfViewAction fPinAction
;
42 // ------------------------------------------------------------------------
44 // ------------------------------------------------------------------------
47 * Constructor. Creates a TMF view and registers to the signal manager.
49 * @param viewName A view name
51 public TmfView(String viewName
) {
54 TmfSignalManager
.register(this);
58 * Disposes this view and de-registers itself from the signal manager
60 * @see org.eclipse.ui.part.WorkbenchPart#dispose()
63 public void dispose() {
64 TmfSignalManager
.deregister(this);
68 // ------------------------------------------------------------------------
70 // ------------------------------------------------------------------------
74 * @see org.eclipse.linuxtools.tmf.core.component.ITmfComponent#getName()
77 public String
getName() {
83 * @see org.eclipse.linuxtools.tmf.core.component.ITmfComponent#broadcast(org.eclipse.linuxtools.tmf.core.signal.TmfSignal)
86 public void broadcast(TmfSignal signal
) {
87 TmfSignalManager
.dispatchSignal(signal
);
90 // ------------------------------------------------------------------------
91 // View pinning support
92 // ------------------------------------------------------------------------
95 * Returns whether the pin flag is set.
96 * For example, this flag can be used to ignore time synchronization signals from other TmfViews.
101 public boolean isPinned() {
102 return ((fPinAction
!= null) && (fPinAction
.isChecked()));
106 * Method adds a pin action to the TmfView. The pin action allows to toggle the <code>fIsPinned</code> flag.
107 * For example, this flag can be used to ignore time synchronization signals from other TmfViews.
111 protected void contributePinActionToToolBar() {
112 if (fPinAction
== null) {
113 fPinAction
= new PinTmfViewAction();
115 IToolBarManager toolBarManager
= getViewSite().getActionBars()
116 .getToolBarManager();
117 toolBarManager
.add(new Separator(IWorkbenchActionConstants
.MB_ADDITIONS
));
118 toolBarManager
.add(fPinAction
);