Implement simultaneously opened traces in TMF
[deliverable/tracecompass.git] / org.eclipse.linuxtools.tmf.ui / src / org / eclipse / linuxtools / tmf / ui / viewers / events / TmfEventsTable.java
index 9e86e5197d596f88383c35d8ca486b812149b9e1..46ec27f874e3dd1b114c55e0f4f0cd8251279654 100644 (file)
@@ -68,7 +68,8 @@ import org.eclipse.linuxtools.tmf.core.filter.model.TmfFilterMatchesNode;
 import org.eclipse.linuxtools.tmf.core.filter.model.TmfFilterNode;
 import org.eclipse.linuxtools.tmf.core.request.ITmfDataRequest.ExecutionType;
 import org.eclipse.linuxtools.tmf.core.request.TmfDataRequest;
-import org.eclipse.linuxtools.tmf.core.signal.TmfExperimentUpdatedSignal;
+import org.eclipse.linuxtools.tmf.core.signal.TmfEventFilterAppliedSignal;
+import org.eclipse.linuxtools.tmf.core.signal.TmfEventSearchAppliedSignal;
 import org.eclipse.linuxtools.tmf.core.signal.TmfSignalHandler;
 import org.eclipse.linuxtools.tmf.core.signal.TmfTimeSynchSignal;
 import org.eclipse.linuxtools.tmf.core.signal.TmfTraceUpdatedSignal;
@@ -127,8 +128,7 @@ import org.eclipse.ui.themes.ColorUtil;
  * @author Patrick Tasse
  * @since 2.0
  */
-public class TmfEventsTable extends TmfComponent implements IGotoMarker,
-        IColorSettingsListener, ITmfEventsFilterProvider, ISelectionProvider {
+public class TmfEventsTable extends TmfComponent implements IGotoMarker, IColorSettingsListener, ISelectionProvider {
 
     private static final Image BOOKMARK_IMAGE = Activator.getDefault().getImageFromPath(
             "icons/elcl16/bookmark_obj.gif"); //$NON-NLS-1$
@@ -216,7 +216,6 @@ public class TmfEventsTable extends TmfComponent implements IGotoMarker,
     protected final Object fFilterSyncObj = new Object();
     protected SearchThread fSearchThread;
     protected final Object fSearchSyncObj = new Object();
-    protected List<ITmfEventsFilterListener> fEventsFilterListeners = new ArrayList<ITmfEventsFilterListener>();
 
     /**
      * List of selection change listeners (element type: <code>ISelectionChangedListener</code>).
@@ -1057,15 +1056,11 @@ public class TmfEventsTable extends TmfComponent implements IGotoMarker,
     }
 
     protected void fireFilterApplied(final ITmfFilter filter) {
-        for (final ITmfEventsFilterListener listener : fEventsFilterListeners) {
-            listener.filterApplied(filter, fTrace);
-        }
+        broadcast(new TmfEventFilterAppliedSignal(this, fTrace, filter));
     }
 
     protected void fireSearchApplied(final ITmfFilter filter) {
-        for (final ITmfEventsFilterListener listener : fEventsFilterListeners) {
-            listener.searchApplied(filter, fTrace);
-        }
+        broadcast(new TmfEventSearchAppliedSignal(this, fTrace, filter));
     }
 
     protected void startFilterThread() {
@@ -1673,6 +1668,7 @@ public class TmfEventsTable extends TmfComponent implements IGotoMarker,
         for (int i = 0; i < listeners.length; ++i) {
             final ISelectionChangedListener l = (ISelectionChangedListener) listeners[i];
             SafeRunnable.run(new SafeRunnable() {
+                @Override
                 public void run() {
                     l.selectionChanged(event);
                 }
@@ -1823,55 +1819,10 @@ public class TmfEventsTable extends TmfComponent implements IGotoMarker,
         fTable.refresh();
     }
 
-    @Override
-    public void addEventsFilterListener(final ITmfEventsFilterListener listener) {
-        if (!fEventsFilterListeners.contains(listener)) {
-            fEventsFilterListeners.add(listener);
-        }
-    }
-
-    @Override
-    public void removeEventsFilterListener(final ITmfEventsFilterListener listener) {
-        fEventsFilterListeners.remove(listener);
-    }
-
     // ------------------------------------------------------------------------
     // Signal handlers
     // ------------------------------------------------------------------------
 
-    /**
-     * Handler for the experiment updated signal.
-     *
-     * @param signal
-     *            The incoming signal
-     */
-    @TmfSignalHandler
-    public void experimentUpdated(final TmfExperimentUpdatedSignal signal) {
-        if ((signal.getExperiment() != fTrace) || fTable.isDisposed()) {
-            return;
-        }
-        // Perform the refresh on the UI thread
-        Display.getDefault().asyncExec(new Runnable() {
-            @Override
-            public void run() {
-                if (!fTable.isDisposed() && (fTrace != null)) {
-                    if (fTable.getData(Key.FILTER_OBJ) == null) {
-                        fTable.setItemCount((int) fTrace.getNbEvents() + 1); // +1 for header row
-                        if ((fPendingGotoRank != -1) && ((fPendingGotoRank + 1) < fTable.getItemCount())) { // +1 for header row
-                            fTable.setSelection((int) fPendingGotoRank + 1); // +1 for header row
-                            fPendingGotoRank = -1;
-                        }
-                    } else {
-                        startFilterThread();
-                    }
-                }
-                if (!fRawViewer.isDisposed() && (fTrace != null)) {
-                    fRawViewer.refreshEventCount();
-                }
-            }
-        });
-    }
-
     /**
      * Handler for the trace updated signal
      *
This page took 0.029835 seconds and 5 git commands to generate.