blob: 830c49695fe2bd669b2bcd6c47fba6a4551b158b [file] [log] [blame]
package org.eclipse.nebula.widgets.nattable.core.layer.impl.composite
import javax.inject.Inject
import org.eclipse.nebula.widgets.nattable.core.geometry.PixelRectangle
import org.eclipse.nebula.widgets.nattable.core.graphics.GraphicsContext
import org.eclipse.nebula.widgets.nattable.core.graphics.PainterFactory
import org.eclipse.nebula.widgets.nattable.core.layer.LayerPainter
import static extension org.eclipse.nebula.widgets.nattable.core.layer.LayerInvariants.*
class CompositeLayerPainter implements LayerPainter<CompositeLayer> {
@Inject extension PainterFactory
override paintLayer(CompositeLayer compositeLayer, GraphicsContext gc) {
var yOffset = 0
for (row : compositeLayer.rows) {
var xOffset = 0
for (childLayer : row.childLayers) {
gc.pushState
gc.translate(xOffset, yOffset)
if (childLayer.pixelWidth <= 0 || childLayer.pixelHeight <= 0)
println("oh no!")
gc.clipBounds = new PixelRectangle(0, 0, childLayer.pixelWidth, childLayer.pixelHeight)
childLayer.layerPainter.paintLayer(childLayer, gc)
gc.popState
xOffset = xOffset + childLayer.pixelWidth
}
yOffset = yOffset + row.childLayers.get(0).pixelHeight
}
}
}