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