From 6e1b4486f6cded7eaa4ba7a457b60301f1eb516f Mon Sep 17 00:00:00 2001 From: Jonathan Rajotte Date: Wed, 26 Oct 2016 19:14:10 -0400 Subject: [PATCH] Force pin action on all views From now on all views should show/act on a pin button by default. For now override canBePinned to return false so no view shows the button. Let's hope more views get this implemented in the future. Change-Id: Ib312622a8dc8a926932639e6a5dc87f54db01456 Signed-off-by: Jonathan Rajotte --- .../criticalpath/view/CriticalPathView.java | 5 ++ .../lami/ui/views/LamiReportView.java | 5 ++ .../ui/views/controlflow/ControlFlowView.java | 7 +++ .../latency/SystemCallLatencyDensityView.java | 1 - .../SystemCallLatencyStatisticsView.java | 1 - .../ui/views/resources/ResourcesView.java | 5 ++ .../AbstractSegmentStoreDensityView.java | 6 ++ .../AbstractSegmentStoreStatisticsView.java | 6 ++ .../table/SegmentStoreTableView.java | 6 ++ .../timing/ui/flamegraph/FlameGraphView.java | 6 ++ .../views/vm/vcpuview/VirtualMachineView.java | 5 ++ .../ui/swtbot/tests/CallStackViewTest.java | 11 ++-- .../tmf/pcap/ui/stream/StreamListView.java | 6 ++ .../latency/PatternLatencyTableView.java | 5 ++ .../ui/views/timegraph/XmlTimeGraphView.java | 6 ++ .../statistics/TmfStatisticsViewImpl.java | 6 ++ .../tmf/ui/views/TmfChartView.java | 6 ++ .../tracecompass/tmf/ui/views/TmfView.java | 60 +++++++++++++++++-- .../tmf/ui/views/callstack/CallStackView.java | 39 ++++++------ .../tmf/ui/views/colors/ColorsView.java | 6 ++ .../tmf/ui/views/filter/FilterView.java | 6 ++ .../tmf/ui/views/histogram/HistogramView.java | 6 ++ .../statesystem/TmfStateSystemExplorer.java | 6 ++ .../TmfSynchronizationView.java | 6 ++ .../tmf/ui/views/timechart/TimeChartView.java | 6 ++ 25 files changed, 194 insertions(+), 34 deletions(-) diff --git a/analysis/org.eclipse.tracecompass.analysis.graph.ui/src/org/eclipse/tracecompass/internal/analysis/graph/ui/criticalpath/view/CriticalPathView.java b/analysis/org.eclipse.tracecompass.analysis.graph.ui/src/org/eclipse/tracecompass/internal/analysis/graph/ui/criticalpath/view/CriticalPathView.java index ce4cff904a..cab40437bd 100644 --- a/analysis/org.eclipse.tracecompass.analysis.graph.ui/src/org/eclipse/tracecompass/internal/analysis/graph/ui/criticalpath/view/CriticalPathView.java +++ b/analysis/org.eclipse.tracecompass.analysis.graph.ui/src/org/eclipse/tracecompass/internal/analysis/graph/ui/criticalpath/view/CriticalPathView.java @@ -637,4 +637,9 @@ public class CriticalPathView extends AbstractTimeGraphView { setEndTime(end); } + @Override + protected boolean canBePinned() { + //TODO: actionPin is not defined + return false; + } } diff --git a/analysis/org.eclipse.tracecompass.analysis.lami.ui/src/org/eclipse/tracecompass/internal/provisional/analysis/lami/ui/views/LamiReportView.java b/analysis/org.eclipse.tracecompass.analysis.lami.ui/src/org/eclipse/tracecompass/internal/provisional/analysis/lami/ui/views/LamiReportView.java index ed38dd6c26..9fc4bd77e5 100644 --- a/analysis/org.eclipse.tracecompass.analysis.lami.ui/src/org/eclipse/tracecompass/internal/provisional/analysis/lami/ui/views/LamiReportView.java +++ b/analysis/org.eclipse.tracecompass.analysis.lami.ui/src/org/eclipse/tracecompass/internal/provisional/analysis/lami/ui/views/LamiReportView.java @@ -188,4 +188,9 @@ public final class LamiReportView extends TmfView { return fTabPages.get(idx); } + @Override + protected boolean canBePinned() { + //TODO: actionPin is not defined + return false; + } } diff --git a/analysis/org.eclipse.tracecompass.analysis.os.linux.ui/src/org/eclipse/tracecompass/internal/analysis/os/linux/ui/views/controlflow/ControlFlowView.java b/analysis/org.eclipse.tracecompass.analysis.os.linux.ui/src/org/eclipse/tracecompass/internal/analysis/os/linux/ui/views/controlflow/ControlFlowView.java index c135bef5fc..6b36a97192 100644 --- a/analysis/org.eclipse.tracecompass.analysis.os.linux.ui/src/org/eclipse/tracecompass/internal/analysis/os/linux/ui/views/controlflow/ControlFlowView.java +++ b/analysis/org.eclipse.tracecompass.analysis.os.linux.ui/src/org/eclipse/tracecompass/internal/analysis/os/linux/ui/views/controlflow/ControlFlowView.java @@ -1053,4 +1053,11 @@ public class ControlFlowView extends AbstractStateSystemTimeGraphView { } return null; } + + @Override + protected boolean canBePinned() { + //TODO: actionPin is not defined + return false; + } + } diff --git a/analysis/org.eclipse.tracecompass.analysis.os.linux.ui/src/org/eclipse/tracecompass/internal/analysis/os/linux/ui/views/latency/SystemCallLatencyDensityView.java b/analysis/org.eclipse.tracecompass.analysis.os.linux.ui/src/org/eclipse/tracecompass/internal/analysis/os/linux/ui/views/latency/SystemCallLatencyDensityView.java index 8299fc71ea..c8a1008c57 100644 --- a/analysis/org.eclipse.tracecompass.analysis.os.linux.ui/src/org/eclipse/tracecompass/internal/analysis/os/linux/ui/views/latency/SystemCallLatencyDensityView.java +++ b/analysis/org.eclipse.tracecompass.analysis.os.linux.ui/src/org/eclipse/tracecompass/internal/analysis/os/linux/ui/views/latency/SystemCallLatencyDensityView.java @@ -53,5 +53,4 @@ public class SystemCallLatencyDensityView extends AbstractSegmentStoreDensityVie protected AbstractSegmentStoreDensityViewer createSegmentStoreDensityViewer(Composite parent) { return new SystemCallDensityViewer(parent); } - } diff --git a/analysis/org.eclipse.tracecompass.analysis.os.linux.ui/src/org/eclipse/tracecompass/internal/analysis/os/linux/ui/views/latency/statistics/SystemCallLatencyStatisticsView.java b/analysis/org.eclipse.tracecompass.analysis.os.linux.ui/src/org/eclipse/tracecompass/internal/analysis/os/linux/ui/views/latency/statistics/SystemCallLatencyStatisticsView.java index 509809edb8..38d1b38727 100644 --- a/analysis/org.eclipse.tracecompass.analysis.os.linux.ui/src/org/eclipse/tracecompass/internal/analysis/os/linux/ui/views/latency/statistics/SystemCallLatencyStatisticsView.java +++ b/analysis/org.eclipse.tracecompass.analysis.os.linux.ui/src/org/eclipse/tracecompass/internal/analysis/os/linux/ui/views/latency/statistics/SystemCallLatencyStatisticsView.java @@ -30,5 +30,4 @@ public class SystemCallLatencyStatisticsView extends AbstractSegmentStoreStatist protected AbstractSegmentStoreStatisticsViewer createSegmentStoreStatisticsViewer(Composite parent) { return new SystemCallLatencyStatisticsViewer(parent); } - } diff --git a/analysis/org.eclipse.tracecompass.analysis.os.linux.ui/src/org/eclipse/tracecompass/internal/analysis/os/linux/ui/views/resources/ResourcesView.java b/analysis/org.eclipse.tracecompass.analysis.os.linux.ui/src/org/eclipse/tracecompass/internal/analysis/os/linux/ui/views/resources/ResourcesView.java index a51d637b8e..c8ac12f1fd 100644 --- a/analysis/org.eclipse.tracecompass.analysis.os.linux.ui/src/org/eclipse/tracecompass/internal/analysis/os/linux/ui/views/resources/ResourcesView.java +++ b/analysis/org.eclipse.tracecompass.analysis.os.linux.ui/src/org/eclipse/tracecompass/internal/analysis/os/linux/ui/views/resources/ResourcesView.java @@ -440,4 +440,9 @@ public class ResourcesView extends AbstractStateSystemTimeGraphView { ctx.setData(RESOURCES_FOLLOW_CPU, data); } + @Override + protected boolean canBePinned() { + //TODO: actionPin is not defined + return false; + } } diff --git a/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/analysis/timing/ui/views/segmentstore/density/AbstractSegmentStoreDensityView.java b/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/analysis/timing/ui/views/segmentstore/density/AbstractSegmentStoreDensityView.java index b92e254676..3f5619738b 100644 --- a/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/analysis/timing/ui/views/segmentstore/density/AbstractSegmentStoreDensityView.java +++ b/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/analysis/timing/ui/views/segmentstore/density/AbstractSegmentStoreDensityView.java @@ -144,4 +144,10 @@ public abstract class AbstractSegmentStoreDensityView extends TmfView { AbstractSegmentStoreDensityViewer getDensityViewer() { return fDensityViewer; } + + @Override + protected boolean canBePinned() { + //TODO: actionPin is not defined + return false; + } } \ No newline at end of file diff --git a/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/analysis/timing/ui/views/segmentstore/statistics/AbstractSegmentStoreStatisticsView.java b/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/analysis/timing/ui/views/segmentstore/statistics/AbstractSegmentStoreStatisticsView.java index 0a18e3977a..cb192ebf8e 100644 --- a/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/analysis/timing/ui/views/segmentstore/statistics/AbstractSegmentStoreStatisticsView.java +++ b/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/analysis/timing/ui/views/segmentstore/statistics/AbstractSegmentStoreStatisticsView.java @@ -148,4 +148,10 @@ public abstract class AbstractSegmentStoreStatisticsView extends TmfView { } } + @Override + protected boolean canBePinned() { + //TODO: actionPin is not defined + return false; + } + } diff --git a/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/analysis/timing/ui/views/segmentstore/table/SegmentStoreTableView.java b/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/analysis/timing/ui/views/segmentstore/table/SegmentStoreTableView.java index 2c248c69a3..ebd79ad593 100644 --- a/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/analysis/timing/ui/views/segmentstore/table/SegmentStoreTableView.java +++ b/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/analysis/timing/ui/views/segmentstore/table/SegmentStoreTableView.java @@ -41,4 +41,10 @@ public class SegmentStoreTableView extends AbstractSegmentStoreTableView { String analysisId = NonNullUtils.nullToEmptyString(getViewSite().getSecondaryId()); return new SegmentStoreTableViewer(tableViewer, analysisId); } + + @Override + protected boolean canBePinned() { + //TODO: actionPin is not defined + return false; + } } diff --git a/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/internal/analysis/timing/ui/flamegraph/FlameGraphView.java b/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/internal/analysis/timing/ui/flamegraph/FlameGraphView.java index 463b901a7c..a4fee6a59f 100644 --- a/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/internal/analysis/timing/ui/flamegraph/FlameGraphView.java +++ b/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/internal/analysis/timing/ui/flamegraph/FlameGraphView.java @@ -447,4 +447,10 @@ public class FlameGraphView extends TmfView { } } + @Override + protected boolean canBePinned() { + //TODO: actionPin is not defined + return false; + } + } diff --git a/lttng/org.eclipse.tracecompass.lttng2.kernel.ui/src/org/eclipse/tracecompass/internal/lttng2/kernel/ui/views/vm/vcpuview/VirtualMachineView.java b/lttng/org.eclipse.tracecompass.lttng2.kernel.ui/src/org/eclipse/tracecompass/internal/lttng2/kernel/ui/views/vm/vcpuview/VirtualMachineView.java index 5b56d30751..46a56ed28a 100644 --- a/lttng/org.eclipse.tracecompass.lttng2.kernel.ui/src/org/eclipse/tracecompass/internal/lttng2/kernel/ui/views/vm/vcpuview/VirtualMachineView.java +++ b/lttng/org.eclipse.tracecompass.lttng2.kernel.ui/src/org/eclipse/tracecompass/internal/lttng2/kernel/ui/views/vm/vcpuview/VirtualMachineView.java @@ -475,4 +475,9 @@ public class VirtualMachineView extends AbstractTimeGraphView { return Collections.singleton(trace); } + @Override + protected boolean canBePinned() { + //TODO: actionPin is not defined + return false; + } } diff --git a/lttng/org.eclipse.tracecompass.lttng2.ust.ui.swtbot.tests/src/org/eclipse/tracecompass/lttng2/ust/ui/swtbot/tests/CallStackViewTest.java b/lttng/org.eclipse.tracecompass.lttng2.ust.ui.swtbot.tests/src/org/eclipse/tracecompass/lttng2/ust/ui/swtbot/tests/CallStackViewTest.java index de4ce52a3f..bd95f8897d 100644 --- a/lttng/org.eclipse.tracecompass.lttng2.ust.ui.swtbot.tests/src/org/eclipse/tracecompass/lttng2/ust/ui/swtbot/tests/CallStackViewTest.java +++ b/lttng/org.eclipse.tracecompass.lttng2.ust.ui.swtbot.tests/src/org/eclipse/tracecompass/lttng2/ust/ui/swtbot/tests/CallStackViewTest.java @@ -131,8 +131,11 @@ public class CallStackViewTest { private static final @NonNull String ZOOM_IN = "Zoom In"; private static final @NonNull String ZOOM_OUT = "Zoom Out"; // Separator - private static final String PIN_VIEW = "Pin View"; + private static final @NonNull String PIN_VIEW = "Pin View"; + private static final List TOOLBAR_BUTTONS_TOOLTIPS = ImmutableList.of( + PIN_VIEW, + "", ALIGN_VIEWS, CONFIGURE_SYMBOL_PROVIDERS, "", SORT_BY_NAME, SORT_BY_ID, SORT_BY_START, @@ -143,9 +146,7 @@ public class CallStackViewTest { "", ADD_BOOKMARK, PREVIOUS_MARKER, NEXT_MARKER, "", - SELECT_PREVIOUS_ITEM, SELECT_NEXT_ITEM, ZOOM_IN, ZOOM_OUT, - "", - PIN_VIEW); + SELECT_PREVIOUS_ITEM, SELECT_NEXT_ITEM, ZOOM_IN, ZOOM_OUT); /** * Initialization @@ -359,4 +360,4 @@ public class CallStackViewTest { } assertEquals(TOOLBAR_BUTTONS_TOOLTIPS, buttons); } -} \ No newline at end of file +} diff --git a/pcap/org.eclipse.tracecompass.tmf.pcap.ui/src/org/eclipse/tracecompass/internal/tmf/pcap/ui/stream/StreamListView.java b/pcap/org.eclipse.tracecompass.tmf.pcap.ui/src/org/eclipse/tracecompass/internal/tmf/pcap/ui/stream/StreamListView.java index 9f1326a434..5e2f91a664 100644 --- a/pcap/org.eclipse.tracecompass.tmf.pcap.ui/src/org/eclipse/tracecompass/internal/tmf/pcap/ui/stream/StreamListView.java +++ b/pcap/org.eclipse.tracecompass.tmf.pcap.ui/src/org/eclipse/tracecompass/internal/tmf/pcap/ui/stream/StreamListView.java @@ -509,4 +509,10 @@ public class StreamListView extends TmfView { } } + @Override + protected boolean canBePinned() { + //TODO: actionPin is not defined + return false; + } + } diff --git a/tmf/org.eclipse.tracecompass.tmf.analysis.xml.ui/src/org/eclipse/tracecompass/internal/tmf/analysis/xml/ui/views/latency/PatternLatencyTableView.java b/tmf/org.eclipse.tracecompass.tmf.analysis.xml.ui/src/org/eclipse/tracecompass/internal/tmf/analysis/xml/ui/views/latency/PatternLatencyTableView.java index 194d49ccf8..f52fa35566 100644 --- a/tmf/org.eclipse.tracecompass.tmf.analysis.xml.ui/src/org/eclipse/tracecompass/internal/tmf/analysis/xml/ui/views/latency/PatternLatencyTableView.java +++ b/tmf/org.eclipse.tracecompass.tmf.analysis.xml.ui/src/org/eclipse/tracecompass/internal/tmf/analysis/xml/ui/views/latency/PatternLatencyTableView.java @@ -64,4 +64,9 @@ public class PatternLatencyTableView extends AbstractSegmentStoreTableView { return viewer; } + @Override + protected boolean canBePinned() { + return false; + } + } diff --git a/tmf/org.eclipse.tracecompass.tmf.analysis.xml.ui/src/org/eclipse/tracecompass/internal/tmf/analysis/xml/ui/views/timegraph/XmlTimeGraphView.java b/tmf/org.eclipse.tracecompass.tmf.analysis.xml.ui/src/org/eclipse/tracecompass/internal/tmf/analysis/xml/ui/views/timegraph/XmlTimeGraphView.java index 1324fbdb2f..b2317b2584 100644 --- a/tmf/org.eclipse.tracecompass.tmf.analysis.xml.ui/src/org/eclipse/tracecompass/internal/tmf/analysis/xml/ui/views/timegraph/XmlTimeGraphView.java +++ b/tmf/org.eclipse.tracecompass.tmf.analysis.xml.ui/src/org/eclipse/tracecompass/internal/tmf/analysis/xml/ui/views/timegraph/XmlTimeGraphView.java @@ -580,4 +580,10 @@ public class XmlTimeGraphView extends AbstractTimeGraphView { return (trace != null) ? Collections.singleton(trace) : Collections.EMPTY_LIST; } + @Override + protected boolean canBePinned() { + //TODO: actionPin is not defined + return false; + } + } diff --git a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/internal/tmf/ui/views/statistics/TmfStatisticsViewImpl.java b/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/internal/tmf/ui/views/statistics/TmfStatisticsViewImpl.java index bc817276e3..20c0a9e237 100755 --- a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/internal/tmf/ui/views/statistics/TmfStatisticsViewImpl.java +++ b/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/internal/tmf/ui/views/statistics/TmfStatisticsViewImpl.java @@ -214,4 +214,10 @@ public class TmfStatisticsViewImpl extends TmfView { // Makes the global viewer visible fStatsViewers.setSelection(0); } + + @Override + protected boolean canBePinned() { + //TODO: actionPin is not defined + return false; + } } diff --git a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/views/TmfChartView.java b/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/views/TmfChartView.java index b480b03a98..07095d0e9c 100644 --- a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/views/TmfChartView.java +++ b/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/views/TmfChartView.java @@ -280,4 +280,10 @@ public abstract class TmfChartView extends TmfView implements ITmfTimeAligned { } } + @Override + protected boolean canBePinned() { + //TODO: actionPin is not defined + return false; + } + } diff --git a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/views/TmfView.java b/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/views/TmfView.java index c9a3ab3cc0..5a87af9175 100644 --- a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/views/TmfView.java +++ b/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/views/TmfView.java @@ -14,8 +14,11 @@ package org.eclipse.tracecompass.tmf.ui.views; +import org.eclipse.jface.action.IAction; import org.eclipse.jface.action.IToolBarManager; import org.eclipse.jface.action.Separator; +import org.eclipse.jface.util.IPropertyChangeListener; +import org.eclipse.jface.util.PropertyChangeEvent; import org.eclipse.swt.events.ControlAdapter; import org.eclipse.swt.events.ControlEvent; import org.eclipse.swt.widgets.Composite; @@ -108,18 +111,20 @@ public abstract class TmfView extends ViewPart implements ITmfComponent { // ------------------------------------------------------------------------ /** - * Returns whether the pin flag is set. - * For example, this flag can be used to ignore time synchronization signals from other TmfViews. + * Returns whether the view is pinned. * - * @return pin flag + * @return if the view is pinned */ public boolean isPinned() { return ((fPinAction != null) && (fPinAction.isChecked())); } /** - * Method adds a pin action to the TmfView. The pin action allows to toggle the fIsPinned flag. - * For example, this flag can be used to ignore time synchronization signals from other TmfViews. + * Method adds a pin action to the TmfView. For example, this action can be + * used to ignore time synchronization signals from other TmfViews.
+ * + * Uses {@link TmfView#setPinned(boolean)} to propagate the state of the + * action button. */ protected void contributePinActionToToolBar() { if (fPinAction == null) { @@ -130,11 +135,56 @@ public abstract class TmfView extends ViewPart implements ITmfComponent { toolBarManager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS)); toolBarManager.add(fPinAction); } + + fPinAction.addPropertyChangeListener(new IPropertyChangeListener() { + @Override + public void propertyChange(PropertyChangeEvent event) { + if (IAction.CHECKED.equals(event.getProperty())) { + /* Take action on the pin state */ + Object value = event.getNewValue(); + if (!(value instanceof Boolean)) { + throw new IllegalStateException(); + } + setPinned((Boolean) value); + } + } + }); + } + + /** + * TODO: change to abstract on API break
+ *
+ * When this method return True a toggle button is added to the + * view toolbar.
+ *
+ * One should implement {@link TmfView#setPinned(boolean)} to take action on state change. + * + * @return if the view can be pined + * @since 2.2 + */ + protected boolean canBePinned() { + return true; + } + + /** + * TODO: change to abstract on API break + * Actions to take on pin property change. + * @param pinned + * The pin state to take action on + * @since 2.2 + */ + protected synchronized void setPinned(boolean pinned) { + /** Do nothing by default */ } @Override public void createPartControl(final Composite parent) { fParentComposite = parent; + + if (canBePinned()) { + contributePinActionToToolBar(); + } + if (this instanceof ITmfTimeAligned) { contributeAlignViewsActionToToolbar(); diff --git a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/views/callstack/CallStackView.java b/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/views/callstack/CallStackView.java index 6b2aa2484a..b9e844997b 100644 --- a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/views/callstack/CallStackView.java +++ b/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/views/callstack/CallStackView.java @@ -35,8 +35,6 @@ import org.eclipse.jface.action.Separator; import org.eclipse.jface.dialogs.IDialogConstants; import org.eclipse.jface.dialogs.IDialogSettings; import org.eclipse.jface.resource.ImageDescriptor; -import org.eclipse.jface.util.IPropertyChangeListener; -import org.eclipse.jface.util.PropertyChangeEvent; import org.eclipse.jface.viewers.DoubleClickEvent; import org.eclipse.jface.viewers.IDoubleClickListener; import org.eclipse.jface.viewers.ISelection; @@ -422,7 +420,6 @@ public class CallStackView extends AbstractTimeGraphView { } }); - contributeToActionBars(); loadSortOption(); IEditorPart editor = getSite().getPage().getActiveEditor(); @@ -909,27 +906,25 @@ public class CallStackView extends AbstractTimeGraphView { fNextItemAction.setToolTipText(Messages.TmfTimeGraphViewer_NextItemActionToolTipText); } - private void contributeToActionBars() { - // Create pin action - contributePinActionToToolBar(); - fPinAction.addPropertyChangeListener(new IPropertyChangeListener() { - @Override - public void propertyChange(PropertyChangeEvent event) { - if (IAction.CHECKED.equals(event.getProperty()) && !isPinned()) { - if (fSavedRangeSyncSignal != null) { - windowRangeUpdated(fSavedRangeSyncSignal); - fSavedRangeSyncSignal = null; - } - - if (fSavedTimeSyncSignal != null) { - selectionRangeUpdated(fSavedTimeSyncSignal); - fSavedTimeSyncSignal = null; - } - } - } - }); + /** + * @since 2.2 + */ + @Override + protected synchronized void setPinned(boolean pinned) { + if (!pinned) { + if (fSavedRangeSyncSignal != null) { + windowRangeUpdated(fSavedRangeSyncSignal); + fSavedRangeSyncSignal = null; + } + + if (fSavedTimeSyncSignal != null) { + selectionRangeUpdated(fSavedTimeSyncSignal); + fSavedTimeSyncSignal = null; + } + } } + /** * @since 1.2 */ diff --git a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/views/colors/ColorsView.java b/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/views/colors/ColorsView.java index 6ec9935a5f..2534d293db 100644 --- a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/views/colors/ColorsView.java +++ b/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/views/colors/ColorsView.java @@ -590,4 +590,10 @@ public class ColorsView extends TmfView { } } + + @Override + protected boolean canBePinned() { + //TODO: actionPin is not defined + return false; + } } diff --git a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/views/filter/FilterView.java b/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/views/filter/FilterView.java index 6a0b872bb3..d2cfbee758 100644 --- a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/views/filter/FilterView.java +++ b/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/views/filter/FilterView.java @@ -319,4 +319,10 @@ public class FilterView extends TmfView { } } + @Override + protected boolean canBePinned() { + //TODO: actionPin is not defined + return false; + } + } \ No newline at end of file diff --git a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/views/histogram/HistogramView.java b/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/views/histogram/HistogramView.java index a580e02f4a..6ebf6b5df4 100644 --- a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/views/histogram/HistogramView.java +++ b/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/views/histogram/HistogramView.java @@ -1020,4 +1020,10 @@ public class HistogramView extends TmfView implements ITmfTimeAligned { return point; } } + + @Override + protected boolean canBePinned() { + //TODO: actionPin is not defined + return false; + } } diff --git a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/views/statesystem/TmfStateSystemExplorer.java b/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/views/statesystem/TmfStateSystemExplorer.java index 88a4719b2a..dec18cfb01 100644 --- a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/views/statesystem/TmfStateSystemExplorer.java +++ b/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/views/statesystem/TmfStateSystemExplorer.java @@ -105,4 +105,10 @@ public class TmfStateSystemExplorer extends TmfView { fViewer.dispose(); } } + + @Override + protected boolean canBePinned() { + //TODO: actionPin is not defined + return false; + } } diff --git a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/views/synchronization/TmfSynchronizationView.java b/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/views/synchronization/TmfSynchronizationView.java index 0f5c16233d..20ea05dc9d 100644 --- a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/views/synchronization/TmfSynchronizationView.java +++ b/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/views/synchronization/TmfSynchronizationView.java @@ -151,4 +151,10 @@ public class TmfSynchronizationView extends TmfView { }); } } + + @Override + protected boolean canBePinned() { + //TODO: actionPin is not defined + return false; + } } diff --git a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/views/timechart/TimeChartView.java b/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/views/timechart/TimeChartView.java index 28a198ed71..8e5da70f6a 100644 --- a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/views/timechart/TimeChartView.java +++ b/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/views/timechart/TimeChartView.java @@ -814,4 +814,10 @@ public class TimeChartView extends TmfView implements ITimeGraphRangeListener, I public void performAlign(int offset, int width) { fViewer.performAlign(offset, width); } + + @Override + protected boolean canBePinned() { + //TODO: actionPin is not defined + return false; + } } -- 2.34.1