SWT - Таблица строк - Изменение цвета шрифта
Можно ли изменить цвет шрифта для строки на основе значения в одном из столбцов?
Моя таблица имеет столбец, который отображает статус. Значение столбца будет либо Сбой, либо Успех.
Если это успех, я бы хотел, чтобы шрифт этих строк был зеленым. Если статус равен Failed, я хочу, чтобы шрифт строк был красным.
Возможно ли это, если да, куда бы я положил логику.
РЕДАКТИРОВАТЬ
Вот мой код просмотра таблицы, я не собираюсь показывать все столбцы, просто пара
private void createColumns() {
String[] titles = { "ItemId", "RevId", "PRL", "Dataset Name", "Printer/Profile" , "Success/Fail" };
int[] bounds = { 100, 75, 75, 150, 200, 100 };
TableViewerColumn col = createTableViewerColumn(titles[0], bounds[0], 0);
col.setLabelProvider(new ColumnLabelProvider() {
public String getText(Object element) {
if(element instanceof AplotResultsDataModel.ResultsData) {
return ((AplotResultsDataModel.ResultsData)element).getItemId();
}
return super.getText(element);
}
});
col = createTableViewerColumn(titles[1], bounds[1], 1);
col.setLabelProvider(new ColumnLabelProvider() {
public String getText(Object element) {
if(element instanceof AplotResultsDataModel.ResultsData) {
return ((AplotResultsDataModel.ResultsData)element).getRevId();
}
return super.getText(element);
}
}); --ETC
1 ответ
Проверьте состояние элемента и верните цвет, который вы хотите использовать
Viewer implementation
ColumnLabelProvider
public Color getForeground(Object element)
Для использования в таблице
TableItem
setForeground(Color color)
setForeground(int index, Color color)
Как вы используете ColumnLabelProvider
для каждого столбца необходимо переопределить getForeground(элемент Object) для каждого столбца. Еще один способ, не добавляйте ColumnLabelProvider
для каждого столбца.
Задавать LabelProvider
в TableViewer
уровень.
TableViewer.setLabelProvider(ColumnLabelProvider labelProvider)
, Поскольку у вас не установлен поставщик меток на уровне столбцов, просмотрщик таблиц получает отображаемый текст, изображение, шрифт, фон, передний план и т. Д. Для каждой ячейки из поставщика меток, установленного в TableViewer
уровень.