diff options
author | Patrick Tasse | 2012-11-22 21:02:49 +0000 |
---|---|---|
committer | Patrick Tasse | 2012-11-23 21:15:19 +0000 |
commit | 568928280c5c0d5711e791418c92e57ff30bf5f8 (patch) | |
tree | 2a13a5ee62cefb69e529348483e3c8893e189eef /lttng/org.eclipse.linuxtools.lttng2.kernel.ui | |
parent | 2f3c1b761d999b8d5e19c98617bc28b08b504d09 (diff) | |
download | org.eclipse.linuxtools-568928280c5c0d5711e791418c92e57ff30bf5f8.tar.gz org.eclipse.linuxtools-568928280c5c0d5711e791418c92e57ff30bf5f8.tar.xz org.eclipse.linuxtools-568928280c5c0d5711e791418c92e57ff30bf5f8.zip |
Save and restore current time and range when switching traces
- ITmfTrace augmented with methods to return current time and current
range.
- TmfTrace implements the new interface.
- TmfTrace provides a method to return the default initial range offset
that can be overridden.
- TmfTrace initializes the time range when the first event is parsed.
- TmfTrace updates the current time and range on time and range synch
signals. The current time and range are only updated if they intersect
with the trace range.
- ControlFlowView uses the trace's current time and range when a trace
is selected.
- ResourcesView uses the trace's current time and range when a trace is
selected.
- HistogramView uses the trace's current time and range when a trace is
selected.
- TmfStatisticsViewer uses the trace's current range when a trace is
selected.
- TmfUml2SDSyncLoader uses the trace's current range when moving to a
new page.
- TimeChartView uses the trace's current time when a trace is selected.
- Reading of the first event to initialize the start time if moved from
TmfTrace.traceOpened() to TmfEventsEditor.createPartControl(), to ensure
that this always occurs before any signal handler is called regardless
of the order in which TmfTraceOpenedSignal is broadcast.
Change-Id: I82b5222521842fcbda28892f6e07c68a05dd8e2f
Reviewed-on: https://git.eclipse.org/r/8802
Tested-by: Hudson CI
Reviewed-by: Alexandre Montplaisir <alexmonthy@voxpopuli.im>
IP-Clean: Alexandre Montplaisir <alexmonthy@voxpopuli.im>
Tested-by: Alexandre Montplaisir <alexmonthy@voxpopuli.im>
Reviewed-by: Bernd Hufmann <bhufmann@gmail.com>
IP-Clean: Bernd Hufmann <bhufmann@gmail.com>
Tested-by: Bernd Hufmann <bhufmann@gmail.com>
Reviewed-by: Patrick Tasse <patrick.tasse@gmail.com>
Tested-by: Patrick Tasse <patrick.tasse@gmail.com>
Diffstat (limited to 'lttng/org.eclipse.linuxtools.lttng2.kernel.ui')
2 files changed, 24 insertions, 29 deletions
diff --git a/lttng/org.eclipse.linuxtools.lttng2.kernel.ui/src/org/eclipse/linuxtools/internal/lttng2/kernel/ui/views/controlflow/ControlFlowView.java b/lttng/org.eclipse.linuxtools.lttng2.kernel.ui/src/org/eclipse/linuxtools/internal/lttng2/kernel/ui/views/controlflow/ControlFlowView.java index e1b8c25a05..07867a0d55 100644 --- a/lttng/org.eclipse.linuxtools.lttng2.kernel.ui/src/org/eclipse/linuxtools/internal/lttng2/kernel/ui/views/controlflow/ControlFlowView.java +++ b/lttng/org.eclipse.linuxtools.lttng2.kernel.ui/src/org/eclipse/linuxtools/internal/lttng2/kernel/ui/views/controlflow/ControlFlowView.java @@ -86,11 +86,6 @@ public class ControlFlowView extends TmfView { */ public static final String ID = "org.eclipse.linuxtools.lttng2.kernel.ui.views.controlflow"; //$NON-NLS-1$ - /** - * Initial time range - */ - private static final long INITIAL_WINDOW_OFFSET = (1L * 100 * 1000 * 1000); // .1sec - private static final String PROCESS_COLUMN = Messages.ControlFlowView_processColumn; private static final String TID_COLUMN = Messages.ControlFlowView_tidColumn; private static final String PTID_COLUMN = Messages.ControlFlowView_ptidColumn; @@ -454,7 +449,7 @@ public class ControlFlowView extends TmfView { } else { fStartTime = fTrace.getStartTime().normalize(0, ITmfTimestamp.NANOSECOND_SCALE).getValue(); fEndTime = fTrace.getEndTime().normalize(0, ITmfTimestamp.NANOSECOND_SCALE).getValue(); - refresh(INITIAL_WINDOW_OFFSET); + refresh(); } } } @@ -482,7 +477,7 @@ public class ControlFlowView extends TmfView { if (fZoomThread != null) { fZoomThread.cancel(); } - refresh(INITIAL_WINDOW_OFFSET); + refresh(); } } @@ -692,7 +687,7 @@ public class ControlFlowView extends TmfView { fEntryListMap.put(trace, (ArrayList<ControlFlowEntry>) rootList.clone()); } if (trace == fTrace) { - refresh(INITIAL_WINDOW_OFFSET); + refresh(); } } for (ControlFlowEntry entry : rootList) { @@ -788,7 +783,7 @@ public class ControlFlowView extends TmfView { return eventList; } - private void refresh(final long windowRange) { + private void refresh() { Display.getDefault().asyncExec(new Runnable() { @Override public void run() { @@ -807,17 +802,19 @@ public class ControlFlowView extends TmfView { fTimeGraphCombo.setInput(entries); fTimeGraphCombo.getTimeGraphViewer().setTimeBounds(fStartTime, fEndTime); - long endTime = fStartTime + windowRange; + long timestamp = fTrace == null ? 0 : fTrace.getCurrentTime().normalize(0, ITmfTimestamp.NANOSECOND_SCALE).getValue(); + long startTime = fTrace == null ? 0 : fTrace.getCurrentRange().getStartTime().normalize(0, ITmfTimestamp.NANOSECOND_SCALE).getValue(); + long endTime = fTrace == null ? 0 : fTrace.getCurrentRange().getEndTime().normalize(0, ITmfTimestamp.NANOSECOND_SCALE).getValue(); + startTime = Math.max(startTime, fStartTime); + endTime = Math.min(endTime, fEndTime); + fTimeGraphCombo.getTimeGraphViewer().setSelectedTime(timestamp, false); + fTimeGraphCombo.getTimeGraphViewer().setStartFinishTime(startTime, endTime); - if (fEndTime < endTime) { - endTime = fEndTime; - } - fTimeGraphCombo.getTimeGraphViewer().setStartFinishTime(fStartTime, endTime); for (TreeColumn column : fTimeGraphCombo.getTreeViewer().getTree().getColumns()) { column.pack(); } - startZoomThread(fStartTime, endTime); + startZoomThread(startTime, endTime); } }); } diff --git a/lttng/org.eclipse.linuxtools.lttng2.kernel.ui/src/org/eclipse/linuxtools/internal/lttng2/kernel/ui/views/resources/ResourcesView.java b/lttng/org.eclipse.linuxtools.lttng2.kernel.ui/src/org/eclipse/linuxtools/internal/lttng2/kernel/ui/views/resources/ResourcesView.java index ac6fd5932d..031c6b73c8 100644 --- a/lttng/org.eclipse.linuxtools.lttng2.kernel.ui/src/org/eclipse/linuxtools/internal/lttng2/kernel/ui/views/resources/ResourcesView.java +++ b/lttng/org.eclipse.linuxtools.lttng2.kernel.ui/src/org/eclipse/linuxtools/internal/lttng2/kernel/ui/views/resources/ResourcesView.java @@ -75,9 +75,6 @@ public class ResourcesView extends TmfView { /** View ID. */ public static final String ID = "org.eclipse.linuxtools.lttng2.kernel.ui.views.resources"; //$NON-NLS-1$ - /** Initial time range */ - private static final long INITIAL_WINDOW_OFFSET = (1L * 100 * 1000 * 1000); // .1sec - /** * Redraw state enum */ @@ -393,7 +390,7 @@ public class ResourcesView extends TmfView { } else { fStartTime = fTrace.getStartTime().normalize(0, ITmfTimestamp.NANOSECOND_SCALE).getValue(); fEndTime = fTrace.getEndTime().normalize(0, ITmfTimestamp.NANOSECOND_SCALE).getValue(); - refresh(INITIAL_WINDOW_OFFSET); + refresh(); } } } @@ -421,7 +418,7 @@ public class ResourcesView extends TmfView { if (fZoomThread != null) { fZoomThread.cancel(); } - refresh(INITIAL_WINDOW_OFFSET); + refresh(); } } @@ -540,7 +537,7 @@ public class ResourcesView extends TmfView { fEntryListMap.put(trace, (ArrayList<TraceEntry>) entryList.clone()); } if (trace == fTrace) { - refresh(INITIAL_WINDOW_OFFSET); + refresh(); } for (TraceEntry traceEntry : entryList) { if (monitor.isCanceled()) { @@ -659,7 +656,7 @@ public class ResourcesView extends TmfView { return eventList; } - private void refresh(final long windowRange) { + private void refresh() { Display.getDefault().asyncExec(new Runnable() { @Override public void run() { @@ -679,14 +676,15 @@ public class ResourcesView extends TmfView { fTimeGraphViewer.setInput(entries); fTimeGraphViewer.setTimeBounds(fStartTime, fEndTime); - long endTime = fStartTime + windowRange; - - if (fEndTime < endTime) { - endTime = fEndTime; - } - fTimeGraphViewer.setStartFinishTime(fStartTime, endTime); + long timestamp = fTrace == null ? 0 : fTrace.getCurrentTime().normalize(0, ITmfTimestamp.NANOSECOND_SCALE).getValue(); + long startTime = fTrace == null ? 0 : fTrace.getCurrentRange().getStartTime().normalize(0, ITmfTimestamp.NANOSECOND_SCALE).getValue(); + long endTime = fTrace == null ? 0 : fTrace.getCurrentRange().getEndTime().normalize(0, ITmfTimestamp.NANOSECOND_SCALE).getValue(); + startTime = Math.max(startTime, fStartTime); + endTime = Math.min(endTime, fEndTime); + fTimeGraphViewer.setSelectedTime(timestamp, false); + fTimeGraphViewer.setStartFinishTime(startTime, endTime); - startZoomThread(fStartTime, endTime); + startZoomThread(startTime, endTime); } } }); |