package de.geofroggerfx.fx.utils; import javafx.fxml.FXMLLoader; import javax.enterprise.inject.Instance; import javax.enterprise.inject.Produces; import javax.inject.Inject; /** * This class is based on the tutorial * http://blog.matthieu.brouillard.fr/2012/08/fxml-javafx-powered-by-cdi-jboss-weld_6.html * * Thanks to Matthieu BROUILLARD */ public class FXMLLoaderProducer { @Inject private Instance<Object> instance; @Produces public FXMLLoader createLoader() { final FXMLLoader loader = new FXMLLoader(); loader.setControllerFactory(param -> instance.select(param).get()); return loader; } }