如何在TableViewer中将图像转换为单元格?

时间:2014-01-24 10:52:45

标签: java jface

我创建了一个TableViewer(jface)。

我想在某些情况下隐藏图像。(控制图像的可见性) 逻辑是在不同的类中完成的,而不是在tableViewer中完成的。 如何获取单元格然后控制图像可见性? (我知道单元格的名称,它始终是tableviewer中的第一个单元格) // gridViewer类

     public class MyGridViewer extends TableViewer {
     public MyGridViewer (Composite parent) {
    super(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.BORDER);

    final Table table = this.getTable();
    table.setHeaderVisible(true);
    table.setLinesVisible(true);

    this.setContentProvider(new MyModelProvider());

        }
      }


     @Override
    protected void inputChanged(Object input, Object oldInput) {

    removeColumn();



        tableCol = new TableViewerColumn(this, SWT.NONE);
        column = tableCol.getColumn();
        column.setText(dataColumnHeader.getName());
        column.setWidth(100);
        column.setResizable(true);
        column.setMoveable(true);
        tableCol.setLabelProvider(new ColumnLabelProvider() {
            @Override
            public String getText(Object element) {
                DataRow r = (DataRow) element;
                DataCell c = r.getDataCellByName(dataColumnHeader.getName());
                if (c != null && c.getValue() != null) {
                    return c.getValue().toString();
                }
                return null;
            }
             @Override
             public Image getImage(Object element) {
                   //Add my imgae
             }
        });



     editingSupport = new StringCellEditingSupport(this, dataColumnHeader);
     tableCol.setEditingSupport(editingSupport);
        super.inputChanged(input, oldInput);

}

1 个答案:

答案 0 :(得分:1)

ColumnLabelProvider采用与getImage方法类似的getText方法:

public Image getImage(Object element);