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)
 	}
 	
 }