即使在调用擦除方法后,OwnerDrawLabelProvider 也会使列文本选择变为蓝色
OwnerDrawLabelProvider makes column text selections blue even after calling erase method
我正在使用使用 OwnerDrawLabelProvider 的 jface Tableviewer。我正在为行选择设置蓝色背景,如下所示
然后我调用了擦除方法来去除背景颜色。使用擦除方法后,它只删除了行背景颜色。对于文本选择,它仍然显示蓝色背景(如下所示)
这是我的代码
@Override
protected void measure(Event event, Object element) {
}
@Override
protected void paint(Event event, Object element) {
LogTestData logtest = null;
Rectangle bounds = event.getBounds();
event.gc.drawText(" ", bounds.x, bounds.y);
// Point point = event.gc.stringExtent(" ");
if (element instanceof LogTestData) {
logtest = (LogTestData) element;
}
int index = event.index;
switch (index) {
case 0:
if (logtest.getIconInfo().equals(ActivityLog.INFO_LOG)) {
event.gc.drawImage(infoImage, bounds.x, bounds.y);
}
................
................
default:
break;
}
}
@Override
protected void erase(Event event, Object element) {
}
如何删除文本选择的背景颜色。提前致谢!
在erase
方法中关闭事件选择标志:
event.detail &= ~SWT.SELECTED;
我正在使用使用 OwnerDrawLabelProvider 的 jface Tableviewer。我正在为行选择设置蓝色背景,如下所示
然后我调用了擦除方法来去除背景颜色。使用擦除方法后,它只删除了行背景颜色。对于文本选择,它仍然显示蓝色背景(如下所示)
这是我的代码
@Override
protected void measure(Event event, Object element) {
}
@Override
protected void paint(Event event, Object element) {
LogTestData logtest = null;
Rectangle bounds = event.getBounds();
event.gc.drawText(" ", bounds.x, bounds.y);
// Point point = event.gc.stringExtent(" ");
if (element instanceof LogTestData) {
logtest = (LogTestData) element;
}
int index = event.index;
switch (index) {
case 0:
if (logtest.getIconInfo().equals(ActivityLog.INFO_LOG)) {
event.gc.drawImage(infoImage, bounds.x, bounds.y);
}
................
................
default:
break;
}
}
@Override
protected void erase(Event event, Object element) {
}
如何删除文本选择的背景颜色。提前致谢!
在erase
方法中关闭事件选择标志:
event.detail &= ~SWT.SELECTED;