Created
July 1, 2012 17:53
-
-
Save andytill/3029103 to your computer and use it in GitHub Desktop.
Creating JavaFX Controllers using Guice
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* A JavaFX controller factory for constructing controllers via Guice DI. To | |
* install this in the {@link FXMLLoader}, pass it as a parameter to | |
* {@link FXMLLoader#setControllerFactory(Callback)}. | |
* <p> | |
* Once set, make sure you do <b>not</b> use the static methods on | |
* {@link FXMLLoader} when creating your JavaFX node. | |
*/ | |
class GuiceControllerFactory implements Callback<Class<?>, Object> { | |
private final Injector injector; | |
public GuiceControllerFactory(Injector anInjector) { | |
injector = anInjector; | |
} | |
@Override | |
public Object call(Class<?> aClass) { | |
return injector.getInstance(aClass); | |
} | |
} |
An Injector is a guice class.
Thank you, man! Very helpful
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
What is Injector? I can't find it in the JavaFX packages.