Annotates a controller constructor argument to treat it as a nested controller
Annotates a class to generate a ScalaFXML controller around it
Annotates a class to generate a ScalaFXML controller around it
The annotated class will be moved to an inner class in the generated proxy, named Controller. The proxy gets the annotated class' name, and will have a constructor receiving a scalafxml.core.ControllerDependencyResolver. It implements the javafx.fxml.Initializable interface.
The generated proxy has all the ScalaFX types from the original class' constructor as public JavaFX variables annotated with the javafx.fxml.FXML attribute.
All the public methods of the controller are copied to the proxy, delegating the call to the inner controller, converting JavaFX event arguments to ScalaFX event arguments.
The controller itself is instantiated in the proxy's initialize method.
Macro transformation implementation
Annotates a controller constructor argument to treat it as a nested controller
The nested controller's real (generated proxy) type (the argument type should be a trait implemented by the inner controller)