+
+ // ------------------------------------------------------------------------
+ // 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);
+ }
+ }
+ });
+ }