aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGeneviève Bastien2013-07-10 11:07:41 (EDT)
committerGenevieve Bastien2013-08-05 08:24:45 (EDT)
commit47ac3028c280d75469f81a90c212d38bc48fb72d (patch)
tree840941f90e975ab59d0ff24d1c9e21eed6360eab
parent3ceff6ab55ed91637ddcb4233edb28c79a3a7ae4 (diff)
downloadorg.eclipse.linuxtools-47ac3028c280d75469f81a90c212d38bc48fb72d.zip
org.eclipse.linuxtools-47ac3028c280d75469f81a90c212d38bc48fb72d.tar.gz
org.eclipse.linuxtools-47ac3028c280d75469f81a90c212d38bc48fb72d.tar.bz2
TMF: Add vertical events (links) to time graph viewrefs/changes/05/15105/2
Add a new interface ILinkEvent and class TimeLinkEvent, for events that occur between two entries instead of in one entry only. Add the getLinkList method to AbstractTimeGraphView to get the links for a given zoom level and other methods to propagate those changes to the time graph control Change-Id: I5be30c4a27a10645a57ebfc13b4d1c71a55e06bd Signed-off-by: Geneviève Bastien <gbastien+lttng@versatic.net> Reviewed-on: https://git.eclipse.org/r/15105 Tested-by: Hudson CI Reviewed-by: Patrick Tasse <patrick.tasse@gmail.com> IP-Clean: Patrick Tasse <patrick.tasse@gmail.com>
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/views/callstack/CallStackEvent.java2
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/views/timegraph/AbstractTimeGraphView.java29
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/widgets/timegraph/TimeGraphCombo.java12
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/widgets/timegraph/TimeGraphViewer.java17
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/widgets/timegraph/model/ILinkEvent.java29
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/widgets/timegraph/model/TimeLinkEvent.java68
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/widgets/timegraph/widgets/TimeGraphControl.java150
7 files changed, 304 insertions, 3 deletions
diff --git a/lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/views/callstack/CallStackEvent.java b/lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/views/callstack/CallStackEvent.java
index ed5497b..96e030c 100644
--- a/lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/views/callstack/CallStackEvent.java
+++ b/lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/views/callstack/CallStackEvent.java
@@ -53,6 +53,6 @@ public class CallStackEvent extends TimeEvent {
@Override
public String toString() {
- return getClass().getSimpleName() + " start=" + fTime + " end=" + (fTime + fDuration) + " duration=" + fDuration + " value=" + fValue; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
+ return getClass().getSimpleName() + " start=" + getTime() + " end=" + (getTime() + getDuration()) + " duration=" + getDuration() + " value=" + fValue; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
}
}
diff --git a/lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/views/timegraph/AbstractTimeGraphView.java b/lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/views/timegraph/AbstractTimeGraphView.java
index b054c92..ae8cc3b 100644
--- a/lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/views/timegraph/AbstractTimeGraphView.java
+++ b/lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/views/timegraph/AbstractTimeGraphView.java
@@ -11,6 +11,7 @@
* Bernd Hufmann - Updated signal handling
* Geneviève Bastien - Move code to provide base classes for time graph view
* Marc-Andre Laperle - Add time zone preference
+ * Geneviève Bastien - Add event links between entries
*******************************************************************************/
package org.eclipse.linuxtools.tmf.ui.views.timegraph;
@@ -53,6 +54,7 @@ import org.eclipse.linuxtools.tmf.ui.widgets.timegraph.TimeGraphPresentationProv
import org.eclipse.linuxtools.tmf.ui.widgets.timegraph.TimeGraphRangeUpdateEvent;
import org.eclipse.linuxtools.tmf.ui.widgets.timegraph.TimeGraphSelectionEvent;
import org.eclipse.linuxtools.tmf.ui.widgets.timegraph.TimeGraphTimeEvent;
+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.model.TimeGraphEntry;
@@ -273,6 +275,7 @@ public abstract class AbstractTimeGraphView extends TmfView {
* the trace to add
* @param list
* The list of time graph entries
+ * @since 2.1
*/
protected void putEntryList(ITmfTrace trace, List<TimeGraphEntry> list) {
synchronized(fEntryListMap) {
@@ -446,6 +449,10 @@ public abstract class AbstractTimeGraphView extends TmfView {
}
zoom(entry, fMonitor);
}
+ /* Refresh the arrows when zooming */
+ List<ILinkEvent> events = getLinkList(fZoomStartTime, fZoomEndTime, fResolution, fMonitor);
+ fTimeGraphCombo.setLinks(events);
+ redraw();
}
private void zoom(TimeGraphEntry entry, IProgressMonitor monitor) {
@@ -694,6 +701,7 @@ public abstract class AbstractTimeGraphView extends TmfView {
/**
* @param signal the format of the timestamps was updated.
+ * @since 2.1
*/
@TmfSignalHandler
public void updateTimeFormat( final TmfTimestampFormatUpdateSignal signal){
@@ -764,6 +772,27 @@ public abstract class AbstractTimeGraphView extends TmfView {
IProgressMonitor monitor);
/**
+ * Gets the list of links (displayed as arrows) for a trace in a given
+ * timerange. Default implementation returns an empty list.
+ *
+ * @param startTime
+ * Start of the time range
+ * @param endTime
+ * End of the time range
+ * @param resolution
+ * The resolution
+ * @param monitor
+ * The progress monitor object
+ * @return The list of link events
+ * @since 2.1
+ */
+ protected List<ILinkEvent> getLinkList(long startTime, long endTime,
+ long resolution, IProgressMonitor monitor) {
+ return new ArrayList<ILinkEvent>();
+ }
+
+
+ /**
* Refresh the display
*/
protected void refresh() {
diff --git a/lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/widgets/timegraph/TimeGraphCombo.java b/lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/widgets/timegraph/TimeGraphCombo.java
index 2c695fc..1497de7 100644
--- a/lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/widgets/timegraph/TimeGraphCombo.java
+++ b/lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/widgets/timegraph/TimeGraphCombo.java
@@ -9,6 +9,7 @@
* Contributors:
* Patrick Tasse - Initial API and implementation
* François Rajotte - Filter implementation
+ * Geneviève Bastien - Add event links between entries
*******************************************************************************/
package org.eclipse.linuxtools.tmf.ui.widgets.timegraph;
@@ -36,6 +37,7 @@ import org.eclipse.linuxtools.internal.tmf.ui.Activator;
import org.eclipse.linuxtools.internal.tmf.ui.ITmfImageConstants;
import org.eclipse.linuxtools.internal.tmf.ui.Messages;
import org.eclipse.linuxtools.tmf.ui.widgets.timegraph.dialogs.TimeGraphFilterDialog;
+import org.eclipse.linuxtools.tmf.ui.widgets.timegraph.model.ILinkEvent;
import org.eclipse.linuxtools.tmf.ui.widgets.timegraph.model.ITimeGraphEntry;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.SashForm;
@@ -831,6 +833,16 @@ public class TimeGraphCombo extends Composite {
}
/**
+ * Sets or clears the list of links to display on this combo
+ *
+ * @param links the links to display in this time graph combo
+ * @since 2.1
+ */
+ public void setLinks(List<ILinkEvent> links) {
+ fTimeGraphViewer.setLinks(links);
+ }
+
+ /**
* @param filter The filter object to be attached to the view
* @since 2.0
*/
diff --git a/lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/widgets/timegraph/TimeGraphViewer.java b/lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/widgets/timegraph/TimeGraphViewer.java
index 16bcab2..cbbb5b2 100644
--- a/lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/widgets/timegraph/TimeGraphViewer.java
+++ b/lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/widgets/timegraph/TimeGraphViewer.java
@@ -1,5 +1,5 @@
/*****************************************************************************
- * Copyright (c) 2007, 2013 Intel Corporation, Ericsson
+ * Copyright (c) 2007, 2013 Intel Corporation, Ericsson, others
* 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
@@ -11,6 +11,7 @@
* Alexander N. Alexeev, Intel - Add monitors statistics support
* Alvaro Sanchez-Leon - Adapted for TMF
* Patrick Tasse - Refactoring
+ * Geneviève Bastien - Add event links between entries
*****************************************************************************/
package org.eclipse.linuxtools.tmf.ui.widgets.timegraph;
@@ -25,6 +26,7 @@ import org.eclipse.linuxtools.internal.tmf.ui.Activator;
import org.eclipse.linuxtools.internal.tmf.ui.ITmfImageConstants;
import org.eclipse.linuxtools.internal.tmf.ui.Messages;
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;
@@ -158,6 +160,19 @@ public class TimeGraphViewer implements ITimeDataProvider2, SelectionListener {
}
/**
+ * Sets (or clears if null) the list of links to display on this combo
+ *
+ * @param links
+ * the links to display in this time graph combo
+ * @since 2.1
+ */
+ public void setLinks(List<ILinkEvent> links) {
+ if (fTimeGraphCtrl != null) {
+ fTimeGraphCtrl.refreshArrows(links);
+ }
+ }
+
+ /**
* Refresh the view
*/
public void refresh() {
diff --git a/lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/widgets/timegraph/model/ILinkEvent.java b/lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/widgets/timegraph/model/ILinkEvent.java
new file mode 100644
index 0000000..cdb9461
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/widgets/timegraph/model/ILinkEvent.java
@@ -0,0 +1,29 @@
+/*******************************************************************************
+ * Copyright (c) 2013 École Polytechnique de Montréal
+ *
+ * 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 - Initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.linuxtools.tmf.ui.widgets.timegraph.model;
+
+/**
+ * Interface for time event that allows to specify the destination entry of the
+ * event
+ *
+ * @since 2.1
+ */
+public interface ILinkEvent extends ITimeEvent {
+
+ /**
+ * Get this event's destination entry
+ *
+ * @return The destination entry
+ */
+ ITimeGraphEntry getDestinationEntry();
+}
diff --git a/lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/widgets/timegraph/model/TimeLinkEvent.java b/lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/widgets/timegraph/model/TimeLinkEvent.java
new file mode 100644
index 0000000..0f2cb97
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/widgets/timegraph/model/TimeLinkEvent.java
@@ -0,0 +1,68 @@
+/*******************************************************************************
+ * Copyright (c) 2013 École Polytechnique de Montréal
+ *
+ * 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 - Initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.linuxtools.tmf.ui.widgets.timegraph.model;
+
+/**
+ * TimeEvent implementation for events that do not involve only one entry, they
+ * have a source entry and destination entry
+ *
+ * @since 2.1
+ */
+public class TimeLinkEvent extends TimeEvent implements ILinkEvent {
+
+ /** TimeGraphEntry matching the destination this time event */
+ private ITimeGraphEntry fDestEntry;
+
+ /**
+ * Standard constructor
+ *
+ * @param src
+ * The source entry of this event
+ * @param dst
+ * The destination entry of this event
+ * @param time
+ * The timestamp of this event
+ * @param duration
+ * The duration of the event
+ */
+ public TimeLinkEvent(ITimeGraphEntry src, ITimeGraphEntry dst, long time, long duration) {
+ super(src, time, duration);
+ fDestEntry = dst;
+ }
+
+ /**
+ * Constructor
+ *
+ * @param src
+ * The source entry of this event
+ * @param dst
+ * The destination entry of this event
+ * @param time
+ * The timestamp of this event
+ * @param duration
+ * The duration of this event
+ * @param value
+ * The status assigned to the event
+ */
+ public TimeLinkEvent(ITimeGraphEntry src, ITimeGraphEntry dst, long time, long duration,
+ int value) {
+ super(src, time, duration, value);
+ fDestEntry = dst;
+ }
+
+ @Override
+ public ITimeGraphEntry getDestinationEntry() {
+ return fDestEntry;
+ }
+
+}
diff --git a/lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/widgets/timegraph/widgets/TimeGraphControl.java b/lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/widgets/timegraph/widgets/TimeGraphControl.java
index 52f24d4..0ec43a6 100644
--- a/lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/widgets/timegraph/widgets/TimeGraphControl.java
+++ b/lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/widgets/timegraph/widgets/TimeGraphControl.java
@@ -13,6 +13,7 @@
* Patrick Tasse, Ericsson - Refactoring
* Geneviève Bastien, École Polytechnique de Montréal - Move code to
* provide base classes for time graph view
+ * Add display of links between items
*****************************************************************************/
package org.eclipse.linuxtools.tmf.ui.widgets.timegraph.widgets;
@@ -37,6 +38,7 @@ import org.eclipse.linuxtools.tmf.ui.widgets.timegraph.ITimeGraphPresentationPro
import org.eclipse.linuxtools.tmf.ui.widgets.timegraph.ITimeGraphTreeListener;
import org.eclipse.linuxtools.tmf.ui.widgets.timegraph.StateItem;
import org.eclipse.linuxtools.tmf.ui.widgets.timegraph.TimeGraphTreeExpansionEvent;
+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.swt.SWT;
@@ -375,6 +377,16 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
}
/**
+ * Refresh the links (arrows) of this widget
+ *
+ * @param events The link events to refresh
+ * @since 2.1
+ */
+ public void refreshArrows(List<ILinkEvent> events) {
+ fItemData.refreshArrows(events);
+ }
+
+ /**
* Adjust the scoll bars
*/
public void adjustScrolls() {
@@ -1174,6 +1186,8 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
// draw items
drawItems(bounds, fTimeProvider, fItemData.fExpandedItems, fTopIndex, nameSpace, gc);
+ drawLinks(bounds, fTimeProvider, fItemData.fLinks, nameSpace, gc);
+ fTimeGraphProvider.postDrawControl(bounds, gc);
int alpha = gc.getAlpha();
gc.setAlpha(100);
@@ -1276,7 +1290,6 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
Item item = items[i];
drawItem(item, bounds, timeProvider, i, nameSpace, gc);
}
- fTimeGraphProvider.postDrawControl(bounds, gc);
}
/**
@@ -1371,6 +1384,131 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
}
/**
+ * Draw the links
+ *
+ * @param bounds
+ * The rectangle of the area
+ * @param timeProvider
+ * The time provider
+ * @param links
+ * The array items to draw
+ * @param nameSpace
+ * The width reserved for the names
+ * @param gc
+ * Reference to the SWT GC object
+ * @since 2.1
+ */
+ public void drawLinks(Rectangle bounds, ITimeDataProvider timeProvider,
+ List<ILinkEvent> links, int nameSpace, GC gc) {
+ for (ILinkEvent event : links) {
+ drawLink(event, bounds, timeProvider, nameSpace, gc);
+ }
+ }
+
+ /**
+ * Draws the link type events of this item
+ *
+ * @param event
+ * the item to draw
+ * @param bounds
+ * the container rectangle
+ * @param timeProvider
+ * Time provider
+ * @param nameSpace
+ * the name space
+ * @param gc
+ * Graphics context
+ * @since 2.1
+ */
+ protected void drawLink(ILinkEvent event, Rectangle bounds, ITimeDataProvider timeProvider, int nameSpace, GC gc) {
+ int srcIndex = fItemData.findItemIndex(event.getEntry());
+ int destIndex = fItemData.findItemIndex(event.getDestinationEntry());
+
+ if ((srcIndex == -1) || (destIndex == -1)) {
+ return;
+ }
+
+ Rectangle src = getStatesRect(bounds, srcIndex, nameSpace);
+ Rectangle dst = getStatesRect(bounds, destIndex, nameSpace);
+
+ int x0 = getXForTime(event.getTime());
+ int x1 = getXForTime(event.getTime() + event.getDuration());
+ int y0 = src.y + src.height / 2;
+ int y1 = dst.y + dst.height / 2;
+ drawArrow(getColorScheme(), event, new Rectangle(x0, y0, x1 - x0, y1 - y0), gc);
+ }
+
+ /**
+ * Draw the state (color fill)
+ *
+ * @param colors
+ * Color scheme
+ * @param event
+ * Time event for which we're drawing the state
+ * @param rect
+ * Where to draw
+ * @param gc
+ * Graphics context
+ * @return true if the state was drawn
+ * @since 2.1
+ */
+ protected boolean drawArrow(TimeGraphColorScheme colors, ITimeEvent event,
+ Rectangle rect, GC gc) {
+
+ int colorIdx = fTimeGraphProvider.getStateTableIndex(event);
+ if (colorIdx < 0) {
+ return false;
+ }
+ boolean visible = ((rect.height == 0) && (rect.width == 0)) ? false : true;
+
+ if (visible) {
+ Color stateColor = null;
+ if (colorIdx < fEventColorMap.length) {
+ stateColor = fEventColorMap[colorIdx];
+ } else {
+ stateColor = Display.getDefault().getSystemColor(SWT.COLOR_BLACK);
+ }
+
+ gc.setForeground(stateColor);
+ gc.setBackground(stateColor);
+
+ /* Draw the arrow */
+ gc.drawLine(rect.x, rect.y, rect.x + rect.width, rect.y + rect.height);
+ drawArrowHead(rect.x, rect.y, rect.x + rect.width, rect.y + rect.height, gc);
+
+ }
+ fTimeGraphProvider.postDrawEvent(event, rect, gc);
+ return visible;
+ }
+
+ /*
+ * @author Francis Giraldeau
+ *
+ * Inspiration:
+ * http://stackoverflow.com/questions/3010803/draw-arrow-on-line-algorithm
+ *
+ * The algorithm was taken from this site, not the code itself
+ */
+ private static void drawArrowHead(int x0, int y0, int x1, int y1, GC gc)
+ {
+ int factor = 10;
+ double cos = 0.9510;
+ double sin = 0.3090;
+ int lenx = x1 - x0;
+ int leny = y1 - y0;
+ double len = Math.sqrt(lenx * lenx + leny * leny);
+
+ double dx = factor * lenx / len;
+ double dy = factor * leny / len;
+ int end1X = (int) Math.round((x1 - (dx * cos + dy * -sin)));
+ int end1Y = (int) Math.round((y1 - (dx * sin + dy * cos)));
+ int end2X = (int) Math.round((x1 - (dx * cos + dy * sin)));
+ int end2Y = (int) Math.round((y1 - (dx * -sin + dy * cos)));
+ int[] arrow = new int[] { x1, y1, end1X, end1Y, end2X, end2Y, x1, y1 };
+ gc.fillPolygon(arrow);
+ }
+
+ /**
* Draw the name of an item.
*
* @param item
@@ -2211,6 +2349,7 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
private Item[] fExpandedItems = new Item[0];
private Item[] fItems = new Item[0];
private ITimeGraphEntry fTraces[] = new ITimeGraphEntry[0];
+ private List<ILinkEvent> fLinks = new ArrayList<ILinkEvent>();
private boolean fTraceFilter[] = new boolean[0];
private final ArrayList<ITimeGraphEntry> fFilteredOut = new ArrayList<ITimeGraphEntry>();
@@ -2329,6 +2468,15 @@ public class TimeGraphControl extends TimeGraphBaseControl implements FocusListe
refreshData();
}
+ public void refreshArrows(List<ILinkEvent> events) {
+ /* If links are null, reset the list */
+ if (events != null) {
+ fLinks = events;
+ } else {
+ fLinks = new ArrayList<ILinkEvent>();
+ }
+ }
+
public ITimeGraphEntry[] getTraces() {
return fTraces;
}