inject PainterFactory for JavaFXNatTable
diff --git a/org.eclipse.nebula.widgets.nattable.renderer.javafx/META-INF/MANIFEST.MF b/org.eclipse.nebula.widgets.nattable.renderer.javafx/META-INF/MANIFEST.MF
index 2bdb246..22c330f 100644
--- a/org.eclipse.nebula.widgets.nattable.renderer.javafx/META-INF/MANIFEST.MF
+++ b/org.eclipse.nebula.widgets.nattable.renderer.javafx/META-INF/MANIFEST.MF
@@ -7,5 +7,7 @@
Require-Bundle: org.eclipse.xtend.lib,
com.google.guava,
org.eclipse.xtext.xbase.lib,
- org.eclipse.nebula.widgets.nattable.core;bundle-version="2.0.0"
+ org.eclipse.nebula.widgets.nattable.core;bundle-version="2.0.0",
+ javax.inject;bundle-version="1.0.0",
+ com.google.inject;bundle-version="3.0.0"
diff --git a/org.eclipse.nebula.widgets.nattable.renderer.javafx/src/org/eclipse/nebula/widgets/nattable/renderer/javafx/JavaFXNatTable.xtend b/org.eclipse.nebula.widgets.nattable.renderer.javafx/src/org/eclipse/nebula/widgets/nattable/renderer/javafx/JavaFXNatTable.xtend
index 9bd1cbd..a43bd0f 100644
--- a/org.eclipse.nebula.widgets.nattable.renderer.javafx/src/org/eclipse/nebula/widgets/nattable/renderer/javafx/JavaFXNatTable.xtend
+++ b/org.eclipse.nebula.widgets.nattable.renderer.javafx/src/org/eclipse/nebula/widgets/nattable/renderer/javafx/JavaFXNatTable.xtend
@@ -1,10 +1,14 @@
package org.eclipse.nebula.widgets.nattable.renderer.javafx
+import com.google.inject.Guice
+import com.google.inject.Injector
import javafx.beans.value.ObservableValue
import javafx.scene.canvas.Canvas
+import javax.inject.Inject
import org.eclipse.nebula.widgets.nattable.core.geometry.PixelArea
+import org.eclipse.nebula.widgets.nattable.core.graphics.DefaultPainterFactory
+import org.eclipse.nebula.widgets.nattable.core.graphics.PainterFactory
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
/**
@@ -12,13 +16,19 @@
*/
class JavaFXNatTable extends Canvas {
- val static defaultLayerPainter = new GridLineCellLayerPainter
+ extension Injector
+ @Inject extension PainterFactory
val Layer layer
new(Layer layer) {
this.layer = layer
+ _injector = Guice::createInjector.createChildInjector([ binder |
+ binder.bind(typeof(PainterFactory)).toInstance(new DefaultPainterFactory)
+ ])
+ this.injectMembers
+
paintLayer
boundsInLocalProperty.addListener([ ObservableValue<?> observable, Object oldValue, Object newValue |
@@ -28,11 +38,8 @@
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
+ val gc = new JavaFXGraphicsContext(this.graphicsContext2D)
+ layer?.layerPainter?.paintLayer(layer, paintArea, gc)
}
}
\ No newline at end of file
diff --git a/org.eclipse.nebula.widgets.nattable.renderer.swt/src/org/eclipse/nebula/widgets/nattable/renderer/swt/SWTNatTable.xtend b/org.eclipse.nebula.widgets.nattable.renderer.swt/src/org/eclipse/nebula/widgets/nattable/renderer/swt/SWTNatTable.xtend
index 6f24abf..9b246d9 100644
--- a/org.eclipse.nebula.widgets.nattable.renderer.swt/src/org/eclipse/nebula/widgets/nattable/renderer/swt/SWTNatTable.xtend
+++ b/org.eclipse.nebula.widgets.nattable.renderer.swt/src/org/eclipse/nebula/widgets/nattable/renderer/swt/SWTNatTable.xtend
@@ -38,8 +38,6 @@
this.injectMembers
}
- def getInjector() { _injector }
-
def Layer getLayer() { layer }
def void setLayer(Layer layer) {
@@ -57,8 +55,10 @@
modeSwitcher.switchToMode(Mode::NORMAL)
}
- def private paintLayer(GC gc) {
- layer?.layerPainter?.paintLayer(layer, new PixelArea(bounds.width, bounds.height), new SWTGraphicsContext(this, gc))
+ def private paintLayer(GC swtGC) {
+ val paintArea = new PixelArea(bounds.width, bounds.height)
+ val gc = new SWTGraphicsContext(this, swtGC)
+ layer?.layerPainter?.paintLayer(layer, paintArea, gc)
}
}