Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'lttng/org.eclipse.linuxtools.tmf.ui')
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/views/callstack/CallStackView.java45
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/views/environment/TmfEnvironmentView.java14
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/views/histogram/HistogramView.java2
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/views/statesystem/TmfStateSystemExplorer.java32
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/views/uml2sd/loader/TmfUml2SDSyncLoader.java176
5 files changed, 167 insertions, 102 deletions
diff --git a/lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/views/callstack/CallStackView.java b/lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/views/callstack/CallStackView.java
index 951b3232bb..038fd723db 100644
--- a/lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/views/callstack/CallStackView.java
+++ b/lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/views/callstack/CallStackView.java
@@ -8,6 +8,7 @@
*
* Contributors:
* Patrick Tasse - Initial API and implementation
+ * Bernd Hufmann - Updated signal handling
*******************************************************************************/
package org.eclipse.linuxtools.tmf.ui.views.callstack;
@@ -47,6 +48,7 @@ import org.eclipse.linuxtools.tmf.core.signal.TmfRangeSynchSignal;
import org.eclipse.linuxtools.tmf.core.signal.TmfSignalHandler;
import org.eclipse.linuxtools.tmf.core.signal.TmfTimeSynchSignal;
import org.eclipse.linuxtools.tmf.core.signal.TmfTraceClosedSignal;
+import org.eclipse.linuxtools.tmf.core.signal.TmfTraceOpenedSignal;
import org.eclipse.linuxtools.tmf.core.signal.TmfTraceSelectedSignal;
import org.eclipse.linuxtools.tmf.core.statesystem.ITmfStateSystem;
import org.eclipse.linuxtools.tmf.core.statevalue.ITmfStateValue;
@@ -582,6 +584,17 @@ public class CallStackView extends TmfView {
// ------------------------------------------------------------------------
// Signal handlers
// ------------------------------------------------------------------------
+ /**
+ * Handler for the trace opened signal.
+ * @param signal
+ * The incoming signal
+ * @since 2.0
+ */
+ @TmfSignalHandler
+ public void traceOpened(TmfTraceOpenedSignal signal) {
+ fTrace = signal.getTrace();
+ loadTrace();
+ }
/**
* Handler for the trace selected signal
@@ -595,21 +608,7 @@ public class CallStackView extends TmfView {
return;
}
fTrace = signal.getTrace();
-
- synchronized (fEntryListMap) {
- fEntryList = fEntryListMap.get(fTrace);
- if (fEntryList == null) {
- synchronized (fBuildThreadMap) {
- BuildThread buildThread = new BuildThread(fTrace);
- fBuildThreadMap.put(fTrace, buildThread);
- buildThread.start();
- }
- } else {
- fStartTime = fTrace.getStartTime().normalize(0, ITmfTimestamp.NANOSECOND_SCALE).getValue();
- fEndTime = fTrace.getEndTime().normalize(0, ITmfTimestamp.NANOSECOND_SCALE).getValue();
- refresh();
- }
- }
+ loadTrace();
}
/**
@@ -734,6 +733,22 @@ public class CallStackView extends TmfView {
// ------------------------------------------------------------------------
// Internal
// ------------------------------------------------------------------------
+ private void loadTrace() {
+ synchronized (fEntryListMap) {
+ fEntryList = fEntryListMap.get(fTrace);
+ if (fEntryList == null) {
+ synchronized (fBuildThreadMap) {
+ BuildThread buildThread = new BuildThread(fTrace);
+ fBuildThreadMap.put(fTrace, buildThread);
+ buildThread.start();
+ }
+ } else {
+ fStartTime = fTrace.getStartTime().normalize(0, ITmfTimestamp.NANOSECOND_SCALE).getValue();
+ fEndTime = fTrace.getEndTime().normalize(0, ITmfTimestamp.NANOSECOND_SCALE).getValue();
+ refresh();
+ }
+ }
+ }
private void buildThreadList(final ITmfTrace trace, IProgressMonitor monitor) {
fStartTime = Long.MAX_VALUE;
diff --git a/lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/views/environment/TmfEnvironmentView.java b/lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/views/environment/TmfEnvironmentView.java
index 82f31727bb..0a190bcd8d 100644
--- a/lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/views/environment/TmfEnvironmentView.java
+++ b/lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/views/environment/TmfEnvironmentView.java
@@ -18,6 +18,7 @@ import java.util.Map;
import org.eclipse.linuxtools.tmf.core.signal.TmfSignalHandler;
import org.eclipse.linuxtools.tmf.core.signal.TmfTraceClosedSignal;
+import org.eclipse.linuxtools.tmf.core.signal.TmfTraceOpenedSignal;
import org.eclipse.linuxtools.tmf.core.signal.TmfTraceSelectedSignal;
import org.eclipse.linuxtools.tmf.core.trace.ITmfTraceProperties;
import org.eclipse.linuxtools.tmf.core.trace.ITmfTrace;
@@ -112,6 +113,19 @@ public class TmfEnvironmentView extends TmfView {
}
/**
+ * Handler for the trace opened signal.
+ * @param signal
+ * The incoming signal
+ * @since 2.0
+ */
+ @TmfSignalHandler
+ public void traceOpened(TmfTraceOpenedSignal signal) {
+ fTrace = signal.getTrace();
+ updateTable();
+ }
+
+
+ /**
* Handler for the trace selected signal.
*
* @param signal
diff --git a/lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/views/histogram/HistogramView.java b/lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/views/histogram/HistogramView.java
index 5393cdc49b..45cd97e821 100644
--- a/lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/views/histogram/HistogramView.java
+++ b/lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/views/histogram/HistogramView.java
@@ -378,7 +378,7 @@ public class HistogramView extends TmfView {
/**
* Handles trace opened signal. Loads histogram if new trace time range is not
* equal <code>TmfTimeRange.NULL_RANGE</code>
- * @param signal the trace selected signal
+ * @param signal the trace opened signal
* @since 2.0
*/
@TmfSignalHandler
diff --git a/lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/views/statesystem/TmfStateSystemExplorer.java b/lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/views/statesystem/TmfStateSystemExplorer.java
index 7d14a6930d..126e0fc623 100644
--- a/lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/views/statesystem/TmfStateSystemExplorer.java
+++ b/lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/views/statesystem/TmfStateSystemExplorer.java
@@ -9,6 +9,7 @@
* Contributors:
* Florian Wininger - Initial API and implementation
* Alexandre Montplaisir - Refactoring, performance tweaks
+ * Bernd Hufmann - Updated signal handling
*******************************************************************************/
package org.eclipse.linuxtools.tmf.ui.views.statesystem;
@@ -25,6 +26,7 @@ import org.eclipse.linuxtools.tmf.core.interval.ITmfStateInterval;
import org.eclipse.linuxtools.tmf.core.signal.TmfSignalHandler;
import org.eclipse.linuxtools.tmf.core.signal.TmfTimeSynchSignal;
import org.eclipse.linuxtools.tmf.core.signal.TmfTraceClosedSignal;
+import org.eclipse.linuxtools.tmf.core.signal.TmfTraceOpenedSignal;
import org.eclipse.linuxtools.tmf.core.signal.TmfTraceSelectedSignal;
import org.eclipse.linuxtools.tmf.core.statesystem.ITmfStateSystem;
import org.eclipse.linuxtools.tmf.core.statevalue.ITmfStateValue;
@@ -380,6 +382,17 @@ public class TmfStateSystemExplorer extends TmfView {
// ------------------------------------------------------------------------
// Signal handlers
// ------------------------------------------------------------------------
+ /**
+ * Handler for the trace opened signal.
+ * @param signal
+ * The incoming signal
+ * @since 2.0
+ */
+ @TmfSignalHandler
+ public void traceOpened(TmfTraceOpenedSignal signal) {
+ fTrace = signal.getTrace();
+ loadTrace();
+ }
/**
* Handler for the trace selected signal. This will make the view display
@@ -393,13 +406,7 @@ public class TmfStateSystemExplorer extends TmfView {
ITmfTrace trace = signal.getTrace();
if (trace != fTrace) {
fTrace = trace;
- Thread thread = new Thread("State system visualizer construction") { //$NON-NLS-1$
- @Override
- public void run() {
- createTable();
- }
- };
- thread.start();
+ loadTrace();
}
}
@@ -437,4 +444,15 @@ public class TmfStateSystemExplorer extends TmfView {
};
thread.start();
}
+
+ private void loadTrace() {
+ Thread thread = new Thread("State system visualizer construction") { //$NON-NLS-1$
+ @Override
+ public void run() {
+ createTable();
+ }
+ };
+ thread.start();
+ }
+
}
diff --git a/lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/views/uml2sd/loader/TmfUml2SDSyncLoader.java b/lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/views/uml2sd/loader/TmfUml2SDSyncLoader.java
index d514914403..a4f24a557c 100644
--- a/lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/views/uml2sd/loader/TmfUml2SDSyncLoader.java
+++ b/lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/views/uml2sd/loader/TmfUml2SDSyncLoader.java
@@ -38,6 +38,7 @@ import org.eclipse.linuxtools.tmf.core.signal.TmfSignal;
import org.eclipse.linuxtools.tmf.core.signal.TmfSignalHandler;
import org.eclipse.linuxtools.tmf.core.signal.TmfTimeSynchSignal;
import org.eclipse.linuxtools.tmf.core.signal.TmfTraceClosedSignal;
+import org.eclipse.linuxtools.tmf.core.signal.TmfTraceOpenedSignal;
import org.eclipse.linuxtools.tmf.core.signal.TmfTraceSelectedSignal;
import org.eclipse.linuxtools.tmf.core.timestamp.ITmfTimestamp;
import org.eclipse.linuxtools.tmf.core.timestamp.TmfTimeRange;
@@ -263,6 +264,18 @@ public class TmfUml2SDSyncLoader extends TmfComponent implements IUml2SDLoader,
}
/**
+ * Handler for the trace opened signal.
+ * @param signal The trace opened signal
+ * @since 2.0
+ */
+ @TmfSignalHandler
+ public void traceOpened(TmfTraceOpenedSignal signal) {
+ fTrace = signal.getTrace();
+ loadTrace();
+ }
+
+
+ /**
* Signal handler for the trace selected signal.
*
* Spawns a request to index the trace (checkpoints creation) as well as it fills
@@ -273,81 +286,57 @@ public class TmfUml2SDSyncLoader extends TmfComponent implements IUml2SDLoader,
*/
@TmfSignalHandler
public void traceSelected(TmfTraceSelectedSignal signal) {
+ // Update the trace reference
+ ITmfTrace trace = signal.getTrace();
+ if (!trace.equals(fTrace)) {
+ fTrace = trace;
+ }
+ loadTrace();
+ }
+ /**
+ * Method for loading the current selected trace into the view.
+ * Sub-class need to override this method to add the view specific implementation.
+ * @since 2.0
+ */
+ protected void loadTrace() {
ITmfEventRequest indexRequest = null;
fLock.lock();
- try {
- // Update the trace reference
- ITmfTrace trace = signal.getTrace();
- if (!trace.equals(fTrace)) {
- fTrace = trace;
- } else {
- return;
- }
-
- final Job job = new IndexingJob("Indexing " + getName() + "..."); //$NON-NLS-1$ //$NON-NLS-2$
- job.setUser(false);
- job.schedule();
-
- indexRequest = fIndexRequest;
-
- cancelOngoingRequests();
-
- TmfTimeRange window = TmfTimeRange.ETERNITY;
-
- fIndexRequest = new TmfEventRequest(ITmfEvent.class, window, TmfDataRequest.ALL_DATA, DEFAULT_BLOCK_SIZE, ITmfDataRequest.ExecutionType.BACKGROUND) {
- private ITmfTimestamp fFirstTime = null;
- private ITmfTimestamp fLastTime = null;
- private int fNbSeqEvents = 0;
- private final List<ITmfSyncSequenceDiagramEvent> fSdEvents = new ArrayList<ITmfSyncSequenceDiagramEvent>(MAX_NUM_OF_MSG);
-
- @Override
- public void handleData(ITmfEvent event) {
- super.handleData(event);
+ try {
+ final Job job = new IndexingJob("Indexing " + getName() + "..."); //$NON-NLS-1$ //$NON-NLS-2$
+ job.setUser(false);
+ job.schedule();
- ITmfSyncSequenceDiagramEvent sdEvent = getSequenceDiagramEvent(event);
+ indexRequest = fIndexRequest;
- if (sdEvent != null) {
- ++fNbSeqEvents;
+ cancelOngoingRequests();
- if (fFirstTime == null) {
- fFirstTime = event.getTimestamp();
- }
+ TmfTimeRange window = TmfTimeRange.ETERNITY;
- fLastTime = event.getTimestamp();
+ fIndexRequest = new TmfEventRequest(ITmfEvent.class, window, TmfDataRequest.ALL_DATA, DEFAULT_BLOCK_SIZE, ITmfDataRequest.ExecutionType.BACKGROUND) {
- if ((fNbSeqEvents % MAX_NUM_OF_MSG) == 0) {
- fLock.lock();
- try {
- fCheckPoints.add(new TmfTimeRange(fFirstTime, fLastTime));
- if (fView != null) {
- fView.updateCoolBar();
- }
- } finally {
- fLock.unlock();
- }
- fFirstTime = null;
+ private ITmfTimestamp fFirstTime = null;
+ private ITmfTimestamp fLastTime = null;
+ private int fNbSeqEvents = 0;
+ private final List<ITmfSyncSequenceDiagramEvent> fSdEvents = new ArrayList<ITmfSyncSequenceDiagramEvent>(MAX_NUM_OF_MSG);
- }
+ @Override
+ public void handleData(ITmfEvent event) {
+ super.handleData(event);
- if (fNbSeqEvents > MAX_NUM_OF_MSG) {
- // page is full
- return;
- }
+ ITmfSyncSequenceDiagramEvent sdEvent = getSequenceDiagramEvent(event);
- fSdEvents.add(sdEvent);
+ if (sdEvent != null) {
+ ++fNbSeqEvents;
- if (fNbSeqEvents == MAX_NUM_OF_MSG) {
- fillCurrentPage(fSdEvents);
- }
+ if (fFirstTime == null) {
+ fFirstTime = event.getTimestamp();
}
- }
- @Override
- public void handleSuccess() {
- if ((fFirstTime != null) && (fLastTime != null)) {
+ fLastTime = event.getTimestamp();
+ if ((fNbSeqEvents % MAX_NUM_OF_MSG) == 0) {
fLock.lock();
try {
fCheckPoints.add(new TmfTimeRange(fFirstTime, fLastTime));
@@ -357,34 +346,64 @@ public class TmfUml2SDSyncLoader extends TmfComponent implements IUml2SDLoader,
} finally {
fLock.unlock();
}
+ fFirstTime = null;
+
}
- if (fNbSeqEvents <= MAX_NUM_OF_MSG) {
- fillCurrentPage(fSdEvents);
+ if (fNbSeqEvents > MAX_NUM_OF_MSG) {
+ // page is full
+ return;
}
- super.handleSuccess();
+ fSdEvents.add(sdEvent);
+
+ if (fNbSeqEvents == MAX_NUM_OF_MSG) {
+ fillCurrentPage(fSdEvents);
+ }
}
+ }
+
+ @Override
+ public void handleSuccess() {
+ if ((fFirstTime != null) && (fLastTime != null)) {
- @Override
- public void handleCompleted() {
- if (fEvents.isEmpty()) {
- fFrame = new Frame();
- fView.setFrameSync(fFrame);
+ fLock.lock();
+ try {
+ fCheckPoints.add(new TmfTimeRange(fFirstTime, fLastTime));
+ if (fView != null) {
+ fView.updateCoolBar();
+ }
+ } finally {
+ fLock.unlock();
}
- super.handleCompleted();
- job.cancel();
}
- };
- } finally {
- fLock.unlock();
- }
- if (indexRequest != null && !indexRequest.isCompleted()) {
- indexRequest.cancel();
- }
- resetLoader();
- fTrace.sendRequest(fIndexRequest);
+ if (fNbSeqEvents <= MAX_NUM_OF_MSG) {
+ fillCurrentPage(fSdEvents);
+ }
+
+ super.handleSuccess();
+ }
+
+ @Override
+ public void handleCompleted() {
+ if (fEvents.isEmpty()) {
+ fFrame = new Frame();
+ fView.setFrameSync(fFrame);
+ }
+ super.handleCompleted();
+ job.cancel();
+ }
+ };
+
+ } finally {
+ fLock.unlock();
+ }
+ if (indexRequest != null && !indexRequest.isCompleted()) {
+ indexRequest.cancel();
+ }
+ resetLoader();
+ fTrace.sendRequest(fIndexRequest);
}
@@ -480,7 +499,6 @@ public class TmfUml2SDSyncLoader extends TmfComponent implements IUml2SDLoader,
fView.setSDFilterProvider(this);
resetLoader();
-
IEditorPart editor = fView.getSite().getPage().getActiveEditor();
if (editor instanceof ITmfTraceEditor) {
ITmfTrace trace = ((ITmfTraceEditor) editor).getTrace();

Back to the top