title: Putting an image in to a JFace table Cell is causing gap for image to appear in first column
body: <p>So I have a problem, when I add an image to any column of a JFace table the first column also behaves like it has an image in and the text is indented by the size of that image.</p>
  
  <p>Here's a screenshot illustrating my point with the code needed to produce it. Is there anyway to stop this from happening because it's really getting on my wick? </p>
  
  <p>Regards,</p>
  
  <p>Glen x</p>
  
  <p><img src="https://i.stack.imgur.com/tV3pi.png" alt="enter image description here"></p>
  
  <pre><code>package widgets;
  
  import java.util.ArrayList;
  import java.util.List;
  
  import org.eclipse.jface.viewers.ArrayContentProvider;
  import org.eclipse.jface.viewers.StyledCellLabelProvider;
  import org.eclipse.jface.viewers.TableViewer;
  import org.eclipse.jface.viewers.TableViewerColumn;
  import org.eclipse.jface.viewers.ViewerCell;
  import org.eclipse.swt.SWT;
  import org.eclipse.swt.graphics.Image;
  import org.eclipse.swt.graphics.ImageData;
  import org.eclipse.swt.graphics.PaletteData;
  import org.eclipse.swt.layout.GridData;
  import org.eclipse.swt.layout.GridLayout;
  import org.eclipse.swt.widgets.Display;
  
  import org.eclipse.swt.widgets.Shell;
  
  public class ComponentTest {
  
      private static Image image;
  
      public static void main(String[] args) {
          final Display display = new Display();
          final Shell shell = new Shell(display);
          shell.setLayout(new GridLayout(1, true));
  
          TableViewer viewer1 = getViewer(shell, true);
          TableViewer viewer2 = getViewer(shell, false);
  
          List&lt;String&gt; rows = new ArrayList&lt;String&gt;();
          rows.add("Row 1");
          rows.add("Row 2");
  
          viewer1.setInput(rows);
          viewer2.setInput(rows);
  
          shell.pack();
          shell.open();
          while (!shell.isDisposed()) {
              if (!display.readAndDispatch()) {
                  display.sleep();
              }
          }
          display.dispose();
      }
  
      private static TableViewer getViewer(final Shell shell, boolean addImage) {
          TableViewer viewer = new TableViewer(shell, SWT.FULL_SELECTION
                  | SWT.H_SCROLL | SWT.V_SCROLL | SWT.NONE);
  
          viewer.setContentProvider(ArrayContentProvider.getInstance());
  
          viewer.getTable().setLayoutData(
                  new GridData(SWT.FILL, SWT.FILL, true, true));
  
          TableViewerColumn col = new TableViewerColumn(viewer, SWT.NONE);
          col.getColumn().setWidth(100);
          col.getColumn().setText("Text Column");
          col.setLabelProvider(new StyledCellLabelProvider() {
              @Override
              public void update(ViewerCell cell) {
                  cell.setText((String) cell.getElement());
              }
          });
  
          col = new TableViewerColumn(viewer, SWT.NONE);
          col.getColumn().setWidth(100);
          col.getColumn().setText("Second Text Column");
          col.setLabelProvider(new StyledCellLabelProvider() {
              @Override
              public void update(ViewerCell cell) {
                  cell.setText((String) cell.getElement());
              }
          });
  
          if (addImage) {
              col = new TableViewerColumn(viewer, SWT.NONE);
              col.getColumn().setWidth(100);
              col.getColumn().setText("Image Column");
              col.setLabelProvider(new StyledCellLabelProvider() {
                  @Override
                  public void update(ViewerCell cell) {
                      cell.setImage(getImage(shell.getDisplay()));
                  }
              });
          }
          viewer.getTable().setHeaderVisible(true);
  
          return viewer;
      }
  
      // make a little green square
      private static Image getImage(Display display) {
          if (image == null) {
              PaletteData palette = new PaletteData(0xFF, 0xFF00, 0xFF0000);
              ImageData imageData = new ImageData(16, 16, 24, palette);
  
              for (int x = 0; x &lt; 16; x++) {
                  for (int y = 0; y &lt; 16; y++) {
                      imageData.setPixel(x, y, 0xFF00);
                  }
              }
              ;
              image = new Image(display, imageData);
          }
          return image;
      }
  }
  </code></pre>