Если вы хотите рисовать над линиями сетки, вам нужно реализовать IOverlayPainter
. ICellPainter
, как и CustomLineBorderDecorator
, будет рисовать только внутри ячейки.
Простая версия может выглядеть так:
natTable.addOverlayPainter(new IOverlayPainter() {
@Override
public void paintOverlay(GC gc, ILayer layer) {
Color beforeColor = gc.getForeground();
gc.setForeground(GUIHelper.COLOR_RED);
int gridBorderX = natTable.getStartXOfColumnPosition(4) - 1;
gc.drawLine(gridBorderX, 0, gridBorderX, layer.getHeight() - 1);
gc.setForeground(beforeColor);
}
});
Но эта версия, например, не учитывает прокрутку.
Сборки SNAPSHOT содержат HideIndicatorOverlayPainter
, который выполняет еще несколько проверок для визуализации такой линии на основе метки внутри областей заголовка. Но вы можете адаптировать это, чтобы найти позицию для рендеринга на основе меток.