| package org.eclipse.nebula.widgets.nattable.renderer.javafx |
| |
| import javafx.beans.value.ObservableValue |
| import javafx.scene.canvas.Canvas |
| import org.eclipse.nebula.widgets.nattable.core.geometry.PixelArea |
| import org.eclipse.nebula.widgets.nattable.core.layer.Layer |
| import org.eclipse.nebula.widgets.nattable.core.layer.impl.GridLineCellLayerPainter |
| import org.eclipse.nebula.widgets.nattable.renderer.javafx.graphics.JavaFXGraphicsContext |
| |
| /** |
| * A JavaFX component that renders a NatTable Layer. |
| */ |
| class JavaFXNatTable extends Canvas { |
| |
| val static defaultLayerPainter = new GridLineCellLayerPainter |
| |
| val Layer layer |
| |
| new(Layer layer, double width, double height) { |
| super(width, height) |
| this.layer = layer |
| |
| paintLayer |
| |
| boundsInLocalProperty.addListener([ ObservableValue<?> observable, Object oldValue, Object newValue | |
| paintLayer |
| ]) |
| } |
| |
| def private paintLayer() { |
| val paintArea = new PixelArea(boundsInLocal.width, boundsInLocal.height) |
| layer.layerPainter.paintLayer(layer, paintArea, new JavaFXGraphicsContext(this.graphicsContext2D)) |
| } |
| |
| def private getLayerPainter(Layer layer) { |
| defaultLayerPainter |
| } |
| |
| } |