blob: fa4e856fc1312a058d488f5d86282ea4ba901918 [file] [log] [blame]
package org.eclipse.nebula.widgets.nattable.renderer.javafx
import java.util.HashMap
import javafx.beans.value.ObservableValue
import javafx.scene.canvas.Canvas
import org.eclipse.nebula.widgets.nattable.core.layer.Layer
class JavaFXNatTable extends Canvas {
val static defaultLayerRenderer = new DefaultLayerRenderer
val Layer layer
val layerRenderers = new HashMap<String, JavaFXLayerRenderer>
new(Layer layer, int width, int height) {
super(width, height)
this.layer = layer
renderLayer
boundsInLocalProperty.addListener([ ObservableValue<?> observable, Object oldValue, Object newValue |
renderLayer
])
}
private def renderLayer() {
layer.layerRenderer.renderLayer(graphicsContext2D, boundsInLocal, layer)
}
private def JavaFXLayerRenderer getLayerRenderer(Layer layer) {
var layerRenderer = layerRenderers.get(layer.class.canonicalName)
if (layerRenderer === null) {
// find it!
layer.class.name + "Renderer"
// can't find it? use default renderer
layerRenderer = defaultLayerRenderer
layerRenderers.put(layer.class.canonicalName, layerRenderer)
}
layerRenderer
}
}