Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPatrick Tasse2012-11-22 21:02:49 +0000
committerPatrick Tasse2012-11-23 21:15:19 +0000
commit568928280c5c0d5711e791418c92e57ff30bf5f8 (patch)
tree2a13a5ee62cefb69e529348483e3c8893e189eef /lttng/org.eclipse.linuxtools.lttng2.kernel.ui
parent2f3c1b761d999b8d5e19c98617bc28b08b504d09 (diff)
downloadorg.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')
-rw-r--r--lttng/org.eclipse.linuxtools.lttng2.kernel.ui/src/org/eclipse/linuxtools/internal/lttng2/kernel/ui/views/controlflow/ControlFlowView.java27
-rw-r--r--lttng/org.eclipse.linuxtools.lttng2.kernel.ui/src/org/eclipse/linuxtools/internal/lttng2/kernel/ui/views/resources/ResourcesView.java26
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);
}
}
});

Back to the top