lttng: pack columns in latency table
authorBernd Hufmann <Bernd.Hufmann@ericsson.com>
Tue, 13 Oct 2015 11:47:07 +0000 (07:47 -0400)
committerBernd Hufmann <bernd.hufmann@ericsson.com>
Fri, 30 Oct 2015 21:18:22 +0000 (17:18 -0400)
Change-Id: I18855e0e4d728aca681bcd39229ca156e45cedb8
Signed-off-by: Bernd Hufmann <Bernd.Hufmann@ericsson.com>
Reviewed-on: https://git.eclipse.org/r/58062
Reviewed-by: Hudson CI
Reviewed-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com>
Tested-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com>
analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/analysis/timing/ui/views/segmentstore/AbstractSegmentStoreTableViewer.java

index 2bfa8398b212f42bf8d4a54e87b146870f2c00e2..958ff1869956ee00eeab59067c0f2545ae1e9e5d 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();
     }
 
@@ -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());
@@ -352,4 +358,27 @@ public abstract class AbstractSegmentStoreTableViewer extends TmfSimpleTableView
             }
         }
     }
+
+    // ------------------------------------------------------------------------
+    // 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) {
+                // Pack the column the first time data is set
+                TableViewer tableViewer = getTableViewer();
+                if (tableViewer != null) {
+                    for (TableColumn col : tableViewer.getTable().getColumns()) {
+                        col.pack();
+                    }
+                    // Remove the listener after the pack
+                    getControl().removeListener(SWT.SetData, this);
+                }
+            }
+        });
+    }
 }
This page took 0.02744 seconds and 5 git commands to generate.