[英]How can I decorate column images and text in an SWT TableViewer?
我有一個用JFace TableViewer
包裝的SWT表。
我的要求是:
通過擴展DecoratingLabelProvider
並實現ITableLabelProvider
我能夠排名第一。 我將它傳遞給了我原來的TableLabelProvider
和工作台裝飾器管理器,並且得到了帶有裝飾器的圖標。
然后我開始研究#2。 我在這里問了這個問題,並被告知IStyleLabelProvider
(我試圖用於彩色文本的內容)與ITableLabelProvider
不兼容。 所以我切換到使用ColumnLabelProvider
實現IStyledLabelProvider
。
但是,現在我被困住了。 這兩個要求似乎是互斥的。 我不能同時擴展ColumnLabelProvider
和DecoratingLabelProvider
。 當我試圖像這樣簡單地將工作台裝飾器管理器傳遞給ColumnLabelProvider
,它根本沒有裝飾圖像。 我是錯誤地傳遞了它,還是只能在DecoratingLabelProvider
? 我還能嘗試什么?
public Image getColumnImage(final Object element, final int columnIndex) {
if (columnIndex == MY_COLUMN_INDEX) {
final MyObject myObj = (MyObject) element;
final Image image = myObj .getImage();
Image newImage = null;
if(this.decorator != null) {
newImage = this.decorator.decorateImage(image, myObj );
}
return newImage == null ? image : newImage;
}
return null;
}
您可以使用DecoratingStyledCellLabelProvider
這需要一個IStyledLabelProvider
和ILabelDecorator
作為參數:
new DecoratingStyledCellLabelProvider(styledLabelProvider,
PlatformUI.getWorkbench().getDecoratorManager()
.getLabelDecorator(), null);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.