Merge branch 'master' into lttng-kepler
[deliverable/tracecompass.git] / org.eclipse.linuxtools.tmf.ui / src / org / eclipse / linuxtools / tmf / ui / views / TmfView.java
1 /*******************************************************************************
2 * Copyright (c) 2009, 2010, 2012 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 * Francois Chouinard - Initial API and implementation
11 * Bernd Hufmann - Added possibility to pin view
12 *******************************************************************************/
13
14 package org.eclipse.linuxtools.tmf.ui.views;
15
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;
23
24 /**
25 * Basic abstract TMF view class implementation.
26 *
27 * It registers any sub class to the signal manager for receiving and sending
28 * TMF signals.
29 *
30 * @version 1.2
31 * @author Francois Chouinard
32 */
33 public abstract class TmfView extends ViewPart implements ITmfComponent {
34
35 private final String fName;
36 /**
37 * Action class for pinning of TmfView.
38 * @since 1.2
39 */
40 protected PinTmfViewAction fPinAction;
41
42 // ------------------------------------------------------------------------
43 // Constructor
44 // ------------------------------------------------------------------------
45
46 /**
47 * Constructor. Creates a TMF view and registers to the signal manager.
48 *
49 * @param viewName A view name
50 */
51 public TmfView(String viewName) {
52 super();
53 fName = viewName;
54 TmfSignalManager.register(this);
55 }
56
57 /**
58 * Disposes this view and deregisters itself from the signal manager
59 * @see org.eclipse.ui.part.WorkbenchPart#dispose()
60 */
61 @Override
62 public void dispose() {
63 TmfSignalManager.deregister(this);
64 super.dispose();
65 }
66
67 // ------------------------------------------------------------------------
68 // ITmfComponent
69 // ------------------------------------------------------------------------
70
71 /*
72 * (non-Javadoc)
73 * @see org.eclipse.linuxtools.tmf.core.component.ITmfComponent#getName()
74 */
75 @Override
76 public String getName() {
77 return fName;
78 }
79
80 /*
81 * (non-Javadoc)
82 * @see org.eclipse.linuxtools.tmf.core.component.ITmfComponent#broadcast(org.eclipse.linuxtools.tmf.core.signal.TmfSignal)
83 */
84 @Override
85 public void broadcast(TmfSignal signal) {
86 TmfSignalManager.dispatchSignal(signal);
87 }
88
89 /**
90 * Returns whether the pin flag is set.
91 * For example, this flag can be used to ignore time synchronization signals from other TmfViews.
92 *
93 * @return pin flag
94 * @since 1.2
95 */
96 public boolean isPinned() {
97 return ((fPinAction != null) && (fPinAction.isChecked()));
98 }
99
100 /**
101 * Method adds a pin action to the TmfView. The pin action allows to toggle the <code>fIsPinned</code> flag.
102 * For example, this flag can be used to ignore time synchronization signals from other TmfViews.
103 *
104 * @since 1.2
105 */
106 protected void contributePinActionToToolBar() {
107 if (fPinAction == null) {
108 fPinAction = new PinTmfViewAction();
109
110 IToolBarManager toolBarManager = getViewSite().getActionBars()
111 .getToolBarManager();
112 toolBarManager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
113 toolBarManager.add(fPinAction);
114 }
115 }
116 }
This page took 0.034564 seconds and 6 git commands to generate.