From baf92cacc9e8d3722d424344a2dbd936181020e9 Mon Sep 17 00:00:00 2001 From: Alexandre Montplaisir Date: Tue, 18 Feb 2014 16:17:08 -0500 Subject: [PATCH] tmf: Merge ITimeDataProvider2 back into ITimeDataProvider Was TODO for 3.0 Change-Id: Ic29c6db1947b0c5375f17dce8ca43389bab0ef66 Signed-off-by: Alexandre Montplaisir Reviewed-on: https://git.eclipse.org/r/22190 Tested-by: Hudson CI Reviewed-by: Bernd Hufmann IP-Clean: Bernd Hufmann Tested-by: Bernd Hufmann --- .../ui/widgets/timegraph/TimeGraphViewer.java | 11 +- .../timegraph/widgets/ITimeDataProvider.java | 37 ++++- .../timegraph/widgets/ITimeDataProvider2.java | 52 ------ .../timegraph/widgets/TimeGraphControl.java | 157 ++++++------------ .../timegraph/widgets/TimeGraphScale.java | 17 +- 5 files changed, 89 insertions(+), 185 deletions(-) delete mode 100644 org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/widgets/timegraph/widgets/ITimeDataProvider2.java diff --git a/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/widgets/timegraph/TimeGraphViewer.java b/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/widgets/timegraph/TimeGraphViewer.java index 6b2ed5a528..4dad5f34f6 100644 --- a/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/widgets/timegraph/TimeGraphViewer.java +++ b/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/widgets/timegraph/TimeGraphViewer.java @@ -31,7 +31,7 @@ import org.eclipse.linuxtools.tmf.ui.widgets.timegraph.dialogs.TimeGraphLegend; import org.eclipse.linuxtools.tmf.ui.widgets.timegraph.model.ILinkEvent; import org.eclipse.linuxtools.tmf.ui.widgets.timegraph.model.ITimeEvent; import org.eclipse.linuxtools.tmf.ui.widgets.timegraph.model.ITimeGraphEntry; -import org.eclipse.linuxtools.tmf.ui.widgets.timegraph.widgets.ITimeDataProvider2; +import org.eclipse.linuxtools.tmf.ui.widgets.timegraph.widgets.ITimeDataProvider; import org.eclipse.linuxtools.tmf.ui.widgets.timegraph.widgets.TimeGraphColorScheme; import org.eclipse.linuxtools.tmf.ui.widgets.timegraph.widgets.TimeGraphControl; import org.eclipse.linuxtools.tmf.ui.widgets.timegraph.widgets.TimeGraphScale; @@ -64,7 +64,7 @@ import org.eclipse.swt.widgets.Slider; * @version 1.0 * @author Patrick Tasse, and others */ -public class TimeGraphViewer implements ITimeDataProvider2, SelectionListener { +public class TimeGraphViewer implements ITimeDataProvider, SelectionListener { private static final int DEFAULT_NAME_WIDTH = 200; private static final int MIN_NAME_WIDTH = 6; @@ -601,13 +601,6 @@ public class TimeGraphViewer implements ITimeDataProvider2, SelectionListener { return w - fNameWidth; } - @SuppressWarnings("deprecation") - @Deprecated - @Override - public long getSelectedTime() { - return fSelectionBegin; - } - @Override public long getBeginTime() { return fBeginTime; diff --git a/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/widgets/timegraph/widgets/ITimeDataProvider.java b/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/widgets/timegraph/widgets/ITimeDataProvider.java index dd2a197efd..9921308367 100644 --- a/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/widgets/timegraph/widgets/ITimeDataProvider.java +++ b/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/widgets/timegraph/widgets/ITimeDataProvider.java @@ -1,5 +1,6 @@ /***************************************************************************** - * Copyright (c) 2007, 2013 Intel Corporation, Ericsson. + * Copyright (c) 2007, 2014 Intel Corporation, 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 @@ -9,7 +10,8 @@ * Intel Corporation - Initial API and implementation * Ruslan A. Scherbakov, Intel - Initial API and implementation * Alvaro Sanchez-Leon - Updated for TMF - * Patrick Tasse - Refactoring + * Geneviève Bastien - Added methods to save a time range selection + * Patrick Tasse - Refactoring, support for range selection *****************************************************************************/ package org.eclipse.linuxtools.tmf.ui.widgets.timegraph.widgets; @@ -27,12 +29,35 @@ import org.eclipse.linuxtools.tmf.ui.widgets.timegraph.widgets.Utils.TimeFormat; public interface ITimeDataProvider { /** - * @return The selected time + * Updates the selection begin and end time and notifies any registered + * listeners about the new time range (if necessary) + * + * @param beginTime the selection begin time + * @param endTime the selection end time + * @since 3.0 + */ + void setSelectionRangeNotify(long beginTime, long endTime); + + /** + * Updates the selection begin and end time * - * @deprecated As of 2.1, replaced by {@link ITimeDataProvider2#getSelectionBegin()} and {@link ITimeDataProvider2#getSelectionEnd()} + * @param beginTime the selection begin time + * @param endTime the selection end time + * @since 3.0 + */ + void setSelectionRange(long beginTime, long endTime); + + /** + * @return The begin time of the current selection + * @since 3.0 + */ + long getSelectionBegin(); + + /** + * @return The end time of the current selection + * @since 3.0 */ - @Deprecated - long getSelectedTime(); + long getSelectionEnd(); /** * @return The beginning time diff --git a/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/widgets/timegraph/widgets/ITimeDataProvider2.java b/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/widgets/timegraph/widgets/ITimeDataProvider2.java deleted file mode 100644 index 946f77ff95..0000000000 --- a/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/widgets/timegraph/widgets/ITimeDataProvider2.java +++ /dev/null @@ -1,52 +0,0 @@ -/***************************************************************************** - * Copyright (c) 2013 É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: - * Geneviève Bastien - Added methods to save a time range selection - * Patrick Tasse - Support for range selection - *****************************************************************************/ - -package org.eclipse.linuxtools.tmf.ui.widgets.timegraph.widgets; - - -/** - * Extension of the ITimeDateProvider interface to avoid API breakage - * - * @version 1.0 - * @TODO: Move these to the ITimeDateProvider interface when API 3.0 is reached - * @since 2.1 - */ -public interface ITimeDataProvider2 extends ITimeDataProvider { - - /** - * Updates the selection begin and end time and notifies any registered - * listeners about the new time range (if necessary) - * - * @param beginTime the selection begin time - * @param endTime the selection end time - */ - void setSelectionRangeNotify(long beginTime, long endTime); - - /** - * Updates the selection begin and end time - * - * @param beginTime the selection begin time - * @param endTime the selection end time - */ - void setSelectionRange(long beginTime, long endTime); - - /** - * @return The begin time of the current selection - */ - long getSelectionBegin(); - - /** - * @return The end time of the current selection - */ - long getSelectionEnd(); - -} diff --git a/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/widgets/timegraph/widgets/TimeGraphControl.java b/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/widgets/timegraph/widgets/TimeGraphControl.java index cfb6fd93fa..dbb2dda523 100644 --- a/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/widgets/timegraph/widgets/TimeGraphControl.java +++ b/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/widgets/timegraph/widgets/TimeGraphControl.java @@ -640,18 +640,12 @@ public class TimeGraphControl extends TimeGraphBaseControl } } - @SuppressWarnings("deprecation") @Override public ISelection getSelection() { TimeGraphSelection sel = new TimeGraphSelection(); ITimeGraphEntry trace = getSelectedTrace(); if (null != trace && null != fTimeProvider) { - long selectedTime; - if (fTimeProvider instanceof ITimeDataProvider2) { - selectedTime = ((ITimeDataProvider2) fTimeProvider).getSelectionBegin(); - } else { - selectedTime = fTimeProvider.getSelectedTime(); - } + long selectedTime = fTimeProvider.getSelectionBegin(); ITimeEvent event = Utils.findEvent(trace, selectedTime, 0); if (event != null) { sel.add(event); @@ -736,14 +730,7 @@ public class TimeGraphControl extends TimeGraphBaseControl if (trace == null) { return; } - long selectedTime; - if (fTimeProvider instanceof ITimeDataProvider2) { - selectedTime = ((ITimeDataProvider2) fTimeProvider).getSelectionBegin(); - } else { - @SuppressWarnings("deprecation") - long time = fTimeProvider.getSelectedTime(); - selectedTime = time; - } + long selectedTime = fTimeProvider.getSelectionBegin(); long endTime = fTimeProvider.getEndTime(); ITimeEvent nextEvent; if (-1 == n && selectedTime > endTime) { @@ -855,15 +842,8 @@ public class TimeGraphControl extends TimeGraphBaseControl if (prevRange == 0) { return; } - long selTime; - if (fTimeProvider instanceof ITimeDataProvider2) { - ITimeDataProvider2 provider = ((ITimeDataProvider2) fTimeProvider); - selTime = (provider.getSelectionEnd() + provider.getSelectionBegin()) / 2; - } else { - @SuppressWarnings("deprecation") - long selectedTime = fTimeProvider.getSelectedTime(); - selTime = selectedTime; - } + ITimeDataProvider provider = fTimeProvider; + long selTime = (provider.getSelectionEnd() + provider.getSelectionBegin()) / 2; if (selTime <= prevTime0 || selTime >= prevTime1) { selTime = (prevTime0 + prevTime1) / 2; } @@ -892,15 +872,8 @@ public class TimeGraphControl extends TimeGraphBaseControl public void zoomOut() { long prevTime0 = fTimeProvider.getTime0(); long prevTime1 = fTimeProvider.getTime1(); - long selTime; - if (fTimeProvider instanceof ITimeDataProvider2) { - ITimeDataProvider2 provider = ((ITimeDataProvider2) fTimeProvider); - selTime = (provider.getSelectionEnd() + provider.getSelectionBegin()) / 2; - } else { - @SuppressWarnings("deprecation") - long selectedTime = fTimeProvider.getSelectedTime(); - selTime = selectedTime; - } + ITimeDataProvider provider = fTimeProvider; + long selTime = (provider.getSelectionEnd() + provider.getSelectionBegin()) / 2; if (selTime <= prevTime0 || selTime >= prevTime1) { selTime = (prevTime0 + prevTime1) / 2; } @@ -937,7 +910,7 @@ public class TimeGraphControl extends TimeGraphBaseControl if (trace == null) { return; } - long selectedTime = ((ITimeDataProvider2) fTimeProvider).getSelectionBegin(); + long selectedTime = fTimeProvider.getSelectionBegin(); for (ILinkEvent link : fItemData.fLinks) { if (link.getEntry() == trace && link.getTime() == selectedTime) { selectItem(link.getDestinationEntry(), false); @@ -963,7 +936,7 @@ public class TimeGraphControl extends TimeGraphBaseControl if (trace == null) { return; } - long selectedTime = ((ITimeDataProvider2) fTimeProvider).getSelectionBegin(); + long selectedTime = fTimeProvider.getSelectionBegin(); for (ILinkEvent link : fItemData.fLinks) { if (link.getDestinationEntry() == trace && link.getTime() + link.getDuration() == selectedTime) { selectItem(link.getEntry(), false); @@ -1250,17 +1223,8 @@ public class TimeGraphControl extends TimeGraphBaseControl long time0 = fTimeProvider.getTime0(); long time1 = fTimeProvider.getTime1(); - long selectionBegin; - long selectionEnd; - if (fTimeProvider instanceof ITimeDataProvider2) { - selectionBegin = ((ITimeDataProvider2) fTimeProvider).getSelectionBegin(); - selectionEnd = ((ITimeDataProvider2) fTimeProvider).getSelectionEnd(); - } else { - @SuppressWarnings("deprecation") - long selectedTime = fTimeProvider.getSelectedTime(); - selectionBegin = selectedTime; - selectionEnd = selectedTime; - } + long selectionBegin = fTimeProvider.getSelectionBegin(); + long selectionEnd = fTimeProvider.getSelectionEnd(); double pixelsPerNanoSec = (bounds.width - nameSpace <= RIGHT_MARGIN) ? 0 : (double) (bounds.width - nameSpace - RIGHT_MARGIN) / (time1 - time0); int x0 = bounds.x + nameSpace + (int) ((selectionBegin - time0) * pixelsPerNanoSec); int x1 = bounds.x + nameSpace + (int) ((selectionEnd - time0) * pixelsPerNanoSec); @@ -1362,14 +1326,7 @@ public class TimeGraphControl extends TimeGraphBaseControl ITimeGraphEntry entry = item.fTrace; long time0 = timeProvider.getTime0(); long time1 = timeProvider.getTime1(); - long selectedTime; - if (fTimeProvider instanceof ITimeDataProvider2) { - selectedTime = ((ITimeDataProvider2) fTimeProvider).getSelectionBegin(); - } else { - @SuppressWarnings("deprecation") - long time = fTimeProvider.getSelectedTime(); - selectedTime = time; - } + long selectedTime = fTimeProvider.getSelectionBegin(); Rectangle nameRect = getNameRect(bounds, i, nameSpace); if (nameRect.y >= bounds.y + bounds.height) { @@ -1916,15 +1873,13 @@ public class TimeGraphControl extends TimeGraphBaseControl cursor = fDragCursor; } else if ((stateMask & SWT.MODIFIER_MASK) == SWT.SHIFT) { cursor = fResizeCursor; - } else { - if (!isOverSplitLine(x) &&fTimeProvider instanceof ITimeDataProvider2) { - long selectionBegin = ((ITimeDataProvider2) fTimeProvider).getSelectionBegin(); - long selectionEnd = ((ITimeDataProvider2) fTimeProvider).getSelectionEnd(); - int xBegin = getXForTime(selectionBegin); - int xEnd = getXForTime(selectionEnd); - if (Math.abs(x - xBegin) < SNAP_WIDTH || Math.abs(x - xEnd) < SNAP_WIDTH) { - cursor = fResizeCursor; - } + } else if (!isOverSplitLine(x)) { + long selectionBegin = fTimeProvider.getSelectionBegin(); + long selectionEnd = fTimeProvider.getSelectionEnd(); + int xBegin = getXForTime(selectionBegin); + int xEnd = getXForTime(selectionEnd); + if (Math.abs(x - xBegin) < SNAP_WIDTH || Math.abs(x - xEnd) < SNAP_WIDTH) { + cursor = fResizeCursor; } } if (getCursor() != cursor) { @@ -1944,20 +1899,14 @@ public class TimeGraphControl extends TimeGraphBaseControl message.append("T: "); //$NON-NLS-1$ message.append(new TmfNanoTimestamp(time).toString()); message.append(" T1: "); //$NON-NLS-1$ - if (fTimeProvider instanceof ITimeDataProvider2) { - long selectionBegin = ((ITimeDataProvider2) fTimeProvider).getSelectionBegin(); - long selectionEnd = ((ITimeDataProvider2) fTimeProvider).getSelectionEnd(); - message.append(new TmfNanoTimestamp(Math.min(selectionBegin, selectionEnd)).toString()); - if (selectionBegin != selectionEnd) { - message.append(" T2: "); //$NON-NLS-1$ - message.append(new TmfNanoTimestamp(Math.max(selectionBegin, selectionEnd)).toString()); - message.append(" \u0394: "); //$NON-NLS-1$ - message.append(new TmfTimestampDelta(Math.abs(selectionBegin - selectionEnd), ITmfTimestamp.NANOSECOND_SCALE)); - } - } else { - @SuppressWarnings("deprecation") - long selectedTime = fTimeProvider.getSelectedTime(); - message.append(new TmfNanoTimestamp(selectedTime)); + long selectionBegin = fTimeProvider.getSelectionBegin(); + long selectionEnd = fTimeProvider.getSelectionEnd(); + message.append(new TmfNanoTimestamp(Math.min(selectionBegin, selectionEnd)).toString()); + if (selectionBegin != selectionEnd) { + message.append(" T2: "); //$NON-NLS-1$ + message.append(new TmfNanoTimestamp(Math.max(selectionBegin, selectionEnd)).toString()); + message.append(" \u0394: "); //$NON-NLS-1$ + message.append(new TmfTimestampDelta(Math.abs(selectionBegin - selectionEnd), ITmfTimestamp.NANOSECOND_SCALE)); } } } else if (fDragState == DRAG_SELECTION || fDragState == DRAG_ZOOM) { @@ -2003,11 +1952,9 @@ public class TimeGraphControl extends TimeGraphBaseControl fDragX = e.x; fTimeProvider.setNameSpace(e.x); } else if (DRAG_SELECTION == fDragState) { - if (fTimeProvider instanceof ITimeDataProvider2) { - fDragX = Math.min(Math.max(e.x, fTimeProvider.getNameSpace()), size.x - RIGHT_MARGIN); - redraw(); - fTimeGraphScale.setDragRange(fDragX0, fDragX); - } + fDragX = Math.min(Math.max(e.x, fTimeProvider.getNameSpace()), size.x - RIGHT_MARGIN); + redraw(); + fTimeGraphScale.setDragRange(fDragX0, fDragX); } else if (DRAG_ZOOM == fDragState) { fDragX = Math.min(Math.max(e.x, fTimeProvider.getNameSpace()), size.x - RIGHT_MARGIN); redraw(); @@ -2092,29 +2039,27 @@ public class TimeGraphControl extends TimeGraphBaseControl fDragX = e.x; fDragX0 = fDragX; fDragTime0 = getTimeAtX(fDragX0); - if (fTimeProvider instanceof ITimeDataProvider2) { - long selectionBegin = ((ITimeDataProvider2) fTimeProvider).getSelectionBegin(); - long selectionEnd = ((ITimeDataProvider2) fTimeProvider).getSelectionEnd(); - int xBegin = getXForTime(selectionBegin); - int xEnd = getXForTime(selectionEnd); - if ((e.stateMask & SWT.MODIFIER_MASK) == SWT.SHIFT) { - long time = getTimeAtX(e.x); - if (Math.abs(time - selectionBegin) < Math.abs(time - selectionEnd)) { - fDragX0 = xEnd; - fDragTime0 = selectionEnd; - } else { - fDragX0 = xBegin; - fDragTime0 = selectionBegin; - } + long selectionBegin = fTimeProvider.getSelectionBegin(); + long selectionEnd = fTimeProvider.getSelectionEnd(); + int xBegin = getXForTime(selectionBegin); + int xEnd = getXForTime(selectionEnd); + if ((e.stateMask & SWT.MODIFIER_MASK) == SWT.SHIFT) { + long time = getTimeAtX(e.x); + if (Math.abs(time - selectionBegin) < Math.abs(time - selectionEnd)) { + fDragX0 = xEnd; + fDragTime0 = selectionEnd; } else { - long time = getTimeAtX(e.x); - if (Math.abs(e.x - xBegin) < SNAP_WIDTH && Math.abs(time - selectionBegin) <= Math.abs(time - selectionEnd)) { - fDragX0 = xEnd; - fDragTime0 = selectionEnd; - } else if (Math.abs(e.x - xEnd) < SNAP_WIDTH && Math.abs(time - selectionEnd) <= Math.abs(time - selectionBegin)) { - fDragX0 = xBegin; - fDragTime0 = selectionBegin; - } + fDragX0 = xBegin; + fDragTime0 = selectionBegin; + } + } else { + long time = getTimeAtX(e.x); + if (Math.abs(e.x - xBegin) < SNAP_WIDTH && Math.abs(time - selectionBegin) <= Math.abs(time - selectionEnd)) { + fDragX0 = xEnd; + fDragTime0 = selectionEnd; + } else if (Math.abs(e.x - xEnd) < SNAP_WIDTH && Math.abs(time - selectionEnd) <= Math.abs(time - selectionBegin)) { + fDragX0 = xBegin; + fDragTime0 = selectionBegin; } } fTime0bak = fTimeProvider.getTime0(); @@ -2170,9 +2115,9 @@ public class TimeGraphControl extends TimeGraphBaseControl long time0 = fDragTime0; long time1 = getTimeAtX(fDragX); if (time0 <= time1) { - ((ITimeDataProvider2) fTimeProvider).setSelectionRangeNotify(time0, time1); + fTimeProvider.setSelectionRangeNotify(time0, time1); } else { - ((ITimeDataProvider2) fTimeProvider).setSelectionRangeNotify(time1, time0); + fTimeProvider.setSelectionRangeNotify(time1, time0); } } fDragState = DRAG_NONE; diff --git a/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/widgets/timegraph/widgets/TimeGraphScale.java b/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/widgets/timegraph/widgets/TimeGraphScale.java index 0cd8d65d29..1dda20588f 100644 --- a/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/widgets/timegraph/widgets/TimeGraphScale.java +++ b/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/widgets/timegraph/widgets/TimeGraphScale.java @@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (c) 2007, 2013 Intel Corporation, Ericsson + * Copyright (c) 2007, 2014 Intel Corporation, 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 @@ -312,17 +312,10 @@ public class TimeGraphScale extends TimeGraphBaseControl implements } else { int x1; int x2; - if (fTimeProvider instanceof ITimeDataProvider2) { - long selectionBegin = ((ITimeDataProvider2) fTimeProvider).getSelectionBegin(); - long selectionEnd = ((ITimeDataProvider2) fTimeProvider).getSelectionEnd(); - x1 = leftSpace + (int) ((selectionBegin - time0) * pixelsPerNanoSec); - x2 = leftSpace + (int) ((selectionEnd - time0) * pixelsPerNanoSec); - } else { - @SuppressWarnings("deprecation") - long selectedTime = fTimeProvider.getSelectedTime(); - x1 = leftSpace + (int) ((selectedTime - time0) * pixelsPerNanoSec); - x2 = x1; - } + long selectionBegin = fTimeProvider.getSelectionBegin(); + long selectionEnd = fTimeProvider.getSelectionEnd(); + x1 = leftSpace + (int) ((selectionBegin - time0) * pixelsPerNanoSec); + x2 = leftSpace + (int) ((selectionEnd - time0) * pixelsPerNanoSec); drawRangeDecorators(rect0, gc, x1, x2); } -- 2.34.1