3
我目前正在開發一個Eclipse RCP應用程序,並且是在需要使用OwnerDrawLabelProvider爲CellLabelProvider
爲TableViewerColumn
這是因爲當我使用任何其他CellLabelProvider
,所使用的圖像不居中。Eclipse的OwnerDrawLabelProvider使得選擇背景深藍色
我的問題是當選中該行時,具有此提供程序的單元格的背景比其他所有單元格的背景更深。
這是 「選中」 狀態的樣子:
這裏是我的OwnerDrawLabelProvider:
class SomeLabelProvider extends OwnerDrawLabelProvider {
private static final int smallColumnSize = 70;
@Override
protected void measure(Event event, Object element) {
Rectangle rectangle = IMAGE_CHECKED.getBounds();
event.setBounds(new Rectangle(event.x, event.y, smallColumnSize,
rectangle.height));
}
@Override
protected void paint(Event event, Object element) {
Rectangle bounds = event.getBounds();
//paint icon at the center
event.gc.drawImage(getImage(element),
bounds.x + ((smallColumnSize -
IMAGE_CHECKED.getBounds().width)/2),
bounds.y);
}
//this is implemented somewhere else
protected abstract Image getImage(Object element);
}
在此先感謝!