| package org.eclipse.nebula.widgets.nattable.renderer.javafx.layer |
| |
| import javafx.scene.canvas.Canvas |
| import org.eclipse.nebula.widgets.nattable.core.layer.Layer |
| import org.eclipse.nebula.widgets.nattable.core.layer.cell.LayerCell |
| import org.eclipse.nebula.widgets.nattable.renderer.javafx.layer.cell.DefaultLayerCellRenderer |
| |
| import static extension org.eclipse.nebula.widgets.nattable.core.layer.LayerInvariants.* |
| import static extension org.eclipse.nebula.widgets.nattable.core.layer.cell.LayerCellInvariants.* |
| import static extension org.eclipse.nebula.widgets.nattable.renderer.javafx.geometry.GeometryConversions.* |
| |
| class CellLayerRenderer implements LayerRenderer { |
| |
| val layerCellRenderer = new DefaultLayerCellRenderer |
| |
| override renderLayer(Layer layer, Canvas canvas) { |
| canvas.graphicsContext2D.clearRect(0, 0, canvas.boundsInLocal.width, canvas.boundsInLocal.height) |
| |
| for (columnPosition : 0 ..< layer.columnCount) |
| for (rowPosition : 0 ..< layer.rowCount) { |
| val cell = layer.getCell(columnPosition, rowPosition) |
| |
| layerCellRenderer.renderLayerCell(cell, canvas, cell.getPaintRegion) |
| } |
| } |
| |
| protected def getPaintRegion(LayerCell cell) { |
| cell.pixelBounds.toJavaFXRectangle |
| } |
| |
| } |