separating injector construction a bit from NatTable classes
diff --git a/org.eclipse.nebula.widgets.nattable.renderer.javafx.example/src/org/eclipse/nebula/widgets/nattable/renderer/javafx/example/JavaFXNatExamplesRunner.xtend b/org.eclipse.nebula.widgets.nattable.renderer.javafx.example/src/org/eclipse/nebula/widgets/nattable/renderer/javafx/example/JavaFXNatExamplesRunner.xtend
index 56810a6..0e1d7bd 100644
--- a/org.eclipse.nebula.widgets.nattable.renderer.javafx.example/src/org/eclipse/nebula/widgets/nattable/renderer/javafx/example/JavaFXNatExamplesRunner.xtend
+++ b/org.eclipse.nebula.widgets.nattable.renderer.javafx.example/src/org/eclipse/nebula/widgets/nattable/renderer/javafx/example/JavaFXNatExamplesRunner.xtend
@@ -1,5 +1,7 @@
 package org.eclipse.nebula.widgets.nattable.renderer.javafx.example
 
+import com.google.inject.Guice
+import com.google.inject.Injector
 import java.util.HashSet
 import javafx.application.Application
 import javafx.geometry.Pos
@@ -20,6 +22,7 @@
 import org.eclipse.nebula.widgets.nattable.core.example.index.node.IndexNode
 import org.eclipse.nebula.widgets.nattable.core.example.index.node.NatExampleNode
 import org.eclipse.nebula.widgets.nattable.renderer.javafx.JavaFXNatTable
+import org.eclipse.nebula.widgets.nattable.renderer.javafx.JavaFXNatTableModule
 
 class JavaFXNatExamplesRunner extends Application {
 	
@@ -29,6 +32,8 @@
 	
 	//
 	
+	val extension Injector injector = Guice::createInjector(new JavaFXNatTableModule)
+	
     val nodeImage = new Image(class.getResourceAsStream("opened_folder.png"))
     val rootTreeItem = new TreeItem<IndexNode>(NatExamplesIndex::rootNode, new ImageView(nodeImage))
 	val tabPane = new TabPane
@@ -83,7 +88,8 @@
 				// Create example control
 				center = new StackPane => [
 					val centerPane = it
-					children += new JavaFXNatTable(node.natExample.createLayer) => [
+					children += getInstance(typeof(JavaFXNatTable)) => [
+						layer = node.natExample.createLayer
 				        widthProperty.bind(centerPane.widthProperty)
 				        heightProperty.bind(centerPane.heightProperty)
 			        ]
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 a43bd0f..e4fa32d 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,12 +1,9 @@
 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.renderer.javafx.graphics.JavaFXGraphicsContext
@@ -16,19 +13,15 @@
  */
 class JavaFXNatTable extends Canvas {
 	
-	extension Injector
 	@Inject extension PainterFactory
 	
-	val Layer layer
+	Layer layer
 	
-	new(Layer layer) {
+	def Layer getLayer() { layer }
+	
+	def void setLayer(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 |
diff --git a/org.eclipse.nebula.widgets.nattable.renderer.javafx/src/org/eclipse/nebula/widgets/nattable/renderer/javafx/JavaFXNatTableModule.xtend b/org.eclipse.nebula.widgets.nattable.renderer.javafx/src/org/eclipse/nebula/widgets/nattable/renderer/javafx/JavaFXNatTableModule.xtend
new file mode 100644
index 0000000..a79bd4c
--- /dev/null
+++ b/org.eclipse.nebula.widgets.nattable.renderer.javafx/src/org/eclipse/nebula/widgets/nattable/renderer/javafx/JavaFXNatTableModule.xtend
@@ -0,0 +1,14 @@
+package org.eclipse.nebula.widgets.nattable.renderer.javafx
+
+import com.google.inject.Binder
+import com.google.inject.Module
+import org.eclipse.nebula.widgets.nattable.core.graphics.DefaultPainterFactory
+import org.eclipse.nebula.widgets.nattable.core.graphics.PainterFactory
+
+class JavaFXNatTableModule implements Module {
+	
+	override configure(Binder binder) {
+		binder.bind(typeof(PainterFactory)).toInstance(new DefaultPainterFactory)
+	}
+	
+}
\ No newline at end of file
diff --git a/org.eclipse.nebula.widgets.nattable.renderer.swt.example/src/org/eclipse/nebula/widgets/nattable/renderer/swt/example/SWTNatExamplesRunner.xtend b/org.eclipse.nebula.widgets.nattable.renderer.swt.example/src/org/eclipse/nebula/widgets/nattable/renderer/swt/example/SWTNatExamplesRunner.xtend
index 842c391..904ed73 100644
--- a/org.eclipse.nebula.widgets.nattable.renderer.swt.example/src/org/eclipse/nebula/widgets/nattable/renderer/swt/example/SWTNatExamplesRunner.xtend
+++ b/org.eclipse.nebula.widgets.nattable.renderer.swt.example/src/org/eclipse/nebula/widgets/nattable/renderer/swt/example/SWTNatExamplesRunner.xtend
@@ -1,11 +1,14 @@
 package org.eclipse.nebula.widgets.nattable.renderer.swt.example
 
+import com.google.inject.Guice
+import com.google.inject.Injector
 import java.util.HashMap
 import org.eclipse.jface.viewers.TreeSelection
 import org.eclipse.jface.viewers.TreeViewer
 import org.eclipse.nebula.widgets.nattable.core.example.index.NatExamplesIndex
 import org.eclipse.nebula.widgets.nattable.core.example.index.node.NatExampleNode
 import org.eclipse.nebula.widgets.nattable.renderer.swt.SWTNatTable
+import org.eclipse.nebula.widgets.nattable.renderer.swt.SWTNatTableModule
 import org.eclipse.swt.SWT
 import org.eclipse.swt.custom.CTabFolder
 import org.eclipse.swt.custom.CTabItem
@@ -27,6 +30,8 @@
 	
 	//
 	
+	val extension Injector injector = Guice::createInjector(new SWTNatTableModule)
+	
 	val int shellWidth
 	val int shellHeight
 	
@@ -100,6 +105,7 @@
 		
 		// Create example control
 		val exampleControl = new SWTNatTable(tabComposite) => [
+			it.injectMembers
 			layoutData = new GridData(GridData::FILL_BOTH)
 			layer = node.natExample.createLayer
 		]
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 9b246d9..624cc31 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
@@ -1,6 +1,5 @@
 package org.eclipse.nebula.widgets.nattable.renderer.swt
 
-import com.google.inject.Guice
 import com.google.inject.Injector
 import javax.inject.Inject
 import org.eclipse.nebula.widgets.nattable.core.geometry.PixelArea
@@ -10,7 +9,6 @@
 import org.eclipse.nebula.widgets.nattable.renderer.swt.event.mode.ModeSwitcher
 import org.eclipse.nebula.widgets.nattable.renderer.swt.event.mode.NormalMode
 import org.eclipse.nebula.widgets.nattable.renderer.swt.graphics.SWTGraphicsContext
-import org.eclipse.nebula.widgets.nattable.renderer.swt.graphics.SWTPainterFactory
 import org.eclipse.swt.SWT
 import org.eclipse.swt.graphics.GC
 import org.eclipse.swt.widgets.Canvas
@@ -20,7 +18,7 @@
 
 	static val int DEFAULT_STYLE_OPTIONS = SWT::NO_BACKGROUND.bitwiseOr(SWT::DOUBLE_BUFFERED).bitwiseOr(SWT::NO_REDRAW_RESIZE)
 	
-	extension Injector
+	@Inject extension Injector
 	@Inject extension PainterFactory
 
 	Layer layer
@@ -31,11 +29,6 @@
 
 	new(Composite parent, int style) {
 		super(parent, style)
-		
-		_injector = Guice::createInjector.createChildInjector([ binder |
-			binder.bind(typeof(PainterFactory)).toInstance(new SWTPainterFactory)
-		])
-		this.injectMembers
 	}
 	
 	def Layer getLayer() { layer }
diff --git a/org.eclipse.nebula.widgets.nattable.renderer.swt/src/org/eclipse/nebula/widgets/nattable/renderer/swt/SWTNatTableModule.xtend b/org.eclipse.nebula.widgets.nattable.renderer.swt/src/org/eclipse/nebula/widgets/nattable/renderer/swt/SWTNatTableModule.xtend
new file mode 100644
index 0000000..57f27c4
--- /dev/null
+++ b/org.eclipse.nebula.widgets.nattable.renderer.swt/src/org/eclipse/nebula/widgets/nattable/renderer/swt/SWTNatTableModule.xtend
@@ -0,0 +1,14 @@
+package org.eclipse.nebula.widgets.nattable.renderer.swt
+
+import com.google.inject.Binder
+import com.google.inject.Module
+import org.eclipse.nebula.widgets.nattable.core.graphics.PainterFactory
+import org.eclipse.nebula.widgets.nattable.renderer.swt.graphics.SWTPainterFactory
+
+class SWTNatTableModule implements Module {
+	
+	override configure(Binder binder) {
+		binder.bind(typeof(PainterFactory)).toInstance(new SWTPainterFactory)
+	}
+	
+}
\ No newline at end of file