Refactor controller architecture to match JavaFX and MVC standards for desktop UI applications.
- Controllers
- Controllers annotated with Spring
@Controller are Spring-managed and singletons.
- Controllers loaded from Java code and outside of DI and should be called
Fragments
- Services and Controllers publish events using Spring
ApplicationEventPublisher for dispatching events
- Map simple events (as
refreshView() is used today)
- Emit events from Controller and Services, use
Platform.runLater() or utility FX.run() in controller listeners.
- Remove all
Service->Controller and most Controller->Controller dependency injection.
- Repackage the FXML files with domain folders
plugin, project, ...
- Try to remove circular dependency injection (Update
application.properties flag)
Refactor controller architecture to match JavaFX and MVC standards for desktop UI applications.
@Controllerare Spring-managed and singletons.FragmentsApplicationEventPublisherfor dispatching eventsrefreshView()is used today)Platform.runLater()or utilityFX.run()in controller listeners.Service->Controllerand mostController->Controllerdependency injection.plugin,project, ...application.propertiesflag)