package com.dgex.offspring.swt.table;
import org.eclipse.jface.viewers.ColumnLabelProvider;
import org.eclipse.jface.viewers.ViewerCell;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.Font;
import org.eclipse.swt.graphics.Image;
public class GenericLabelProvider extends ColumnLabelProvider {
private final ICellDataProvider cellDataProvider;
private final Object[] data = new Object[4];
public GenericLabelProvider(ICellDataProvider cellDataProvider) {
this.cellDataProvider = cellDataProvider;
}
@Override
public void update(ViewerCell cell) {
super.update(cell);
data[ICellDataProvider.TEXT] = null;
data[ICellDataProvider.IMAGE] = null;
data[ICellDataProvider.FONT] = null;
data[ICellDataProvider.FOREGROUND] = null;
cellDataProvider.getCellData(cell.getElement(), data);
if (data[ICellDataProvider.TEXT] != null) {
cell.setText((String) data[ICellDataProvider.TEXT]);
}
if (data[ICellDataProvider.IMAGE] != null) {
cell.setImage((Image) data[ICellDataProvider.IMAGE]);
}
if (data[ICellDataProvider.FONT] != null) {
cell.setFont((Font) data[ICellDataProvider.FONT]);
}
if (data[ICellDataProvider.FOREGROUND] != null) {
cell.setForeground((Color) data[ICellDataProvider.FOREGROUND]);
}
}
}