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;
* @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$
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>).
}
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() {
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);
}
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
*