blob: e957fe4540c796320603abd36be0e5d0073ebbcf [file] [log] [blame]
package org.eclipse.nebula.widgets.nattable.renderer.javafx
import com.sun.javafx.scene.control.skin.SkinBase
import javafx.scene.canvas.Canvas
import org.eclipse.nebula.widgets.nattable.core.geometry.PixelArea
import org.eclipse.nebula.widgets.nattable.renderer.javafx.graphics.JavaFXGraphicsContext
class NatTableSkin extends SkinBase<JavaFXNatTable, NatTableBehavior> {
val Canvas canvas
new(JavaFXNatTable control) {
super(control, new NatTableBehavior(control))
canvas = new Canvas
children += canvas
canvas.widthProperty.bind(widthProperty)
canvas.heightProperty.bind(heightProperty)
}
override protected layoutChildren() {
canvas.paintLayer
}
def private paintLayer(Canvas canvas) {
val paintArea = new PixelArea(boundsInLocal.width, boundsInLocal.height)
val gc = new JavaFXGraphicsContext(canvas)
skinnable.layerPainter?.paintLayer(skinnable.layer, paintArea, gc)
}
}