btf: Move the plugins to their own sub-directory
[deliverable/tracecompass.git] / org.eclipse.tracecompass.tmf.pcap.ui / src / org / eclipse / tracecompass / internal / tmf / pcap / ui / stream / StreamListView.java
index 83ca1c602fe0424a73c0b456046b5e1fe4f7da91..54c312b3de9319a560d7555b0593ad3f83596a77 100644 (file)
 
 package org.eclipse.tracecompass.internal.tmf.pcap.ui.stream;
 
-import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Map.Entry;
 
 import org.eclipse.jdt.annotation.Nullable;
 import org.eclipse.swt.SWT;
@@ -42,7 +42,7 @@ import org.eclipse.tracecompass.internal.tmf.pcap.core.protocol.TmfPcapProtocol;
 import org.eclipse.tracecompass.internal.tmf.pcap.core.signal.TmfPacketStreamSelectedSignal;
 import org.eclipse.tracecompass.internal.tmf.pcap.core.trace.PcapTrace;
 import org.eclipse.tracecompass.internal.tmf.pcap.ui.Activator;
-import org.eclipse.tracecompass.tmf.core.event.aspect.TmfEventFieldAspect;
+import org.eclipse.tracecompass.tmf.core.event.aspect.ITmfEventAspect;
 import org.eclipse.tracecompass.tmf.core.filter.model.ITmfFilterTreeNode;
 import org.eclipse.tracecompass.tmf.core.filter.model.TmfFilterAndNode;
 import org.eclipse.tracecompass.tmf.core.filter.model.TmfFilterAspectNode;
@@ -56,6 +56,7 @@ import org.eclipse.tracecompass.tmf.core.signal.TmfTraceClosedSignal;
 import org.eclipse.tracecompass.tmf.core.signal.TmfTraceOpenedSignal;
 import org.eclipse.tracecompass.tmf.core.signal.TmfTraceSelectedSignal;
 import org.eclipse.tracecompass.tmf.core.trace.ITmfTrace;
+import org.eclipse.tracecompass.tmf.core.trace.TmfTraceManager;
 import org.eclipse.tracecompass.tmf.core.trace.TmfTraceUtils;
 import org.eclipse.tracecompass.tmf.ui.project.model.TraceUtils;
 import org.eclipse.tracecompass.tmf.ui.views.TmfView;
@@ -67,6 +68,8 @@ import org.eclipse.ui.IWorkbenchPage;
 import org.eclipse.ui.PartInitException;
 import org.eclipse.ui.PlatformUI;
 
+import com.google.common.collect.Lists;
+
 /**
  * Class that represents the Stream List View. Such a view lists all the
  * available streams from the current experiment. <br>
@@ -243,9 +246,9 @@ public class StreamListView extends TmfView {
                 if (tableMap == null) {
                     return;
                 }
-                for (TmfPcapProtocol protocol : tableMap.keySet()) {
-                    if (!(tableMap.get(protocol).isDisposed())) {
-                        tableMap.get(protocol).removeAll();
+                for (Table table : tableMap.values()) {
+                    if (!table.isDisposed()) {
+                        table.removeAll();
                     }
                 }
             }
@@ -278,19 +281,21 @@ public class StreamListView extends TmfView {
                 if (tables == null) {
                     return;
                 }
-                for (TmfPcapProtocol protocol : tables.keySet()) {
+                for (Entry<TmfPcapProtocol, Table> protocolEntry : tables.entrySet()) {
+                    TmfPcapProtocol protocol = protocolEntry.getKey();
                     if (protocol == null) {
                         throw new IllegalStateException();
                     }
                     TmfPacketStreamBuilder builder = analysis.getBuilder(protocol);
-                    if (builder != null && !(tables.get(protocol).isDisposed())) {
+                    Table table = protocolEntry.getValue();
+                    if (builder != null && !(table.isDisposed())) {
                         for (TmfPacketStream stream : builder.getStreams()) {
 
                             TableItem item;
-                            if (stream.getID() < tables.get(protocol).getItemCount()) {
-                                item = tables.get(protocol).getItem(stream.getID());
+                            if (stream.getID() < table.getItemCount()) {
+                                item = table.getItem(stream.getID());
                             } else {
-                                item = new TableItem(tables.get(protocol), SWT.NONE);
+                                item = new TableItem(table, SWT.NONE);
                             }
                             item.setText(0, String.valueOf(stream.getID()));
                             item.setText(1, stream.getFirstEndpoint().toString());
@@ -319,7 +324,7 @@ public class StreamListView extends TmfView {
     public void createPartControl(@Nullable Composite parent) {
         // Initialize
         fTableMap = new HashMap<>();
-        fCurrentTrace = getActiveTrace();
+        fCurrentTrace = TmfTraceManager.getInstance().getActiveTrace();
         fCurrentStream = null;
 
         // Add a tab folder
@@ -418,14 +423,18 @@ public class StreamListView extends TmfView {
                         }
 
                         // Update XML
-                        List<ITmfFilterTreeNode> newFilters = new ArrayList<>();
-                        ITmfFilterTreeNode[] oldFilters = FilterManager.getSavedFilters();
-                        for (int i = 0; i < oldFilters.length; i++) {
-                            newFilters.add(oldFilters[i]);
+                        List<ITmfFilterTreeNode> filters = Lists.newArrayList(FilterManager.getSavedFilters());
+                        boolean newFilter = true;
+                        for (ITmfFilterTreeNode savedFilter : filters) {
+                            // Use toString(explicit) equality because equals() is not implemented
+                            if (savedFilter.toString(true).equals(filter.toString(true))) {
+                                newFilter = false;
+                                break;
+                            }
                         }
-                        if (!(newFilters.contains(filter))) {
-                            newFilters.add(filter);
-                            FilterManager.setSavedFilters(newFilters.toArray(new ITmfFilterTreeNode[newFilters.size()]));
+                        if (newFilter) {
+                            filters.add(filter);
+                            FilterManager.setSavedFilters(filters.toArray(new ITmfFilterTreeNode[filters.size()]));
                         }
 
                         // Update Filter View
@@ -459,8 +468,8 @@ public class StreamListView extends TmfView {
 
                         // Third stage - protocol + or
                         TmfFilterContainsNode protocolFilter = new TmfFilterContainsNode(and);
-                        protocolFilter.setEventAspect(new TmfEventFieldAspect(stream.getProtocol().getName(), stream.getProtocol().getName()));
-                        protocolFilter.setTraceTypeId(TmfFilterAspectNode.EVENT_FIELD_ASPECT_ID);
+                        protocolFilter.setEventAspect(ITmfEventAspect.BaseAspects.CONTENTS.forField(stream.getProtocol().getName()));
+                        protocolFilter.setTraceTypeId(TmfFilterAspectNode.BASE_ASPECT_ID);
                         protocolFilter.setValue(EMPTY_STRING);
                         TmfFilterOrNode or = new TmfFilterOrNode(and);
 
This page took 0.038783 seconds and 5 git commands to generate.