tmf: Preserve order of marker categories
[deliverable/tracecompass.git] / tmf / org.eclipse.tracecompass.tmf.ui / src / org / eclipse / tracecompass / tmf / ui / views / timegraph / AbstractTimeGraphView.java
index 9d50149b569241211f4391cccc0e25e5bd976c62..6ad0a95602a4e20798a41925963f7a8e36107e27 100644 (file)
@@ -22,7 +22,7 @@ import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Comparator;
 import java.util.HashMap;
-import java.util.HashSet;
+import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -1647,7 +1647,7 @@ public abstract class AbstractTimeGraphView extends TmfView implements ITmfTimeA
      * @since 2.0
      */
     private @NonNull List<String> getMarkerCategories() {
-        Set<String> categories = new HashSet<>(getViewMarkerCategories());
+        Set<String> categories = new LinkedHashSet<>(getViewMarkerCategories());
         for (IMarkerEventSource markerEventSource : getMarkerEventSources(fTrace)) {
             categories.addAll(markerEventSource.getMarkerCategories());
         }
@@ -1698,14 +1698,14 @@ public abstract class AbstractTimeGraphView extends TmfView implements ITmfTimeA
                     hasEntries = !fEntryList.isEmpty();
                 }
                 boolean inputChanged = fEntryList != fTimeGraphWrapper.getInput();
-                if (inputChanged) {
-                    TimeGraphCombo combo = getTimeGraphCombo();
-                    try {
-                        // Set redraw to false to only draw once
-                        if (combo != null) {
-                            combo.getTreeViewer().getTree().setRedraw(false);
-                        }
-                        getTimeGraphViewer().getTimeGraphControl().setRedraw(false);
+                TimeGraphCombo combo = getTimeGraphCombo();
+                try {
+                    // Set redraw to false to only draw once
+                    if (combo != null) {
+                        combo.getTreeViewer().getTree().setRedraw(false);
+                    }
+                    getTimeGraphViewer().getTimeGraphControl().setRedraw(false);
+                    if (inputChanged) {
                         fTimeGraphWrapper.setInput(fEntryList);
                         /* restore the previously saved filters, if any */
                         fTimeGraphWrapper.setFilters(fFiltersMap.get(fTrace));
@@ -1714,14 +1714,20 @@ public abstract class AbstractTimeGraphView extends TmfView implements ITmfTimeA
                         fTimeGraphWrapper.getTimeGraphViewer().setMarkerCategories(getMarkerCategories());
                         fTimeGraphWrapper.getTimeGraphViewer().setMarkers(null);
                         applyViewContext();
-                    } finally {
-                        if (combo != null) {
-                            combo.getTreeViewer().getTree().setRedraw(true);
-                        }
-                        getTimeGraphViewer().getTimeGraphControl().setRedraw(true);
+                    } else {
+                        fTimeGraphWrapper.refresh();
                     }
-                } else {
-                    fTimeGraphWrapper.refresh();
+                    // reveal selection
+                    if (fIsRevealSelection) {
+                        fIsRevealSelection = false;
+                        ITimeGraphEntry entry1 = fTimeGraphWrapper.getSelection();
+                        fTimeGraphWrapper.setSelection(entry1);
+                    }
+                } finally {
+                    if (combo != null) {
+                        combo.getTreeViewer().getTree().setRedraw(true);
+                    }
+                    getTimeGraphViewer().getTimeGraphControl().setRedraw(true);
                 }
                 long startBound = (fStartTime == Long.MAX_VALUE ? SWT.DEFAULT : fStartTime);
                 long endBound = (fEndTime == Long.MIN_VALUE ? SWT.DEFAULT : fEndTime);
@@ -1750,13 +1756,6 @@ public abstract class AbstractTimeGraphView extends TmfView implements ITmfTimeA
                     }
                 }
 
-                // reveal selection
-                if (fIsRevealSelection) {
-                    fIsRevealSelection = false;
-                    ITimeGraphEntry entry1 = fTimeGraphWrapper.getSelection();
-                    fTimeGraphWrapper.setSelection(entry1);
-                }
-
                 if (!zoomThread) {
                     startZoomThread(startTime, endTime);
                 }
This page took 0.029732 seconds and 5 git commands to generate.