import org.eclipse.linuxtools.tmf.core.signal.TmfExperimentSelectedSignal;\r
import org.eclipse.linuxtools.tmf.core.signal.TmfRangeSynchSignal;\r
import org.eclipse.linuxtools.tmf.core.signal.TmfSignalHandler;\r
+import org.eclipse.linuxtools.tmf.core.signal.TmfStateSystemBuildCompleted;\r
import org.eclipse.linuxtools.tmf.core.signal.TmfTimeSynchSignal;\r
import org.eclipse.linuxtools.tmf.core.statesystem.IStateSystemQuerier;\r
import org.eclipse.linuxtools.tmf.core.trace.ITmfTrace;\r
}\r
\r
private void zoom(ControlFlowEntry entry, IProgressMonitor monitor) {\r
+ if (fZoomStartTime <= entry.getStartTime() && fZoomEndTime >= entry.getEndTime()) {\r
+ entry.setZoomedEventList(null);\r
+ return;\r
+ }\r
List<ITimeEvent> zoomedEventList = getEventList(entry, fZoomStartTime, fZoomEndTime, fResolution, monitor);\r
if (fMonitor.isCanceled()) {\r
return;\r
});\r
}\r
\r
+ @TmfSignalHandler\r
+ public void stateSystemBuildCompleted (final TmfStateSystemBuildCompleted signal) {\r
+ final TmfExperiment<?> selectedExperiment = fSelectedExperiment;\r
+ if (selectedExperiment == null) {\r
+ return;\r
+ }\r
+ for (ITmfTrace<?> trace : selectedExperiment.getTraces()) {\r
+ if (trace == signal.getTrace() && trace instanceof CtfKernelTrace) {\r
+ final Thread thread = new Thread("ControlFlowView build") { //$NON-NLS-1$\r
+ @Override\r
+ public void run() {\r
+ // rebuild the model\r
+ selectExperiment(selectedExperiment);\r
+ }\r
+ };\r
+ thread.start();\r
+ }\r
+ }\r
+ }\r
+\r
// ------------------------------------------------------------------------\r
// Internal\r
// ------------------------------------------------------------------------\r
CtfKernelTrace ctfKernelTrace = (CtfKernelTrace) trace;\r
IStateSystemQuerier ssq = ctfKernelTrace.getStateSystem();\r
long start = ssq.getStartTime();\r
- long end = ssq.getCurrentEndTime();\r
+ long end = ssq.getCurrentEndTime() + 1;\r
fStartTime = Math.min(fStartTime, start);\r
fEndTime = Math.max(fEndTime, end);\r
List<Integer> threadQuarks = ssq.getQuarks(Attributes.THREADS, "*"); //$NON-NLS-1$\r
continue;\r
}\r
int ppidQuark = ssq.getQuarkRelative(threadQuark, Attributes.PPID);\r
- List<ITmfStateInterval> execNameIntervals = ssq.queryHistoryRange(execNameQuark, start, end);\r
+ List<ITmfStateInterval> execNameIntervals = ssq.queryHistoryRange(execNameQuark, start, end - 1);\r
long birthTime = -1;\r
for (ITmfStateInterval execNameInterval : execNameIntervals) {\r
if (!execNameInterval.getStateValue().isNull() && execNameInterval.getStateValue().getType() == 1) {\r
private void buildStatusEvents(ControlFlowEntry entry) {\r
IStateSystemQuerier ssq = entry.getTrace().getStateSystem();\r
long start = ssq.getStartTime();\r
- long end = ssq.getCurrentEndTime();\r
+ long end = ssq.getCurrentEndTime() + 1;\r
long resolution = Math.max(1, (end - start) / fDisplayWidth);\r
List<ITimeEvent> eventList = getEventList(entry, entry.getStartTime(), entry.getEndTime(), resolution, new NullProgressMonitor());\r
entry.setEventList(eventList);\r
import org.eclipse.linuxtools.tmf.core.signal.TmfExperimentSelectedSignal;\r
import org.eclipse.linuxtools.tmf.core.signal.TmfRangeSynchSignal;\r
import org.eclipse.linuxtools.tmf.core.signal.TmfSignalHandler;\r
+import org.eclipse.linuxtools.tmf.core.signal.TmfStateSystemBuildCompleted;\r
import org.eclipse.linuxtools.tmf.core.signal.TmfTimeSynchSignal;\r
import org.eclipse.linuxtools.tmf.core.statesystem.IStateSystemQuerier;\r
import org.eclipse.linuxtools.tmf.core.trace.ITmfTrace;\r
for (TraceEntry traceEntry : entryList) {\r
for (ITimeGraphEntry child : traceEntry.getChildren()) {\r
ResourcesEntry entry = (ResourcesEntry) child;\r
+ if (fZoomStartTime <= entry.getStartTime() && fZoomEndTime >= entry.getEndTime()) {\r
+ entry.setZoomedEventList(null);\r
+ return;\r
+ }\r
if (fMonitor.isCanceled()) {\r
break;\r
}\r
});\r
}\r
\r
+ @TmfSignalHandler\r
+ public void stateSystemBuildCompleted (final TmfStateSystemBuildCompleted signal) {\r
+ final TmfExperiment<?> selectedExperiment = fSelectedExperiment;\r
+ if (selectedExperiment == null) {\r
+ return;\r
+ }\r
+ for (ITmfTrace<?> trace : selectedExperiment.getTraces()) {\r
+ if (trace == signal.getTrace() && trace instanceof CtfKernelTrace) {\r
+ final Thread thread = new Thread("ResourcesView build") { //$NON-NLS-1$\r
+ @Override\r
+ public void run() {\r
+ // rebuild the model\r
+ selectExperiment(selectedExperiment);\r
+ }\r
+ };\r
+ thread.start();\r
+ }\r
+ }\r
+ }\r
+\r
// ------------------------------------------------------------------------\r
// Internal\r
// ------------------------------------------------------------------------\r