package husacct.validate.presentation; import husacct.ServiceProvider; import husacct.common.services.IServiceListener; import husacct.validate.domain.configuration.ConfigurationServiceImpl; import husacct.validate.task.TaskServiceImpl; import javax.swing.JInternalFrame; public class GuiController { private final TaskServiceImpl task; private final ConfigurationServiceImpl configuration; private BrowseViolations browseViolations; private ViolationsFilterDialog filterViolations; private ConfigurationUI configurationUI; public GuiController(TaskServiceImpl task, ConfigurationServiceImpl configuration) { this.task = task; this.configuration = configuration; subscribeToLocalChangeListener(); } private void subscribeToLocalChangeListener() { ServiceProvider.getInstance().getLocaleService().addServiceListener(new IServiceListener() { @Override public void update() { initializeAllScreens(); reloadGUIText(); } }); } private void reloadGUIText() { browseViolations.loadText(); filterViolations.loadGUIText(); configurationUI.loadAfterChange(); } public JInternalFrame getBrowseViolationsGUI() { initializeBrowseViolations(); browseViolations.validateNow(); return browseViolations; } public JInternalFrame getConfigurationGUI() { initializeConfigurationUI(); return configurationUI; } private void initializeAllScreens() { initializeBrowseViolations(); initializeConfigurationUI(); initializeFilterViolations(); } private void initializeBrowseViolations() { if (browseViolations == null) { this.browseViolations = new BrowseViolations(task, configuration); configuration.attachViolationHistoryRepositoryObserver(this.browseViolations); } } private void initializeConfigurationUI() { if (configurationUI == null) { this.configurationUI = new ConfigurationUI(task); } } private void initializeFilterViolations() { if (filterViolations == null) { initializeBrowseViolations(); this.filterViolations = new ViolationsFilterDialog(task, browseViolations); } } }