Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrancois Chouinard2012-09-27 19:28:05 +0000
committerFrancois Chouinard2012-09-27 19:44:20 +0000
commitf887966806bee658eca046db7ca461bc0620830e (patch)
tree38a3119c7c37103ed97887b9e73fc571cd76bd14 /lttng/org.eclipse.linuxtools.lttng2.kernel.ui
parent90d2c830aaa0952b3301c04fedac9d5d30a6f6e1 (diff)
downloadorg.eclipse.linuxtools-f887966806bee658eca046db7ca461bc0620830e.tar.gz
org.eclipse.linuxtools-f887966806bee658eca046db7ca461bc0620830e.tar.xz
org.eclipse.linuxtools-f887966806bee658eca046db7ca461bc0620830e.zip
Add a "Clear Tracing Views" command
Add the possibility to clear the views the tracing/LTTng perspective. It does it by disposing of the experiment. Proper signal handlers were added where necessary. Change-Id: I33e974f26b6e66d55bcd0c34ac96b375bf3ccddb Signed-off-by: Francois Chouinard <fchouinard@gmail.com> Reviewed-on: https://git.eclipse.org/r/7962 Tested-by: Hudson CI
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.java22
-rw-r--r--lttng/org.eclipse.linuxtools.lttng2.kernel.ui/src/org/eclipse/linuxtools/internal/lttng2/kernel/ui/views/resources/ResourcesView.java48
2 files changed, 57 insertions, 13 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 1b9abe4319..3e1db0d9ec 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
@@ -37,6 +37,7 @@ import org.eclipse.linuxtools.tmf.core.exceptions.AttributeNotFoundException;
import org.eclipse.linuxtools.tmf.core.exceptions.StateValueTypeException;
import org.eclipse.linuxtools.tmf.core.exceptions.TimeRangeException;
import org.eclipse.linuxtools.tmf.core.interval.ITmfStateInterval;
+import org.eclipse.linuxtools.tmf.core.signal.TmfExperimentDisposedSignal;
import org.eclipse.linuxtools.tmf.core.signal.TmfExperimentSelectedSignal;
import org.eclipse.linuxtools.tmf.core.signal.TmfRangeSynchSignal;
import org.eclipse.linuxtools.tmf.core.signal.TmfSignalHandler;
@@ -277,7 +278,7 @@ public class ControlFlowView extends TmfView {
public void run() {
ArrayList<ControlFlowEntry> entryList = null;
synchronized (fEntryListSyncObj) {
- entryList = fEntryList;
+ entryList = (ArrayList<ControlFlowEntry>) fEntryList.clone();
}
if (entryList == null) {
return;
@@ -425,6 +426,25 @@ public class ControlFlowView extends TmfView {
}
/**
+ * Experiment is disposed: clear the data structures and the view
+ *
+ * @param signal the signal received
+ */
+ @TmfSignalHandler
+ public void experimentDisposed(final TmfExperimentDisposedSignal signal) {
+ if (signal.getExperiment().equals(fSelectedExperiment)) {
+ fSelectedExperiment = null;
+ fStartTime = 0;
+ fEndTime = 0;
+ fZoomThread.cancel();
+ synchronized(fEntryListSyncObj) {
+ fEntryList.clear();
+ }
+ refresh(INITIAL_WINDOW_OFFSET);
+ }
+ }
+
+ /**
* Handler for the synch signal
*
* @param signal
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 66bc22c1cb..9062f49e01 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
@@ -34,6 +34,7 @@ import org.eclipse.linuxtools.tmf.core.exceptions.AttributeNotFoundException;
import org.eclipse.linuxtools.tmf.core.exceptions.StateValueTypeException;
import org.eclipse.linuxtools.tmf.core.exceptions.TimeRangeException;
import org.eclipse.linuxtools.tmf.core.interval.ITmfStateInterval;
+import org.eclipse.linuxtools.tmf.core.signal.TmfExperimentDisposedSignal;
import org.eclipse.linuxtools.tmf.core.signal.TmfExperimentSelectedSignal;
import org.eclipse.linuxtools.tmf.core.signal.TmfRangeSynchSignal;
import org.eclipse.linuxtools.tmf.core.signal.TmfSignalHandler;
@@ -235,7 +236,7 @@ public class ResourcesView extends TmfView {
public void run() {
ArrayList<TraceEntry> entryList = null;
synchronized (fEntryListSyncObj) {
- entryList = fEntryList;
+ entryList = (ArrayList<TraceEntry>) fEntryList.clone();
}
if (entryList == null) {
return;
@@ -332,6 +333,7 @@ public class ResourcesView extends TmfView {
*/
@Override
public void setFocus() {
+ refresh(INITIAL_WINDOW_OFFSET);
fTimeGraphViewer.setFocus();
}
@@ -361,6 +363,25 @@ public class ResourcesView extends TmfView {
}
/**
+ * Experiment is disposed: clear the data structures and the view
+ *
+ * @param signal the signal received
+ */
+ @TmfSignalHandler
+ public void experimentDisposed(final TmfExperimentDisposedSignal signal) {
+ if (signal.getExperiment().equals(fSelectedExperiment)) {
+ fSelectedExperiment = null;
+ fStartTime = 0;
+ fEndTime = 0;
+ fZoomThread.cancel();
+ synchronized(fEntryListSyncObj) {
+ fEntryList.clear();
+ }
+ refresh(INITIAL_WINDOW_OFFSET);
+ }
+ }
+
+ /**
* Handler for the TimeSynch signal
*
* @param signal
@@ -610,25 +631,28 @@ public class ResourcesView extends TmfView {
}
ITimeGraphEntry[] entries = null;
synchronized (fEntryListSyncObj) {
- entries = fEntryList.toArray(new ITimeGraphEntry[0]);
+ if (fEntryList != null) {
+ entries = fEntryList.toArray(new ITimeGraphEntry[0]);
+ }
}
- Arrays.sort(entries, new TraceEntryComparator());
- fTimeGraphViewer.setInput(entries);
- fTimeGraphViewer.setTimeBounds(fStartTime, fEndTime);
+ if (entries != null) {
+ Arrays.sort(entries, new TraceEntryComparator());
+ fTimeGraphViewer.setInput(entries);
+ fTimeGraphViewer.setTimeBounds(fStartTime, fEndTime);
- long endTime = fStartTime + windowRange;
+ long endTime = fStartTime + windowRange;
- if (fEndTime < endTime) {
- endTime = fEndTime;
- }
- fTimeGraphViewer.setStartFinishTime(fStartTime, endTime);
+ if (fEndTime < endTime) {
+ endTime = fEndTime;
+ }
+ fTimeGraphViewer.setStartFinishTime(fStartTime, endTime);
- startZoomThread(fStartTime, endTime);
+ startZoomThread(fStartTime, endTime);
+ }
}
});
}
-
private void redraw() {
synchronized (fSyncObj) {
if (fRedrawState == State.IDLE) {

Back to the top