tmf: Cache CallStackEvent names
[deliverable/tracecompass.git] / tmf / org.eclipse.tracecompass.tmf.ui / src / org / eclipse / tracecompass / tmf / ui / views / callstack / CallStackView.java
index f5eb13beeb1bbc75b1145daa147e0404c861f514..749bc3ce672d821b99e8daa35811dd63025a8018 100644 (file)
@@ -361,7 +361,7 @@ public class CallStackView extends AbstractTimeGraphView {
      */
     public CallStackView() {
         super(ID, new CallStackPresentationProvider());
-        ((CallStackPresentationProvider) getPresentationProvider()).setCallStackView(this);
+        getPresentationProvider().setCallStackView(this);
         setTreeColumns(COLUMN_NAMES);
         setTreeLabelProvider(new CallStackTreeLabelProvider());
         setEntryComparator(new CallStackComparator());
@@ -501,6 +501,15 @@ public class CallStackView extends AbstractTimeGraphView {
     // Internal
     // ------------------------------------------------------------------------
 
+    /**
+     * @since 2.1
+     */
+    @Override
+    protected CallStackPresentationProvider getPresentationProvider() {
+        /* Set to this type by the constructor */
+        return (CallStackPresentationProvider) super.getPresentationProvider();
+    }
+
     @Override
     @TmfSignalHandler
     public void traceClosed(TmfTraceClosedSignal signal) {
@@ -984,14 +993,14 @@ public class CallStackView extends AbstractTimeGraphView {
                             CallStackEntry callStackEntry = (CallStackEntry) entry;
                             ITmfStateSystem ss = callStackEntry.getStateSystem();
                             long time = Math.max(ss.getStartTime(), Math.min(ss.getCurrentEndTime(), viewer.getSelectionBegin()));
-                            ThreadEntry threadEntry = (ThreadEntry) callStackEntry.getParent();
+                            TimeGraphEntry parentEntry = callStackEntry.getParent();
                             int quark = ss.getParentAttributeQuark(callStackEntry.getQuark());
                             ITmfStateInterval stackInterval = ss.querySingleState(time, quark);
                             long newTime = stackInterval.getEndTime() + 1;
                             viewer.setSelectedTimeNotify(newTime, true);
                             stackInterval = ss.querySingleState(Math.min(ss.getCurrentEndTime(), newTime), quark);
                             int stackLevel = stackInterval.getStateValue().unboxInt();
-                            ITimeGraphEntry selectedEntry = threadEntry.getChildren().get(Math.max(0, stackLevel - 1));
+                            ITimeGraphEntry selectedEntry = parentEntry.getChildren().get(Math.max(0, stackLevel - 1));
                             getTimeGraphCombo().setSelection(selectedEntry);
                             viewer.getTimeGraphControl().fireSelectionChanged();
                             startZoomThread(viewer.getTime0(), viewer.getTime1());
@@ -1028,7 +1037,7 @@ public class CallStackView extends AbstractTimeGraphView {
                             CallStackEntry callStackEntry = (CallStackEntry) entry;
                             ITmfStateSystem ss = callStackEntry.getStateSystem();
                             long time = Math.max(ss.getStartTime(), Math.min(ss.getCurrentEndTime(), viewer.getSelectionBegin()));
-                            ThreadEntry threadEntry = (ThreadEntry) callStackEntry.getParent();
+                            TimeGraphEntry parentEntry = callStackEntry.getParent();
                             int quark = ss.getParentAttributeQuark(callStackEntry.getQuark());
                             ITmfStateInterval stackInterval = ss.querySingleState(time, quark);
                             if (stackInterval.getStartTime() == time && time > ss.getStartTime()) {
@@ -1036,7 +1045,7 @@ public class CallStackView extends AbstractTimeGraphView {
                             }
                             viewer.setSelectedTimeNotify(stackInterval.getStartTime(), true);
                             int stackLevel = stackInterval.getStateValue().unboxInt();
-                            ITimeGraphEntry selectedEntry = threadEntry.getChildren().get(Math.max(0, stackLevel - 1));
+                            ITimeGraphEntry selectedEntry = parentEntry.getChildren().get(Math.max(0, stackLevel - 1));
                             getTimeGraphCombo().setSelection(selectedEntry);
                             viewer.getTimeGraphControl().fireSelectionChanged();
                             startZoomThread(viewer.getTime0(), viewer.getTime1());
@@ -1220,6 +1229,7 @@ public class CallStackView extends AbstractTimeGraphView {
             public void run() {
                 SymbolProviderConfigDialog dialog = new SymbolProviderConfigDialog(getSite().getShell(), getProviderPages());
                 if (dialog.open() == IDialogConstants.OK_ID) {
+                    getPresentationProvider().resetFunctionNames();
                     refresh();
                 }
             }
This page took 0.025779 seconds and 5 git commands to generate.