/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package org.pieShare.pieShareAppFx.springConfiguration; import org.pieShare.pieShareApp.springConfiguration.PiePlateConfiguration; import org.pieShare.pieShareApp.springConfiguration.PieUtilitiesConfiguration; import javafx.fxml.FXMLLoader; import org.pieShare.pieShareAppFx.ControllerFactory; import org.pieShare.pieShareAppFx.FXMLController; import org.pieShare.pieShareAppFx.controller.BasePreferencesController; import org.pieShare.pieShareAppFx.controller.ClusterSettingsController; import org.pieShare.pieShareAppFx.controller.FileFilterSettingsController; import org.pieShare.pieShareAppFx.controller.LoginController; import org.pieShare.pieShareAppFx.controller.MainSceneController; import org.pieShare.pieShareApp.springConfiguration.PieShareApp.PieShareAppService; import org.pieShare.pieShareApp.springConfiguration.PieShareApp.PieShareAppTasks; import org.pieShare.pieShareAppFx.FXMLLoaderExistingController; import org.pieShare.pieShareAppFx.animations.SpinAnimation; import org.pieShare.pieShareAppFx.controller.TwoColumnListViewController; import org.pieShare.pieShareAppFx.controller.WorkingMessageController; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Lazy; import org.springframework.context.annotation.Scope; /** * * @author Svetoslav */ @Configuration public class PieShareAppFx { @Autowired private PieUtilitiesConfiguration utilities; @Autowired private PieShareAppService services; @Autowired private PiePlateConfiguration plate; @Autowired private PieShareAppService appService; @Autowired private PieShareAppTasks tasks; @Bean @Lazy @Scope(value = "prototype") public FXMLLoader fxmlLoader() { FXMLLoader loader = new FXMLLoader(); loader.setControllerFactory(controllerFactory()); return loader; } @Bean @Lazy @Scope(value = "prototype") public FXMLLoaderExistingController fxmlLoaderExistingController() { FXMLLoaderExistingController loader = new FXMLLoaderExistingController(); return loader; } @Bean @Lazy public FXMLController mainController() { FXMLController controller = new FXMLController(); controller.setBeanService(this.utilities.beanService()); controller.setFXMLLoader(this.fxmlLoader()); return controller; } @Bean @Lazy public MainSceneController mainSceneController() { MainSceneController controller = new MainSceneController(); controller.setBeanService(this.utilities.beanService()); controller.setClusterManagementService(plate.clusterManagementService()); controller.setPreferencesListViewController(twoColumnListViewController()); controller.setCloudsListViewController(twoColumnListViewController()); controller.setLoginController(loginController()); controller.setClusterSettingsController(clusterSettingsController()); return controller; } @Bean @Lazy public ClusterSettingsController clusterSettingsController() { ClusterSettingsController controller = new ClusterSettingsController(); controller.setBeanService(utilities.beanService()); controller.setExecuterService(utilities.pieExecutorService()); controller.setLoginStateChangedEvent(utilities.eventBase()); controller.setLogoutTask(tasks.logoutTask()); return controller; } @Bean @Lazy public ControllerFactory controllerFactory() { ControllerFactory controller = new ControllerFactory(); controller.setBeanService(utilities.beanService()); return controller; } @Bean @Lazy public LoginController loginController() { LoginController controller = new LoginController(); controller.setLoginTask(tasks.loginTask()); controller.setPieExecutorService(utilities.pieExecutorService()); controller.setBeanService(utilities.beanService()); controller.setLoginStateChangedEventBase(utilities.eventBase()); controller.setBasePreferencesController(basePreferencesController()); return controller; } @Bean @Lazy public BasePreferencesController basePreferencesController() { BasePreferencesController controller = new BasePreferencesController(); controller.setFXMLController(this.mainController()); controller.setBeanService(utilities.beanService()); controller.setDatabaseService(services.databaseService()); controller.setApplicationConfigurationService(services.applicationConfigurationService()); return controller; } @Bean @Lazy public FileFilterSettingsController fileFilterSettingsController() { FileFilterSettingsController controller = new FileFilterSettingsController(); controller.setRegexService(utilities.regexService()); controller.setFileFilterService(services.fileFilterService()); controller.setBeanService(utilities.beanService()); controller.setFXMLController(mainController()); controller.setFileService(services.localFileService()); return controller; } @Bean @Lazy @Scope(value = "prototype") public SpinAnimation spinAnimation() { SpinAnimation animation = new SpinAnimation(); return animation; } @Bean @Lazy @Scope(value = "prototype") public WorkingMessageController workingMessageController() { WorkingMessageController controller = new WorkingMessageController(); controller.setBeanService(utilities.beanService()); return controller; } @Bean @Lazy @Scope(value = "prototype") public TwoColumnListViewController twoColumnListViewController() { TwoColumnListViewController controller = new TwoColumnListViewController(); controller.setBeanService(utilities.beanService()); return controller; } }