2014-04-11 11:33:48 +02:00
|
|
|
package io.bitsquare.di;
|
|
|
|
|
|
|
|
import com.google.inject.Injector;
|
|
|
|
import javafx.fxml.FXMLLoader;
|
2014-04-28 00:14:10 +02:00
|
|
|
import javafx.util.BuilderFactory;
|
|
|
|
|
|
|
|
import java.net.URL;
|
|
|
|
import java.util.ResourceBundle;
|
2014-04-11 11:33:48 +02:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Guice support for fxml controllers
|
|
|
|
*/
|
|
|
|
public class GuiceFXMLLoader extends FXMLLoader
|
|
|
|
{
|
|
|
|
|
|
|
|
private static Injector injector = null;
|
|
|
|
|
2014-04-28 00:14:10 +02:00
|
|
|
public static void setInjector(Injector injector)
|
|
|
|
{
|
|
|
|
GuiceFXMLLoader.injector = injector;
|
|
|
|
}
|
|
|
|
|
2014-04-11 11:33:48 +02:00
|
|
|
public GuiceFXMLLoader()
|
|
|
|
{
|
2014-04-28 00:14:10 +02:00
|
|
|
super();
|
|
|
|
setupControllerFactory();
|
|
|
|
}
|
|
|
|
|
|
|
|
public GuiceFXMLLoader(URL url)
|
|
|
|
{
|
|
|
|
super(url);
|
|
|
|
setupControllerFactory();
|
2014-04-11 11:33:48 +02:00
|
|
|
}
|
|
|
|
|
2014-04-28 00:14:10 +02:00
|
|
|
public GuiceFXMLLoader(URL url, ResourceBundle resourceBundle)
|
2014-04-11 11:33:48 +02:00
|
|
|
{
|
2014-04-28 00:14:10 +02:00
|
|
|
super(url, resourceBundle);
|
|
|
|
setupControllerFactory();
|
|
|
|
}
|
|
|
|
|
|
|
|
public GuiceFXMLLoader(URL url, ResourceBundle resourceBundle, BuilderFactory builderFactory)
|
|
|
|
{
|
|
|
|
super(url, resourceBundle, builderFactory);
|
|
|
|
setupControllerFactory();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void setupControllerFactory()
|
|
|
|
{
|
|
|
|
if (GuiceFXMLLoader.injector != null)
|
2014-04-11 11:33:48 +02:00
|
|
|
setControllerFactory(new GuiceControllerFactory(GuiceFXMLLoader.injector));
|
|
|
|
}
|
2014-04-28 00:14:10 +02:00
|
|
|
|
2014-04-11 11:33:48 +02:00
|
|
|
}
|