Tutorial Main View Controller
Main FXML File
The MainViewController in the /controller/MainViewController needs a valid FXML File. The bindings for Navigation, Workspace and StatusBar Controller uses the fx:id values.
<BorderPane>
<top>
<AnchorPane fx:id="navigationPane"/>
</top>
<center>
<AnchorPane fx:id="workspacePane"/>
</center>
<bottom>
<AnchorPane fx:id="statusPane"/>
</bottom>
</BorderPane>
MainViewController
For adding SubController and displaying their UI content following steps are needed:
- Prepare SubController
- Connect with FXML identifier
- Define ContentManager
- Load Controller in the MainViewController LifeCycle
- Optional Prepare Functions for Controller switching
- Optional CDI based Functions / Injection Points
Prepare SubController
lazy val workspaceController: WorkspaceController =
getController[WorkspaceController]()
lazy val barChartController: BarChartController =
getController[BarChartController]()
lazy val personController: PersonController =
getController[PersonController]()
lazy val navigationController: NavigationController =
getController[NavigationController]()
lazy val statusBarController: StatusBarController =
new StatusBarController()
Connect with FXML identifier
@FXML
var workspacePane: Pane = _
@FXML
var statusPane: Pane = _
@FXML
var navigationPane: Pane = _
ContentManager
var workspaceManager: ContentManager = _
var navigationManager: ContentManager = _
var statusBarManager: ContentManager = _
Init Controller
override def didGainVisibilityFirstTime() {
super.didGainVisibility()
navigationManager = ContentManager(navigationPane, this, navigationController)
statusBarManager = ContentManager(statusPane, this, statusBarController)
workspaceManager = ContentManager(workspacePane, this, workspaceController)
}
2.0.1*