control: remove calibrate command
[deliverable/tracecompass.git] / analysis / org.eclipse.tracecompass.analysis.timing.ui / src / org / eclipse / tracecompass / analysis / timing / ui / views / segmentstore / AbstractSegmentStoreTableViewer.java
index 91a5ca226651dab22d7724e20314092f6fb010ad..ae868e76067070d4fbee0595c641e78a2b0fbb71 100644 (file)
@@ -21,9 +21,13 @@ import org.eclipse.jface.viewers.ColumnLabelProvider;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.viewers.StructuredSelection;
 import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.SelectionAdapter;
 import org.eclipse.swt.events.SelectionEvent;
 import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Listener;
+import org.eclipse.swt.widgets.TableColumn;
 import org.eclipse.tracecompass.analysis.timing.core.segmentstore.AbstractSegmentStoreAnalysisModule;
 import org.eclipse.tracecompass.analysis.timing.core.segmentstore.IAnalysisProgressListener;
 import org.eclipse.tracecompass.common.core.NonNullUtils;
@@ -140,6 +144,7 @@ public abstract class AbstractSegmentStoreTableViewer extends TmfSimpleTableView
         }
         createColumns();
         getTableViewer().getTable().addSelectionListener(new TableSelectionListener());
+        addPackListener();
         fListener = new AnalysisProgressListener();
     }
 
@@ -200,7 +205,7 @@ public abstract class AbstractSegmentStoreTableViewer extends TmfSimpleTableView
      * @param dataInput
      *            New data input
      */
-    public void updateModel(final @Nullable ISegmentStore<ISegment> dataInput) {
+    public void updateModel(final @Nullable Object dataInput) {
         final TableViewer tableViewer = getTableViewer();
         Display.getDefault().asyncExec(new Runnable() {
             @Override
@@ -215,6 +220,7 @@ public abstract class AbstractSegmentStoreTableViewer extends TmfSimpleTableView
                         tableViewer.setItemCount(0);
                         return;
                     }
+                    addPackListener();
                     tableViewer.setInput(dataInput);
                     SegmentStoreContentProvider contentProvider = (SegmentStoreContentProvider) getTableViewer().getContentProvider();
                     tableViewer.setItemCount(contentProvider.getSegmentCount());
@@ -343,8 +349,39 @@ public abstract class AbstractSegmentStoreTableViewer extends TmfSimpleTableView
         if (TmfTraceManager.getInstance().getActiveTrace() == null) {
             if (!getTableViewer().getTable().isDisposed()) {
                 getTableViewer().setInput(null);
+                getTableViewer().setItemCount(0);
                 refresh();
             }
+
+            AbstractSegmentStoreAnalysisModule analysis = getAnalysisModule();
+            if ((analysis != null)) {
+                analysis.removeListener(fListener);
+            }
         }
     }
+
+    // ------------------------------------------------------------------------
+    // Helper methods
+    // ------------------------------------------------------------------------
+
+    /*
+     * Add the listener for SetData on the table
+     */
+    private void addPackListener() {
+        getControl().addListener(SWT.SetData, new Listener() {
+            @Override
+            public void handleEvent(@Nullable Event event) {
+                // Remove the listener before the pack
+                getControl().removeListener(SWT.SetData, this);
+
+                // Pack the column the first time data is set
+                TableViewer tableViewer = getTableViewer();
+                if (tableViewer != null) {
+                    for (TableColumn col : tableViewer.getTable().getColumns()) {
+                        col.pack();
+                    }
+                }
+            }
+        });
+    }
 }
This page took 0.030182 seconds and 5 git commands to generate.