package cideplus.ui.configuration.dialogs; import org.eclipse.jface.viewers.ILabelProviderListener; import org.eclipse.jface.viewers.ITableLabelProvider; import org.eclipse.swt.graphics.Device; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.graphics.ImageData; import org.eclipse.swt.graphics.PaletteData; import org.eclipse.swt.graphics.RGB; import cideplus.model.Feature; import cideplus.ui.configuration.FeaturesConfigurationUtil; public class ConfigureFeaturesLabelProvider implements ITableLabelProvider { protected Device device; public ConfigureFeaturesLabelProvider(Device device) { super(); this.device = device; } public void addListener(ILabelProviderListener listener) { } public void removeListener(ILabelProviderListener listener) { } public void dispose() { } public boolean isLabelProperty(Object element, String property) { return true; } public Image getColumnImage(Object element, int columnIndex) { if(columnIndex == 2){//montar o RGB RGB color = FeaturesConfigurationUtil.getRGB((Feature)element); RGB black = new RGB(0, 0, 0); PaletteData dataPalette = new PaletteData(new RGB[] { black, black, color }); ImageData imageData = new ImageData(16, 16, 4, dataPalette); imageData.transparentPixel = 0; int size = 16; for (int i = 0; i < size; i++) { for (int j = 0; j < size; j++) { if(i == 0 || j == 0 || i == size -1 || j == size -1 || i == 1 || j == 1 || i == size -2 || j == size -2){ imageData.setPixel(i, j, 0); } else if (i == 2 || j == 2 || i == size -3 || j == size -3) { imageData.setPixel(i, j, 1); } else { imageData.setPixel(i, j, 2); } } } ImageData mask = imageData.getTransparencyMask(); Image image = new Image(device, imageData, mask); return image; } return null; } public String getColumnText(Object element, int columnIndex) { switch(columnIndex) { case 0: return ((Feature)element).getId().toString(); case 1: return ((Feature)element).getName(); case 2: return ((Feature)element).getRgb().toString(); default: return "Invalid column: " + columnIndex; } } }