no need for core LayerRenderer
diff --git a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/LayerRenderer.xtend b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/LayerRenderer.xtend
deleted file mode 100644
index ee67521..0000000
--- a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/LayerRenderer.xtend
+++ /dev/null
@@ -1,9 +0,0 @@
-package org.eclipse.nebula.widgets.nattable.core.layer
-
-import org.eclipse.nebula.widgets.nattable.core.layer.Layer
-
-interface LayerRenderer {
-
- def void renderLayer(Layer layer)
-
-}
\ No newline at end of file
diff --git a/NatTable/src/org/eclipse/nebula/widgets/nattable/renderer/javafx/DefaultLayerRenderer.xtend b/NatTable/src/org/eclipse/nebula/widgets/nattable/renderer/javafx/DefaultLayerRenderer.xtend
index edc8693..1002560 100644
--- a/NatTable/src/org/eclipse/nebula/widgets/nattable/renderer/javafx/DefaultLayerRenderer.xtend
+++ b/NatTable/src/org/eclipse/nebula/widgets/nattable/renderer/javafx/DefaultLayerRenderer.xtend
@@ -6,6 +6,8 @@
import org.eclipse.nebula.widgets.nattable.core.layer.Layer
import static extension org.eclipse.nebula.widgets.nattable.core.layer.LayerInvariants.*
+import javafx.scene.text.Font
+import com.sun.javafx.tk.Toolkit
class DefaultLayerRenderer implements JavaFXLayerRenderer {
@@ -18,6 +20,11 @@
for (rowPosition : 0 .. layer.rowCount) {
val cellPixelBounds = layer.getCellPixelBounds(columnPosition, rowPosition)
gc.strokeRect(cellPixelBounds.x, cellPixelBounds.y, cellPixelBounds.pixelWidth, cellPixelBounds.pixelHeight)
+
+// gc.font = new Font()
+// val fontMetrics = Toolkit::toolkit.fontLoader.getFontMetrics(gc.font)
+// fontMetrics.computeStringWidth("")
+
gc.strokeText(
layer.getCellDataValue(columnPosition, rowPosition).toString,
cellPixelBounds.x + (cellPixelBounds.pixelWidth/2),
diff --git a/NatTable/src/org/eclipse/nebula/widgets/nattable/renderer/javafx/JavaFXNatLayerRenderer.xtend b/NatTable/src/org/eclipse/nebula/widgets/nattable/renderer/javafx/JavaFXNatTable.xtend
similarity index 64%
rename from NatTable/src/org/eclipse/nebula/widgets/nattable/renderer/javafx/JavaFXNatLayerRenderer.xtend
rename to NatTable/src/org/eclipse/nebula/widgets/nattable/renderer/javafx/JavaFXNatTable.xtend
index a49debf..fa4e856 100644
--- a/NatTable/src/org/eclipse/nebula/widgets/nattable/renderer/javafx/JavaFXNatLayerRenderer.xtend
+++ b/NatTable/src/org/eclipse/nebula/widgets/nattable/renderer/javafx/JavaFXNatTable.xtend
@@ -1,25 +1,33 @@
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
-import org.eclipse.nebula.widgets.nattable.core.layer.LayerRenderer
-class JavaFXNatLayerRenderer extends Canvas implements LayerRenderer {
+class JavaFXNatTable extends Canvas {
val static defaultLayerRenderer = new DefaultLayerRenderer
+ val Layer layer
val layerRenderers = new HashMap<String, JavaFXLayerRenderer>
- new(int width, int height) {
+ new(Layer layer, int width, int height) {
super(width, height)
+ this.layer = layer
+
+ renderLayer
+
+ boundsInLocalProperty.addListener([ ObservableValue<?> observable, Object oldValue, Object newValue |
+ renderLayer
+ ])
}
- override renderLayer(Layer layer) {
+ private def renderLayer() {
layer.layerRenderer.renderLayer(graphicsContext2D, boundsInLocal, layer)
}
- def JavaFXLayerRenderer getLayerRenderer(Layer layer) {
+ private def JavaFXLayerRenderer getLayerRenderer(Layer layer) {
var layerRenderer = layerRenderers.get(layer.class.canonicalName)
if (layerRenderer === null) {
diff --git a/NatTable/test/org/eclipse/nebula/widgets/nattable/renderer/javafx/HelloWorld.xtend b/NatTable/test/org/eclipse/nebula/widgets/nattable/renderer/javafx/HelloWorld.xtend
index 1bba65a..db3d38f 100644
--- a/NatTable/test/org/eclipse/nebula/widgets/nattable/renderer/javafx/HelloWorld.xtend
+++ b/NatTable/test/org/eclipse/nebula/widgets/nattable/renderer/javafx/HelloWorld.xtend
@@ -6,7 +6,6 @@
import javafx.stage.Stage
import org.eclipse.nebula.widgets.nattable.core.layer.DummyLayer
import org.eclipse.nebula.widgets.nattable.core.layer.Layer
-import javafx.beans.value.ObservableValue
class HelloWorld extends Application {
@@ -18,8 +17,7 @@
primaryStage.title = "NatTable -> JavaFX"
val root = new Pane
- val layerRenderer = new JavaFXNatLayerRenderer(300, 250)
- layerRenderer.renderLayer(layer)
+ val layerRenderer = new JavaFXNatTable(layer, 300, 250)
root.children += layerRenderer
@@ -28,9 +26,6 @@
layerRenderer.widthProperty.bind(root.widthProperty)
layerRenderer.heightProperty.bind(root.heightProperty)
- layerRenderer.boundsInLocalProperty.addListener([ ObservableValue<?> observable, Object oldValue, Object newValue |
- layerRenderer.renderLayer(layer)
- ])
}
def Layer getLayer() {