我必须在视觉上区分JFace树中的某些节点及其子节点。由于限制,我只能扩展标签提供商。
如何为节点及其子节点颜色?我对其他让节点脱颖而出的方法持开放态度。
class ExistingScheduleLabelProvider extends LabelProvider {
@Override
public String getText(Object element) {
if (element instanceof Schedule) {
Schedule schedule = (Schedule) element;
return schedule.getDescription();
} else if (element instanceof BatchReport) {
BatchReport report = (BatchReport) element;
Schedule schedule = (Schedule)report.eContainer();
return (schedule.getBatchReports().indexOf(report)+1) + " - " + report.getDescription(); //$NON-NLS-1$
}
return null;
}
@Override
public Image getImage(Object element) {
if (element instanceof Schedule)
return SchedulingUIPlugin.getImage(SchedulingImageConstants.IMG_SCHEDULE);
else if (element instanceof BatchReport)
return SchedulingUIPlugin.getImage(SchedulingImageConstants.IMG_BATCH_REPORT);
return super.getImage(element);
}
}
从树中的可用节点,我可以根据条件仅为我想要的节点着色,以便将它们与其他节点区分开来吗?
答案 0 :(得分:2)
如果您的标签提供者实施org.eclipse.jface.viewers.IColorProvider
,则会要求您提供各种元素的颜色。