This is an automated email from the git hooks/post-receive script. New commit to branch feature/4304_synchro_marees in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit e9df03c2ed501172f98fdc00be92112c88efa2fd Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Aug 9 16:42:08 2016 +0200 Sanitize the application context, introduce DataSourcesManager, clean code a lot --- .../java/fr/ird/observe/ObserveActionExecutor.java | 20 +- .../main/java/fr/ird/observe/ObserveCLAction.java | 23 +- .../fr/ird/observe/ObserveOpenDataManager.java | 65 ++ .../main/java/fr/ird/observe/ObserveRunner.java | 91 +- .../observe/ObserveSwingApplicationContext.java | 999 ++++++++------------- .../ObserveSwingApplicationDataSourcesManager.java | 108 +++ .../fr/ird/observe/db/ObserveSwingDataSource.java | 274 ++++-- .../main/java/fr/ird/observe/ui/ObserveMainUI.jaxx | 17 +- .../fr/ird/observe/ui/ObserveMainUIHandler.java | 66 +- .../java/fr/ird/observe/ui/ObserveUICallback.java | 7 +- .../src/main/java/fr/ird/observe/ui/UIHelper.java | 12 +- .../actions/ChangeApplicationLanguageAction.java | 2 +- .../observe/ui/actions/ChangeDbLanguageAction.java | 2 +- .../observe/ui/actions/ChangeStorageAction.java | 2 +- .../observe/ui/actions/CloseApplicationAction.java | 2 +- .../fr/ird/observe/ui/actions/CloseHelpAction.java | 2 +- .../ird/observe/ui/actions/CloseStorageAction.java | 4 +- .../ui/actions/ImportStorageFromFileAction.java | 4 +- .../ird/observe/ui/actions/LaunchAdminAction.java | 2 +- .../ui/actions/ReloadApplicationAction.java | 2 +- .../actions/ReloadDefaultConfigurationAction.java | 2 +- .../observe/ui/actions/ReloadResourcesAction.java | 5 +- .../observe/ui/actions/ReloadStorageAction.java | 6 +- .../ui/actions/SaveStorageToFileAction.java | 4 +- .../ird/observe/ui/actions/ShowConfigAction.java | 4 +- .../observe/ui/actions/ShowStorageInfoAction.java | 2 +- .../ui/actions/shared/CloseAndCreateUIAction.java | 8 +- .../ui/actions/shared/CloseOpenUIAction.java | 8 +- .../shared/MoveActivityLonglinesUIAction.java | 2 +- .../actions/shared/MoveActivitySeinesUIAction.java | 2 +- .../ui/actions/shared/MoveRoutesUIAction.java | 2 +- .../actions/shared/MoveTripLonglinesUIAction.java | 2 +- .../ui/actions/shared/MoveTripSeinesUIAction.java | 2 +- .../observe/ui/actions/shared/ReOpenUIAction.java | 2 +- .../ui/actions/shared/SelectOpenNodeUIAction.java | 2 +- .../java/fr/ird/observe/ui/admin/AdminTabUI.jaxx | 15 +- .../fr/ird/observe/ui/admin/AdminTabUIHandler.java | 8 +- .../fr/ird/observe/ui/admin/AdminUILauncher.java | 6 +- .../java/fr/ird/observe/ui/admin/AdminUIModel.java | 36 +- .../ui/admin/datasynchro/DataSynchroUIHandler.java | 109 +-- .../DataSynchronizeTaskListCellRenderer.java | 14 +- .../java/fr/ird/observe/ui/content/ContentUI.jaxx | 11 +- .../ird/observe/ui/content/ContentUIHandler.java | 2 +- .../ird/observe/ui/content/ContentUIManager.java | 77 +- .../impl/longline/LonglineDetailCompositionUI.jaxx | 2 +- .../LonglineDetailCompositionUIHandler.java | 12 +- .../impl/longline/LonglineGlobalCompositionUI.jaxx | 8 +- .../LonglineGlobalCompositionUIHandler.java | 3 +- .../impl/longline/SetLonglineUIHandler.java | 2 +- .../ActivitySeineObservedSystemUIHandler.java | 2 +- ...ngObjectTransmittingBuoyOperationUIHandler.java | 2 +- .../ui/content/impl/seine/SetSeineUIHandler.java | 4 +- .../impl/longline/ActivityLonglinesUIHandler.java | 2 +- .../list/impl/longline/TripLonglinesUIHandler.java | 2 +- .../list/impl/seine/ActivitySeinesUIHandler.java | 2 +- .../content/list/impl/seine/RoutesUIHandler.java | 2 +- .../list/impl/seine/TripSeinesUIHandler.java | 2 +- .../impl/longline/ActivityLonglineUIHandler.java | 2 +- .../open/impl/longline/TripLonglineUIHandler.java | 4 +- .../open/impl/seine/ActivitySeineUIHandler.java | 2 +- .../ui/content/open/impl/seine/RouteUIHandler.java | 4 +- .../open/impl/seine/TripSeineUIHandler.java | 4 +- .../ui/content/ref/ContentReferenceUIHandler.java | 2 +- .../ui/content/table/ContentTableUIHandler.java | 4 +- .../impl/longline/CatchLonglineUIHandler.java | 10 +- .../table/impl/longline/EncounterUIHandler.java | 4 +- .../longline/GearUseFeaturesLonglineUIHandler.java | 4 +- .../table/impl/longline/SensorUsedUIHandler.java | 4 +- .../content/table/impl/longline/TdrUIHandler.java | 6 +- .../impl/seine/GearUseFeaturesSeineUIHandler.java | 4 +- .../table/impl/seine/NonTargetCatchUIHandler.java | 4 +- .../table/impl/seine/NonTargetSampleUIHandler.java | 2 +- .../impl/seine/ObjectObservedSpeciesUIHandler.java | 4 +- .../impl/seine/ObjectSchoolEstimateUIHandler.java | 4 +- .../table/impl/seine/SchoolEstimateUIHandler.java | 4 +- .../table/impl/seine/TargetCatchUIHandler.java | 4 +- .../impl/seine/TargetDiscardCatchUIHandler.java | 4 +- .../table/impl/seine/TargetSampleUIHandler.java | 2 +- .../ird/observe/ui/storage/ObstunaAdminAction.java | 16 +- .../ui/storage/StorageBackupUILauncher.java | 4 +- .../ird/observe/ui/storage/StorageUIHandler.java | 36 +- .../ird/observe/ui/storage/StorageUILauncher.java | 11 +- .../fr/ird/observe/ui/storage/StorageUIModel.java | 60 +- .../observe/ui/storage/tabs/ChooseDbModeUI.jaxx | 13 +- .../ui/storage/tabs/StorageTabUIHandler.java | 3 +- .../ui/tree/AbstractObserveTreeCellRenderer.java | 2 +- .../ird/observe/ui/tree/ActivityLonglineNode.java | 2 +- .../fr/ird/observe/ui/tree/ActivitySeineNode.java | 2 +- .../ui/tree/DataSelectionTreeSelectionModel.java | 2 +- .../observe/ui/tree/FloatingObjectSeineNode.java | 2 +- .../ui/tree/NavigationTreeSelectionModel.java | 2 +- .../tree/ObserveNavigationTreeShowPopupAction.java | 8 +- .../fr/ird/observe/ui/tree/ObserveTreeHelper.java | 16 +- .../ird/observe/ui/tree/ProgramLonglineNode.java | 2 +- .../fr/ird/observe/ui/tree/ProgramSeineNode.java | 2 +- .../fr/ird/observe/ui/tree/RouteSeineNode.java | 2 +- .../fr/ird/observe/ui/tree/SetLonglineNode.java | 2 +- .../java/fr/ird/observe/ui/tree/SetSeineNode.java | 2 +- .../fr/ird/observe/ui/tree/TripLonglineNode.java | 2 +- .../java/fr/ird/observe/ui/tree/TripSeineNode.java | 2 +- .../actions/ChangeActivityRouteActionListener.java | 4 +- .../actions/ChangeActivityTripActionListener.java | 2 +- .../actions/ChangeRouteTripActionListener.java | 4 +- .../actions/ChangeTripProgramActionListener.java | 8 +- .../loadors/ActivityLonglinesNodeChildLoador.java | 2 +- .../tree/loadors/ActivitySeineNodeChildLoador.java | 2 +- .../loadors/ActivitySeinesNodeChildLoador.java | 2 +- .../loadors/ProgramLonglineNodeChildLoador.java | 2 +- .../tree/loadors/ProgramSeineNodeChildLoador.java | 2 +- .../ui/tree/loadors/RoutesNodeChildLoador.java | 2 +- .../observe/ui/util/tripMap/TripMapUIHandler.java | 4 +- .../observe/validation/ObserveSwingValidator.java | 42 +- .../ird/observe/validation/ValidationContext.java | 22 +- 113 files changed, 1137 insertions(+), 1316 deletions(-) diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ObserveActionExecutor.java b/observe-application-swing/src/main/java/fr/ird/observe/ObserveActionExecutor.java index 407e40e..bf33847 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ObserveActionExecutor.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ObserveActionExecutor.java @@ -65,7 +65,7 @@ public class ObserveActionExecutor extends ActionExecutor { return; } - if (ObserveSwingApplicationContext.isClosed()) { + if (ObserveSwingApplicationContext.get().isClosed()) { // l'application est déjà fermée, on ne fait rien return; @@ -77,7 +77,7 @@ public class ObserveActionExecutor extends ActionExecutor { model.setStepState(WizardState.RUNNING); // return; } - ObserveMainUI ui = ObserveSwingApplicationContext.get().getObserveMainUI(); + ObserveMainUI ui = ObserveSwingApplicationContext.get().getMainUI(); if (ui != null) { ui.setBusy(true); } @@ -92,7 +92,7 @@ public class ObserveActionExecutor extends ActionExecutor { "] failed with error " + error.getCause(), error); } } - if (ObserveSwingApplicationContext.isClosed()) { + if (ObserveSwingApplicationContext.get().isClosed()) { // l'application est déjà fermée, on ne fait rien return; @@ -104,7 +104,7 @@ public class ObserveActionExecutor extends ActionExecutor { model.setStepState(WizardState.FAILED); return; } - ObserveMainUI ui = ObserveSwingApplicationContext.get().getObserveMainUI(); + ObserveMainUI ui = ObserveSwingApplicationContext.get().getMainUI(); if (ui != null) { ui.getStatus().setStatus("Action [" + source.getActionLabel() + "] arrêté à cause d'un erreur " + error.getMessage()); } @@ -115,7 +115,7 @@ public class ObserveActionExecutor extends ActionExecutor { if (log.isDebugEnabled()) { log.debug("Action [" + source.getActionLabel() + "] was canceled"); } - if (ObserveSwingApplicationContext.isClosed()) { + if (ObserveSwingApplicationContext.get().isClosed()) { // l'application est déjà fermée, on ne fait rien return; @@ -125,7 +125,7 @@ public class ObserveActionExecutor extends ActionExecutor { admin.getHandler().getModel().setStepState(WizardState.CANCELED); return; } - ObserveMainUI ui = ObserveSwingApplicationContext.get().getObserveMainUI(); + ObserveMainUI ui = ObserveSwingApplicationContext.get().getMainUI(); if (ui != null) { ui.getStatus().setStatus("Action [" + source.getActionLabel() + "] annulée"); } @@ -136,7 +136,7 @@ public class ObserveActionExecutor extends ActionExecutor { if (log.isDebugEnabled()) { log.debug("Action [" + source.getActionLabel() + " ] was done in " + source.getTime()); } - if (ObserveSwingApplicationContext.isClosed()) { + if (ObserveSwingApplicationContext.get().isClosed()) { // l'application est déjà fermée, on ne fait rien return; @@ -154,7 +154,7 @@ public class ObserveActionExecutor extends ActionExecutor { } return; } - ObserveMainUI ui = ObserveSwingApplicationContext.get().getObserveMainUI(); + ObserveMainUI ui = ObserveSwingApplicationContext.get().getMainUI(); if (ui != null) { ui.getStatus().setStatus("Action [" + source.getActionLabel() + "] terminée."); } @@ -166,7 +166,7 @@ public class ObserveActionExecutor extends ActionExecutor { if (log.isDebugEnabled()) { log.debug("Action [" + source.getActionLabel() + " ] is consumed (still " + count + " tasks to treat)."); } - if (ObserveSwingApplicationContext.isClosed()) { + if (ObserveSwingApplicationContext.get().isClosed()) { // l'application est déjà fermée, on ne fait rien return; @@ -190,7 +190,7 @@ public class ObserveActionExecutor extends ActionExecutor { //admin.getHandler().getUi().removePropertyChangeListener(admin.getHandler().getUi()); // return; } - ObserveMainUI ui = ObserveSwingApplicationContext.get().getObserveMainUI(); + ObserveMainUI ui = ObserveSwingApplicationContext.get().getMainUI(); if (count < 1 && ui != null) { ui.setBusy(false); } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ObserveCLAction.java b/observe-application-swing/src/main/java/fr/ird/observe/ObserveCLAction.java index e11a47c..1f2b617 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ObserveCLAction.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ObserveCLAction.java @@ -225,8 +225,7 @@ public class ObserveCLAction { disableMainUI(); ObserveSwingApplicationContext context = ObserveSwingApplicationContext.get(); - ObserveMainUIHandler handler = - context.getContextValue(ObserveMainUIHandler.class); + ObserveMainUIHandler handler = context.getContextValue(ObserveMainUIHandler.class); Runnable runnable = createRunnable(handler, "showConfig", context); @@ -298,11 +297,8 @@ public class ObserveCLAction { launchAction(t(launcher.getTitle()), runnable); } - @SuppressWarnings("unused") public void launchH2ServerMode() throws InterruptedException { -// checkIsAdmin(); - if (!config.isLocalStorageExist()) { if (log.isErrorEnabled()) { log.error("Local database does not exist."); @@ -315,7 +311,6 @@ public class ObserveCLAction { } } - @SuppressWarnings("unused") public void createId(String className, int nbId) throws IOException { disableMainUI(); @@ -363,17 +358,14 @@ public class ObserveCLAction { return config; } - protected Runnable createRunnable(Object invoker, - String method, - Object... args) { + protected Runnable createRunnable(Object invoker, String method, Object... args) { ObserveActionExecutor executor = ObserveRunner.getActionExecutor(); Runnable runnable = executor.createRunnable(invoker, method, args); return runnable; } - protected void launchAction(String title, - Runnable target) throws InterruptedException { + protected void launchAction(String title, Runnable target) throws InterruptedException { ObserveActionExecutor executor = ObserveRunner.getActionExecutor(); CommandLineActionWorker action = new CommandLineActionWorker(title, target); @@ -387,14 +379,6 @@ public class ObserveCLAction { context.lock(); } -// protected void checkIsAdmin() { -// if (!ObserveRunner.isAdmin()) { -// throw new IllegalStateException( -// "Your are not allowed to execute admin operation with " + -// ObserveRunner.getRunner().getRunnerName()); -// } -// } - /** * Un worker pour les opération longues d'administration. * @@ -403,7 +387,6 @@ public class ObserveCLAction { */ public class CommandLineActionWorker extends ActionWorker<Void, String> { - public CommandLineActionWorker(String actionLabel, Runnable target) { super(actionLabel); setTarget(target); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ObserveOpenDataManager.java b/observe-application-swing/src/main/java/fr/ird/observe/ObserveOpenDataManager.java index 242fe5c..cffc743 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ObserveOpenDataManager.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ObserveOpenDataManager.java @@ -24,6 +24,9 @@ package fr.ird.observe; import com.google.common.base.Preconditions; import fr.ird.observe.db.DataContext; +import fr.ird.observe.services.ObserveServicesProvider; +import fr.ird.observe.services.dto.IdDtos; +import fr.ird.observe.services.dto.referential.ProgramDto; import java.io.Closeable; @@ -202,4 +205,66 @@ public class ObserveOpenDataManager implements Closeable { public void close() { dataContext.resetOpen(); } + + public void sanitizeOpenIds(String[] ids) { + if (ids != null) { + + boolean exists = true; + + ObserveServicesProvider servicesProvider = ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider(); + + for (int i = 0, l = ids.length; i < l; i++) { + String id = ids[i]; + + // si l'id précédent existe, on vérifie l'actuel + // sinon, on met à null + if (exists) { + if (IdDtos.isProgramId(id)) { + + exists = servicesProvider.newReferentialService().exists(ProgramDto.class, id); + + } else if (IdDtos.isTripSeineId(id)) { + + exists = servicesProvider.newTripSeineService().exists(id); + + } else if (IdDtos.isRouteId(id)) { + + exists = servicesProvider.newRouteService().exists(id); + + } else if (IdDtos.isActivitySeineId(id)) { + + exists = servicesProvider.newActivitySeineService().exists(id); + + } else if (IdDtos.isSetSeineId(id)) { + + exists = servicesProvider.newSetSeineService().exists(id); + + } else if (IdDtos.isFloatingObjectId(id)) { + + exists = servicesProvider.newFloatingObjectService().exists(id); + + } else if (IdDtos.isTripLonglineId(id)) { + + exists = servicesProvider.newTripLonglineService().exists(id); + + } else if (IdDtos.isActivityLonglineId(id)) { + + exists = servicesProvider.newActivityLonglineService().exists(id); + + } else if (IdDtos.isSetLonglineId(id)) { + + exists = servicesProvider.newSetLonglineService().exists(id); + + } else { + + exists = false; + } + } + + if (!exists) { + ids[i] = null; + } + } + } + } } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ObserveRunner.java b/observe-application-swing/src/main/java/fr/ird/observe/ObserveRunner.java index 455d1d2..36686b0 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ObserveRunner.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ObserveRunner.java @@ -62,6 +62,7 @@ import java.util.Map; import java.util.Properties; import static fr.ird.observe.ObserveResourceManager.Resource; +import static fr.ird.observe.ObserveSwingApplicationContext.Entries.H2_SERVER_MODE; import static fr.ird.observe.configuration.ObserveSwingApplicationConfigOption.BACKUP_DIRECTORY; import static fr.ird.observe.configuration.ObserveSwingApplicationConfigOption.DATA_DIRECTORY; import static fr.ird.observe.configuration.ObserveSwingApplicationConfigOption.DB_DIRECTORY; @@ -215,8 +216,7 @@ public abstract class ObserveRunner extends ApplicationRunner { } if (log.isInfoEnabled()) { - log.info(t("observe.runner.user.directories.loaded", - config.getDataDirectory())); + log.info(t("observe.runner.user.directories.loaded", config.getDataDirectory())); } // 3 - preparation i18n @@ -224,8 +224,7 @@ public abstract class ObserveRunner extends ApplicationRunner { initI18n(config); if (log.isInfoEnabled()) { - log.info(t("observe.runner.i18n.loaded", - config.getLocale().getDisplayLanguage())); + log.info(t("observe.runner.i18n.loaded", config.getLocale().getDisplayLanguage())); } // 4 - preparation de la configuration des ui @@ -234,7 +233,7 @@ public abstract class ObserveRunner extends ApplicationRunner { // 5 - preparation du context applicatif - initContext(config); + ObserveSwingApplicationContext applicationContext = new ObserveSwingApplicationContext(config); // 6 - détection de la base locale @@ -284,8 +283,7 @@ public abstract class ObserveRunner extends ApplicationRunner { protected void onStart() throws Exception { if (log.isInfoEnabled()) { - log.info(t("observe.runner.start", new Date(), - Arrays.toString(args))); + log.info(t("observe.runner.start", new Date(), Arrays.toString(args))); } ObserveSwingApplicationContext context = ObserveSwingApplicationContext.get(); @@ -294,13 +292,6 @@ public abstract class ObserveRunner extends ApplicationRunner { log.debug("Will use context : " + context); } - UIHelper.checkJAXXContextEntries( - context, - ObserveSwingApplicationContext.CONFIG_ENTRY_DEF, - ObserveSwingApplicationContext.ACTIONS_ENTRY_DEF, - ObserveSwingApplicationContext.DECORATOR_SERVICE_ENTRY_DEF - ); - // 1 - launch commandline actions ObserveSwingApplicationConfig config = context.getConfig(); @@ -331,39 +322,31 @@ public abstract class ObserveRunner extends ApplicationRunner { log.info(t("observe.runner.ui.loaded")); } - Boolean h2ServerMode = context.getContextValue( - Boolean.class, - ObserveCLAction.ActionDefinition.H2_SERVER_MODE.name()); + Boolean h2ServerMode = H2_SERVER_MODE.get(); if (BooleanUtils.isTrue(h2ServerMode)) { // starts in h2 server mode - context.removeContextValue( - Boolean.class, - ObserveCLAction.ActionDefinition.H2_SERVER_MODE.name()); + ObserveSwingApplicationContext.get().removeH2ServerMode(); new StartServerModeAction(ui).run(); // on ne charge rien au démarrage - ui.getStatus().setStatus(t("observe.runner.loaded", - config.getVersion())); + ui.getStatus().setStatus(t("observe.runner.loaded", config.getVersion())); return; } if (!config.isLoadLocalStorage()) { // on ne charge rien au démarrage - ui.getStatus().setStatus(t("observe.runner.loaded", - config.getVersion())); + ui.getStatus().setStatus(t("observe.runner.loaded", config.getVersion())); return; } // 3 - init storage - runAction(t("observe.runner.load.database"), - context, - "initStorage", config, ui, true); + runAction(t("observe.runner.load.database"), context, "initStorage", config, ui, true); } @@ -442,8 +425,7 @@ public abstract class ObserveRunner extends ApplicationRunner { // 1 - user data directory - File dataDirectory = - resourceManager.createDirectory(config, DATA_DIRECTORY); + File dataDirectory = resourceManager.createDirectory(config, DATA_DIRECTORY); if (log.isDebugEnabled()) { log.debug("user data directory : " + dataDirectory); @@ -466,8 +448,7 @@ public abstract class ObserveRunner extends ApplicationRunner { // 4 - resources directory - File resourcesDirectory = - resourceManager.createDirectory(config, RESOURCES_DIRECTORY); + File resourcesDirectory = resourceManager.createDirectory(config, RESOURCES_DIRECTORY); if (log.isDebugEnabled()) { log.debug("user resource data directory : " + resourcesDirectory); @@ -498,8 +479,7 @@ public abstract class ObserveRunner extends ApplicationRunner { // 7 - resources report - File reportDirectory = - resourceManager.createDirectory(config, REPORT_DIRECTORY); + File reportDirectory = resourceManager.createDirectory(config, REPORT_DIRECTORY); file = Resource.report.getFile(reportDirectory); @@ -550,10 +530,7 @@ public abstract class ObserveRunner extends ApplicationRunner { File i18nDirectory = config.getI18nDirectory(); - UserI18nInitializer i18nInitializer = new UserI18nInitializer( - i18nDirectory, - new DefaultI18nInitializer("observe-i18n") - ) { + UserI18nInitializer i18nInitializer = new UserI18nInitializer(i18nDirectory, new DefaultI18nInitializer("observe-i18n")) { @Override protected void createUserI18nLayout(File directory) throws Exception { @@ -574,8 +551,7 @@ public abstract class ObserveRunner extends ApplicationRunner { if (log.isDebugEnabled()) { log.debug("i18n language : " + locale); - log.debug("i18n loading time : " + - StringUtil.convertTime(t00, System.nanoTime())); + log.debug("i18n loading time : " + StringUtil.convertTime(t00, System.nanoTime())); } } @@ -637,42 +613,9 @@ public abstract class ObserveRunner extends ApplicationRunner { } - /** - * Permet l'initialisation du contexte applicatif et positionne l'instance - * partagée. - * - * Note : Cette méthode ne peut être appelée qu'une seule fois. - * - * @param config la configuration de l'application - * @return le context applicatif - * @throws IllegalStateException si un contexte applicatif a déja été positionné. - */ - public ObserveSwingApplicationContext initContext(ObserveSwingApplicationConfig config) { - - ObserveSwingApplicationContext.checkIsNotInit(); - - ObserveSwingApplicationContext applicationContext = new ObserveSwingApplicationContext(); - - // add config - ObserveSwingApplicationContext.CONFIG_ENTRY_DEF.setContextValue(applicationContext, config); - - // add actions - ObserveSwingApplicationContext.ACTIONS_ENTRY_DEF.setContextValue(applicationContext, new ObserveCLAction()); - - // referencement du context applicatif sur le helper de service - ObserveSwingApplicationContext.set(applicationContext); - - // init decorator service - applicationContext.getDecoratorService(); - - return applicationContext; - } - - protected ObserveMainUI startUI(ObserveSwingApplicationContext context, - ObserveSwingApplicationConfig config) { + protected ObserveMainUI startUI(ObserveSwingApplicationContext context, ObserveSwingApplicationConfig config) { - ObserveMainUIHandler uiHandler = - context.getContextValue(ObserveMainUIHandler.class); + ObserveMainUIHandler uiHandler = context.getContextValue(ObserveMainUIHandler.class); ObserveMainUI ui = uiHandler.initUI(context, config); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ObserveSwingApplicationContext.java b/observe-application-swing/src/main/java/fr/ird/observe/ObserveSwingApplicationContext.java index 72042b9..7583d5b 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ObserveSwingApplicationContext.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ObserveSwingApplicationContext.java @@ -32,34 +32,20 @@ import fr.ird.observe.db.constants.DbMode; import fr.ird.observe.db.event.ObserveSwingDataSourceEvent; import fr.ird.observe.db.event.ObserveSwingDataSourceListenerAdapter; import fr.ird.observe.services.ObserveDataSourceConfigurationMainFactory; -import fr.ird.observe.services.ObserveService; import fr.ird.observe.services.ObserveServiceMainFactory; -import fr.ird.observe.services.configuration.ObserveDataSourceConfiguration; +import fr.ird.observe.services.ObserveServicesProvider; import fr.ird.observe.services.configuration.ObserveDataSourceConfigurationTopiaH2; import fr.ird.observe.services.configuration.ObserveDataSourceInformation; -import fr.ird.observe.services.dto.IdDtos; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.reference.ReferenceBinderEngine; import fr.ird.observe.services.dto.reference.ReferenceBinderEngineSupplier; -import fr.ird.observe.services.dto.referential.ProgramDto; import fr.ird.observe.services.service.BabModelVersionException; import fr.ird.observe.services.service.DatabaseConnexionNotAuthorizedException; import fr.ird.observe.services.service.DatabaseNotFoundException; -import fr.ird.observe.services.service.ReferentialService; import fr.ird.observe.services.service.actions.validate.ValidateServiceUtils; import fr.ird.observe.services.service.actions.validate.ValidatorDto; -import fr.ird.observe.services.service.longline.ActivityLonglineService; -import fr.ird.observe.services.service.longline.SetLonglineService; -import fr.ird.observe.services.service.longline.TripLonglineService; -import fr.ird.observe.services.service.seine.ActivitySeineService; -import fr.ird.observe.services.service.seine.FloatingObjectService; -import fr.ird.observe.services.service.seine.RouteService; -import fr.ird.observe.services.service.seine.SetSeineService; -import fr.ird.observe.services.service.seine.TripSeineService; import fr.ird.observe.ui.ObserveMainUI; -import fr.ird.observe.ui.ObserveMainUIHandler; import fr.ird.observe.ui.ObserveUIMode; -import fr.ird.observe.ui.UIHelper; import fr.ird.observe.ui.actions.ChangeStorageAction; import fr.ird.observe.ui.actions.shared.AbstractUIAction; import fr.ird.observe.ui.actions.shared.CancelCreateUIAction; @@ -79,32 +65,50 @@ import fr.ird.observe.ui.actions.shared.ResetEditUIAction; import fr.ird.observe.ui.actions.shared.SaveEditUIAction; import fr.ird.observe.ui.actions.shared.SelectNodeUIAction; import fr.ird.observe.ui.actions.shared.SelectOpenNodeUIAction; -import fr.ird.observe.ui.content.ContentUI; +import fr.ird.observe.ui.content.ContentUIManager; import fr.ird.observe.ui.tree.ObserveTreeHelper; -import fr.ird.observe.validation.ObserveSwingValidator; import fr.ird.observe.validation.ValidationContext; -import jaxx.runtime.JAXXUtil; import jaxx.runtime.context.DefaultApplicationContext; import jaxx.runtime.context.JAXXContextEntryDef; -import jaxx.runtime.swing.CardLayout2; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.h2.tools.Server; import javax.swing.ActionMap; import javax.swing.JOptionPane; -import javax.swing.JPanel; -import java.awt.Component; import java.io.Closeable; import java.io.File; -import java.io.IOException; import java.util.Arrays; +import java.util.Collection; import java.util.EnumSet; import java.util.List; -import java.util.Locale; +import java.util.Objects; import java.util.Set; import java.util.UUID; +import static fr.ird.observe.ObserveSwingApplicationContext.Entries.ACTIONS; +import static fr.ird.observe.ObserveSwingApplicationContext.Entries.ACTION_MAP; +import static fr.ird.observe.ObserveSwingApplicationContext.Entries.BINDER_SERVICE; +import static fr.ird.observe.ObserveSwingApplicationContext.Entries.CONFIG; +import static fr.ird.observe.ObserveSwingApplicationContext.Entries.CONTENT_UI_MANAGER; +import static fr.ird.observe.ObserveSwingApplicationContext.Entries.DATA_CONTEXT; +import static fr.ird.observe.ObserveSwingApplicationContext.Entries.DATA_SOURCES_MANAGER; +import static fr.ird.observe.ObserveSwingApplicationContext.Entries.DATA_SOURCE_CONFIGURATION_FACTORY; +import static fr.ird.observe.ObserveSwingApplicationContext.Entries.DECORATOR_SERVICE; +import static fr.ird.observe.ObserveSwingApplicationContext.Entries.H2_SERVER; +import static fr.ird.observe.ObserveSwingApplicationContext.Entries.H2_SERVER_MODE; +import static fr.ird.observe.ObserveSwingApplicationContext.Entries.H2_WEBSERVER; +import static fr.ird.observe.ObserveSwingApplicationContext.Entries.MAIN_UI; +import static fr.ird.observe.ObserveSwingApplicationContext.Entries.NODE_TO_RESELECT; +import static fr.ird.observe.ObserveSwingApplicationContext.Entries.OPEN_DATA_MANAGER; +import static fr.ird.observe.ObserveSwingApplicationContext.Entries.TEXT_GENERATOR; +import static fr.ird.observe.ObserveSwingApplicationContext.Entries.VALIDATION_CONTEXT; +import static fr.ird.observe.ObserveSwingApplicationContext.Entries.VALIDATORS; +import static fr.ird.observe.ui.UIHelper.askUser; +import static fr.ird.observe.ui.UIHelper.displayInfo; +import static fr.ird.observe.ui.UIHelper.handlingError; +import static fr.ird.observe.ui.UIHelper.newContextEntryDef; +import static fr.ird.observe.ui.UIHelper.newListContextEntryDef; import static org.nuiton.i18n.I18n.n; import static org.nuiton.i18n.I18n.t; @@ -124,512 +128,351 @@ public class ObserveSwingApplicationContext extends DefaultApplicationContext im /** Logger */ private static final Log log = LogFactory.getLog(ObserveSwingApplicationContext.class); - /** Un drapeau pour savoir quand l'application est en cours de fermeture. */ - protected static boolean closed; - - /** - * //FIXME Rendre cela configurable - * Un drapeau pour activer sur les connections le support JMX. - * - * @since 2.2 - */ - private static boolean useJMX; - - public static ObserveSwingApplicationContext applicationContext; - - /** the jaxx context entry to store the config */ - public static final JAXXContextEntryDef<ObserveSwingApplicationConfig> CONFIG_ENTRY_DEF = - JAXXUtil.newContextEntryDef(ObserveSwingApplicationConfig.class); - - /** the jaxx context entry to store the decorator service */ - public static final JAXXContextEntryDef<DecoratorService> DECORATOR_SERVICE_ENTRY_DEF = - JAXXUtil.newContextEntryDef(DecoratorService.class); - - /** the jaxx context entry to store the decorator service */ - public static final JAXXContextEntryDef<ObserveTextGenerator> TEXT_GENERATOR_ENTRY_DEF = - JAXXUtil.newContextEntryDef(ObserveTextGenerator.class); - - - /** the jaxx context entry to store the service main factory */ - public static final JAXXContextEntryDef<ObserveServiceMainFactory> SERVICE_MAIN_FACTORY_ENTRY_DEF = - JAXXUtil.newContextEntryDef(ObserveServiceMainFactory.class); - - /** the jaxx context entry to store the data source configuration factory */ - public static final JAXXContextEntryDef<ObserveDataSourceConfigurationMainFactory> DATA_SOURCE_CONFIGURATION_FACTORY_ENTRY_DEF = - JAXXUtil.newContextEntryDef(ObserveDataSourceConfigurationMainFactory.class); - - /** the jaxx context entry to store the data source configuration factory */ - public static final JAXXContextEntryDef<ObserveOpenDataManager> OPEN_DATA_MANAGER_ENTRY_DEF = - JAXXUtil.newContextEntryDef(ObserveOpenDataManager.class); - - /** the jaxx context entry to store the decorator service */ - public static final JAXXContextEntryDef<ObserveSwingBinderService> BINDER_SERVICE_ENTRY_DEF = - JAXXUtil.newContextEntryDef(ObserveSwingBinderService.class); - - /** the jaxx context entry to store the data service */ - public static final JAXXContextEntryDef<DataContext> DATA_CONTEXT_ENTRY_DEF = - JAXXUtil.newContextEntryDef(DataContext.class); - - /** the jaxx context entry to store the data source (says the ui data source) */ - public static final JAXXContextEntryDef<ObserveSwingDataSource> SWING_DATA_SOURCE_ENTRY_DEF = - JAXXUtil.newContextEntryDef(ObserveSwingDataSource.class); - - public static final JAXXContextEntryDef<List<ObserveSwingDataSource>> SWING_DATA_SOURCE_LIST_ENTRY_DEF = - JAXXUtil.newListContextEntryDef("dataSources"); - - public static final JAXXContextEntryDef<ValidationContext> VALIDATION_CONTEXT_ENTRY_DEF = - JAXXUtil.newContextEntryDef(ValidationContext.class); - - public static final JAXXContextEntryDef<List<ValidatorDto>> VALIDATORS_ENTRY_DEF = - JAXXUtil.newListContextEntryDef("validators"); - - /** the jaxx context entry to store the main ui */ - private static final JAXXContextEntryDef<ObserveMainUI> MAIN_UI_ENTRY_DEF = - UIHelper.newContextEntryDef("mainui", ObserveMainUI.class); - - /** the jaxx context entry to store the commandline actions */ - public static final JAXXContextEntryDef<ObserveCLAction> ACTIONS_ENTRY_DEF = - UIHelper.newContextEntryDef(ObserveCLAction.class); - - /** the jaxx context entry to store the ui shared actions */ - public static final JAXXContextEntryDef<ActionMap> ACTION_MAP_ENTRY_DEF = - UIHelper.newContextEntryDef(ActionMap.class); - - /** the jaxx context entry to store previous selected path to reoload in the navigation tree */ - public static final JAXXContextEntryDef<List<String>> NODE_TO_RESELECT_ENTRY_DEF = - UIHelper.newListContextEntryDef("nodeToReselect"); - - /** the jaxx context entry to store the h2 server instance when the application switched to server mode */ - public static final JAXXContextEntryDef<Server> H2_SERVER_ENTRY_DEF = - JAXXUtil.newContextEntryDef(Server.class); - - /** the jaxx context entry to store the h2 webserver instance when the application switched to server mode */ - public static final JAXXContextEntryDef<Server> H2_WEBSERVER_ENTRY_DEF = - JAXXUtil.newContextEntryDef(Server.class); + enum Entries { + + CONFIG("Config", ObserveSwingApplicationConfig.class), + DECORATOR_SERVICE("Decorator service", DecoratorService.class), + TEXT_GENERATOR("Text generator", ObserveTextGenerator.class), + SERVICE_MAIN_FACTORY("Service main factory", ObserveServiceMainFactory.class), + DATA_SOURCE_CONFIGURATION_FACTORY("Data source configuration main factory", ObserveDataSourceConfigurationMainFactory.class), + OPEN_DATA_MANAGER("Open data manager", ObserveOpenDataManager.class), + BINDER_SERVICE("Binder service", ObserveSwingBinderService.class), + DATA_CONTEXT("Data context", DataContext.class), + CONTENT_UI_MANAGER("Content UI manager", ContentUIManager.class), + DATA_SOURCES_MANAGER("Data sources manager", ObserveSwingApplicationDataSourcesManager.class), + VALIDATION_CONTEXT("Validation context", ValidationContext.class), + MAIN_UI("Main UI", ObserveMainUI.class), + ACTIONS("Command line Actions", ObserveCLAction.class), + ACTION_MAP("UI Actions", ActionMap.class), + H2_SERVER_MODE("H2 Server mode", Boolean.class), + H2_SERVER("H2 Server", Server.class), + H2_WEBSERVER("H2 Web server", Server.class), + VALIDATORS("Validators"), + NODE_TO_RESELECT("Node to reselect"); + + private final String objectName; + private final JAXXContextEntryDef entryDef; + + <O> Entries(String objectName, Class<O> entryType) { + this.objectName = objectName; + this.entryDef = newContextEntryDef(objectName, entryType); + } - protected final ReferenceBinderEngine referenceBinderEngine = new ReferenceBinderEngineSupplier().get(); + <O> Entries(String objectName) { + this.objectName = objectName; + this.entryDef = newListContextEntryDef(objectName); + } - public ObserveSwingApplicationConfig getConfig() { - return CONFIG_ENTRY_DEF.getContextValue(this); - } + public <O> O get() { + return (O) entryDef.getContextValue(ObserveSwingApplicationContext.get()); + } - public final ObserveSwingDataSource getDataSource() { - ObserveSwingDataSource dataSource = SWING_DATA_SOURCE_ENTRY_DEF.getContextValue(this); - return dataSource; - } + private <O> void set(O instance) { + entryDef.setContextValue(ObserveSwingApplicationContext.get(), instance); + if (log.isInfoEnabled()) { + log.info("Add to application context " + objectName + ": " + (instance instanceof Collection ? ((Collection)instance).size()+" element(s)": instance)); + } + } - public final void setDataSource(ObserveSwingDataSource source) { - if (source == null) { - SWING_DATA_SOURCE_ENTRY_DEF.removeContextValue(this); - } else { - SWING_DATA_SOURCE_ENTRY_DEF.setContextValue(this, source); + private <O> void remove() { + O instance = get(); + entryDef.removeContextValue(ObserveSwingApplicationContext.get()); + if (log.isInfoEnabled()) { + log.info("Remove from application context " + objectName + ": " + (instance instanceof Collection ? ((Collection)instance).size()+" element(s)": instance)); + } } } - public final ObserveSwingDataSource newDataSource(ObserveDataSourceConfiguration configuration) { - ObserveSwingDataSource dataSource = new ObserveSwingDataSource(configuration); + private static ObserveSwingApplicationContext INSTANCE; - dataSource.addObserveSwingDataSourceListener(new ObserveSwingDataSourceListenerAdapter() { + /** Un objet pour bloquer le context */ + private final Object lock; - @Override - public void onOpened(ObserveSwingDataSourceEvent event) { - super.onOpened(event); - ObserveSwingDataSource dataSource = event.getSource(); - getAllDataSource().add(dataSource); + private final ReferenceBinderEngine referenceBinderEngine; - if (log.isInfoEnabled()) { - log.info("Data source opened : " + dataSource.getConfiguration() + " (" + getAllDataSource().size() + " datas sources open)"); - } - } + /** Un drapeau pour savoir quand l'application est en cours de fermeture. */ + private boolean closed; - @Override - public void onClosed(ObserveSwingDataSourceEvent event) { - super.onClosed(event); - ObserveSwingDataSource dataSource = event.getSource(); - getAllDataSource().remove(dataSource); - if (log.isInfoEnabled()) { - log.info("Data source closed : " + dataSource.getConfiguration() + " (" + getAllDataSource().size() + " datas sources open)"); - } - } - }); + /** + * Un drapeau pour activer sur les connections le support JMX. + * + * @since 2.2 + */ + private boolean useJMX; - return dataSource; + /** + * Récupération du contexte applicatif. + * + * @return l'instance partagé du contexte. + * @throws IllegalStateException si le contexte n'a pas été initialisé + */ + public static ObserveSwingApplicationContext get() throws IllegalStateException { + Objects.requireNonNull(INSTANCE, "no application context initialized."); + return INSTANCE; } - public ReferenceBinderEngine getReferenceBinderEngine() { - - return referenceBinderEngine; + /** @return {@code true} si le context a été initialisé */ + public static boolean isInit() { + return INSTANCE != null; } - protected List<ObserveSwingDataSource> getAllDataSource() { - List<ObserveSwingDataSource> dataSources = SWING_DATA_SOURCE_LIST_ENTRY_DEF.getContextValue(this); - if (dataSources == null) { - dataSources = Lists.newLinkedList(); - SWING_DATA_SOURCE_LIST_ENTRY_DEF.setContextValue(this, dataSources); - } - return dataSources; - } + public ObserveSwingApplicationContext(ObserveSwingApplicationConfig config) { + Preconditions.checkState(INSTANCE == null, "application context already registred."); - public final DecoratorService getDecoratorService() { - DecoratorService decoratorService = - DECORATOR_SERVICE_ENTRY_DEF.getContextValue(this); - if (decoratorService == null) { + INSTANCE = this; - // initialisation du service de décoration - ObserveSwingApplicationConfig config = getConfig(); - ReferentialLocale loc = ReferentialLocale.FR; - if (config != null) { - Locale dbLocale = config.getDbLocale(); - if (dbLocale != null) { - loc = ReferentialLocale.valueOf(dbLocale); - } - } - decoratorService = new DecoratorService(loc); - DECORATOR_SERVICE_ENTRY_DEF.setContextValue(this, decoratorService); - } - return decoratorService; + CONFIG.set(config); + BINDER_SERVICE.set(new ObserveSwingBinderService()); + ACTIONS.set(new ObserveCLAction()); + CONTENT_UI_MANAGER.set(new ContentUIManager()); + DATA_SOURCES_MANAGER.set(new ObserveSwingApplicationDataSourcesManager()); + DATA_SOURCE_CONFIGURATION_FACTORY.set(new ObserveDataSourceConfigurationMainFactory()); + DECORATOR_SERVICE.set(new DecoratorService(ReferentialLocale.valueOf(config.getDbLocale()))); + TEXT_GENERATOR.set(new ObserveTextGenerator(config)); + DATA_CONTEXT.set(new DataContext()); + OPEN_DATA_MANAGER.set(new ObserveOpenDataManager(getDataContext())); + VALIDATION_CONTEXT.set(new ValidationContext(getDataContext())); + VALIDATORS.set(Lists.newArrayList(ValidateServiceUtils.getValidators())); + referenceBinderEngine = new ReferenceBinderEngineSupplier().get(); + lock = new Object(); } - public final ObserveTextGenerator getTextGenerator() { - ObserveTextGenerator textGenerator = - TEXT_GENERATOR_ENTRY_DEF.getContextValue(this); - if (textGenerator == null) { + //------------------------------------------- + // - Read + //------------------------------------------- - ObserveSwingApplicationConfig config = getConfig(); - textGenerator = new ObserveTextGenerator(config); - TEXT_GENERATOR_ENTRY_DEF.setContextValue(this, textGenerator); - } - return textGenerator; + public boolean isUseJMX() { + return useJMX; } - public final ObserveOpenDataManager getOpenDataManager() { - ObserveOpenDataManager openDataManager = - OPEN_DATA_MANAGER_ENTRY_DEF.getContextValue(this); - if (openDataManager == null) { - - DataContext dataContext = getDataContext(); - - openDataManager = new ObserveOpenDataManager(dataContext); - OPEN_DATA_MANAGER_ENTRY_DEF.setContextValue(this, openDataManager); - } - return openDataManager; + /** + * @return {@code true} si le context applicatif a été fermé (et est donc + * passé dans la méthode {@link #close()}, {@code false} autrement. + */ + public boolean isClosed() { + return closed; } - - public final ObserveDataSourceConfigurationMainFactory getObserveDataSourceConfigurationMainFactory() { - - ObserveDataSourceConfigurationMainFactory configurationMainFactory = DATA_SOURCE_CONFIGURATION_FACTORY_ENTRY_DEF.getContextValue(this); - - if (configurationMainFactory == null) { - - configurationMainFactory = new ObserveDataSourceConfigurationMainFactory(); - - DATA_SOURCE_CONFIGURATION_FACTORY_ENTRY_DEF.setContextValue(this, configurationMainFactory); - - } - - return configurationMainFactory; + public ObserveSwingApplicationConfig getConfig() { + return CONFIG.get(); } - public ObserveSwingDataSource createDataSourceH2Temp(String label) { - ObserveDataSourceConfigurationMainFactory configurationMainFactory = getObserveDataSourceConfigurationMainFactory(); - - File tmpDirectory = getConfig().getTmpDirectory(); - - File dbDirectory = new File(tmpDirectory, ObserveSwingApplicationConfig.DB_NAME + UUID.randomUUID().toString()); - - ObserveDataSourceConfigurationTopiaH2 config = configurationMainFactory.createObserveDataSourceConfigurationTopiaH2( - label, - dbDirectory, - ObserveSwingApplicationConfig.DB_NAME, - getConfig().getH2Login(), - getConfig().getH2Password(), - false, - false, - getConfig().getModelVersion() - ); - - ObserveSwingDataSource result = newDataSource(config); - - return result; + public ContentUIManager getContentUIManager() { + return CONTENT_UI_MANAGER.get(); } - public <S extends ObserveService> S newService(Class<S> serviceType) { - - ObserveSwingDataSource dataSource = getDataSource(); - - Preconditions.checkNotNull(dataSource, "Aucune source de données configurée"); - - S service = dataSource.newService(serviceType); - - return service; + public ObserveSwingApplicationDataSourcesManager getDataSourcesManager() { + return DATA_SOURCES_MANAGER.get(); } - public final DataContext getDataContext() { - DataContext result = DATA_CONTEXT_ENTRY_DEF.getContextValue(this); - if (result == null) { - result = new DataContext(); - DATA_CONTEXT_ENTRY_DEF.setContextValue(this, result); - } - return result; + public ReferenceBinderEngine getReferenceBinderEngine() { + return referenceBinderEngine; } - public final ValidationContext getValidationContext() { - ValidationContext result = - VALIDATION_CONTEXT_ENTRY_DEF.getContextValue(this); - if (result == null) { - result = new ValidationContext(); - ObserveSwingValidator.setValidationContext(result); - result.setDataContext(getDataContext()); - VALIDATION_CONTEXT_ENTRY_DEF.setContextValue(this, result); - } - return result; + public DecoratorService getDecoratorService() { + return DECORATOR_SERVICE.get(); } - public final ImmutableSet<ValidatorDto> getValidators() { - List<ValidatorDto> result = - VALIDATORS_ENTRY_DEF.getContextValue(this); - if (result == null) { - try { - result = Lists.newArrayList(ValidateServiceUtils.getValidators()); - VALIDATORS_ENTRY_DEF.setContextValue(this, result); - - } catch (IOException e) { - throw new ObserveSwingTechnicalException("unable to load validators", e); - } - - } - return ImmutableSet.copyOf(result); + public ObserveTextGenerator getTextGenerator() { + return TEXT_GENERATOR.get(); } - @Override - public void close() { - if (log.isInfoEnabled()) { - log.info("Closing swing application context " + this); - } - - - // fermeture de touts les context de donnée ouvert - for (ObserveSwingDataSource dataSource : Lists.newArrayList(getAllDataSource())) { - if (log.isInfoEnabled()) { - log.info("Closing dataSource : " + dataSource.getConnection()); - } - dataSource.close(); - } - setDataSource(null); - - ObserveServiceMainFactory serviceMainFactory = ObserveServiceMainFactory.get(); - if (log.isInfoEnabled()) { - log.info("Closing main service factory: " + serviceMainFactory); - } - serviceMainFactory.close(); - - // fermeture du context principal - clear(); - - applicationContext = null; - - closed = true; - + public ObserveOpenDataManager getOpenDataManager() { + return OPEN_DATA_MANAGER.get(); } - - //------------------------------------------- - // UI instances - //------------------------------------------- - - public static void set(ObserveSwingApplicationContext context) { - checkIsNotInit(); - applicationContext = context; - - //FIXME -// AbstractDataSourceMigration.setApplicationConfigSupplier(new Supplier<ApplicationConfig>() { -// @Override -// public ApplicationConfig get() { -// return ObserveServiceHelper.context.getContextValue(ApplicationConfig.class); -// } -// }); - - // application non fermée - closed = false; + public ObserveDataSourceConfigurationMainFactory getObserveDataSourceConfigurationMainFactory() { + return DATA_SOURCE_CONFIGURATION_FACTORY.get(); } - /** - * Récupération du contexte applicatif. - * - * @return l'instance partagé du contexte. - * @throws IllegalStateException si le contexte n'a pas été initialisé - */ - public static ObserveSwingApplicationContext get() throws IllegalStateException { - checkInit(); - return applicationContext; + public ObserveServicesProvider getMainDataSourceServicesProvider() { + return getDataSourcesManager().getMainDataSource(); } - /** @return {@code true} si le context a été initialisé */ - public static boolean isInit() { - return applicationContext != null; + public DataContext getDataContext() { + return DATA_CONTEXT.get(); } - /** - * Teste si le context applicatif a bien été initialisé. - * - * @throws IllegalStateException si le context n'a pas été initialisé. - */ - public static void checkIsNotInit() throws IllegalStateException { - if (isInit()) { - throw new IllegalStateException("application context already registred."); - } + public ValidationContext getValidationContext() { + return VALIDATION_CONTEXT.get(); } - /** - * Teste si le context applicatif a bien été initialisé. - * - * @throws IllegalStateException si le context n'a pas été initialisé. - */ - protected static void checkInit() throws IllegalStateException { - if (!isInit()) { - throw new IllegalStateException("no application context initialized."); - } + public final ImmutableSet<ValidatorDto> getValidators() { + return ImmutableSet.copyOf((List) VALIDATORS.get()); } - public static boolean isUseJMX() { - return useJMX; + public ObserveMainUI getMainUI() { + return MAIN_UI.get(); } - public static void setUseJMX(boolean useJMX) { - useJMX = useJMX; + public List<String> getNodesToReselect() { + return NODE_TO_RESELECT.get(); } - /** - * @return {@code true} si le context applicatif a été fermé (et est donc - * passé dans la méthode {@link #close()}, {@code false} autrement. - */ - public static boolean isClosed() { - return closed; + public ActionMap getActionMap() { + return ACTION_MAP.get(); } - public ObserveMainUI getObserveMainUI() { - return MAIN_UI_ENTRY_DEF.getContextValue(get()); + public Server getH2Server() { + return H2_SERVER.get(); } - public ContentUI<?> getSelectedContentUI() { - - ObserveMainUI ui = getObserveMainUI(); - return getSelectedContentUI(ui); + public Server getH2WebServer() { + return H2_WEBSERVER.get(); } - public List<String> getNodesToReselect() { - return NODE_TO_RESELECT_ENTRY_DEF.getContextValue(this); + //------------------------------------------- + // - Write + //------------------------------------------- + + public void setUseJMX(boolean useJMX) { + this.useJMX = useJMX; } public void setNodesToReselect(String[] paths) { if (paths == null) { - NODE_TO_RESELECT_ENTRY_DEF.removeContextValue(this); + NODE_TO_RESELECT.remove(); } else { - NODE_TO_RESELECT_ENTRY_DEF.setContextValue(this, Arrays.asList(paths)); + NODE_TO_RESELECT.set(Arrays.asList(paths)); } } - public ContentUI<?> getSelectedContentUI(ObserveMainUI ui) { - - ContentUI<?> result = null; - - if (ui == null) { - // no ui, so no modification - return result; - } - - CardLayout2 layout = ui.getContentLayout(); - JPanel container = ui.getContent(); - Component currentContent = layout.getVisibleComponent(container); - if (currentContent != null && - currentContent instanceof ContentUI<?>) { - - result = (ContentUI<?>) currentContent; - } - return result; + public void setH2Server(Server server) { + H2_SERVER.set(server); } - public boolean closeSelectedContentUI() { - ObserveMainUI ui = getObserveMainUI(); - return closeSelectedContentUI(ui); + public void setH2WebServer(Server server) { + H2_WEBSERVER.set(server); } - /** - * Essaye de fermer l'écran d'édition s'il existe. - * - * @param mainUI l'ui principale - * @return {@code true} si le contenu a bien été fermé, {@code false} si on - * ne peut pas fermer l'écran - * @since 1.5 - */ - public boolean closeSelectedContentUI(ObserveMainUI mainUI) { - ContentUI<?> ui = getSelectedContentUI(mainUI); - if (ui == null) { - // no content ui - return true; - } - boolean closed = false; - try { - closed = ui.close(); - } catch (Exception e) { - UIHelper.handlingError(e); - } - return closed; + public void setMainUI(ObserveMainUI ui) { + MAIN_UI.set(ui); } - public ActionMap getActionMap() { - return ACTION_MAP_ENTRY_DEF.getContextValue(this); + public void removeMainUI() { + MAIN_UI.remove(); } - public void setObserveMainUI(ObserveMainUI ui) { - MAIN_UI_ENTRY_DEF.setContextValue(get(), ui); + public void removeH2ServerMode() { + H2_SERVER_MODE.remove(); } - public void removeObserveMainUI() { - MAIN_UI_ENTRY_DEF.removeContextValue(get()); - } - /** Un objet pour bloquer le context */ - protected final Object lock = new Object(); + public void registerShareActions() { + + ObserveMainUI ui = getMainUI(); + ActionMap actionMap = ui.getRootPane().getActionMap(); + + ACTION_MAP.set(actionMap); + + registerMainAction(actionMap, new SelectOpenNodeUIAction(ui)); + registerMainAction(actionMap, new SelectNodeUIAction(ui)); + registerMainAction(actionMap, new GoUpUIAction(ui)); + registerMainAction(actionMap, new GoDownUIAction(ui)); + registerMainAction(actionMap, new ReOpenUIAction(ui)); + registerMainAction(actionMap, new CloseOpenUIAction(ui)); + registerMainAction(actionMap, new CloseAndCreateUIAction(ui)); + registerMainAction(actionMap, new CancelCreateUIAction(ui)); + registerMainAction(actionMap, new ResetEditUIAction(ui)); + registerMainAction(actionMap, new SaveEditUIAction(ui)); + registerMainAction(actionMap, new DeleteDataUIAction(ui)); + registerMainAction(actionMap, new DeleteReferenceUIAction(ui)); + registerMainAction(actionMap, new MoveTripLonglinesUIAction(ui)); + registerMainAction(actionMap, new MoveTripSeinesUIAction(ui)); + registerMainAction(actionMap, new MoveRoutesUIAction(ui)); + registerMainAction(actionMap, new MoveActivitySeinesUIAction(ui)); + registerMainAction(actionMap, new MoveActivityLonglinesUIAction(ui)); - public ObserveSwingApplicationContext() { } - @SuppressWarnings({"UnconditionalWait", "WaitOrAwaitWithoutTimeout", "WaitNotInLoop"}) + //------------------------------------------- + // - Locks + //------------------------------------------- + public void lock() throws InterruptedException { synchronized (lock) { lock.wait(); } } - @SuppressWarnings({"NakedNotify"}) public void releaseLock() { synchronized (lock) { lock.notifyAll(); } } - public void askReload() { - if (log.isDebugEnabled()) { - log.debug("Ask to reload."); - } - ObserveRunner.getRunner().setReload(true); + //------------------------------------------- + // - Storages + //------------------------------------------- + + public ObserveSwingDataSource createTemporaryH2Storage(String label) { + ObserveDataSourceConfigurationMainFactory configurationMainFactory = getObserveDataSourceConfigurationMainFactory(); + + File tmpDirectory = getConfig().getTmpDirectory(); + + File dbDirectory = new File(tmpDirectory, ObserveSwingApplicationConfig.DB_NAME + UUID.randomUUID().toString()); + + ObserveDataSourceConfigurationTopiaH2 config = configurationMainFactory.createObserveDataSourceConfigurationTopiaH2( + label, + dbDirectory, + ObserveSwingApplicationConfig.DB_NAME, + getConfig().getH2Login(), + getConfig().getH2Password(), + false, + false, + getConfig().getModelVersion() + ); + + ObserveSwingDataSource result = getDataSourcesManager().newDataSource(config); + + return result; } - public void initStorage(ObserveSwingApplicationConfig config, - ObserveMainUI mainUI, - boolean askToCreate) { + public void initStorage(ObserveSwingApplicationConfig config, ObserveMainUI mainUI, boolean askToCreate) { if (config.isLocalStorageExist()) { // une base locale existe, on l'ouvre - if (loadLocalStorage()) { + + boolean success = false; + // chargement de la base locale + + // création de la source de données sur la base locale + ObserveSwingDataSource dataSource = getDataSourcesManager().newLocalDatasource(getConfig()); + + try { + + ObserveDataSourceInformation dataSourceInformation = dataSource.checkCanConnect(); + + dataSource.migrateData(dataSourceInformation, getConfig().getModelVersion()); + + // la source sera utilisée dans les ui + prepareMainStorage(dataSource, true); +// getDataSourcesManager().setMainDataSource(dataSource); + + if (log.isInfoEnabled()) { + log.info(t("observe.init.local.db.detected", dataSource.getLabel())); + } + + // la base locale existe, on l'ouvre + dataSource.open(); + success = true; + } catch (DatabaseConnexionNotAuthorizedException | DatabaseNotFoundException | BabModelVersionException e) { + JOptionPane.showMessageDialog( + null, + e.getMessage(), + t("observe.title.error.dialog"), + JOptionPane.ERROR_MESSAGE + ); + } + + if (success) { // on peut retourner sur cette base mainUI.setMode(ObserveUIMode.DB); } + } else { // on peut retourner sur cette base @@ -638,104 +481,69 @@ public class ObserveSwingApplicationContext extends DefaultApplicationContext im if (askToCreate) { // demande à l'utilisateur s'il veut créer la base locale - createStorage(config, mainUI.getHandler()); - } - } - if (log.isInfoEnabled()) { - log.info(t("observe.init.storage.done")); - } - } - - protected void createStorage(ObserveSwingApplicationConfig config, - ObserveMainUIHandler uiHandler) { - - int reponse = UIHelper.askUser( - t("observe.title.no.local.db.found"), - t("observe.message.no.local.db.found", - config.getLocalDBDirectory()), - JOptionPane.QUESTION_MESSAGE, - new Object[]{ - t("observe.choice.useRemoteStorage"), - t("observe.choice.createLocalStorage"), - t("observe.choice.doNothing") - }, - 1 - ); - if (log.isDebugEnabled()) { - log.debug("response : " + reponse); - } - - Set<DbMode> dbModes = EnumSet.noneOf(DbMode.class); - String title = null; - if (reponse != JOptionPane.CLOSED_OPTION && reponse < 2) { - - if (reponse == 1) { - // creation de la base locale - dbModes.add(DbMode.CREATE_LOCAL); - title = n("observe.title.create.local.db"); - } else { - // connexion à une base distante - dbModes.add(DbMode.USE_REMOTE); - dbModes.add(DbMode.USE_SERVER); - title = n("observe.title.load.remote.db"); - } - } - if (! dbModes.isEmpty()) { - new ChangeStorageAction(getObserveMainUI(), dbModes, title).run(); - } - } - - protected boolean loadLocalStorage() { - boolean success = false; - // chargement de la base locale - - // création de la source de données sur la base locale - ObserveSwingDataSource dataSource = newLocalStorageService(getConfig()); - - try { - - ObserveDataSourceInformation dataSourceInformation = dataSource.checkCanConnect(); + int reponse = askUser( + t("observe.title.no.local.db.found"), + t("observe.message.no.local.db.found", + config.getLocalDBDirectory()), + JOptionPane.QUESTION_MESSAGE, + new Object[]{ + t("observe.choice.useRemoteStorage"), + t("observe.choice.createLocalStorage"), + t("observe.choice.doNothing") + }, + 1 + ); + if (log.isDebugEnabled()) { + log.debug("response : " + reponse); + } - dataSource.migrateData(dataSourceInformation, getConfig().getModelVersion()); + Set<DbMode> dbModes = EnumSet.noneOf(DbMode.class); + String title = null; + if (reponse != JOptionPane.CLOSED_OPTION && reponse < 2) { - // la source sera utilisée dans les ui - prepareMainStorage(dataSource); - setDataSource(dataSource); + if (reponse == 1) { + // creation de la base locale + dbModes.add(DbMode.CREATE_LOCAL); + title = n("observe.title.create.local.db"); + } else { + // connexion à une base distante + dbModes.add(DbMode.USE_REMOTE); + dbModes.add(DbMode.USE_SERVER); + title = n("observe.title.load.remote.db"); + } + } + if (!dbModes.isEmpty()) { + new ChangeStorageAction(getMainUI(), dbModes, title).run(); + } - if (log.isInfoEnabled()) { - log.info(t("observe.init.local.db.detected", dataSource.getLabel())); } - - // la base locale existe, on l'ouvre - dataSource.open(); - success = true; - } catch (DatabaseConnexionNotAuthorizedException | DatabaseNotFoundException | BabModelVersionException e) { - JOptionPane.showMessageDialog( - null, - e.getMessage(), - t("observe.title.error.dialog"), - JOptionPane.ERROR_MESSAGE - ); } - return success; + if (log.isInfoEnabled()) { + log.info(t("observe.init.storage.done")); + } } + /** * Prepare le storage principal qui servira dans les ui. * * @param dataSource la source de données a preparer */ - public void prepareMainStorage(ObserveSwingDataSource dataSource) { + public void prepareMainStorage(ObserveSwingDataSource dataSource, boolean setAsMainDataSource) { + if (setAsMainDataSource) { + + getDataSourcesManager().setMainDataSource(dataSource); + + } dataSource.addObserveSwingDataSourceListener(new ObserveSwingDataSourceListenerAdapter() { @Override public void onOpening(ObserveSwingDataSourceEvent event) { ObserveSwingDataSource s = event.getSource(); - UIHelper.displayInfo( - t("observe.message.db.loading", s.getLabel())); + displayInfo(t("observe.message.db.loading", s.getLabel())); } @Override @@ -751,7 +559,7 @@ public class ObserveSwingApplicationContext extends DefaultApplicationContext im // la base n'a pas pu être chargée proprement // ceci peut être due a une base dans une version pas // assez recente, on doit donc refermer cette base - UIHelper.handlingError("Could not obtain open datas from " + source.getLabel(), e); + handlingError("Could not obtain open datas from " + source.getLabel(), e); // fermeture de la source source.close(); @@ -764,7 +572,7 @@ public class ObserveSwingApplicationContext extends DefaultApplicationContext im super.onClosing(event); - ObserveMainUI mainUI = getObserveMainUI(); + ObserveMainUI mainUI = getMainUI(); DataContext dataContext = getDataContext(); dataContext.setEnabled(false); @@ -789,20 +597,18 @@ public class ObserveSwingApplicationContext extends DefaultApplicationContext im // on ferme la marée, la route ou l'activité ouvertes getOpenDataManager().close(); - ObserveMainUI mainUI = getObserveMainUI(); + ObserveMainUI mainUI = getMainUI(); // nettoyage de l'ui ( suppression navigation et autres ) if (mainUI != null) { if (log.isDebugEnabled()) { - log.debug("dispose ui from storage " + - source.getLabel() + ": " + mainUI.getName()); + log.debug("dispose ui from storage " + source.getLabel() + ": " + mainUI.getName()); } mainUI.setMode(ObserveUIMode.NO_DB); - UIHelper.displayInfo( - t("observe.message.db.closed", source.getLabel())); + displayInfo(t("observe.message.db.closed", source.getLabel())); } @@ -812,7 +618,7 @@ public class ObserveSwingApplicationContext extends DefaultApplicationContext im protected void openOnUI(ObserveSwingDataSource source) { // on rend le service disponible dans le service de validation - //getValidationContext().setDataSource(source); + //getValidationContext().setMainDataSource(source); // toutes les données sont chargées, on peut declarer le service // comme ouvert dans la configuration @@ -825,12 +631,11 @@ public class ObserveSwingApplicationContext extends DefaultApplicationContext im } // remplissage de l'ui - ObserveMainUI mainUI = getObserveMainUI(); + ObserveMainUI mainUI = getMainUI(); if (mainUI != null) { if (log.isDebugEnabled()) { - log.debug("loading ui for storage " + source.getLabel() + - ": " + mainUI.getName()); + log.debug("loading ui for storage " + source.getLabel() + ": " + mainUI.getName()); } DataContext dataContext = mainUI.getDataContext(); @@ -843,57 +648,62 @@ public class ObserveSwingApplicationContext extends DefaultApplicationContext im String[] openIds = config.getTreeOpenNodeIds(); if (source.canReadData()) { - sanitizeOpenIds(openIds); + getOpenDataManager().sanitizeOpenIds(openIds); } dataContext.populateOpens(openIds); - treeHelper.loadNavigationUI(source, mainUI); + treeHelper.loadNavigationUI(source); mainUI.setMode(ObserveUIMode.DB); - mainUI.getStatus().setStatus( - t("observe.message.db.loaded", source.getLabel())); + mainUI.getStatus().setStatus(t("observe.message.db.loaded", source.getLabel())); } } }); } - public void registerShareActions(ObserveMainUI ui) { + @Override + public void close() { + if (log.isInfoEnabled()) { + log.info("Closing swing application context " + this); + } - ActionMap actionMap = ui.getRootPane().getActionMap(); + // fermeture de touts les context de donnée ouvert + getDataSourcesManager().close(); - ACTION_MAP_ENTRY_DEF.setContextValue(this, actionMap); + ObserveServiceMainFactory serviceMainFactory = ObserveServiceMainFactory.get(); + if (log.isInfoEnabled()) { + log.info("Closing main service factory: " + serviceMainFactory); + } + serviceMainFactory.close(); - registerMainAction(actionMap, new SelectOpenNodeUIAction(ui)); - registerMainAction(actionMap, new SelectNodeUIAction(ui)); - registerMainAction(actionMap, new GoUpUIAction(ui)); - registerMainAction(actionMap, new GoDownUIAction(ui)); - registerMainAction(actionMap, new ReOpenUIAction(ui)); - registerMainAction(actionMap, new CloseOpenUIAction(ui)); - registerMainAction(actionMap, new CloseAndCreateUIAction(ui)); - registerMainAction(actionMap, new CancelCreateUIAction(ui)); - registerMainAction(actionMap, new ResetEditUIAction(ui)); - registerMainAction(actionMap, new SaveEditUIAction(ui)); - registerMainAction(actionMap, new DeleteDataUIAction(ui)); - registerMainAction(actionMap, new DeleteReferenceUIAction(ui)); - registerMainAction(actionMap, new MoveTripLonglinesUIAction(ui)); - registerMainAction(actionMap, new MoveTripSeinesUIAction(ui)); - registerMainAction(actionMap, new MoveRoutesUIAction(ui)); - registerMainAction(actionMap, new MoveActivitySeinesUIAction(ui)); - registerMainAction(actionMap, new MoveActivityLonglinesUIAction(ui)); + // fermeture du context principal + clear(); + + INSTANCE = null; + + closed = true; + + } + + @Override + protected void finalize() throws Throwable { + if (!closed) { + close(); + } + super.finalize(); } - public void registerMainAction(ActionMap actionMap, AbstractUIAction action) { + private void registerMainAction(ActionMap actionMap, AbstractUIAction action) { String actionId = action.getActionId(); - if (log.isDebugEnabled()) { - log.debug("register action " + actionId); + if (log.isInfoEnabled()) { + log.info("Register UI action " + actionId); } actionMap.put(actionId, action); } -// @SuppressWarnings({"UseOfObsoleteCollectionType"}) -// protected ObjectName createMBean(DataSource source) throws MalformedObjectNameException { +// private ObjectName createMBean(DataSource source) throws MalformedObjectNameException { // Hashtable<String, String> tb = new Hashtable<String, String>(); // tb.put("type", "statistics"); // String name = source.getLabel(); @@ -902,107 +712,4 @@ public class ObserveSwingApplicationContext extends DefaultApplicationContext im // ObjectName on = new ObjectName("hibernate", tb); // return on; // } - - /** - * Construit une source de données sur la base locale de l'application. - * - * <b>Note:</b> La base locale doit exister, sinon on soulève une - * exeception - * - * @param config la configuration à utiliser - * @return la service de persistance initialisé (mais non ouvert) - * @throws IllegalStateException si la base locale n'existe pas - * @see ObserveSwingDataSource - */ - public static ObserveSwingDataSource newLocalStorageService(ObserveSwingApplicationConfig config) throws IllegalStateException { - - ObserveDataSourceConfigurationTopiaH2 dataSourceConfigurationH2 = config.getDataSourceConfigurationH2(t("observe.storage.label.local")); - - if (!dataSourceConfigurationH2.getDatabaseFile().exists()) { - throw new IllegalStateException( - "local base must exist, when using this method (" + - dataSourceConfigurationH2.getDirectory() + ')'); - } - - ObserveSwingDataSource dataSource = get().newDataSource(dataSourceConfigurationH2); - - return dataSource; - } - - public Server getH2Server() { - return H2_SERVER_ENTRY_DEF.getContextValue(this); - } - - public void setH2Server(Server server) { - H2_SERVER_ENTRY_DEF.setContextValue(this, server); - } - - public Server getH2WebServer() { - return H2_WEBSERVER_ENTRY_DEF.getContextValue(this); - } - - public void setH2WebServer(Server server) { - H2_WEBSERVER_ENTRY_DEF.setContextValue(this, server); - } - - protected void sanitizeOpenIds(String[] ids) { - if (ids != null) { - - boolean exists = true; - - for (int i = 0, l = ids.length; i < l; i++) { - String id = ids[i]; - - // si l'id précédent existe, on vérifie l'actuel - // sinon, on met à null - if (exists) { - if (IdDtos.isProgramId(id)) { - - exists = newService(ReferentialService.class).exists(ProgramDto.class, id); - - } else if (IdDtos.isTripSeineId(id)) { - - exists = newService(TripSeineService.class).exists(id); - - } else if (IdDtos.isRouteId(id)) { - - exists = newService(RouteService.class).exists(id); - - } else if (IdDtos.isActivitySeineId(id)) { - - exists = newService(ActivitySeineService.class).exists(id); - - } else if (IdDtos.isSetSeineId(id)) { - - exists = newService(SetSeineService.class).exists(id); - - } else if (IdDtos.isFloatingObjectId(id)) { - - exists = newService(FloatingObjectService.class).exists(id); - - } else if (IdDtos.isTripLonglineId(id)) { - - exists = newService(TripLonglineService.class).exists(id); - - } else if (IdDtos.isActivityLonglineId(id)) { - - exists = newService(ActivityLonglineService.class).exists(id); - - } else if (IdDtos.isSetLonglineId(id)) { - - exists = newService(SetLonglineService.class).exists(id); - - } else { - - exists = false; - } - } - - if (!exists) { - ids[i] = null; - } - } - } - } - } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ObserveSwingApplicationDataSourcesManager.java b/observe-application-swing/src/main/java/fr/ird/observe/ObserveSwingApplicationDataSourcesManager.java new file mode 100644 index 0000000..047de8e --- /dev/null +++ b/observe-application-swing/src/main/java/fr/ird/observe/ObserveSwingApplicationDataSourcesManager.java @@ -0,0 +1,108 @@ +package fr.ird.observe; + +import com.google.common.base.Preconditions; +import com.google.common.collect.Lists; +import fr.ird.observe.configuration.ObserveSwingApplicationConfig; +import fr.ird.observe.db.ObserveSwingDataSource; +import fr.ird.observe.db.event.ObserveSwingDataSourceEvent; +import fr.ird.observe.db.event.ObserveSwingDataSourceListenerAdapter; +import fr.ird.observe.services.configuration.ObserveDataSourceConfiguration; +import fr.ird.observe.services.configuration.ObserveDataSourceConfigurationTopiaH2; + +import java.io.Closeable; +import java.util.LinkedList; +import java.util.List; + +import static jaxx.runtime.swing.editor.bean.BeanUIUtil.PopupHandler.log; +import static org.nuiton.i18n.I18n.t; + +/** + * Permet de gérer les différentes data sources utilisées dans l'application. + * + * Created on 09/08/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 5.0 + */ +public class ObserveSwingApplicationDataSourcesManager implements Closeable { + + private final List<ObserveSwingDataSource> dataSources = new LinkedList<>(); + + private ObserveSwingDataSource dataSource; + + /** + * Construit une source de données sur la base locale de l'application. + * + * <b>Note:</b> La base locale doit exister, sinon on soulève une + * exeception + * + * @param config la configuration à utiliser + * @return la service de persistance initialisé (mais non ouvert) + */ + public ObserveSwingDataSource newLocalDatasource(ObserveSwingApplicationConfig config) { + + ObserveDataSourceConfigurationTopiaH2 dataSourceConfigurationH2 = config.getDataSourceConfigurationH2(t("observe.storage.label.local")); + + Preconditions.checkState(dataSourceConfigurationH2.getDatabaseFile().exists(), "local base must exist, when using this method (" + + dataSourceConfigurationH2.getDirectory() + ')'); + return newDataSource(dataSourceConfigurationH2); + } + + public ObserveSwingDataSource getMainDataSource() { + return dataSource; + } + + public void setMainDataSource(ObserveSwingDataSource dataSource) { + this.dataSource = dataSource; + } + + public ObserveSwingDataSource newDataSource(ObserveDataSourceConfiguration configuration) { + ObserveSwingDataSource dataSource = new ObserveSwingDataSource(configuration); + + dataSource.addObserveSwingDataSourceListener(new ObserveSwingDataSourceListenerAdapter() { + + @Override + public void onOpened(ObserveSwingDataSourceEvent event) { + super.onOpened(event); + ObserveSwingDataSource dataSource = event.getSource(); + dataSources.add(dataSource); + + if (log.isInfoEnabled()) { + log.info("Data source opened : " + dataSource.getConfiguration() + " (" + dataSources.size() + " datas sources open)"); + } + } + + @Override + public void onClosed(ObserveSwingDataSourceEvent event) { + super.onClosed(event); + ObserveSwingDataSource dataSource = event.getSource(); + dataSources.remove(dataSource); + if (log.isInfoEnabled()) { + log.info("Data source closed : " + dataSource.getConfiguration() + " (" + dataSources.size() + " datas sources open)"); + } + } + }); + + return dataSource; + } + + @Override + public void close() { + + // fermeture de touts les context de donnée ouvert + for (ObserveSwingDataSource dataSource : Lists.newArrayList(dataSources)) { + if (log.isInfoEnabled()) { + log.info("Closing dataSource : " + dataSource.getConnection()); + } + try { + dataSource.close(); + } catch (Exception e) { + if (log.isErrorEnabled()) { + log.error("Could not close data source: " + dataSource, e); + } + } + } + setMainDataSource(null); + + } +} diff --git a/observe-application-swing/src/main/java/fr/ird/observe/db/ObserveSwingDataSource.java b/observe-application-swing/src/main/java/fr/ird/observe/db/ObserveSwingDataSource.java index 88eb540..f59896c 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/db/ObserveSwingDataSource.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/db/ObserveSwingDataSource.java @@ -32,6 +32,7 @@ import fr.ird.observe.db.event.ObserveSwingDataSourceListener; import fr.ird.observe.services.ObserveService; import fr.ird.observe.services.ObserveServiceInitializer; import fr.ird.observe.services.ObserveServiceMainFactory; +import fr.ird.observe.services.ObserveServicesProvider; import fr.ird.observe.services.ObserveSpeciesListConfiguration; import fr.ird.observe.services.configuration.ObserveDataSourceConfiguration; import fr.ird.observe.services.configuration.ObserveDataSourceConfigurationAndConnection; @@ -65,13 +66,31 @@ import fr.ird.observe.services.service.actions.report.ReportService; import fr.ird.observe.services.service.actions.synchro.UnidirectionalReferentialSynchronizeLocalService; import fr.ird.observe.services.service.actions.synchro.UnidirectionalReferentialSynchronizeRemoteService; import fr.ird.observe.services.service.actions.validate.ValidateService; +import fr.ird.observe.services.service.longline.ActivityLongLineEncounterService; +import fr.ird.observe.services.service.longline.ActivityLongLineSensorUsedService; import fr.ird.observe.services.service.longline.ActivityLonglineService; +import fr.ird.observe.services.service.longline.BranchlineService; +import fr.ird.observe.services.service.longline.SetLonglineCatchService; +import fr.ird.observe.services.service.longline.SetLonglineDetailCompositionService; +import fr.ird.observe.services.service.longline.SetLonglineGlobalCompositionService; import fr.ird.observe.services.service.longline.SetLonglineService; +import fr.ird.observe.services.service.longline.TdrService; +import fr.ird.observe.services.service.longline.TripLonglineGearUseService; import fr.ird.observe.services.service.longline.TripLonglineService; +import fr.ird.observe.services.service.seine.ActivitySeineObservedSystemService; import fr.ird.observe.services.service.seine.ActivitySeineService; import fr.ird.observe.services.service.seine.FloatingObjectService; +import fr.ird.observe.services.service.seine.NonTargetCatchService; +import fr.ird.observe.services.service.seine.NonTargetSampleService; +import fr.ird.observe.services.service.seine.ObjectObservedSpeciesService; +import fr.ird.observe.services.service.seine.ObjectSchoolEstimateService; import fr.ird.observe.services.service.seine.RouteService; +import fr.ird.observe.services.service.seine.SchoolEstimateService; import fr.ird.observe.services.service.seine.SetSeineService; +import fr.ird.observe.services.service.seine.TargetCatchService; +import fr.ird.observe.services.service.seine.TargetSampleService; +import fr.ird.observe.services.service.seine.TransmittingBuoyOperationService; +import fr.ird.observe.services.service.seine.TripSeineGearUseService; import fr.ird.observe.services.service.seine.TripSeineService; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -90,7 +109,7 @@ import static org.nuiton.i18n.I18n.t; /** * @author Sylvain Bavencoff - bavencoff@codelutin.com */ -public class ObserveSwingDataSource extends AbstractSerializableBean implements Closeable { +public class ObserveSwingDataSource extends AbstractSerializableBean implements Closeable, ObserveServicesProvider { private static final long serialVersionUID = 1L; @@ -352,78 +371,7 @@ public class ObserveSwingDataSource extends AbstractSerializableBean implements return connection != null; } - public SqlScriptProducerService newSqlScriptProducerService() { - return newService(SqlScriptProducerService.class); - } - - public ValidateService newValidateService() { - return newService(ValidateService.class); - } - - public ReportService newReportService() { - return newService(ReportService.class); - } - - public PingService newPingService() { - return newService(PingService.class); - } - - public ReplicateTripService newReplicateTripService() { - return newService(ReplicateTripService.class); - } - - public ConsolidateDataService newConsolidateDataService() { - return newService(ConsolidateDataService.class); - } - - public UnidirectionalReferentialSynchronizeLocalService newUnidirectionalReferentialSynchronizeLocalService() { - return newService(UnidirectionalReferentialSynchronizeLocalService.class); - } - - public UnidirectionalReferentialSynchronizeRemoteService newUnidirectionalReferentialSynchronizeRemoteService() { - return newService(UnidirectionalReferentialSynchronizeRemoteService.class); - } - - public DataSynchronizeService newDataSynchronizeService() { - return newService(DataSynchronizeService.class); - } - - public DataSourceService newDataSourceService() { - return newService(DataSourceService.class); - } - - public ReferentialService newReferentialService() { - return newService(ReferentialService.class); - } - - public TripSeineService newTripSeineService() { - return newService(TripSeineService.class); - } - - public RouteService newRouteService() { - return newService(RouteService.class); - } - - public FloatingObjectService newFloatingObjectService() { - return newService(FloatingObjectService.class); - } - - public ActivitySeineService newActivitySeineService() { - return newService(ActivitySeineService.class); - } - - public SetSeineService newSetSeineService() { - return newService(SetSeineService.class); - } - - public TripLonglineService newTripLonglineService() { - return newService(TripLonglineService.class); - } - - public ActivityLonglineService newActivityLonglineService() { - return newService(ActivityLonglineService.class); - } - + @Override public SetLonglineService newSetLonglineService() { return newService(SetLonglineService.class); } @@ -586,4 +534,184 @@ public class ObserveSwingDataSource extends AbstractSerializableBean implements S service = serviceFactory.newService(observeServiceInitializer, serviceType); return service; } + + @Override + public SqlScriptProducerService newSqlScriptProducerService() { + return newService(SqlScriptProducerService.class); + } + + @Override + public ValidateService newValidateService() { + return newService(ValidateService.class); + } + + @Override + public ReportService newReportService() { + return newService(ReportService.class); + } + + @Override + public PingService newPingService() { + return newService(PingService.class); + } + + @Override + public ReplicateTripService newReplicateTripService() { + return newService(ReplicateTripService.class); + } + + @Override + public ConsolidateDataService newConsolidateDataService() { + return newService(ConsolidateDataService.class); + } + + @Override + public UnidirectionalReferentialSynchronizeLocalService newUnidirectionalReferentialSynchronizeLocalService() { + return newService(UnidirectionalReferentialSynchronizeLocalService.class); + } + + @Override + public UnidirectionalReferentialSynchronizeRemoteService newUnidirectionalReferentialSynchronizeRemoteService() { + return newService(UnidirectionalReferentialSynchronizeRemoteService.class); + } + + @Override + public DataSynchronizeService newDataSynchronizeService() { + return newService(DataSynchronizeService.class); + } + + @Override + public DataSourceService newDataSourceService() { + return newService(DataSourceService.class); + } + + @Override + public ReferentialService newReferentialService() { + return newService(ReferentialService.class); + } + + @Override + public TripSeineService newTripSeineService() { + return newService(TripSeineService.class); + } + + @Override + public RouteService newRouteService() { + return newService(RouteService.class); + } + + @Override + public FloatingObjectService newFloatingObjectService() { + return newService(FloatingObjectService.class); + } + + @Override + public ActivitySeineService newActivitySeineService() { + return newService(ActivitySeineService.class); + } + + @Override + public SetSeineService newSetSeineService() { + return newService(SetSeineService.class); + } + + @Override + public TripLonglineService newTripLonglineService() { + return newService(TripLonglineService.class); + } + + @Override + public ActivityLonglineService newActivityLonglineService() { + return newService(ActivityLonglineService.class); + } + + @Override + public ActivitySeineObservedSystemService newActivitySeineObservedSystemService() { + return newService(ActivitySeineObservedSystemService.class); + } + + @Override + public SetLonglineGlobalCompositionService newSetLonglineGlobalCompositionService() { + return newService(SetLonglineGlobalCompositionService.class); + } + + @Override + public SetLonglineDetailCompositionService newSetLonglineDetailCompositionService() { + return newService(SetLonglineDetailCompositionService.class); + } + + @Override + public TransmittingBuoyOperationService newTransmittingBuoyOperationService() { + return newService(TransmittingBuoyOperationService.class); + } + + @Override + public BranchlineService newBranchlineService() { + return newService(BranchlineService.class); + } + + @Override + public SetLonglineCatchService newSetLonglineCatchService() { + return newService(SetLonglineCatchService.class); + } + + @Override + public ActivityLongLineEncounterService newActivityLongLineEncounterService() { + return newService(ActivityLongLineEncounterService.class); + } + + @Override + public TripLonglineGearUseService newTripLonglineGearUseService() { + return newService(TripLonglineGearUseService.class); + } + + @Override + public ActivityLongLineSensorUsedService newActivityLongLineSensorUsedService() { + return newService(ActivityLongLineSensorUsedService.class); + } + + @Override + public TdrService newTdrService() { + return newService(TdrService.class); + } + + @Override + public TripSeineGearUseService newTripSeineGearUseService() { + return newService(TripSeineGearUseService.class); + } + + @Override + public NonTargetCatchService newNonTargetCatchService() { + return newService(NonTargetCatchService.class); + } + + @Override + public NonTargetSampleService newNonTargetSampleService() { + return newService(NonTargetSampleService.class); + } + + @Override + public ObjectObservedSpeciesService newObjectObservedSpeciesService() { + return newService(ObjectObservedSpeciesService.class); + } + + @Override + public ObjectSchoolEstimateService newObjectSchoolEstimateService() { + return newService(ObjectSchoolEstimateService.class); + } + + @Override + public SchoolEstimateService newSchoolEstimateService() { + return newService(SchoolEstimateService.class); + } + + @Override + public TargetCatchService newTargetCatchService() { + return newService(TargetCatchService.class); + } + + @Override + public TargetSampleService newTargetSampleService() { + return newService(TargetSampleService.class); + } } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/ObserveMainUI.jaxx b/observe-application-swing/src/main/java/fr/ird/observe/ui/ObserveMainUI.jaxx index 7f43933..5713b92 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/ObserveMainUI.jaxx +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/ObserveMainUI.jaxx @@ -24,6 +24,7 @@ onWindowClosing='new fr.ird.observe.ui.actions.CloseApplicationAction(this).run()'> <import> + fr.ird.observe.ObserveSwingApplicationContext fr.ird.observe.configuration.ObserveSwingApplicationConfig fr.ird.observe.db.DataContext @@ -78,7 +79,7 @@ <ShowStorageInfoAction id="showStorageInfoAction" constructorParams='this'/> - <ContentUIManager id='contentManager' constructorParams='this'/> + <ContentUIManager id='contentUIManager' initializer='ObserveSwingApplicationContext.get().getContentUIManager()'/> <JPopupMenu id='scopeUpPopup'/> <JPopupMenu id='scopeDownPopup'/> @@ -90,13 +91,13 @@ <JMenuItem id="navigationDeleteAction"/> </JPopupMenu> - <ObserveSwingApplicationConfig id='config' initializer='getContextValue(ObserveSwingApplicationConfig.class)'/> + <ObserveSwingApplicationConfig id='config' initializer='ObserveSwingApplicationContext.get().getConfig()'/> <ObserveMainUIHandler id='handler' initializer='getContextValue(ObserveMainUIHandler.class)'/> <ObserveTreeHelper id='treeHelper' initializer='getContextValue(ObserveTreeHelper.class)'/> - <DataContext id='dataContext' initializer='getContextValue(DataContext.class)'/> + <DataContext id='dataContext' initializer='ObserveSwingApplicationContext.get().getDataContext()'/> <Boolean id='mainFromSynchro' javaBean='false'/> @@ -177,15 +178,15 @@ void $afterCompleteSetup() { <JMenu id='menuNavigation'> <JMenuItem id='menuNavigationProgram' - onActionPerformed="getTreeHelper().selectOpenNode(this, ProgramDto.class)"/> + onActionPerformed="getTreeHelper().selectOpenNode(ProgramDto.class)"/> <JMenuItem id='menuNavigationTrip' - onActionPerformed="getTreeHelper().selectOpenNode(this, TripSeineDto.class)"/> + onActionPerformed="getTreeHelper().selectOpenNode(TripSeineDto.class)"/> <JMenuItem id='menuNavigationRoute' - onActionPerformed="getTreeHelper().selectOpenNode(this, RouteDto.class)"/> + onActionPerformed="getTreeHelper().selectOpenNode(RouteDto.class)"/> <JMenuItem id='menuNavigationActivity' - onActionPerformed="getTreeHelper().selectOpenNode(this, ActivitySeineDto.class)"/> + onActionPerformed="getTreeHelper().selectOpenNode(ActivitySeineDto.class)"/> <JMenuItem id='menuNavigationSet' - onActionPerformed="getTreeHelper().selectOpenNode(this, SetSeineDto.class)"/> + onActionPerformed="getTreeHelper().selectOpenNode(SetSeineDto.class)"/> <JSeparator/> <JMenuItem id='menuNavigationReferentiel' onActionPerformed='getTreeHelper().selectNode("observe.common.referentiel")'/> diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/ObserveMainUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/ObserveMainUIHandler.java index 5a44950..6731e48 100755 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/ObserveMainUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/ObserveMainUIHandler.java @@ -79,7 +79,7 @@ public class ObserveMainUIHandler { public void changeNavigationNode(ObserveMainUI ui, TreeSelectionEvent event) { - ObserveSwingDataSource source = ObserveSwingApplicationContext.get().getDataSource(); + ObserveSwingDataSource source = ObserveSwingApplicationContext.get().getDataSourcesManager().getMainDataSource(); if (source == null || !source.isOpen()) { // no open data source @@ -97,11 +97,10 @@ public class ObserveMainUIHandler { TreePath path = event.getPath(); ObserveNode node = (ObserveNode) path.getLastPathComponent(); - ContentUIManager manager = ui.getContentManager(); + ContentUIManager manager = ui.getContentUIManager(); // obtain the ui type to show - Class<? extends ObserveContentUI<?>> uiClass = - manager.convertNodeToContentUI(node); + Class<? extends ObserveContentUI<?>> uiClass = manager.convertNodeToContentUI(node); if (log.isDebugEnabled()) { log.debug("new selected path = " + node + ", ui = " + uiClass); } @@ -116,7 +115,7 @@ public class ObserveMainUIHandler { try { - doOpencontent(ui, path, manager, uiClass); + doOpencontent(ui, path, uiClass); } catch (Exception e) { UIHelper.handlingError(e); @@ -134,8 +133,10 @@ public class ObserveMainUIHandler { public void doOpencontent(ObserveMainUI ui, TreePath path, - ContentUIManager manager, Class<? extends ObserveContentUI<?>> uiClass) { + + ContentUIManager manager = ui.getContentUIManager(); + // compute the selected ids to put in data context Object[] nodes = path.getPath(); List<String> ids = new ArrayList<>(); @@ -214,7 +215,7 @@ public class ObserveMainUIHandler { } ObserveTreeHelper treeHelper = new ObserveTreeHelper(); - ObserveSwingDataSource source = context.getDataSource(); + ObserveSwingDataSource source = context.getDataSourcesManager().getMainDataSource(); boolean open = context.getDataContext().getEnabled(); if (open) { @@ -235,20 +236,19 @@ public class ObserveMainUIHandler { title += " v " + config.getVersion(); ui.setTitle(title); - context.setObserveMainUI(ui); + context.setMainUI(ui); ErrorDialogUI.init(ui); // set fullscreen propery on main ui - ui.getGraphicsConfiguration().getDevice().setFullScreenWindow( - config.isFullScreen() ? ui : null); + ui.getGraphicsConfiguration().getDevice().setFullScreenWindow(config.isFullScreen() ? ui : null); // on enregistre les actions communes à toutes les écrans d'édition // les bouttons utilisant ces actions seront automatiquement // chargés (à partir des actions) lors de l'ouverture des ui // et mis à jour - context.registerShareActions(ui); + context.registerShareActions(); new ObserveNavigationTreeShowPopupAction(treeHelper, ui.getNavigationScrollPane(), ui.getNavigationPopup()); @@ -257,12 +257,8 @@ public class ObserveMainUIHandler { public static final String H2_SERVER_URL_PATTERN = "jdbc:h2:%s/%s/obstuna"; -// protected static DataService getDataService() { -// return ObserveContext.get().getDataService(); -// } - public static void restartEdit() { - ContentUI<?> selectedUI = ObserveSwingApplicationContext.get().getSelectedContentUI(); + ContentUI<?> selectedUI = ObserveSwingApplicationContext.get().getContentUIManager().getSelectedContentUI(); if (selectedUI == null) { // pas d'écran selectionne @@ -304,7 +300,7 @@ public class ObserveMainUIHandler { // scan main ui ObserveMainUI ui = getUI(rootContext); - ObserveSwingDataSource mainStorage = rootContext.getDataSource(); + ObserveSwingDataSource mainStorage = rootContext.getDataSourcesManager().getMainDataSource(); ObserveUIMode oldMode = null; String[] ids = null; @@ -316,7 +312,7 @@ public class ObserveMainUIHandler { ErrorDialogUI.init(null); - rootContext.removeObserveMainUI(); + rootContext.removeMainUI(); ui.dispose(); @@ -346,41 +342,19 @@ public class ObserveMainUIHandler { // selection du noeud d'ouverture (le noeud precedemment selectionne, // ou le noeud le plus ouvert // ou le premier program si aucune donnée ouverte) - ui.getTreeHelper().selectInitialNode(ui); + ui.getTreeHelper().selectInitialNode(); } // show ui UIHelper.setMainUIVisible(ui); } -// public ContentUI<?> getSelectedContent(JAXXContext rootContext) { -// if (rootContext == null) { -// throw new IllegalArgumentException("rootContext can not be null"); -// } -// ObserveMainUI ui = getUI(rootContext); -// ContentUI<?> ui1 = null; -// if (ui == null) { -// // no ui, so no modification -// return ui1; -// } -// // check ui is not modified -// CardLayout2 layout = ui.getContentLayout(); -// JPanel container = ui.getContent(); -// Component currentContent = layout.getVisibleComponent(container); -// if (currentContent != null && -// currentContent instanceof ContentUI<?>) { -// -// ui1 = (ContentUI<?>) currentContent; -// } -// return ui1; -// } - protected Icon updateStorageSatutIcon(ObserveMainUI ui, boolean isOpened) { Icon icon; if (ui.getConfig().isMainStorageOpened()) { - ObserveSwingDataSource service = ObserveSwingApplicationContext.get().getDataSource(); + ObserveSwingDataSource service = ObserveSwingApplicationContext.get().getDataSourcesManager().getMainDataSource(); if (service.isLocal()) { icon = (Icon) ui.storageStatus.getClientProperty("localIcon"); @@ -398,7 +372,7 @@ public class ObserveMainUIHandler { protected String updateStorageSatutText(ObserveMainUI ui, boolean isOpened) { String text; if (ui.getConfig().isMainStorageOpened()) { - ObserveSwingDataSource source = ObserveSwingApplicationContext.get().getDataSource(); + ObserveSwingDataSource source = ObserveSwingApplicationContext.get().getDataSourcesManager().getMainDataSource(); text = source.getLabel(); } else { text = t("observe.message.db.none.loaded"); @@ -409,7 +383,7 @@ public class ObserveMainUIHandler { protected String updateStorageStatutToolTipText(ObserveMainUI ui, boolean isOpened) { String text; if (ui.getConfig().isMainStorageOpened()) { - ObserveSwingDataSource source = ObserveSwingApplicationContext.get().getDataSource(); + ObserveSwingDataSource source = ObserveSwingApplicationContext.get().getDataSourcesManager().getMainDataSource(); text = t("observe.message.loaded.tip", source.getLabel()); } else { text = t("observe.message.db.none.loaded.tip"); @@ -460,7 +434,7 @@ public class ObserveMainUIHandler { if (context instanceof ObserveMainUI) { return (ObserveMainUI) context; } - ObserveMainUI ui = ObserveSwingApplicationContext.get().getObserveMainUI(); + ObserveMainUI ui = ObserveSwingApplicationContext.get().getMainUI(); return ui; } @@ -498,7 +472,7 @@ public class ObserveMainUIHandler { if (selectedNode.equals(o) || !selectedNode.isNodeAncestor(o)) { return; } - boolean canChange = ObserveSwingApplicationContext.get().closeSelectedContentUI(ui); + boolean canChange = ObserveSwingApplicationContext.get().getContentUIManager().closeSelectedContentUI(); if (!canChange) { throw new ExpandVetoException(event, "Can not collapse node " + event.getPath()); } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/ObserveUICallback.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/ObserveUICallback.java index 57804cc..97ef533 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/ObserveUICallback.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/ObserveUICallback.java @@ -22,6 +22,7 @@ package fr.ird.observe.ui; * #L% */ +import fr.ird.observe.ObserveRunner; import fr.ird.observe.ObserveSwingApplicationContext; import fr.ird.observe.configuration.ObserveSwingApplicationConfig; import fr.ird.observe.ui.actions.CloseApplicationAction; @@ -51,7 +52,11 @@ public enum ObserveUICallback implements Runnable { ObserveSwingApplicationContext context = ObserveSwingApplicationContext.get(); ObserveMainUIHandler handler = new ObserveMainUIHandler(); ObserveMainUI ui = handler.getUI(context); - context.askReload(); + + if (log.isDebugEnabled()) { + log.debug("Ask to reload."); + } + ObserveRunner.getRunner().setReload(true); new CloseApplicationAction(ui).run(); } }, diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/UIHelper.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/UIHelper.java index eb4ea0a..028ff51 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/UIHelper.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/UIHelper.java @@ -140,7 +140,7 @@ public class UIHelper extends SwingUtil { public static void displayInfo(String text) { - ObserveMainUI ui = ObserveSwingApplicationContext.get().getObserveMainUI(); + ObserveMainUI ui = ObserveSwingApplicationContext.get().getMainUI(); if (ui == null) { JOptionPane.showMessageDialog(null, text); } else { @@ -150,7 +150,7 @@ public class UIHelper extends SwingUtil { public static void displayWarning(String title, String text) { - ObserveMainUI ui = ObserveSwingApplicationContext.get().getObserveMainUI(); + ObserveMainUI ui = ObserveSwingApplicationContext.get().getMainUI(); JOptionPane.showMessageDialog(ui, text, title, JOptionPane.WARNING_MESSAGE); } @@ -179,7 +179,7 @@ public class UIHelper extends SwingUtil { if (parent == null) { ObserveSwingApplicationContext tx = ObserveSwingApplicationContext.get(); if (tx != null) { - parent = ObserveSwingApplicationContext.get().getObserveMainUI(); + parent = ObserveSwingApplicationContext.get().getMainUI(); } } int response = JOptionPane.showOptionDialog( @@ -301,7 +301,7 @@ public class UIHelper extends SwingUtil { Class<E> beanClass, E bean, String extraMessage) { - ObserveMainUI mainUI = ObserveSwingApplicationContext.get().getObserveMainUI(); + ObserveMainUI mainUI = ObserveSwingApplicationContext.get().getMainUI(); if (parent == null) { // on cherche l'ui principale @@ -524,9 +524,9 @@ public class UIHelper extends SwingUtil { ObserveSwingApplicationContext context = ObserveSwingApplicationContext.get(); // on indique que la source de donnée a expiré - context.getDataSource().expired(); + context.getDataSourcesManager().getMainDataSource().expired(); - ObserveMainUI observeMainUI = context.getObserveMainUI(); + ObserveMainUI observeMainUI = context.getMainUI(); int result = askUser(observeMainUI, t("observe.storage.server.sessionExpire.title"), diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ChangeApplicationLanguageAction.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ChangeApplicationLanguageAction.java index 34cfd6e..d25e755 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ChangeApplicationLanguageAction.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ChangeApplicationLanguageAction.java @@ -68,7 +68,7 @@ public class ChangeApplicationLanguageAction extends AbstractAction { if (log.isInfoEnabled()) { log.info("ObServe changing application language..."); } - boolean canContinue = ObserveSwingApplicationContext.get().closeSelectedContentUI(ui); + boolean canContinue = ObserveSwingApplicationContext.get().getContentUIManager().closeSelectedContentUI(); if (canContinue) { ObserveSwingApplicationConfig config = ui.getConfig(); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ChangeDbLanguageAction.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ChangeDbLanguageAction.java index 81393a0..caedd2c 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ChangeDbLanguageAction.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ChangeDbLanguageAction.java @@ -68,7 +68,7 @@ public class ChangeDbLanguageAction extends AbstractAction { if (log.isInfoEnabled()) { log.info("ObServe changing db language..."); } - boolean canContinue = ObserveSwingApplicationContext.get().closeSelectedContentUI(ui); + boolean canContinue = ObserveSwingApplicationContext.get().getContentUIManager().closeSelectedContentUI(); if (!canContinue) { return; } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ChangeStorageAction.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ChangeStorageAction.java index 8a57573..48274ee 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ChangeStorageAction.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ChangeStorageAction.java @@ -82,7 +82,7 @@ public class ChangeStorageAction extends AbstractAction { public void run() { - boolean canContinue = ObserveSwingApplicationContext.get().closeSelectedContentUI(ui); + boolean canContinue = ObserveSwingApplicationContext.get().getContentUIManager().closeSelectedContentUI(); if (canContinue) { if (log.isInfoEnabled()) { diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/CloseApplicationAction.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/CloseApplicationAction.java index d6b2578..4103f10 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/CloseApplicationAction.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/CloseApplicationAction.java @@ -70,7 +70,7 @@ public class CloseApplicationAction extends AbstractAction { if (log.isInfoEnabled()) { log.info("ObServe quitting..."); } - boolean canContinue = ObserveSwingApplicationContext.get().closeSelectedContentUI(ui); + boolean canContinue = ObserveSwingApplicationContext.get().getContentUIManager().closeSelectedContentUI(); if (canContinue) { try { ui.dispose(); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/CloseHelpAction.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/CloseHelpAction.java index 1c7e5cf..72c08e4 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/CloseHelpAction.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/CloseHelpAction.java @@ -61,7 +61,7 @@ public class CloseHelpAction extends AbstractAction { if (oldMode == null) { // on regarde si une base est chargee - ObserveSwingDataSource mainStorage = ObserveSwingApplicationContext.get().getDataSource(); + ObserveSwingDataSource mainStorage = ObserveSwingApplicationContext.get().getDataSourcesManager().getMainDataSource(); if (mainStorage == null) { oldMode = ObserveUIMode.NO_DB; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/CloseStorageAction.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/CloseStorageAction.java index 6f03adf..930884b 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/CloseStorageAction.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/CloseStorageAction.java @@ -66,12 +66,12 @@ public class CloseStorageAction extends AbstractObserveAction { public void run() { - boolean canContinue = ObserveSwingApplicationContext.get().closeSelectedContentUI(ui); + boolean canContinue = ObserveSwingApplicationContext.get().getContentUIManager().closeSelectedContentUI(); if (canContinue) { ui.setBusy(true); try { - ObserveSwingDataSource source = ObserveSwingApplicationContext.get().getDataSource(); + ObserveSwingDataSource source = ObserveSwingApplicationContext.get().getDataSourcesManager().getMainDataSource(); if (log.isDebugEnabled()) { log.debug(">>> close main storage " + source); } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ImportStorageFromFileAction.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ImportStorageFromFileAction.java index 1a60b17..725d064 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ImportStorageFromFileAction.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ImportStorageFromFileAction.java @@ -62,7 +62,7 @@ public class ImportStorageFromFileAction extends AbstractAction { @Override public void actionPerformed(ActionEvent e) { - boolean canContinue = ObserveSwingApplicationContext.get().closeSelectedContentUI(ui); + boolean canContinue = ObserveSwingApplicationContext.get().getContentUIManager().closeSelectedContentUI(); if (canContinue) { new StorageUILauncher(ui, ui, t("observe.title.import.localDB")) { @@ -94,7 +94,7 @@ public class ImportStorageFromFileAction extends AbstractAction { protected void doAction(StorageUI ui) { super.doAction(ui); StorageUIHandler handler = getStorageUIHandler(); - handler.doChangeStorage(ui, ui.getModel()); + handler.doChangeStorage(ui.getModel()); } }.start(); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/LaunchAdminAction.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/LaunchAdminAction.java index 7f155ac..eeb5abe 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/LaunchAdminAction.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/LaunchAdminAction.java @@ -64,7 +64,7 @@ public class LaunchAdminAction extends AbstractAction { @Override public void actionPerformed(ActionEvent event) { - boolean canContinue = ObserveSwingApplicationContext.get().closeSelectedContentUI(ui); + boolean canContinue = ObserveSwingApplicationContext.get().getContentUIManager().closeSelectedContentUI(); if (canContinue) { if (log.isInfoEnabled()) { diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ReloadApplicationAction.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ReloadApplicationAction.java index 92f4d2a..7263b23 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ReloadApplicationAction.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ReloadApplicationAction.java @@ -64,7 +64,7 @@ public class ReloadApplicationAction extends AbstractAction { if (log.isInfoEnabled()) { log.info("ObServe reloading..."); } - boolean canContinue = ObserveSwingApplicationContext.get().closeSelectedContentUI(ui); + boolean canContinue = ObserveSwingApplicationContext.get().getContentUIManager().closeSelectedContentUI(); if (canContinue) { ObserveUICallback.application.run(); } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ReloadDefaultConfigurationAction.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ReloadDefaultConfigurationAction.java index aae5805..71e3173 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ReloadDefaultConfigurationAction.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ReloadDefaultConfigurationAction.java @@ -69,7 +69,7 @@ public class ReloadDefaultConfigurationAction extends AbstractAction { log.info("ObServe reloading default configuration..."); } - boolean canContinue = ObserveSwingApplicationContext.get().closeSelectedContentUI(ui); + boolean canContinue = ObserveSwingApplicationContext.get().getContentUIManager().closeSelectedContentUI(); if (canContinue) { ObserveSwingApplicationConfig config = ui.getConfig(); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ReloadResourcesAction.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ReloadResourcesAction.java index aec9a67..6d51e6b 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ReloadResourcesAction.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ReloadResourcesAction.java @@ -72,7 +72,7 @@ public class ReloadResourcesAction extends AbstractAction { log.info("ObServe reloading resources..."); } - boolean canContinue = ObserveSwingApplicationContext.get().closeSelectedContentUI(ui); + boolean canContinue = ObserveSwingApplicationContext.get().getContentUIManager().closeSelectedContentUI(); if (canContinue) { ObserveSwingApplicationConfig config = ui.getConfig(); @@ -93,8 +93,7 @@ public class ReloadResourcesAction extends AbstractAction { I18n.reload(); - DecoratorService decoratorService = - ui.getContextValue(DecoratorService.class); + DecoratorService decoratorService = ObserveSwingApplicationContext.get().getDecoratorService(); if (log.isInfoEnabled()) { log.info("reload decorators"); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ReloadStorageAction.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ReloadStorageAction.java index 9bebcf0..1896580 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ReloadStorageAction.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ReloadStorageAction.java @@ -71,9 +71,9 @@ public class ReloadStorageAction extends AbstractObserveAction { public void run() { ObserveSwingApplicationContext context = ObserveSwingApplicationContext.get(); - boolean canContinue = context.closeSelectedContentUI(ui); + boolean canContinue = context.getContentUIManager().closeSelectedContentUI(); - ObserveSwingDataSource storage = context.getDataSource(); + ObserveSwingDataSource storage = context.getDataSourcesManager().getMainDataSource(); if (canContinue && storage != null) { @@ -108,7 +108,7 @@ public class ReloadStorageAction extends AbstractObserveAction { context.setNodesToReselect(ids); // attachement a l'ui - context.prepareMainStorage(storage); + context.prepareMainStorage(storage, false); // ouverture du service storage.open(); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/SaveStorageToFileAction.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/SaveStorageToFileAction.java index 750f6e9..f47772a 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/SaveStorageToFileAction.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/SaveStorageToFileAction.java @@ -58,12 +58,12 @@ public class SaveStorageToFileAction extends AbstractObserveAction { @Override public void actionPerformed(ActionEvent e) { - boolean canContinue = ObserveSwingApplicationContext.get().closeSelectedContentUI(ui); + boolean canContinue = ObserveSwingApplicationContext.get().getContentUIManager().closeSelectedContentUI(); if (canContinue) { // on teste que l'utilisateur peut lire-ecrire sur la source de données - ObserveSwingDataSource service = ObserveSwingApplicationContext.get().getDataSource(); + ObserveSwingDataSource service = ObserveSwingApplicationContext.get().getDataSourcesManager().getMainDataSource(); if (!service.isLocal() && !(service.canReadData() && service.canWriteData())) { diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ShowConfigAction.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ShowConfigAction.java index b2e0970..4b44693 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ShowConfigAction.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ShowConfigAction.java @@ -93,10 +93,10 @@ public class ShowConfigAction extends AbstractAction { if (log.isInfoEnabled()) { log.info("ObServe opening configuration ui..."); } - boolean canContinue = ObserveSwingApplicationContext.get().closeSelectedContentUI(ui); + boolean canContinue = ObserveSwingApplicationContext.get().getContentUIManager().closeSelectedContentUI(); if (canContinue) { - ObserveSwingDataSource dataSource = ObserveSwingApplicationContext.get().getDataSource(); + ObserveSwingDataSource dataSource = ObserveSwingApplicationContext.get().getDataSourcesManager().getMainDataSource(); ObserveSwingApplicationConfig config = ui.getConfig(); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ShowStorageInfoAction.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ShowStorageInfoAction.java index e6fc98a..dc46a97 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ShowStorageInfoAction.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ShowStorageInfoAction.java @@ -63,7 +63,7 @@ public class ShowStorageInfoAction extends AbstractAction { ObserveSwingDataSource source; if (ui.getConfig().isMainStorageOpened()) { - source = applicationContext.getDataSource(); + source = applicationContext.getDataSourcesManager().getMainDataSource(); } else { source = null; } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/CloseAndCreateUIAction.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/CloseAndCreateUIAction.java index 912c66b..1c74f72 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/CloseAndCreateUIAction.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/CloseAndCreateUIAction.java @@ -93,14 +93,14 @@ public class CloseAndCreateUIAction extends AbstractUIAction { ); // selection du noeud de l'activity ouverte - treeHelper.selectOpenNode(getMainUI(), ActivitySeineDto.class); + treeHelper.selectOpenNode(ActivitySeineDto.class); // on conserve le path de l'activity TreePath path = tree.getSelectionPath(); // recuperation de l'écran associé ActivitySeineUI selectedUI = (ActivitySeineUI) - ObserveSwingApplicationContext.get().getSelectedContentUI(); + ObserveSwingApplicationContext.get().getContentUIManager().getSelectedContentUI(); // fermeture de l'activity et création d'une nouvelle selectedUI.closeAndCreateData(); @@ -129,14 +129,14 @@ public class CloseAndCreateUIAction extends AbstractUIAction { ); // selection du noeud de l'activity ouverte - treeHelper.selectOpenNode(getMainUI(), ActivityLonglineDto.class); + treeHelper.selectOpenNode(ActivityLonglineDto.class); // on conserve le path de l'activity TreePath path = tree.getSelectionPath(); // recuperation de l'écran associé ActivityLonglineUI selectedUI = (ActivityLonglineUI) - ObserveSwingApplicationContext.get().getSelectedContentUI(); + ObserveSwingApplicationContext.get().getContentUIManager().getSelectedContentUI(); // fermeture de l'activity et création d'une nouvelle selectedUI.closeAndCreateData(); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/CloseOpenUIAction.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/CloseOpenUIAction.java index 28c6e02..65779c5 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/CloseOpenUIAction.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/CloseOpenUIAction.java @@ -98,14 +98,14 @@ public class CloseOpenUIAction extends AbstractUIAction { ); // selection du noeud de l'activity ouverte - treeHelper.selectOpenNode(getMainUI(), ActivitySeineDto.class); + treeHelper.selectOpenNode(ActivitySeineDto.class); // on conserve le path de l'activity TreePath path = tree.getSelectionPath(); // recuperation de l'écran associé ActivitySeineUI selectedUI = (ActivitySeineUI) - ObserveSwingApplicationContext.get().getSelectedContentUI(); + ObserveSwingApplicationContext.get().getContentUIManager().getSelectedContentUI(); // fermeture de l'activity selectedUI.closeData(); @@ -140,14 +140,14 @@ public class CloseOpenUIAction extends AbstractUIAction { ); // selection du noeud de l'activity ouverte - treeHelper.selectOpenNode(getMainUI(), ActivityLonglineDto.class); + treeHelper.selectOpenNode(ActivityLonglineDto.class); // on conserve le path de l'activity TreePath path = tree.getSelectionPath(); // recuperation de l'écran associé ActivityLonglineUI selectedUI = (ActivityLonglineUI) - ObserveSwingApplicationContext.get().getSelectedContentUI(); + ObserveSwingApplicationContext.get().getContentUIManager().getSelectedContentUI(); // fermeture de l'activity selectedUI.closeData(); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/MoveActivityLonglinesUIAction.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/MoveActivityLonglinesUIAction.java index 513cc93..2e02ea6 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/MoveActivityLonglinesUIAction.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/MoveActivityLonglinesUIAction.java @@ -107,7 +107,7 @@ public class MoveActivityLonglinesUIAction extends AbstractUIAction { // change the tripLongline of the selected activities List<DataReference<ActivityLonglineDto>> selectedDatas = activityLonglinesUI.getModel().getSelectedDatas(); List<String> activityIds = Lists.transform(selectedDatas, DataReference.getIdFunction()); - ActivityLonglineService service = ObserveSwingApplicationContext.get().newService(ActivityLonglineService.class); + ActivityLonglineService service = ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newActivityLonglineService(); List<Integer> positions = service.moveActivityLonglinesToTripLongline(activityIds, tripLonglineId); // update the tree diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/MoveActivitySeinesUIAction.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/MoveActivitySeinesUIAction.java index 3effde9..49698d7 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/MoveActivitySeinesUIAction.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/MoveActivitySeinesUIAction.java @@ -106,7 +106,7 @@ public class MoveActivitySeinesUIAction extends AbstractUIAction { // change the route of the selected activities List<DataReference<ActivitySeineDto>> selectedDatas = ((ActivitySeinesUIModel) ui.getModel()).getSelectedDatas(); List<String> activityIds = Lists.transform(selectedDatas, DataReference.getIdFunction()); - ActivitySeineService service = ObserveSwingApplicationContext.get().newService(ActivitySeineService.class); + ActivitySeineService service = ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newActivitySeineService(); List<Integer> positions = service.moveActivitySeinesToRoute(activityIds, routeId); // update the tree diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/MoveRoutesUIAction.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/MoveRoutesUIAction.java index c435d91..4804702 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/MoveRoutesUIAction.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/MoveRoutesUIAction.java @@ -107,7 +107,7 @@ public class MoveRoutesUIAction extends AbstractUIAction { // change the tripseine of the selected routes List<DataReference<RouteDto>> selectedDatas = theUi.getModel().getSelectedDatas(); List<String> routeIds = Lists.transform(selectedDatas, DataReference.getIdFunction()); - RouteService service = ObserveSwingApplicationContext.get().newService(RouteService.class); + RouteService service = ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newRouteService(); List<Integer> positions = service.moveRoutesToTripSeine(routeIds, tripSeineId); // update the tree diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/MoveTripLonglinesUIAction.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/MoveTripLonglinesUIAction.java index d63edb5..915decd 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/MoveTripLonglinesUIAction.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/MoveTripLonglinesUIAction.java @@ -70,7 +70,7 @@ public class MoveTripLonglinesUIAction extends MoveTripsUIAction<TripLonglineDto @Override protected List<Integer> getPositions(List<String> tripIds, String programId) { - TripLonglineService service = ObserveSwingApplicationContext.get().newService(TripLonglineService.class); + TripLonglineService service = ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newTripLonglineService(); return service.moveTripLonglinesToProgram(tripIds, programId); } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/MoveTripSeinesUIAction.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/MoveTripSeinesUIAction.java index 5007e72..e84e903 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/MoveTripSeinesUIAction.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/MoveTripSeinesUIAction.java @@ -70,7 +70,7 @@ public class MoveTripSeinesUIAction extends MoveTripsUIAction<TripSeineDto> { @Override protected List<Integer> getPositions(List<String> tripIds, String programId) { - TripSeineService service = ObserveSwingApplicationContext.get().newService(TripSeineService.class); + TripSeineService service = ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newTripSeineService(); return service.moveTripSeinesToProgram(tripIds, programId); } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/ReOpenUIAction.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/ReOpenUIAction.java index 1466597..32478e4 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/ReOpenUIAction.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/ReOpenUIAction.java @@ -89,7 +89,7 @@ public class ReOpenUIAction extends AbstractUIAction { treeHelper.selectNode(node); openUI = (ContentOpenableUI<?>) - ObserveSwingApplicationContext.get().getSelectedContentUI(); + ObserveSwingApplicationContext.get().getContentUIManager().getSelectedContentUI(); } else { throw new IllegalStateException("The action " + ACTION_NAME + " can not be executed from ui " + ui); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/SelectOpenNodeUIAction.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/SelectOpenNodeUIAction.java index c418476..2b98f25 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/SelectOpenNodeUIAction.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/SelectOpenNodeUIAction.java @@ -53,6 +53,6 @@ public class SelectOpenNodeUIAction extends AbstractUIAction { "could not find client property " + "type on component" + c); } - getMainUI().getTreeHelper().selectOpenNode(getMainUI(), type); + getMainUI().getTreeHelper().selectOpenNode(type); } } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/AdminTabUI.jaxx b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/AdminTabUI.jaxx index 1f9553d..9fe5019 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/AdminTabUI.jaxx +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/AdminTabUI.jaxx @@ -28,7 +28,7 @@ implements='jaxx.runtime.swing.wizard.WizardStepUI<AdminStep, AdminUIModel>, java.beans.PropertyChangeListener'> <import> - fr.ird.observe.configuration.ObserveSwingApplicationConfig + fr.ird.observe.ObserveSwingApplicationContext fr.ird.observe.ui.UIHelper fr.ird.observe.ui.admin.* fr.ird.observe.ui.storage.StorageUIModel @@ -46,14 +46,9 @@ <AdminActionModel id='stepModel' initializer='model.getStepModel(getStep())'/> - <StorageUIModel id='localSourceModel' - initializer='getModel().getLocalSourceModel()'/> + <StorageUIModel id='localSourceModel' initializer='getModel().getLocalSourceModel()'/> - <StorageUIModel id='centralSourceModel' - initializer='getModel().getCentralSourceModel()'/> - - <ObserveSwingApplicationConfig id='observeConfig' - initializer='getContextValue(ObserveSwingApplicationConfig.class)'/> + <StorageUIModel id='centralSourceModel' initializer='getModel().getCentralSourceModel()'/> <AdminTabUIHandler id='handler' initializer='null'/> @@ -208,4 +203,8 @@ public void updateState(WizardState newState) { <JTextArea id='description'/> </JScrollPane> + <JPanel id='invisiblePanel' visible="false" constraints='BorderLayout.EAST'> + + </JPanel> + </JPanel> diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/AdminTabUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/AdminTabUIHandler.java index 97e1ed0..fde6907 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/AdminTabUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/AdminTabUIHandler.java @@ -204,9 +204,7 @@ public class AdminTabUIHandler { protected void checkStepIsOperation(AdminTabUI ui) { if (!ui.getStep().isOperation()) { - throw new IllegalStateException( - "can not launch objectOperation on none operation step " + - ui.getStep()); + throw new IllegalStateException("can not launch objectOperation on none operation step " + ui.getStep()); } } @@ -226,9 +224,7 @@ public class AdminTabUIHandler { } protected void addAdminWorker(String label, Callable<WizardState> callable) { - AdminActionWorker worker = AdminActionWorker.newWorker(this, - label, - callable); + AdminActionWorker worker = AdminActionWorker.newWorker(this, label, callable); ObserveRunner.getActionExecutor().addAction(worker); } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/AdminUILauncher.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/AdminUILauncher.java index 1630f7d..fd52ee0 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/AdminUILauncher.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/AdminUILauncher.java @@ -134,7 +134,7 @@ public class AdminUILauncher extends WizardUILancher<AdminStep, AdminUIModel, Ad protected Component getParent(AdminUI ui) { - ObserveMainUI mainUI = ObserveSwingApplicationContext.get().getObserveMainUI(); + ObserveMainUI mainUI = ObserveSwingApplicationContext.get().getMainUI(); ImageIcon icon = (ImageIcon) ui.getClientProperty("icon"); if (mainUI == null) { // pas de fenetre detectee @@ -176,7 +176,7 @@ public class AdminUILauncher extends WizardUILancher<AdminStep, AdminUIModel, Ad protected void start(final AdminUI ui) { super.start(ui); - ObserveMainUI mainUI = ObserveSwingApplicationContext.get().getObserveMainUI(); + ObserveMainUI mainUI = ObserveSwingApplicationContext.get().getMainUI(); String title = (String) ui.getClientProperty("title"); @@ -259,7 +259,7 @@ public class AdminUILauncher extends WizardUILancher<AdminStep, AdminUIModel, Ad model.doCloseSource(source, false); // on attache la source a l'ui - ObserveSwingApplicationContext.get().prepareMainStorage(source); + ObserveSwingApplicationContext.get().prepareMainStorage(source, false); source.open(); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/AdminUIModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/AdminUIModel.java index e6133bd..d00d536 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/AdminUIModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/AdminUIModel.java @@ -116,9 +116,6 @@ public class AdminUIModel extends WizardExtModel<AdminStep> { /** le controleur pour configurer les sources */ protected StorageUIHandler storageHandler; - /** configuration de l'application */ - protected ObserveSwingApplicationConfig config; - /** selection des donnees a valider */ protected final DataSelectionModel selectionDataModel; @@ -139,7 +136,6 @@ public class AdminUIModel extends WizardExtModel<AdminStep> { private final PropertyChangeListener listenSaveLocalChanged; - public AdminUIModel() { super(AdminStep.class); @@ -414,10 +410,6 @@ public class AdminUIModel extends WizardExtModel<AdminStep> { return (AdminActionModel) super.getStepModel(operation); } - public ObserveSwingApplicationConfig getConfig() { - return config; - } - /** * Pour savoir si on a besoin d'une base source pour l'opération. * @@ -469,12 +461,7 @@ public class AdminUIModel extends WizardExtModel<AdminStep> { public EnumSet<DbMode> getIncomingDataSourceMode() { EnumSet<DbMode> result = EnumSet.noneOf(DbMode.class); - for (AdminStep op : getOperations()) { - if (op.hasIncomingModes()) { - - result.addAll(Arrays.asList(op.getIncomingModes())); - } - } + getOperations().stream().filter(AdminStep::hasIncomingModes).forEach(op -> result.addAll(Arrays.asList(op.getIncomingModes()))); return result; } @@ -484,7 +471,7 @@ public class AdminUIModel extends WizardExtModel<AdminStep> { storageHandler = ui.getContextValue(StorageUIHandler.class); - config = ui.getContextValue(ObserveSwingApplicationConfig.class); + ObserveSwingApplicationConfig config = ObserveSwingApplicationContext.get().getConfig(); // demarrage du modèle : on fixe ici une fois pour toute les liste // des onglets visibles @@ -501,7 +488,7 @@ public class AdminUIModel extends WizardExtModel<AdminStep> { // on positionne la source courante de l'application comme service // entrant (on se sert de la configuration de ce service s'il existe // pour la source locale). - ObserveSwingDataSource previousSource = ui.getContextValue(ObserveSwingDataSource.class); + ObserveSwingDataSource previousSource = ObserveSwingApplicationContext.get().getDataSourcesManager().getMainDataSource(); setPreviousSource(previousSource); startIncomingSourceModel(ui); @@ -524,8 +511,7 @@ public class AdminUIModel extends WizardExtModel<AdminStep> { if (containsOperation(AdminStep.SAVE_LOCAL)) { - File backupfile = new File(config.getBackupDirectory(), - storageHandler.getDefaultBackupFilename()); + File backupfile = new File(config.getBackupDirectory(), storageHandler.getDefaultBackupFilename()); getSaveLocalModel().setBackupFile(backupfile); getSaveLocalModel().setDoBackup(true); @@ -658,7 +644,7 @@ public class AdminUIModel extends WizardExtModel<AdminStep> { if (authorizedModes.contains(DbMode.USE_LOCAL)) { // ce mode est disponible uniquement si une base locale existe - if (getConfig().isLocalStorageExist()) { + if (ObserveSwingApplicationContext.get().getConfig().isLocalStorageExist()) { modes.add(DbMode.USE_LOCAL); } } @@ -698,7 +684,7 @@ public class AdminUIModel extends WizardExtModel<AdminStep> { } } - if (previousSource.isServer()) { + if (previousSource != null && previousSource.isServer()) { if (!modes.contains(DbMode.USE_SERVER)) { @@ -707,7 +693,7 @@ public class AdminUIModel extends WizardExtModel<AdminStep> { } } - if (previousSource.isLocal()) { + if (previousSource != null && previousSource.isLocal()) { if (!modes.contains(DbMode.USE_LOCAL)) { @@ -726,14 +712,12 @@ public class AdminUIModel extends WizardExtModel<AdminStep> { if (previousSource == null) { - // on intialize le modèle de la source locale à partir du service - // entrant (s'il existe) + // on intialize le modèle de la source locale à partir du service entrant (s'il existe) localSourceModel.init(ui, null); } else { - // on intialize le modèle de la source locale à partir du service - // entrant (s'il existe) + // on intialize le modèle de la source locale à partir du service entrant (s'il existe) localSourceModel.initFromPreviousConfig(ui, previousSourceConfig, previousSourceInfo); } @@ -866,7 +850,7 @@ public class AdminUIModel extends WizardExtModel<AdminStep> { public ObserveSwingDataSource getSafeTmpSource(boolean open) { if (tmpSource == null) { - tmpSource = ObserveSwingApplicationContext.get().createDataSourceH2Temp(n("observe.storage.label.synchro")); + tmpSource = ObserveSwingApplicationContext.get().createTemporaryH2Storage(n("observe.storage.label.synchro")); if (open) { doOpenSource(tmpSource); } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/datasynchro/DataSynchroUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/datasynchro/DataSynchroUIHandler.java index 0025eef..5629f7b 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/datasynchro/DataSynchroUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/datasynchro/DataSynchroUIHandler.java @@ -11,6 +11,7 @@ import fr.ird.observe.services.service.actions.datasynchro.DataSynchronizeCopyTa import fr.ird.observe.services.service.actions.datasynchro.DataSynchronizeDeleteTask; import fr.ird.observe.services.service.actions.datasynchro.DataSynchronizeRequest; import fr.ird.observe.services.service.actions.datasynchro.DataSynchronizeService; +import fr.ird.observe.ui.admin.AdminTabUI; import fr.ird.observe.ui.admin.AdminTabUIHandler; import fr.ird.observe.ui.admin.AdminUI; import fr.ird.observe.ui.storage.tabs.DataSelectionModel; @@ -22,9 +23,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import javax.swing.DefaultListModel; -import javax.swing.JList; import javax.swing.border.TitledBorder; -import java.awt.event.MouseEvent; import java.util.List; import java.util.Map; import java.util.Set; @@ -55,6 +54,11 @@ public class DataSynchroUIHandler extends AdminTabUIHandler { return (DataSynchroUI) super.getUi(); } + @Override + public void updateState(AdminTabUI ui, WizardState newState) { + super.updateState(ui, newState); + } + public void initTabUI(AdminUI ui, DataSynchroUI tabUI) { super.initTabUI(ui, tabUI); @@ -63,8 +67,6 @@ public class DataSynchroUIHandler extends AdminTabUIHandler { log.debug(" specialized for [" + tabUI.getStep() + "] for main ui " + ui.getClass().getName() + "@" + System.identityHashCode(ui)); } -// tabUI.getStartAction().setText(t("observe.action.datasynchro.launch.operation", t(tabUI.getStep().getOperationLabel()))); - getStepModel().getLeftSelectionDataModel().addPropertyChangeListener(evt -> { DataSelectionModel model = (DataSelectionModel) evt.getSource(); @@ -112,12 +114,6 @@ public class DataSynchroUIHandler extends AdminTabUIHandler { } -// public void doPrepareAction() { -// -// addAdminWorker(getUi().getStartAction().getToolTipText(), this::doAction); -// -// } - public void addCopyToLeftTasks() { DataSelectionModel rightSelectionDataModel = getStepModel().getRightSelectionDataModel(); @@ -204,49 +200,6 @@ public class DataSynchroUIHandler extends AdminTabUIHandler { } - public void removeTasks(MouseEvent event) { - - if (event.getClickCount() > 1) { - - JList source = (JList) event.getSource(); - int selectionIndex = source.getMinSelectionIndex(); - DataSynchronizeTaskSupport task = getStepModel().getTasks().getElementAt(selectionIndex); - getStepModel().getTasks().removeElementAt(selectionIndex); - - //TODO Deal with tripExistOnxxx for copy tasks - - ObserveTreeHelper treeHelper; - DataSelectionModel selectionDataModel; - if (task instanceof CopyToLeftDataSynchronizeTask || task instanceof DeleteFromRightDataSynchronizeTask) { - - // push back to right tree - treeHelper = getUi().getRightTreeHelper(); - selectionDataModel = getStepModel().getRightSelectionDataModel(); - } else { - - // push back to left tree - - treeHelper = getUi().getLeftTreeHelper(); - selectionDataModel = getStepModel().getLeftSelectionDataModel(); - } - - ReferentialReference<ProgramDto> program = task.getProgram(); - DataReference trip = task.getTrip(); - - Set<ReferentialReference<ProgramDto>> programs = selectionDataModel.getPrograms(); - ObserveNode programNode; - if (programs.contains(program)) { - programNode = treeHelper.getChild(treeHelper.getRootNode(), program.getId()); - } else { - programNode = treeHelper.addProgram(programs, program); - } - - selectionDataModel.addData(program, trip); - treeHelper.addSimpleTrip(programNode, trip); - } - - } - public void doExecuteAction() { ObserveSwingDataSource leftSource = getStepModel().getLeftSource(); @@ -327,39 +280,21 @@ public class DataSynchroUIHandler extends AdminTabUIHandler { } -// private WizardState doAction() throws Exception { -// -// if (log.isDebugEnabled()) { -// log.debug(this); -// } -// -// DataSynchroModel stepModel = getStepModel(); -// -// // on cree les sources de données -// -// ObserveSwingDataSource leftSource = model.getSafeLocalSource(false); -// openSource(leftSource); -// stepModel.setLeftSource(leftSource); -// -// ObserveSwingDataSource rightSource = model.getSafeCentralSource(false); -// openSource(rightSource); -// stepModel.setRightSource(rightSource); -// -// -// // Populate tree models -// -// DataSynchroUI tabUI = getUi(); -// -// tabUI.getLeftTreePane().setBorder(new TitledBorder(leftSource.getLabel())); -// stepModel.populateLeftSelectionModel(); -// updateSelectionModel(tabUI, tabUI.getLeftTreeHelper(), tabUI.getLeftTree(), leftSource, stepModel.getLeftSelectionDataModel(), tabUI.getLeftSelectionModel()); -// sendMessage(t("observe.message.datasynchro.leftData.loaded")); -// -// -// sendMessage(t("observe.message.datasynchro.ready")); -// -// return WizardState.NEED_FIX; -// -// } + private void adddTripToTree(ReferentialReference<ProgramDto> program, DataReference trip, ObserveTreeHelper treeHelper, DataSelectionModel selectionDataModel) { + + + Set<ReferentialReference<ProgramDto>> programs = selectionDataModel.getPrograms(); + ObserveNode programNode; + if (programs.contains(program)) { + programNode = treeHelper.getChild(treeHelper.getRootNode(), program.getId()); + } else { + programNode = treeHelper.addProgram(programs, program); + } + + selectionDataModel.addData(program, trip); + ObserveNode observeNode = treeHelper.addSimpleTrip(programNode, trip); + treeHelper.selectNode(observeNode); + + } } \ No newline at end of file diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/datasynchro/DataSynchronizeTaskListCellRenderer.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/datasynchro/DataSynchronizeTaskListCellRenderer.java index cccbbab..ca9fc28 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/datasynchro/DataSynchronizeTaskListCellRenderer.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/datasynchro/DataSynchronizeTaskListCellRenderer.java @@ -1,9 +1,6 @@ package fr.ird.observe.ui.admin.datasynchro; -import jaxx.runtime.SwingUtil; - import javax.swing.DefaultListCellRenderer; -import javax.swing.ImageIcon; import javax.swing.JList; import java.awt.Component; @@ -17,20 +14,11 @@ public class DataSynchronizeTaskListCellRenderer extends DefaultListCellRenderer private static final long serialVersionUID = 1L; - private final ImageIcon icon; - - public DataSynchronizeTaskListCellRenderer() { - icon = SwingUtil.createActionIcon("cancel"); - } - @Override public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { DataSynchronizeTaskSupport task = (DataSynchronizeTaskSupport) value; - String label = task.getLabel(); - Component listCellRendererComponent = super.getListCellRendererComponent(list, label, index, isSelected, cellHasFocus); - setIcon(icon); - return listCellRendererComponent; + return super.getListCellRendererComponent(list, task.getLabel(), index, isSelected, cellHasFocus); } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ContentUI.jaxx b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ContentUI.jaxx index bfcbbb5..20899b6 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ContentUI.jaxx +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ContentUI.jaxx @@ -34,10 +34,10 @@ _UPDATETip='t("observe.content.mode.update.tip")'> <import> + fr.ird.observe.ObserveSwingApplicationContext fr.ird.observe.db.DataContext fr.ird.observe.db.ObserveSwingDataSource fr.ird.observe.configuration.ObserveSwingApplicationConfig - fr.ird.observe.ObserveSwingApplicationContext fr.ird.observe.ui.actions.shared.GoUpUIAction fr.ird.observe.ui.actions.shared.GoDownUIAction fr.ird.observe.ui.tree.ObserveTreeHelper @@ -54,15 +54,12 @@ javax.swing.UIManager </import> - <ObserveSwingApplicationConfig id='config' - initializer='getContextValue(ObserveSwingApplicationConfig.class)'/> + <ObserveSwingApplicationConfig id='config' initializer='ObserveSwingApplicationContext.get().getConfig()'/> - <SwingValidatorMessageTableModel id='errorTableModel' - initializer='getContextValue(SwingValidatorMessageTableModel.class)'/> + <SwingValidatorMessageTableModel id='errorTableModel' initializer='getContextValue(SwingValidatorMessageTableModel.class)'/> <!--FIXME a supprimer a la fin de la migration de service --> - <ObserveSwingDataSource id='dataSource' - initializer='ObserveSwingApplicationContext.get().getDataSource()'/> + <ObserveSwingDataSource id='dataSource' initializer='ObserveSwingApplicationContext.get().getDataSourcesManager().getMainDataSource()'/> <DataContext id='dataContext' javaBean='getContextValue(DataContext.class)'/> diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ContentUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ContentUIHandler.java index 6cbca35..3b84fb8 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ContentUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ContentUIHandler.java @@ -615,7 +615,7 @@ public abstract class ContentUIHandler<E extends IdDto> { } protected ObserveSwingDataSource getDataSource() { - return ObserveSwingApplicationContext.get().getDataSource(); + return ObserveSwingApplicationContext.get().getDataSourcesManager().getMainDataSource(); } protected ObserveOpenDataManager getOpenDataManager() { diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ContentUIManager.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ContentUIManager.java index 86c493c..c431110 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ContentUIManager.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ContentUIManager.java @@ -21,6 +21,7 @@ */ package fr.ird.observe.ui.content; +import fr.ird.observe.ObserveSwingApplicationContext; import fr.ird.observe.services.dto.constants.GearType; import fr.ird.observe.services.dto.longline.ActivityLonglineDto; import fr.ird.observe.services.dto.longline.ActivityLonglineEncounterDto; @@ -89,6 +90,7 @@ import org.apache.commons.logging.LogFactory; import javax.swing.JComponent; import javax.swing.JPanel; +import java.awt.Component; import java.lang.reflect.Constructor; import java.util.Map; import java.util.TreeMap; @@ -110,14 +112,18 @@ public class ContentUIManager { /** Logger */ static private final Log log = LogFactory.getLog(ContentUIManager.class); - /** L'ui qui utilise le manager */ - protected final ObserveMainUI ui; +// /** L'ui qui utilise le manager */ +// protected final ObserveMainUI ui; protected final Map<String, Class<? extends ObserveContentUI<?>>> mapping; - public ContentUIManager(ObserveMainUI ui) { + protected ObserveMainUI getMainUI() { + return ObserveSwingApplicationContext.get().getMainUI(); + } + + public ContentUIManager() { - this.ui = ui; +// this.ui = ui; mapping = new TreeMap<>(); // --- Seine data --- // @@ -289,10 +295,9 @@ public class ContentUIManager { try { Constructor<U> constructor = uiClass.getConstructor(JAXXContext.class); if (log.isDebugEnabled()) { - log.debug("create new content : " + uiClass + " from ui " + - ui.getClass().getName()); + log.debug("create new content : " + uiClass); } - result = constructor.newInstance(new JAXXInitialContext().add(ui)); + result = constructor.newInstance(new JAXXInitialContext().add(getMainUI())); } catch (Exception e) { throw new IllegalStateException("Could not create content ui " + uiClass, e); } @@ -346,13 +351,67 @@ public class ContentUIManager { getLayout().reset(getLayoutContent()); } + public ContentUI<?> getSelectedContentUI() { + + ObserveMainUI ui = getMainUI(); + return getSelectedContentUI(ui); + } + + public boolean closeSelectedContentUI() { + ObserveMainUI ui = getMainUI(); + return closeSelectedContentUI(ui); + } + + public ContentUI<?> getSelectedContentUI(ObserveMainUI ui) { + + ContentUI<?> result = null; + + if (ui == null) { + // no ui, so no modification + return result; + } + + CardLayout2 layout = ui.getContentLayout(); + JPanel container = ui.getContent(); + Component currentContent = layout.getVisibleComponent(container); + if (currentContent != null && + currentContent instanceof ContentUI<?>) { + + result = (ContentUI<?>) currentContent; + } + return result; + } + + /** + * Essaye de fermer l'écran d'édition s'il existe. + * + * @param mainUI l'ui principale + * @return {@code true} si le contenu a bien été fermé, {@code false} si on + * ne peut pas fermer l'écran + * @since 1.5 + */ + public boolean closeSelectedContentUI(ObserveMainUI mainUI) { + ContentUI<?> ui = getSelectedContentUI(mainUI); + if (ui == null) { + // no content ui + return true; + } + boolean closed = false; + try { + closed = ui.close(); + } catch (Exception e) { + UIHelper.handlingError(e); + } + return closed; + } + protected JPanel getLayoutContent() { - JPanel content = ui.getContent(); + JPanel content = getMainUI().getContent(); return content; } protected CardLayout2 getLayout() { - CardLayout2 layout = ui.getContentLayout(); + CardLayout2 layout = getMainUI().getContentLayout(); return layout; } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/LonglineDetailCompositionUI.jaxx b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/LonglineDetailCompositionUI.jaxx index d1ce177..d21c96d 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/LonglineDetailCompositionUI.jaxx +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/LonglineDetailCompositionUI.jaxx @@ -174,7 +174,7 @@ <Table fill="both" constraints='BorderLayout.NORTH'> <row> <cell weightx="1" fill="both" weighty="1"> - <BranchlineUI id="branchlineDetailUI" constructorParams="ObserveSwingApplicationContext.get().getObserveMainUI()"/> + <BranchlineUI id="branchlineDetailUI" constructorParams="ObserveSwingApplicationContext.get().getMainUI()"/> </cell> </row> </Table> diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/LonglineDetailCompositionUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/LonglineDetailCompositionUIHandler.java index 6cefcfa..04f09e1 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/LonglineDetailCompositionUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/LonglineDetailCompositionUIHandler.java @@ -605,7 +605,7 @@ public class LonglineDetailCompositionUIHandler extends ContentUIHandler<SetLong } - ObserveMainUI mainUI = ObserveSwingApplicationContext.get().getObserveMainUI(); + ObserveMainUI mainUI = ObserveSwingApplicationContext.get().getMainUI(); int response = UIHelper.askUser(mainUI, t("observe.title.delete"), t("observe.sections.delete.message"), @@ -654,7 +654,7 @@ public class LonglineDetailCompositionUIHandler extends ContentUIHandler<SetLong log.info("Delete: " + data); } - ObserveMainUI mainUI = ObserveSwingApplicationContext.get().getObserveMainUI(); + ObserveMainUI mainUI = ObserveSwingApplicationContext.get().getMainUI(); int response = UIHelper.askUser(mainUI, t("observe.title.delete"), t("observe.sectionTemplate.delete.message"), @@ -695,7 +695,7 @@ public class LonglineDetailCompositionUIHandler extends ContentUIHandler<SetLong boolean accept = UIHelper.confirmForEntityDelete(ui, SectionDto.class, selectedSection); - ObserveMainUI mainUI = ObserveSwingApplicationContext.get().getObserveMainUI(); + ObserveMainUI mainUI = ObserveSwingApplicationContext.get().getMainUI(); mainUI.setBusy(false); if (!accept) { @@ -797,7 +797,7 @@ public class LonglineDetailCompositionUIHandler extends ContentUIHandler<SetLong } boolean accept = UIHelper.confirmForEntityDelete(ui, BasketDto.class, selectedBasket); - ObserveMainUI mainUI = ObserveSwingApplicationContext.get().getObserveMainUI(); + ObserveMainUI mainUI = ObserveSwingApplicationContext.get().getMainUI(); mainUI.setBusy(false); if (!accept) { @@ -908,7 +908,7 @@ public class LonglineDetailCompositionUIHandler extends ContentUIHandler<SetLong } boolean accept = UIHelper.confirmForEntityDelete(ui, BranchlineDto.class, selectedBranchline); - ObserveMainUI mainUI = ObserveSwingApplicationContext.get().getObserveMainUI(); + ObserveMainUI mainUI = ObserveSwingApplicationContext.get().getMainUI(); mainUI.setBusy(false); if (!accept) { return; @@ -1363,7 +1363,7 @@ public class LonglineDetailCompositionUIHandler extends ContentUIHandler<SetLong } protected SetLonglineDetailCompositionService getSetLonglineDetailCompositionService() { - return ObserveSwingApplicationContext.get().newService(SetLonglineDetailCompositionService.class); + return ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newSetLonglineDetailCompositionService(); } } \ No newline at end of file diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/LonglineGlobalCompositionUI.jaxx b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/LonglineGlobalCompositionUI.jaxx index fa36f68..f014f65 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/LonglineGlobalCompositionUI.jaxx +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/LonglineGlobalCompositionUI.jaxx @@ -79,7 +79,7 @@ <tab id='floatlinesCompositionTab'> <JPanel id="floatlinesCompositionPanel" layout='{new BorderLayout()}'> <FloatlinesCompositionUI id="floatlinesCompositionUI" - constructorParams="ObserveSwingApplicationContext.get().getObserveMainUI()"/> + constructorParams="ObserveSwingApplicationContext.get().getMainUI()"/> </JPanel> </tab> @@ -87,7 +87,7 @@ <tab id='branchlinesCompositionTab'> <JPanel id="branchlinesCompositionPanel" layout='{new BorderLayout()}'> <BranchlinesCompositionUI id="branchlinesCompositionUI" - constructorParams="ObserveSwingApplicationContext.get().getObserveMainUI()"/> + constructorParams="ObserveSwingApplicationContext.get().getMainUI()"/> </JPanel> </tab> @@ -95,7 +95,7 @@ <tab id='hooksCompositionTab'> <JPanel id="hooksCompositionPanel" layout='{new BorderLayout()}'> <HooksCompositionUI id="hooksCompositionUI" - constructorParams="ObserveSwingApplicationContext.get().getObserveMainUI()"/> + constructorParams="ObserveSwingApplicationContext.get().getMainUI()"/> </JPanel> </tab> @@ -103,7 +103,7 @@ <tab id='baitsCompositionTab'> <JPanel id="baitsCompositionPanel" layout='{new BorderLayout()}'> <BaitsCompositionUI id="baitsCompositionUI" - constructorParams="ObserveSwingApplicationContext.get().getObserveMainUI()"/> + constructorParams="ObserveSwingApplicationContext.get().getMainUI()"/> </JPanel> </tab> diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/LonglineGlobalCompositionUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/LonglineGlobalCompositionUIHandler.java index 1eb5212..0523e15 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/LonglineGlobalCompositionUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/LonglineGlobalCompositionUIHandler.java @@ -241,7 +241,8 @@ public class LonglineGlobalCompositionUIHandler extends ContentUIHandler<SetLong } protected SetLonglineGlobalCompositionService getSetLonglineGlobalCompositionService() { - return ObserveSwingApplicationContext.get().newService(SetLonglineGlobalCompositionService.class); + + return ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newSetLonglineGlobalCompositionService(); } } \ No newline at end of file diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/SetLonglineUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/SetLonglineUIHandler.java index 62b3347..c66d2d4 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/SetLonglineUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/SetLonglineUIHandler.java @@ -465,6 +465,6 @@ public class SetLonglineUIHandler extends ContentUIHandler<SetLonglineDto> { } protected SetLonglineService getSetLonglineService() { - return ObserveSwingApplicationContext.get().newService(SetLonglineService.class); + return ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newSetLonglineService(); } } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/seine/ActivitySeineObservedSystemUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/seine/ActivitySeineObservedSystemUIHandler.java index a4d2e79..17afaa8 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/seine/ActivitySeineObservedSystemUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/seine/ActivitySeineObservedSystemUIHandler.java @@ -118,6 +118,6 @@ public class ActivitySeineObservedSystemUIHandler extends ContentUIHandler<Activ } protected ActivitySeineObservedSystemService getActivitySeineObservedSystemService() { - return ObserveSwingApplicationContext.get().newService(ActivitySeineObservedSystemService.class); + return ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newActivitySeineObservedSystemService(); } } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/seine/FloatingObjectTransmittingBuoyOperationUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/seine/FloatingObjectTransmittingBuoyOperationUIHandler.java index 618ef5f..b7f8c8f 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/seine/FloatingObjectTransmittingBuoyOperationUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/seine/FloatingObjectTransmittingBuoyOperationUIHandler.java @@ -370,7 +370,7 @@ public class FloatingObjectTransmittingBuoyOperationUIHandler extends ContentUIH } protected TransmittingBuoyOperationService getTransmittingBuoyOperationService() { - return ObserveSwingApplicationContext.get().newService(TransmittingBuoyOperationService.class); + return ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newTransmittingBuoyOperationService(); } } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/seine/SetSeineUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/seine/SetSeineUIHandler.java index bf32e9a..cd960c3 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/seine/SetSeineUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/seine/SetSeineUIHandler.java @@ -184,7 +184,7 @@ public class SetSeineUIHandler extends ContentUIHandler<SetSeineDto> { getModel().setForm(form); SetSeineDtos.copySetSeineDto(form.getObject(), bean); - RouteService routeService = ObserveSwingApplicationContext.get().newService(RouteService.class); + RouteService routeService = ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newRouteService(); RouteDto route = routeService.loadDto(selectedRouteId); @@ -340,6 +340,6 @@ public class SetSeineUIHandler extends ContentUIHandler<SetSeineDto> { } protected SetSeineService getSetSeineService() { - return ObserveSwingApplicationContext.get().newService(SetSeineService.class); + return ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newSetSeineService(); } } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/longline/ActivityLonglinesUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/longline/ActivityLonglinesUIHandler.java index 5ed8f08..55bbebe 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/longline/ActivityLonglinesUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/longline/ActivityLonglinesUIHandler.java @@ -113,7 +113,7 @@ public class ActivityLonglinesUIHandler extends ContentListUIHandler<TripLonglin @Override protected List<DataReference<ActivityLonglineDto>> getChilds(String parentId) { - ActivityLonglineService service = ObserveSwingApplicationContext.get().newService(ActivityLonglineService.class); + ActivityLonglineService service = ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newActivityLonglineService(); DataReferenceSet<ActivityLonglineDto> activityLonglineStubByRoute = service.getActivityLonglineByTripLongline(parentId); if (log.isDebugEnabled()) { diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/longline/TripLonglinesUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/longline/TripLonglinesUIHandler.java index 13ea64c..6719578 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/longline/TripLonglinesUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/longline/TripLonglinesUIHandler.java @@ -98,7 +98,7 @@ public class TripLonglinesUIHandler extends ContentListUIHandler<ProgramDto, Tri @Override protected List<DataReference<TripLonglineDto>> getChilds(String parentId) { - TripLonglineService service = ObserveSwingApplicationContext.get().newService(TripLonglineService.class); + TripLonglineService service = ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newTripLonglineService(); DataReferenceSet<TripLonglineDto> tripLonglineByProgram = service.getTripLonglineByProgram( parentId); if (log.isDebugEnabled()) { diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/ActivitySeinesUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/ActivitySeinesUIHandler.java index d1b9adb..6e5f959 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/ActivitySeinesUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/ActivitySeinesUIHandler.java @@ -111,7 +111,7 @@ public class ActivitySeinesUIHandler extends ContentListUIHandler<RouteDto, Acti @Override protected List<DataReference<ActivitySeineDto>> getChilds(String parentId) { - ActivitySeineService service = ObserveSwingApplicationContext.get().newService(ActivitySeineService.class); + ActivitySeineService service = ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newActivitySeineService(); DataReferenceSet<ActivitySeineDto> activitySeineByRoute = service.getActivitySeineByRoute(parentId); if (log.isDebugEnabled()) { diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/RoutesUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/RoutesUIHandler.java index 852a727..23add6c 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/RoutesUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/RoutesUIHandler.java @@ -108,7 +108,7 @@ public class RoutesUIHandler extends ContentListUIHandler<TripSeineDto, RouteDto @Override protected List<DataReference<RouteDto>> getChilds(String parentId) { - RouteService service = ObserveSwingApplicationContext.get().newService(RouteService.class); + RouteService service = ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newRouteService(); DataReferenceSet<RouteDto> routeByTripSeine = service.getRouteByTripSeine(parentId); if (log.isDebugEnabled()) { diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/TripSeinesUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/TripSeinesUIHandler.java index 6ed82dd..dd70be9 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/TripSeinesUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/TripSeinesUIHandler.java @@ -95,7 +95,7 @@ public class TripSeinesUIHandler extends ContentListUIHandler<ProgramDto, TripSe @Override protected List<DataReference<TripSeineDto>> getChilds(String parentId) { - TripSeineService service = ObserveSwingApplicationContext.get().newService(TripSeineService.class); + TripSeineService service = ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newTripSeineService(); DataReferenceSet<TripSeineDto> tripSeineByProgram = service.getTripSeineByProgram(parentId); if (log.isDebugEnabled()) { diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/longline/ActivityLonglineUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/longline/ActivityLonglineUIHandler.java index 6f3f2d3..a6fd142 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/longline/ActivityLonglineUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/longline/ActivityLonglineUIHandler.java @@ -358,6 +358,6 @@ public class ActivityLonglineUIHandler extends ContentOpenableUIHandler<Activity } protected ActivityLonglineService getActivityLonglineService() { - return ObserveSwingApplicationContext.get().newService(ActivityLonglineService.class); + return ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newActivityLonglineService(); } } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/longline/TripLonglineUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/longline/TripLonglineUIHandler.java index ed4a126..3f472d6 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/longline/TripLonglineUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/longline/TripLonglineUIHandler.java @@ -94,7 +94,7 @@ public class TripLonglineUIHandler extends ContentOpenableUIHandler<TripLongline TripLonglineUI ui = getUi(); TripMapUI tripMap = ui.getTripMap(); - ObserveSwingApplicationConfig config = ui.getContextValue(ObserveSwingApplicationConfig.class); + ObserveSwingApplicationConfig config = ObserveSwingApplicationContext.get().getConfig(); tripMap.getHandler().setConfig(config); @@ -368,6 +368,6 @@ public class TripLonglineUIHandler extends ContentOpenableUIHandler<TripLongline } protected TripLonglineService getTripLonglineService() { - return ObserveSwingApplicationContext.get().newService(TripLonglineService.class); + return ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newTripLonglineService(); } } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/ActivitySeineUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/ActivitySeineUIHandler.java index 822d36c..f5586fc 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/ActivitySeineUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/ActivitySeineUIHandler.java @@ -372,7 +372,7 @@ public class ActivitySeineUIHandler extends ContentOpenableUIHandler<ActivitySei } protected ActivitySeineService getActivitySeineService() { - return ObserveSwingApplicationContext.get().newService(ActivitySeineService.class); + return ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newActivitySeineService(); } } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/RouteUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/RouteUIHandler.java index f57e9ea..8a6fa6b 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/RouteUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/RouteUIHandler.java @@ -383,7 +383,7 @@ public class RouteUIHandler extends ContentOpenableUIHandler<RouteDto> { treeHelper.addUnsavedNode(parentNode, ActivitySeineDto.class); // on recupère l'écran d'édition - ActivitySeineUI selectedUI = (ActivitySeineUI) ObserveSwingApplicationContext.get().getSelectedContentUI(); + ActivitySeineUI selectedUI = (ActivitySeineUI) ObserveSwingApplicationContext.get().getContentUIManager().getSelectedContentUI(); // on recupère l'activity de fin de veille ReferentialReference<VesselActivitySeineDto> vesselActivitySeine = null; @@ -461,6 +461,6 @@ public class RouteUIHandler extends ContentOpenableUIHandler<RouteDto> { } protected RouteService getRouteService() { - return ObserveSwingApplicationContext.get().newService(RouteService.class); + return ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newRouteService(); } } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/TripSeineUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/TripSeineUIHandler.java index 1a15566..0c2ed16 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/TripSeineUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/TripSeineUIHandler.java @@ -92,7 +92,7 @@ public class TripSeineUIHandler extends ContentOpenableUIHandler<TripSeineDto> { TripSeineUI ui = getUi(); TripMapUI tripMap = ui.getTripMap(); - ObserveSwingApplicationConfig config = ui.getContextValue(ObserveSwingApplicationConfig.class); + ObserveSwingApplicationConfig config = ObserveSwingApplicationContext.get().getConfig(); tripMap.getHandler().setConfig(config); @@ -364,7 +364,7 @@ public class TripSeineUIHandler extends ContentOpenableUIHandler<TripSeineDto> { } protected TripSeineService getTripSeineService() { - return ObserveSwingApplicationContext.get().newService(TripSeineService.class); + return ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newTripSeineService(); } } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ref/ContentReferenceUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ref/ContentReferenceUIHandler.java index e837fef..2b01a04 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ref/ContentReferenceUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ref/ContentReferenceUIHandler.java @@ -802,7 +802,7 @@ public class ContentReferenceUIHandler<E extends ReferentialDto> extends Content } protected ReferentialService getReferentialService() { - return ObserveSwingApplicationContext.get().newService(ReferentialService.class); + return ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newReferentialService(); } } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/ContentTableUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/ContentTableUIHandler.java index c582d6c..1af0e7c 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/ContentTableUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/ContentTableUIHandler.java @@ -228,7 +228,7 @@ public abstract class ContentTableUIHandler<E extends IdDto, D extends IdDto> ex // Collection<D> data = new ArrayList<D>(); // if (CollectionUtils.isNotEmpty(childs)) { // Loador<D> loader = getModel().getChildLoador(); -// TopiaDAO<D> dao = getDataSource().getDAO(tx, getTableEditBean()); +// TopiaDAO<D> dao = getMainDataSource().getDAO(tx, getTableEditBean()); // for (D c : childs) { // try { // D cUp = dao.findByTopiaId(c.getTopiaId()); @@ -325,7 +325,7 @@ public abstract class ContentTableUIHandler<E extends IdDto, D extends IdDto> ex } finally { // always reset busy model to false - ObserveSwingApplicationContext.get().getObserveMainUI().setBusy(false); + ObserveSwingApplicationContext.get().getMainUI().setBusy(false); } } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/CatchLonglineUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/CatchLonglineUIHandler.java index a012593..bec933e 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/CatchLonglineUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/CatchLonglineUIHandler.java @@ -609,7 +609,7 @@ public class CatchLonglineUIHandler extends ContentTableUIHandler<SetLonglineCat String tripLonglineId = getDataContext().getSelectedTripLonglineId(); - TripLonglineService tripLonglineService = ObserveSwingApplicationContext.get().newService(TripLonglineService.class); + TripLonglineService tripLonglineService = ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newTripLonglineService(); result = (List) tripLonglineService.getSpeciesByListAndTrip(tripLonglineId, speciesListId); result = ReferentialReferences.filterEnabled(result); @@ -801,7 +801,7 @@ public class CatchLonglineUIHandler extends ContentTableUIHandler<SetLonglineCat log.info("Delete: " + data); } - ObserveMainUI mainUI = ObserveSwingApplicationContext.get().getObserveMainUI(); + ObserveMainUI mainUI = ObserveSwingApplicationContext.get().getMainUI(); int response = UIHelper.askUser(mainUI, t("observe.title.delete"), t("observe.sizeMeasure.delete.message"), @@ -860,7 +860,7 @@ public class CatchLonglineUIHandler extends ContentTableUIHandler<SetLonglineCat log.info("Delete: " + data); } - ObserveMainUI mainUI = ObserveSwingApplicationContext.get().getObserveMainUI(); + ObserveMainUI mainUI = ObserveSwingApplicationContext.get().getMainUI(); int response = UIHelper.askUser(mainUI, t("observe.title.delete"), t("observe.weightMeasure.delete.message"), @@ -928,11 +928,11 @@ public class CatchLonglineUIHandler extends ContentTableUIHandler<SetLonglineCat } protected SetLonglineCatchService getSetLonglineCatchService() { - return ObserveSwingApplicationContext.get().newService(SetLonglineCatchService.class); + return ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newSetLonglineCatchService(); } protected BranchlineService getBranchLineService() { - return ObserveSwingApplicationContext.get().newService(BranchlineService.class); + return ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newBranchlineService(); } } \ No newline at end of file diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/EncounterUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/EncounterUIHandler.java index 97e6b00..534cc5b 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/EncounterUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/EncounterUIHandler.java @@ -133,7 +133,7 @@ public class EncounterUIHandler extends ContentTableUIHandler<ActivityLonglineEn String speciesListId = ObserveSwingApplicationContext.get().getConfig().getSpeciesListLonglineEncounterId(); - ReferentialService referentialService = ObserveSwingApplicationContext.get().newService(ReferentialService.class); + ReferentialService referentialService = ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newReferentialService(); Form<SpeciesListDto> speciesListDtoForm = referentialService.loadForm(SpeciesListDto.class, speciesListId); SpeciesListDto speciesListDto = speciesListDtoForm.getObject(); @@ -156,6 +156,6 @@ public class EncounterUIHandler extends ContentTableUIHandler<ActivityLonglineEn } protected ActivityLongLineEncounterService getActivityLongLineEncouterService() { - return ObserveSwingApplicationContext.get().newService(ActivityLongLineEncounterService.class); + return ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newActivityLongLineEncounterService(); } } \ No newline at end of file diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/GearUseFeaturesLonglineUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/GearUseFeaturesLonglineUIHandler.java index 9013221..4c78962 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/GearUseFeaturesLonglineUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/GearUseFeaturesLonglineUIHandler.java @@ -173,7 +173,7 @@ public class GearUseFeaturesLonglineUIHandler extends ContentTableUIHandler<Trip log.info("Delete: " + data); } - ObserveMainUI mainUI = ObserveSwingApplicationContext.get().getObserveMainUI(); + ObserveMainUI mainUI = ObserveSwingApplicationContext.get().getMainUI(); int response = UIHelper.askUser(mainUI, t("observe.title.delete"), t("observe.measurement.delete.message"), @@ -502,7 +502,7 @@ public class GearUseFeaturesLonglineUIHandler extends ContentTableUIHandler<Trip } protected TripLonglineGearUseService getTripLonglineGearUseService() { - return ObserveSwingApplicationContext.get().newService(TripLonglineGearUseService.class); + return ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newTripLonglineGearUseService(); } } \ No newline at end of file diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/SensorUsedUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/SensorUsedUIHandler.java index 1096aa5..e18fb9d 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/SensorUsedUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/SensorUsedUIHandler.java @@ -187,7 +187,7 @@ public class SensorUsedUIHandler extends ContentTableUIHandler<ActivityLonglineS Files.write(file.toPath(), dataFile.getContent()); - ObserveMainUI mainUI = ObserveSwingApplicationContext.get().getObserveMainUI(); + ObserveMainUI mainUI = ObserveSwingApplicationContext.get().getMainUI(); mainUI.getStatus().setStatus(t("observe.sensorUsed.message.data.exported", file)); } catch (IOException e) { throw new ObserveSwingTechnicalException("Could not save binary data to " + file, e); @@ -214,7 +214,7 @@ public class SensorUsedUIHandler extends ContentTableUIHandler<ActivityLonglineS } protected ActivityLongLineSensorUsedService getActivityLonglineSensorUsedService() { - return ObserveSwingApplicationContext.get().newService(ActivityLongLineSensorUsedService.class); + return ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newActivityLongLineSensorUsedService(); } } \ No newline at end of file diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/TdrUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/TdrUIHandler.java index 6c72d8c..d0d5cb7 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/TdrUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/TdrUIHandler.java @@ -346,7 +346,7 @@ public class TdrUIHandler extends ContentTableUIHandler<SetLonglineTdrDto, TdrDt Files.write(file.toPath(), dataFile.getContent()); - ObserveMainUI mainUI = ObserveSwingApplicationContext.get().getObserveMainUI(); + ObserveMainUI mainUI = ObserveSwingApplicationContext.get().getMainUI(); mainUI.getStatus().setStatus(t("observe.sensorUsed.message.data.exported", file)); } catch (IOException e) { throw new ObserveSwingTechnicalException("Could not save binary data to " + file, e); @@ -444,7 +444,7 @@ public class TdrUIHandler extends ContentTableUIHandler<SetLonglineTdrDto, TdrDt String tripLonglineId = getDataContext().getSelectedTripLonglineId(); - TripLonglineService tripLonglineService = ObserveSwingApplicationContext.get().newService(TripLonglineService.class); + TripLonglineService tripLonglineService = ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newTripLonglineService(); result = (List) tripLonglineService.getSpeciesByListAndTrip(tripLonglineId, speciesListId); result = ReferentialReferences.filterEnabled(result); @@ -480,6 +480,6 @@ public class TdrUIHandler extends ContentTableUIHandler<SetLonglineTdrDto, TdrDt } protected TdrService getTdrService() { - return ObserveSwingApplicationContext.get().newService(TdrService.class); + return ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newTdrService(); } } \ No newline at end of file diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/GearUseFeaturesSeineUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/GearUseFeaturesSeineUIHandler.java index 3477614..1746fca 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/GearUseFeaturesSeineUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/GearUseFeaturesSeineUIHandler.java @@ -171,7 +171,7 @@ public class GearUseFeaturesSeineUIHandler extends ContentTableUIHandler<TripSei log.info("Delete: " + data); } - ObserveMainUI mainUI = ObserveSwingApplicationContext.get().getObserveMainUI(); + ObserveMainUI mainUI = ObserveSwingApplicationContext.get().getMainUI(); int response = UIHelper.askUser(mainUI, t("observe.title.delete"), t("observe.measurement.delete.message"), @@ -500,7 +500,7 @@ public class GearUseFeaturesSeineUIHandler extends ContentTableUIHandler<TripSei } protected TripSeineGearUseService getTripSeineGearUseService() { - return ObserveSwingApplicationContext.get().newService(TripSeineGearUseService.class); + return ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newTripSeineGearUseService(); } } \ No newline at end of file diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/NonTargetCatchUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/NonTargetCatchUIHandler.java index 2207293..db559a1 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/NonTargetCatchUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/NonTargetCatchUIHandler.java @@ -379,7 +379,7 @@ public class NonTargetCatchUIHandler extends ContentTableUIHandler<SetSeineNonTa String speciesListId = ObserveSwingApplicationContext.get().getConfig().getSpeciesListSeineNonTargetCatchId(); String tripSeineId = getDataContext().getSelectedTripSeineId(); - TripSeineService tripSeineService = ObserveSwingApplicationContext.get().newService(TripSeineService.class); + TripSeineService tripSeineService = ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newTripSeineService(); result = (List) tripSeineService.getSpeciesByListAndTrip(tripSeineId, speciesListId); result = ReferentialReferences.filterEnabled(result); @@ -398,6 +398,6 @@ public class NonTargetCatchUIHandler extends ContentTableUIHandler<SetSeineNonTa } protected NonTargetCatchService getNonTargetCatchService() { - return ObserveSwingApplicationContext.get().newService(NonTargetCatchService.class); + return ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newNonTargetCatchService(); } } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/NonTargetSampleUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/NonTargetSampleUIHandler.java index 1e25c13..b8890ad 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/NonTargetSampleUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/NonTargetSampleUIHandler.java @@ -331,6 +331,6 @@ public class NonTargetSampleUIHandler extends ContentTableUIHandler<NonTargetSam } protected NonTargetSampleService getNonTargetSampleService() { - return ObserveSwingApplicationContext.get().newService(NonTargetSampleService.class); + return ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newNonTargetSampleService(); } } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/ObjectObservedSpeciesUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/ObjectObservedSpeciesUIHandler.java index ade5863..aab061e 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/ObjectObservedSpeciesUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/ObjectObservedSpeciesUIHandler.java @@ -126,7 +126,7 @@ public class ObjectObservedSpeciesUIHandler extends ContentTableUIHandler<Floati case ObjectSchoolEstimateDto.PROPERTY_SPECIES: { String speciesListId = ObserveSwingApplicationContext.get().getConfig().getSpeciesListSeineObjectObservedSpeciesId(); - ReferentialService referentialService = ObserveSwingApplicationContext.get().newService(ReferentialService.class); + ReferentialService referentialService = ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newReferentialService(); Form<SpeciesListDto> speciesListDtoForm = referentialService.loadForm(SpeciesListDto.class, speciesListId); SpeciesListDto speciesListDto = speciesListDtoForm.getObject(); @@ -148,6 +148,6 @@ public class ObjectObservedSpeciesUIHandler extends ContentTableUIHandler<Floati } protected ObjectObservedSpeciesService getObjectObservedSpeciesService() { - return ObserveSwingApplicationContext.get().newService(ObjectObservedSpeciesService.class); + return ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newObjectObservedSpeciesService(); } } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/ObjectSchoolEstimateUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/ObjectSchoolEstimateUIHandler.java index 72d0d89..45a6892 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/ObjectSchoolEstimateUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/ObjectSchoolEstimateUIHandler.java @@ -122,7 +122,7 @@ public class ObjectSchoolEstimateUIHandler extends ContentTableUIHandler<Floatin case ObjectSchoolEstimateDto.PROPERTY_SPECIES: { String speciesListId = ObserveSwingApplicationContext.get().getConfig().getSpeciesListSeineObjectSchoolEstimateId(); - ReferentialService referentialService = ObserveSwingApplicationContext.get().newService(ReferentialService.class); + ReferentialService referentialService = ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newReferentialService(); Form<SpeciesListDto> speciesListDtoForm = referentialService.loadForm(SpeciesListDto.class, speciesListId); SpeciesListDto speciesListDto = speciesListDtoForm.getObject(); @@ -143,6 +143,6 @@ public class ObjectSchoolEstimateUIHandler extends ContentTableUIHandler<Floatin } protected ObjectSchoolEstimateService getObjectSchoolEstimateService() { - return ObserveSwingApplicationContext.get().newService(ObjectSchoolEstimateService.class); + return ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newObjectSchoolEstimateService(); } } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/SchoolEstimateUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/SchoolEstimateUIHandler.java index 4a2a299..a6014d8 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/SchoolEstimateUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/SchoolEstimateUIHandler.java @@ -155,7 +155,7 @@ public class SchoolEstimateUIHandler extends ContentTableUIHandler<SetSeineSchoo String speciesListId = ObserveSwingApplicationContext.get().getConfig().getSpeciesListSeineSchoolEstimateId(); String tripSeineId = getDataContext().getSelectedTripSeineId(); - TripSeineService tripSeineService = ObserveSwingApplicationContext.get().newService(TripSeineService.class); + TripSeineService tripSeineService = ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newTripSeineService(); result = (List) tripSeineService.getSpeciesByListAndTrip(tripSeineId, speciesListId); result = ReferentialReferences.filterEnabled(result); @@ -174,6 +174,6 @@ public class SchoolEstimateUIHandler extends ContentTableUIHandler<SetSeineSchoo } protected SchoolEstimateService getSchoolEstimateService() { - return ObserveSwingApplicationContext.get().newService(SchoolEstimateService.class); + return ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newSchoolEstimateService(); } } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/TargetCatchUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/TargetCatchUIHandler.java index f23dbd2..e92f12f 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/TargetCatchUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/TargetCatchUIHandler.java @@ -304,7 +304,7 @@ public class TargetCatchUIHandler extends ContentTableUIHandler<SetSeineTargetCa String speciesListId = ObserveSwingApplicationContext.get().getConfig().getSpeciesListSeineTargetCatchId(); String tripSeineId = getDataContext().getSelectedTripSeineId(); - TripSeineService tripSeineService = ObserveSwingApplicationContext.get().newService(TripSeineService.class); + TripSeineService tripSeineService = ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newTripSeineService(); result = (List) tripSeineService.getSpeciesByListAndTrip(tripSeineId, speciesListId); result = ReferentialReferences.filterEnabled(result); @@ -323,7 +323,7 @@ public class TargetCatchUIHandler extends ContentTableUIHandler<SetSeineTargetCa } protected TargetCatchService getTargetCatchService() { - return ObserveSwingApplicationContext.get().newService(TargetCatchService.class); + return ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newTargetCatchService(); } } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/TargetDiscardCatchUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/TargetDiscardCatchUIHandler.java index f50a7ef..858b84c 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/TargetDiscardCatchUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/TargetDiscardCatchUIHandler.java @@ -517,7 +517,7 @@ public class TargetDiscardCatchUIHandler extends ContentTableUIHandler<SetSeineT String speciesListId = ObserveSwingApplicationContext.get().getConfig().getSpeciesListSeineTargetCatchId(); String tripSeineId = getDataContext().getSelectedTripSeineId(); - TripSeineService tripSeineService = ObserveSwingApplicationContext.get().newService(TripSeineService.class); + TripSeineService tripSeineService = ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newTripSeineService(); result = (List) tripSeineService.getSpeciesByListAndTrip(tripSeineId, speciesListId); result = ReferentialReferences.filterEnabled(result); @@ -536,6 +536,6 @@ public class TargetDiscardCatchUIHandler extends ContentTableUIHandler<SetSeineT } protected TargetCatchService getTargetCatchService() { - return ObserveSwingApplicationContext.get().newService(TargetCatchService.class); + return ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newTargetCatchService(); } } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/TargetSampleUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/TargetSampleUIHandler.java index 3b3ef8f..38ad6ff 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/TargetSampleUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/TargetSampleUIHandler.java @@ -349,6 +349,6 @@ public class TargetSampleUIHandler extends ContentTableUIHandler<TargetSampleDto } protected TargetSampleService getTargetSampleService() { - return ObserveSwingApplicationContext.get().newService(TargetSampleService.class); + return ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newTargetSampleService(); } } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/ObstunaAdminAction.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/ObstunaAdminAction.java index 6c2fd97..cbbd757 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/ObstunaAdminAction.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/ObstunaAdminAction.java @@ -87,7 +87,7 @@ public enum ObstunaAdminAction { protected void checkImportDbVersion(StorageUIModel model, ObserveDataSourceConfiguration dataSourceConfig) throws DatabaseConnexionNotAuthorizedException, DatabaseNotFoundException, BabModelVersionException { - ObserveSwingDataSource importDataSource = ObserveSwingApplicationContext.get().newDataSource(dataSourceConfig); + ObserveSwingDataSource importDataSource = ObserveSwingApplicationContext.get().getDataSourcesManager().newDataSource(dataSourceConfig); Preconditions.checkState(importDataSource != null, "Can't select data on a null dataSource"); @@ -112,11 +112,11 @@ public enum ObstunaAdminAction { // pas autorise a migrer automatiquement pgConfig.setCanMigrate(false); - dataSource = ObserveSwingApplicationContext.get().newDataSource(pgConfig); + dataSource = ObserveSwingApplicationContext.get().getDataSourcesManager().newDataSource(pgConfig); } else { ObserveDataSourceConfigurationRest restConfig = model.getRestConfig(); - dataSource = ObserveSwingApplicationContext.get().newDataSource(restConfig); + dataSource = ObserveSwingApplicationContext.get().getDataSourcesManager().newDataSource(restConfig); } createConfigurationDto = model.toImportReferentielSourceConfig(); @@ -220,16 +220,16 @@ public enum ObstunaAdminAction { if (DbMode.USE_REMOTE.equals(model.getDbMode())) { ObserveDataSourceConfigurationTopiaPG pgConfig = model.getPgConfig(); - dataSource = ObserveSwingApplicationContext.get().newDataSource(pgConfig); + dataSource = ObserveSwingApplicationContext.get().getDataSourcesManager().newDataSource(pgConfig); } else { ObserveDataSourceConfigurationRest restConfig = model.getRestConfig(); - dataSource = ObserveSwingApplicationContext.get().newDataSource(restConfig); + dataSource = ObserveSwingApplicationContext.get().getDataSourcesManager().newDataSource(restConfig); } - targetVersion = model.getConfig().getModelVersion(); + targetVersion = ObserveSwingApplicationContext.get().getConfig().getModelVersion(); users = model.getSecurityModel().getUsers(); @@ -282,11 +282,11 @@ public enum ObstunaAdminAction { // pas autorise a migrer automatiquement pgConfig.setCanMigrate(false); - dataSource = ObserveSwingApplicationContext.get().newDataSource(pgConfig); + dataSource = ObserveSwingApplicationContext.get().getDataSourcesManager().newDataSource(pgConfig); } else { ObserveDataSourceConfigurationRest restConfig = model.getRestConfig(); - dataSource = ObserveSwingApplicationContext.get().newDataSource(restConfig); + dataSource = ObserveSwingApplicationContext.get().getDataSourcesManager().newDataSource(restConfig); } users = model.getSecurityModel().getUsers(); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/StorageBackupUILauncher.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/StorageBackupUILauncher.java index abbddfe..50f4daa 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/StorageBackupUILauncher.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/StorageBackupUILauncher.java @@ -60,7 +60,7 @@ public class StorageBackupUILauncher extends StorageUILauncher { ui.getBACKUP().getDoBackup().setSelected(true); ui.getBACKUP().getDoBackup().setVisible(false); - ObserveSwingDataSource source = ObserveSwingApplicationContext.get().getDataSource(); + ObserveSwingDataSource source = ObserveSwingApplicationContext.get().getDataSourcesManager().getMainDataSource(); StorageUIModel model = ui.getModel(); model.setCanCreateLocalService(false); @@ -100,7 +100,7 @@ public class StorageBackupUILauncher extends StorageUILauncher { super.doAction(ui); StorageUIHandler handler = getStorageUIHandler(); - ObserveSwingDataSource source = ObserveSwingApplicationContext.get().getDataSource(); + ObserveSwingDataSource source = ObserveSwingApplicationContext.get().getDataSourcesManager().getMainDataSource(); StorageUIModel storageModel = ui.getModel(); File backupFile = storageModel.getBackupFile(); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/StorageUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/StorageUIHandler.java index c353459..c750e77 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/StorageUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/StorageUIHandler.java @@ -52,7 +52,6 @@ import fr.ird.observe.ui.storage.tabs.DataSelectionModel; import fr.ird.observe.ui.storage.tabs.RolesTableModel; import fr.ird.observe.ui.storage.tabs.SecurityModel; import fr.ird.observe.ui.storage.tabs.StorageTabUI; -import jaxx.runtime.JAXXContext; import jaxx.runtime.context.DefaultApplicationContext.AutoLoad; import jaxx.runtime.swing.wizard.WizardUILancher; import org.apache.commons.io.FileUtils; @@ -104,7 +103,7 @@ public class StorageUIHandler { case USE_LOCAL: configuration = model.toH2StorageConfig(t("observe.storage.label.local")); - dataSource = ObserveSwingApplicationContext.get().newDataSource(configuration); + dataSource = ObserveSwingApplicationContext.get().getDataSourcesManager().newDataSource(configuration); dataSource.addObserveSwingDataSourceListener( new ObserveSwingDataSourceListenerAdapter() { @@ -120,11 +119,11 @@ public class StorageUIHandler { break; case USE_REMOTE: configuration = model.toPGStorageConfig(t("observe.storage.label.remote")); - dataSource = ObserveSwingApplicationContext.get().newDataSource(configuration); + dataSource = ObserveSwingApplicationContext.get().getDataSourcesManager().newDataSource(configuration); break; case USE_SERVER: configuration = model.toRestStorageConfig(t("observe.storage.label.server")); - dataSource = ObserveSwingApplicationContext.get().newDataSource(configuration); + dataSource = ObserveSwingApplicationContext.get().getDataSourcesManager().newDataSource(configuration); break; } @@ -296,7 +295,7 @@ public class StorageUIHandler { } }; } - ObserveMainUI mainUI = ObserveSwingApplicationContext.get().getObserveMainUI(); + ObserveMainUI mainUI = ObserveSwingApplicationContext.get().getMainUI(); if (mainUI == null) { if (log.isWarnEnabled()) { log.warn("Launch standalone apply action " + action); @@ -314,7 +313,7 @@ public class StorageUIHandler { Runnable action = WizardUILancher.CANCEL_DEF.getContextValue(ui); - ObserveMainUI mainUI = ObserveSwingApplicationContext.get().getObserveMainUI(); + ObserveMainUI mainUI = ObserveSwingApplicationContext.get().getMainUI(); if (mainUI == null) { if (log.isWarnEnabled()) { log.warn("Launch standalone cancel action " + action); @@ -335,7 +334,7 @@ public class StorageUIHandler { * @param context le context applicatif * @param model le model++ du storage a creer ou utiliser */ - public void doChangeStorage(JAXXContext context, StorageUIModel model) { + public void doChangeStorage(StorageUIModel model) { ObserveSwingApplicationContext observeContext = ObserveSwingApplicationContext.get(); ObserveSwingApplicationConfig config = observeContext.getConfig(); @@ -350,7 +349,7 @@ public class StorageUIHandler { } - ObserveSwingDataSource currentDataSource = observeContext.getDataSource(); + ObserveSwingDataSource currentDataSource = observeContext.getDataSourcesManager().getMainDataSource(); ObserveSwingDataSource localDataSource = null; @@ -368,7 +367,7 @@ public class StorageUIHandler { localConfiguration.setCanMigrate(false); // on charge un storage sur la base locale - localDataSource = ObserveSwingApplicationContext.get().newDataSource(localConfiguration); + localDataSource = ObserveSwingApplicationContext.get().getDataSourcesManager().newDataSource(localConfiguration); localDataSource.open(); } catch (Exception e) { @@ -477,8 +476,8 @@ public class StorageUIHandler { } - observeContext.setDataSource(currentDataSource); - observeContext.prepareMainStorage(currentDataSource); +// observeContext.getDataSourcesManager().setMainDataSource(currentDataSource); + observeContext.prepareMainStorage(currentDataSource, true); if (model.getDbMode() == DbMode.CREATE_LOCAL) { @@ -503,7 +502,7 @@ public class StorageUIHandler { } config.setLocalStorageExist(false); - observeContext.setDataSource(null); + observeContext.getDataSourcesManager().setMainDataSource(null); throw e; @@ -532,7 +531,7 @@ public class StorageUIHandler { " in " + f); } try { - SqlScriptProducerService dumpProducerService = observeContext.newService(SqlScriptProducerService.class); + SqlScriptProducerService dumpProducerService = observeContext.getMainDataSourceServicesProvider().newSqlScriptProducerService(); backupLocalDatabase(dumpProducerService, f); config.setInitialDumpExist(true); } catch (Exception e) { @@ -545,7 +544,7 @@ public class StorageUIHandler { } if (model.isStoreRemoteConfig()) { - storeRemoteConfig(context, model); + storeRemoteConfig(model); } } catch (Exception ex) { @@ -558,11 +557,10 @@ public class StorageUIHandler { * Sauvegarder dans la configuration de l'application le paramétrage de la * source de données distante donnée. * - * @param context le context applicatif * @param model le model de la source de données */ - public void storeRemoteConfig(JAXXContext context, StorageUIModel model) { - ObserveSwingApplicationConfig config = context.getContextValue(ObserveSwingApplicationConfig.class); + public void storeRemoteConfig(StorageUIModel model) { + ObserveSwingApplicationConfig config = ObserveSwingApplicationContext.get().getConfig(); // on sauvegarde dans le parametrage dans la configuration de // l'application @@ -776,11 +774,11 @@ public class StorageUIHandler { case USE_REMOTE: ObserveDataSourceConfigurationTopiaPG pgConfig = model.getPgConfig(); - dataSource = ObserveSwingApplicationContext.get().newDataSource(pgConfig); + dataSource = ObserveSwingApplicationContext.get().getDataSourcesManager().newDataSource(pgConfig); break; case USE_SERVER: ObserveDataSourceConfigurationRest restConfig = model.getRestConfig(); - dataSource = ObserveSwingApplicationContext.get().newDataSource(restConfig); + dataSource = ObserveSwingApplicationContext.get().getDataSourcesManager().newDataSource(restConfig); } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/StorageUILauncher.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/StorageUILauncher.java index 12584be..7745c8e 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/StorageUILauncher.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/StorageUILauncher.java @@ -169,8 +169,7 @@ public class StorageUILauncher extends WizardUILancher<StorageStep, StorageUIMod model.setDbMode(modes.stream().findFirst().get()); } else { - ObserveSwingApplicationConfig config = - rootContext.getContextValue(ObserveSwingApplicationConfig.class); + ObserveSwingApplicationConfig config = ObserveSwingApplicationContext.get().getConfig(); Boolean localOpened = config.getMainStorageOpenedLocal(); if (model.isLocalStorageExist() && localOpened != null && localOpened) { if (log.isDebugEnabled()) { @@ -189,7 +188,7 @@ public class StorageUILauncher extends WizardUILancher<StorageStep, StorageUIMod protected void doAction(StorageUI ui) { super.doAction(ui); StorageUIHandler handler = getStorageUIHandler(); - handler.doChangeStorage(rootContext, ui.getModel()); + handler.doChangeStorage(ui.getModel()); } }.start(); @@ -256,7 +255,7 @@ public class StorageUILauncher extends WizardUILancher<StorageStep, StorageUIMod if (mainUI == null) { - mainUI = ObserveSwingApplicationContext.get().getObserveMainUI(); + mainUI = ObserveSwingApplicationContext.get().getMainUI(); } addStorageUIHandler(context); StorageUILauncher launcher = new StorageUILauncher( @@ -333,7 +332,7 @@ public class StorageUILauncher extends WizardUILancher<StorageStep, StorageUIMod final StorageUIModel model) { if (mainUI == null) { - mainUI = ObserveSwingApplicationContext.get().getObserveMainUI(); + mainUI = ObserveSwingApplicationContext.get().getMainUI(); } addStorageUIHandler(context); @@ -430,7 +429,7 @@ public class StorageUILauncher extends WizardUILancher<StorageStep, StorageUIMod final StorageUIModel model) { if (mainUI == null) { - mainUI = ObserveSwingApplicationContext.get().getObserveMainUI(); + mainUI = ObserveSwingApplicationContext.get().getMainUI(); } addStorageUIHandler(context); StorageUILauncher launcher = new StorageUILauncher( diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/StorageUIModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/StorageUIModel.java index 67defd8..27b83ba 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/StorageUIModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/StorageUIModel.java @@ -53,7 +53,6 @@ import fr.ird.observe.services.service.SqlScriptProducerService; import fr.ird.observe.ui.storage.tabs.DataSelectionModel; import fr.ird.observe.ui.storage.tabs.SecurityModel; import jaxx.runtime.JAXXContext; -import jaxx.runtime.context.JAXXContextEntryDef; import jaxx.runtime.swing.wizard.WizardModel; import jaxx.runtime.swing.wizard.WizardUILancher; import org.apache.commons.io.IOUtils; @@ -71,6 +70,7 @@ import java.net.URL; import java.nio.file.Files; import java.util.ArrayList; import java.util.List; +import java.util.Objects; import java.util.Set; import static org.nuiton.i18n.I18n.t; @@ -229,9 +229,6 @@ public class StorageUIModel extends WizardModel<StorageStep> { /** la configuration pour impoter les données */ protected ObserveDataSourceConfiguration importDataConfig; - /** la configuration de l'application */ - protected ObserveSwingApplicationConfig config; - /** l'action d'administration de base obstuna */ protected ObstunaAdminAction adminAction; @@ -329,17 +326,14 @@ public class StorageUIModel extends WizardModel<StorageStep> { */ public void init(JAXXContext context, ObserveDataSourceConfiguration source) { - config = context.getContextValue(ObserveSwingApplicationConfig.class); + ObserveSwingApplicationConfig config = ObserveSwingApplicationContext.get().getConfig(); - JAXXContextEntryDef<StorageUIModel> entryDef = - WizardUILancher.newModelEntry(StorageUIModel.class); - StorageUIModel incomingModel = entryDef.getContextValue(context); + StorageUIModel incomingModel = WizardUILancher.newModelEntry(StorageUIModel.class).getContextValue(context); if (incomingModel != null) { if (log.isDebugEnabled()) { - log.debug("from a incoming model " + - incomingModel.getLabel() + " : " + incomingModel); + log.debug("from a incoming model " + incomingModel.getLabel() + " : " + incomingModel); } // on initialie a partir d'un autre modèle @@ -348,8 +342,7 @@ public class StorageUIModel extends WizardModel<StorageStep> { return; } - StorageUIHandler storageUIHandler = - context.getContextValue(StorageUIHandler.class); + StorageUIHandler storageUIHandler = context.getContextValue(StorageUIHandler.class); // ajout paramétrage depuis la configuration @@ -371,8 +364,7 @@ public class StorageUIModel extends WizardModel<StorageStep> { } setStoreRemoteConfig(config.isStoreRemoteStorage()); - setBackupFile(new File(config.getBackupDirectory(), - storageUIHandler.getDefaultBackupFilename())); + setBackupFile(new File(config.getBackupDirectory(), storageUIHandler.getDefaultBackupFilename())); setDumpFile(config.getBackupDirectory()); setShowMigrationProgression(config.isShowMigrationProgression()); setShowMigrationSql(config.isShowMigrationSql()); @@ -463,16 +455,11 @@ public class StorageUIModel extends WizardModel<StorageStep> { ObserveDataSourceConfiguration previousConfig, ObserveDataSourceInformation previousInfo) { - if (previousConfig == null) { - - throw new NullPointerException( - "previousConfig parameter can not be null in method initFromPreviousConfig"); + Objects.requireNonNull(previousConfig, "previousConfig parameter can not be null in method initFromPreviousConfig"); - } - config = context.getContextValue(ObserveSwingApplicationConfig.class); + ObserveSwingApplicationConfig config = ObserveSwingApplicationContext.get().getConfig(); - StorageUIHandler storageUIHandler = - context.getContextValue(StorageUIHandler.class); + StorageUIHandler storageUIHandler = context.getContextValue(StorageUIHandler.class); // ajout paramétrage depuis la configuration @@ -489,8 +476,7 @@ public class StorageUIModel extends WizardModel<StorageStep> { } setStoreRemoteConfig(config.isStoreRemoteStorage()); - setBackupFile(new File(config.getBackupDirectory(), - storageUIHandler.getDefaultBackupFilename())); + setBackupFile(new File(config.getBackupDirectory(), storageUIHandler.getDefaultBackupFilename())); setDumpFile(config.getBackupDirectory()); setShowMigrationProgression(config.isShowMigrationProgression()); setShowMigrationSql(config.isShowMigrationSql()); @@ -535,9 +521,7 @@ public class StorageUIModel extends WizardModel<StorageStep> { */ public void initFromModel() { - JAXXContext context = ObserveSwingApplicationContext.get(); - - config = context.getContextValue(ObserveSwingApplicationConfig.class); + ObserveSwingApplicationConfig config = ObserveSwingApplicationContext.get().getConfig(); // ajout paramétrage depuis la configuration @@ -1176,7 +1160,7 @@ public class StorageUIModel extends WizardModel<StorageStep> { } public Version getModelVersion() { - return config == null ? Version.VZERO : config.getModelVersion(); + return ObserveSwingApplicationContext.get().getConfig().getModelVersion(); } public DbMode getDbMode() { @@ -1195,10 +1179,6 @@ public class StorageUIModel extends WizardModel<StorageStep> { return previousDataSourceConfiguration; } - public ObserveSwingApplicationConfig getConfig() { - return config; - } - public void setDbMode(DbMode dbMode) { DbMode oldValue = this.dbMode; this.dbMode = dbMode; @@ -1568,7 +1548,7 @@ public class StorageUIModel extends WizardModel<StorageStep> { if (CreationMode.IMPORT_EXTERNAL_DUMP.equals(creationMode)) { dumpFile = getDumpFile(); } else { - dumpFile = config.getInitialDbDump(); + dumpFile = ObserveSwingApplicationContext.get().getConfig().getInitialDbDump(); } byte[] dump = Files.readAllBytes(dumpFile.toPath()); @@ -1591,7 +1571,7 @@ public class StorageUIModel extends WizardModel<StorageStep> { } if (configSrc != null) { - try (ObserveSwingDataSource source = ObserveSwingApplicationContext.get().newDataSource(configSrc)) { + try (ObserveSwingDataSource source = ObserveSwingApplicationContext.get().getDataSourcesManager().newDataSource(configSrc)) { source.open(); @@ -1737,7 +1717,7 @@ public class StorageUIModel extends WizardModel<StorageStep> { if (config != null) { - ObserveSwingDataSource dataSource = ObserveSwingApplicationContext.get().newDataSource(config); + ObserveSwingDataSource dataSource = ObserveSwingApplicationContext.get().getDataSourcesManager().newDataSource(config); try { @@ -1904,7 +1884,7 @@ public class StorageUIModel extends WizardModel<StorageStep> { } - try (ObserveSwingDataSource importDataSource = context.createDataSourceH2Temp(dbLabel)) { + try (ObserveSwingDataSource importDataSource = context.createTemporaryH2Storage(dbLabel)) { try { importDataSource.create(createConfigurationDto); @@ -2004,7 +1984,7 @@ public class StorageUIModel extends WizardModel<StorageStep> { } - try (ObserveSwingDataSource importDataSource2 = context.createDataSourceH2Temp(dbLabel)) { + try (ObserveSwingDataSource importDataSource2 = context.createTemporaryH2Storage(dbLabel)) { importDataSource = importDataSource2; @@ -2028,7 +2008,7 @@ public class StorageUIModel extends WizardModel<StorageStep> { dataSourceConfig.setCanMigrate(false); - importDataSource = ObserveSwingApplicationContext.get().newDataSource(dataSourceConfig); + importDataSource = ObserveSwingApplicationContext.get().getDataSourcesManager().newDataSource(dataSourceConfig); } break; @@ -2038,7 +2018,7 @@ public class StorageUIModel extends WizardModel<StorageStep> { // import referentiel from a server db ObserveDataSourceConfigurationRest dataSourceConfig = getDataSourceModel().toRestStorageConfig(dbLabel); - importDataSource = ObserveSwingApplicationContext.get().newDataSource(dataSourceConfig); + importDataSource = ObserveSwingApplicationContext.get().getDataSourcesManager().newDataSource(dataSourceConfig); } break; @@ -2066,7 +2046,7 @@ public class StorageUIModel extends WizardModel<StorageStep> { public ObserveDataSourceInformation getH2DataSourceInformation() { if (h2DataSourceInformation == null && localStorageExist) { - ObserveSwingDataSource dataSource = ObserveSwingApplicationContext.get().newDataSource(h2Config); + ObserveSwingDataSource dataSource = ObserveSwingApplicationContext.get().getDataSourcesManager().newDataSource(h2Config); try { h2DataSourceInformation = dataSource.checkCanConnect(); } catch (Exception e) { diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/tabs/ChooseDbModeUI.jaxx b/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/tabs/ChooseDbModeUI.jaxx index 5c75214..48ef0ee 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/tabs/ChooseDbModeUI.jaxx +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/tabs/ChooseDbModeUI.jaxx @@ -26,6 +26,7 @@ <StorageTabUI> <import> + fr.ird.observe.ObserveSwingApplicationContext fr.ird.observe.configuration.ObserveSwingApplicationConfig fr.ird.observe.ui.UIHelper fr.ird.observe.ui.storage.StorageStep @@ -37,17 +38,13 @@ <fr.ird.observe.ui.storage.StorageUIModel id='model'/> - <ObserveSwingApplicationConfig id='config' - initializer="getContextValue(ObserveSwingApplicationConfig.class)"/> + <ObserveSwingApplicationConfig id='config' initializer="ObserveSwingApplicationContext.get().getConfig()"/> - <ButtonGroup id='dbMode' - onStateChanged='getModel().setDbMode((DbMode) dbMode.getSelectedValue())'/> + <ButtonGroup id='dbMode' onStateChanged='getModel().setDbMode((DbMode) dbMode.getSelectedValue())'/> - <ButtonGroup id='creationMode' - onStateChanged='getModel().setCreationMode((CreationMode) creationMode.getSelectedValue())'/> + <ButtonGroup id='creationMode' onStateChanged='getModel().setCreationMode((CreationMode) creationMode.getSelectedValue())'/> - <CardLayout2Ext id='creationModeLayout' - constructorParams='this, "creationModeContent"'/> + <CardLayout2Ext id='creationModeLayout' constructorParams='this, "creationModeContent"'/> <script><![CDATA[ @Override diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/tabs/StorageTabUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/tabs/StorageTabUIHandler.java index fce5203..77004c4 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/tabs/StorageTabUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/tabs/StorageTabUIHandler.java @@ -23,7 +23,6 @@ package fr.ird.observe.ui.storage.tabs; import fr.ird.observe.ObserveSwingApplicationContext; import fr.ird.observe.ObserveTextGenerator; -import fr.ird.observe.configuration.ObserveSwingApplicationConfig; import fr.ird.observe.db.ObserveSwingDataSource; import fr.ird.observe.db.constants.ConnexionStatus; import fr.ird.observe.db.constants.CreationMode; @@ -381,7 +380,7 @@ public class StorageTabUIHandler { protected String updateInternalDumpModeLabel(ChooseDbModeUI ui, boolean dumpExist) { - File f = ui.getContextValue(ObserveSwingApplicationConfig.class).getInitialDbDump(); + File f = ObserveSwingApplicationContext.get().getConfig().getInitialDbDump(); String text; if (f.exists()) { text = t("observe.storage.internalDump.last.modified", new Date(f.lastModified())); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/AbstractObserveTreeCellRenderer.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/AbstractObserveTreeCellRenderer.java index e525aaa..a265191 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/AbstractObserveTreeCellRenderer.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/AbstractObserveTreeCellRenderer.java @@ -111,7 +111,7 @@ public abstract class AbstractObserveTreeCellRenderer extends AbstractNavTreeCel ObserveDataProvider provider = (ObserveDataProvider) super.getDataProvider(); if (provider == null) { - ObserveSwingDataSource source = ObserveSwingApplicationContext.get().getDataSource(); + ObserveSwingDataSource source = ObserveSwingApplicationContext.get().getDataSourcesManager().getMainDataSource(); if (source != null) { provider = new ObserveDataProvider(source); setDataProvider(provider); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/ActivityLonglineNode.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/ActivityLonglineNode.java index 61ddd09..434a5c6 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/ActivityLonglineNode.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/ActivityLonglineNode.java @@ -44,7 +44,7 @@ public class ActivityLonglineNode extends DataReferenceNodeSupport<ActivityLongl @Override protected DataReference<ActivityLonglineDto> fetchEntity() { - ActivityLonglineService service = ObserveSwingApplicationContext.get().newService(ActivityLonglineService.class); + ActivityLonglineService service = ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newActivityLonglineService(); DataReference<ActivityLonglineDto> referenceDto = service.loadReferenceToRead(getId()); return referenceDto; } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/ActivitySeineNode.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/ActivitySeineNode.java index ce85749..b1d4d7a 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/ActivitySeineNode.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/ActivitySeineNode.java @@ -44,7 +44,7 @@ public class ActivitySeineNode extends DataReferenceNodeSupport<ActivitySeineDto @Override protected DataReference<ActivitySeineDto> fetchEntity() { - ActivitySeineService service = ObserveSwingApplicationContext.get().newService(ActivitySeineService.class); + ActivitySeineService service = ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newActivitySeineService(); DataReference<ActivitySeineDto> referenceDto = service.loadReferenceToRead(getId()); return referenceDto; } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/DataSelectionTreeSelectionModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/DataSelectionTreeSelectionModel.java index c2c3f30..389aabb 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/DataSelectionTreeSelectionModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/DataSelectionTreeSelectionModel.java @@ -486,7 +486,7 @@ public class DataSelectionTreeSelectionModel implements TreeSelectionModel, Prop leadRow = selectionRows[0]; } - int selectionLength = selection.length; + int selectionLength = selectionRows.length; minSelectionRow = -1; maxSelectionRow = 0; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/FloatingObjectSeineNode.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/FloatingObjectSeineNode.java index 406a1c0..3efaa61 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/FloatingObjectSeineNode.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/FloatingObjectSeineNode.java @@ -44,7 +44,7 @@ public class FloatingObjectSeineNode extends DataReferenceNodeSupport<FloatingOb @Override protected DataReference<FloatingObjectDto> fetchEntity() { - FloatingObjectService service = ObserveSwingApplicationContext.get().newService(FloatingObjectService.class); + FloatingObjectService service = ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newFloatingObjectService(); DataReference<FloatingObjectDto> referenceDto = service.loadReferenceToRead(getId()); return referenceDto; } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/NavigationTreeSelectionModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/NavigationTreeSelectionModel.java index 1467d5b..28c198e 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/NavigationTreeSelectionModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/NavigationTreeSelectionModel.java @@ -110,7 +110,7 @@ public class NavigationTreeSelectionModel extends DefaultTreeSelectionModel { } if (canChange && !isSelectionEmpty()) { - canChange = ObserveSwingApplicationContext.get().closeSelectedContentUI(); + canChange = ObserveSwingApplicationContext.get().getContentUIManager().closeSelectedContentUI(); } return canChange; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/ObserveNavigationTreeShowPopupAction.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/ObserveNavigationTreeShowPopupAction.java index fa365b3..5623495 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/ObserveNavigationTreeShowPopupAction.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/ObserveNavigationTreeShowPopupAction.java @@ -252,7 +252,7 @@ public class ObserveNavigationTreeShowPopupAction { ObserveSwingApplicationContext applicationContext = ObserveSwingApplicationContext.get(); DataContext dataContext = applicationContext.getDataContext(); - ContentUI<?> selectedContentUI = applicationContext.getSelectedContentUI(); + ContentUI<?> selectedContentUI = applicationContext.getContentUIManager().getSelectedContentUI(); boolean closeActionEnabled = false; @@ -306,7 +306,7 @@ public class ObserveNavigationTreeShowPopupAction { if (selectedNode.isOpen()) { - closeAction.putClientProperty("ui", applicationContext.getSelectedContentUI()); + closeAction.putClientProperty("ui", applicationContext.getContentUIManager().getSelectedContentUI()); popup.add(closeAction); moveAction.setText(t("observe.navigationMenu.move." + nodeType)); @@ -341,12 +341,12 @@ public class ObserveNavigationTreeShowPopupAction { } else { - openAction.putClientProperty("ui", applicationContext.getSelectedContentUI()); + openAction.putClientProperty("ui", applicationContext.getContentUIManager().getSelectedContentUI()); popup.add(openAction); } - deleteAction.putClientProperty("ui", applicationContext.getSelectedContentUI()); + deleteAction.putClientProperty("ui", applicationContext.getContentUIManager().getSelectedContentUI()); deleteAction.setEnabled(selectedNode.isOpen()); popup.add(deleteAction); } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/ObserveTreeHelper.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/ObserveTreeHelper.java index 97d0aa5..0785b82 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/ObserveTreeHelper.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/ObserveTreeHelper.java @@ -224,9 +224,8 @@ public class ObserveTreeHelper extends NavTreeHelper<ObserveNode> { * modèle de naivgation. * * @param source la source de données - * @param mainUI l'ui principale */ - public void loadNavigationUI(ObserveSwingDataSource source, ObserveMainUI mainUI) { + public void loadNavigationUI(ObserveSwingDataSource source) { ObserveNode.count = 0; @@ -238,7 +237,7 @@ public class ObserveTreeHelper extends NavTreeHelper<ObserveNode> { createModel(source); // select initial node - selectInitialNode(mainUI); + selectInitialNode(); getUI().setVisible(true); } @@ -277,9 +276,9 @@ public class ObserveTreeHelper extends NavTreeHelper<ObserveNode> { tree.setVisible(false); } - public void selectOpenNode(JAXXContext ui, Class<?> type) { + public void selectOpenNode(Class<?> type) { - DataContext context = ui.getContextValue(DataContext.class); + DataContext context = ObserveSwingApplicationContext.get().getDataContext(); String[] ids = context.getOpenIds(type); @@ -301,14 +300,13 @@ public class ObserveTreeHelper extends NavTreeHelper<ObserveNode> { * <b>Note:</b> cette méthode doit être appelée après un rechargement du * modèle de navigation. * - * @param ui l'ui */ - public void selectInitialNode(ObserveMainUI ui) { + public void selectInitialNode() { if (log.isDebugEnabled()) { log.debug("Will select initial node..."); } - DataContext context = ui.getDataContext(); + DataContext context = ObserveSwingApplicationContext.get().getDataContext(); String[] path; @@ -616,7 +614,7 @@ public class ObserveTreeHelper extends NavTreeHelper<ObserveNode> { protected ObserveDataProvider getDataProvider() { ObserveDataProvider provider = (ObserveDataProvider) super.getDataProvider(); if (provider == null) { - ObserveSwingDataSource source = ObserveSwingApplicationContext.get().getDataSource(); + ObserveSwingDataSource source = ObserveSwingApplicationContext.get().getDataSourcesManager().getMainDataSource(); if (source != null) { provider = new ObserveDataProvider(source); setDataProvider(provider); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/ProgramLonglineNode.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/ProgramLonglineNode.java index f6afe07..9aaaf86 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/ProgramLonglineNode.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/ProgramLonglineNode.java @@ -50,7 +50,7 @@ public class ProgramLonglineNode extends ReferentialReferenceNodeSupport<Program @Override protected ReferentialReference<ProgramDto> fetchEntity() { - ReferentialService service = ObserveSwingApplicationContext.get().newService(ReferentialService.class); + ReferentialService service = ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newReferentialService(); ReferentialReference<ProgramDto> referenceDto = service.loadReference(ProgramDto.class, getId()); return referenceDto; } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/ProgramSeineNode.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/ProgramSeineNode.java index ec51409..94cff73 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/ProgramSeineNode.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/ProgramSeineNode.java @@ -48,7 +48,7 @@ public class ProgramSeineNode extends ReferentialReferenceNodeSupport<ProgramDto @Override protected ReferentialReference<ProgramDto> fetchEntity() { - ReferentialService service = ObserveSwingApplicationContext.get().newService(ReferentialService.class); + ReferentialService service = ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newReferentialService(); ReferentialReference<ProgramDto> referenceDto = service.loadReference(ProgramDto.class, getId()); return referenceDto; } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/RouteSeineNode.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/RouteSeineNode.java index f1d3cf7..a82a6cd 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/RouteSeineNode.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/RouteSeineNode.java @@ -43,7 +43,7 @@ public class RouteSeineNode extends DataReferenceNodeSupport<RouteDto> { @Override protected DataReference<RouteDto> fetchEntity() { - RouteService routeService = ObserveSwingApplicationContext.get().newService(RouteService.class); + RouteService routeService = ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newRouteService(); DataReference<RouteDto> referenceDto = routeService.loadReferenceToRead(getId()); return referenceDto; } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/SetLonglineNode.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/SetLonglineNode.java index 777d6c0..2cdd402 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/SetLonglineNode.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/SetLonglineNode.java @@ -44,7 +44,7 @@ public class SetLonglineNode extends DataReferenceNodeSupport<SetLonglineDto> { @Override protected DataReference<SetLonglineDto> fetchEntity() { - SetLonglineService service = ObserveSwingApplicationContext.get().newService(SetLonglineService.class); + SetLonglineService service = ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newSetLonglineService(); DataReference<SetLonglineDto> referenceDto = service.loadReferenceToRead(getId()); return referenceDto; } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/SetSeineNode.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/SetSeineNode.java index e8fa36e..e29da3b 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/SetSeineNode.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/SetSeineNode.java @@ -44,7 +44,7 @@ public class SetSeineNode extends DataReferenceNodeSupport<SetSeineDto> { @Override protected DataReference<SetSeineDto> fetchEntity() { - SetSeineService service = ObserveSwingApplicationContext.get().newService(SetSeineService.class); + SetSeineService service = ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newSetSeineService(); DataReference<SetSeineDto> referenceDto = service.loadReferenceToRead(getId()); return referenceDto; } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/TripLonglineNode.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/TripLonglineNode.java index 48dce95..afafe9f 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/TripLonglineNode.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/TripLonglineNode.java @@ -43,7 +43,7 @@ public class TripLonglineNode extends DataReferenceNodeSupport<TripLonglineDto> @Override protected DataReference<TripLonglineDto> fetchEntity() { - TripLonglineService tripLonglineService = ObserveSwingApplicationContext.get().newService(TripLonglineService.class); + TripLonglineService tripLonglineService = ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newTripLonglineService(); DataReference<TripLonglineDto> referenceDto = tripLonglineService.loadReferenceToRead(getId()); return referenceDto; } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/TripSeineNode.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/TripSeineNode.java index 043195d..d7370cd 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/TripSeineNode.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/TripSeineNode.java @@ -44,7 +44,7 @@ public class TripSeineNode extends DataReferenceNodeSupport<TripSeineDto> { @Override protected DataReference<TripSeineDto> fetchEntity() { - TripSeineService tripSeineService = ObserveSwingApplicationContext.get().newService(TripSeineService.class); + TripSeineService tripSeineService = ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newTripSeineService(); DataReference<TripSeineDto> referenceDto = tripSeineService.loadReferenceToRead(getId()); return referenceDto; } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/actions/ChangeActivityRouteActionListener.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/actions/ChangeActivityRouteActionListener.java index a50591c..c003ee8 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/actions/ChangeActivityRouteActionListener.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/actions/ChangeActivityRouteActionListener.java @@ -75,9 +75,7 @@ public class ChangeActivityRouteActionListener extends NodeChangeActionListener protected int moveNodeToParent(String nodeId, String parentNodeId) { int position; - ObserveSwingApplicationContext applicationContext = ObserveSwingApplicationContext.get(); - - ActivitySeineService service = applicationContext.newService(ActivitySeineService.class); + ActivitySeineService service = ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newActivitySeineService(); position = service.moveActivitySeineToRoute(nodeId, parentNodeId); return position; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/actions/ChangeActivityTripActionListener.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/actions/ChangeActivityTripActionListener.java index 572ac21..d833c9a 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/actions/ChangeActivityTripActionListener.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/actions/ChangeActivityTripActionListener.java @@ -77,7 +77,7 @@ public class ChangeActivityTripActionListener extends NodeChangeActionListener { ObserveSwingApplicationContext applicationContext = ObserveSwingApplicationContext.get(); - ActivityLonglineService service = applicationContext.newService(ActivityLonglineService.class); + ActivityLonglineService service = applicationContext.getMainDataSourceServicesProvider().newActivityLonglineService(); position = service.moveActivityLonglineToTripLongline(nodeId, parentNodeId); return position; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/actions/ChangeRouteTripActionListener.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/actions/ChangeRouteTripActionListener.java index 67b6742..6175f0b 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/actions/ChangeRouteTripActionListener.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/actions/ChangeRouteTripActionListener.java @@ -75,9 +75,7 @@ public class ChangeRouteTripActionListener extends NodeChangeActionListener { protected int moveNodeToParent(String nodeId, String parentNodeId) { int position; - ObserveSwingApplicationContext applicationContext = ObserveSwingApplicationContext.get(); - - RouteService service = applicationContext.newService(RouteService.class); + RouteService service = ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newRouteService(); position = service.moveRouteToTripSeine(nodeId, parentNodeId); return position; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/actions/ChangeTripProgramActionListener.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/actions/ChangeTripProgramActionListener.java index 2b57c35..7ac18c2 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/actions/ChangeTripProgramActionListener.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/actions/ChangeTripProgramActionListener.java @@ -25,6 +25,7 @@ package fr.ird.observe.ui.tree.actions; import fr.ird.observe.ObserveSwingApplicationContext; import fr.ird.observe.db.ObserveSwingDataSource; +import fr.ird.observe.services.ObserveServicesProvider; import fr.ird.observe.services.dto.IdDtos; import fr.ird.observe.services.service.longline.TripLonglineService; import fr.ird.observe.services.service.seine.TripSeineService; @@ -71,14 +72,13 @@ public class ChangeTripProgramActionListener extends NodeChangeActionListener { protected int moveNodeToParent(String nodeId, String parentNodeId) { int position; - ObserveSwingApplicationContext applicationContext = ObserveSwingApplicationContext.get(); - + ObserveServicesProvider servicesProvider = ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider(); if (IdDtos.isTripLonglineId(nodeId)) { - TripLonglineService service = applicationContext.newService(TripLonglineService.class); + TripLonglineService service = servicesProvider.newTripLonglineService(); position = service.moveTripLonglineToProgram(nodeId, parentNodeId); } else { - TripSeineService service = applicationContext.newService(TripSeineService.class); + TripSeineService service = servicesProvider.newTripSeineService(); position = service.moveTripSeineToProgram(nodeId, parentNodeId); } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ActivityLonglinesNodeChildLoador.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ActivityLonglinesNodeChildLoador.java index d2a6d37..ee93203 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ActivityLonglinesNodeChildLoador.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ActivityLonglinesNodeChildLoador.java @@ -53,7 +53,7 @@ public class ActivityLonglinesNodeChildLoador extends AbstractDataReferenceChild String parentId, NavDataProvider dataProvider) throws Exception { - ActivityLonglineService activityLonglineService = ObserveSwingApplicationContext.get().newService(ActivityLonglineService.class); + ActivityLonglineService activityLonglineService = ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newActivityLonglineService(); DataReferenceSet<ActivityLonglineDto> activityLonglineByTripLongline = activityLonglineService.getActivityLonglineByTripLongline(parentId); return new ArrayList<>(activityLonglineByTripLongline.getReferences()); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ActivitySeineNodeChildLoador.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ActivitySeineNodeChildLoador.java index 171e171..e97e964 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ActivitySeineNodeChildLoador.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ActivitySeineNodeChildLoador.java @@ -117,7 +117,7 @@ public class ActivitySeineNodeChildLoador extends AbstractDataReferenceChildLoad String parentId, NavDataProvider dataProvider) throws Exception { - FloatingObjectService service = ObserveSwingApplicationContext.get().newService(FloatingObjectService.class); + FloatingObjectService service = ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newFloatingObjectService(); DataReferenceSet<FloatingObjectDto> floatingObjectByActivitySeine = service.getFloatingObjectByActivitySeine(parentId); return new ArrayList<>(floatingObjectByActivitySeine.getReferences()); } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ActivitySeinesNodeChildLoador.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ActivitySeinesNodeChildLoador.java index d741961..4c0f312 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ActivitySeinesNodeChildLoador.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ActivitySeinesNodeChildLoador.java @@ -52,7 +52,7 @@ public class ActivitySeinesNodeChildLoador extends AbstractDataReferenceChildLoa String parentId, NavDataProvider dataProvider) throws Exception { - ActivitySeineService activitySeineService = ObserveSwingApplicationContext.get().newService(ActivitySeineService.class); + ActivitySeineService activitySeineService = ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newActivitySeineService(); DataReferenceSet<ActivitySeineDto> activitySeineStubByRoute = activitySeineService.getActivitySeineByRoute(parentId); return new ArrayList<>(activitySeineStubByRoute.getReferences()); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ProgramLonglineNodeChildLoador.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ProgramLonglineNodeChildLoador.java index b786b43..e1ce20d 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ProgramLonglineNodeChildLoador.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ProgramLonglineNodeChildLoador.java @@ -92,7 +92,7 @@ public class ProgramLonglineNodeChildLoador extends AbstractNodeChildLoador<Data } else { - TripLonglineService tripLonglineService = ObserveSwingApplicationContext.get().newService(TripLonglineService.class); + TripLonglineService tripLonglineService = ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newTripLonglineService(); DataReferenceSet<TripLonglineDto> tripLonglineByProgram = tripLonglineService.getTripLonglineByProgram(parentId); result = Lists.newArrayList(tripLonglineByProgram.getReferences()); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ProgramSeineNodeChildLoador.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ProgramSeineNodeChildLoador.java index 5dc088f..0add142 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ProgramSeineNodeChildLoador.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ProgramSeineNodeChildLoador.java @@ -90,7 +90,7 @@ public class ProgramSeineNodeChildLoador extends AbstractNodeChildLoador<DataRef } else { - TripSeineService tripSeineService = ObserveSwingApplicationContext.get().newService(TripSeineService.class); + TripSeineService tripSeineService = ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newTripSeineService(); DataReferenceSet<TripSeineDto> tripSeineByProgram = tripSeineService.getTripSeineByProgram(parentId); result = new ArrayList<>(tripSeineByProgram.getReferences()); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/loadors/RoutesNodeChildLoador.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/loadors/RoutesNodeChildLoador.java index a7e7da1..f74a502 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/loadors/RoutesNodeChildLoador.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/loadors/RoutesNodeChildLoador.java @@ -59,7 +59,7 @@ public class RoutesNodeChildLoador extends AbstractDataReferenceChildLoador<Rout String parentId, NavDataProvider dataProvider) throws Exception { - RouteService routeService = ObserveSwingApplicationContext.get().newService(RouteService.class); + RouteService routeService = ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newRouteService(); DataReferenceSet<RouteDto> routeByTripSeine = routeService.getRouteByTripSeine(parentId); return new ArrayList<>(routeByTripSeine.getReferences()); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/util/tripMap/TripMapUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/util/tripMap/TripMapUIHandler.java index 73e0b8f..391971e 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/util/tripMap/TripMapUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/util/tripMap/TripMapUIHandler.java @@ -110,7 +110,7 @@ public class TripMapUIHandler { try { ((CardLayout) view.getLayout()).first(view); - ObserveSwingApplicationContext.get().getObserveMainUI().setBusy(true); + ObserveSwingApplicationContext.get().getMainUI().setBusy(true); ObserveMapPane mapPane = getObserveMapPane(); @@ -155,7 +155,7 @@ public class TripMapUIHandler { } catch (Exception e) { throw new ObserveSwingTechnicalException("Unable to load trip map activity points", e); } finally { - ObserveSwingApplicationContext.get().getObserveMainUI().setBusy(false); + ObserveSwingApplicationContext.get().getMainUI().setBusy(false); } } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/validation/ObserveSwingValidator.java b/observe-application-swing/src/main/java/fr/ird/observe/validation/ObserveSwingValidator.java index 564cddb..3693948 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/validation/ObserveSwingValidator.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/validation/ObserveSwingValidator.java @@ -53,8 +53,8 @@ public class ObserveSwingValidator<B> extends SwingValidator<B> { private static ValidationContext validationContext; public static <B> ObserveSwingValidator<B> newValidator(Class<B> type, - String context, - NuitonValidatorScope... scopes) { + String context, + NuitonValidatorScope... scopes) { return new ObserveSwingValidator<>( type, context, @@ -63,9 +63,9 @@ public class ObserveSwingValidator<B> extends SwingValidator<B> { } public static <B> ObserveSwingValidator<B> newValidator(NuitonValidatorProvider provider, - Class<B> type, - String context, - NuitonValidatorScope... scopes) { + Class<B> type, + String context, + NuitonValidatorScope... scopes) { return new ObserveSwingValidator<>( provider, type, @@ -113,26 +113,26 @@ public class ObserveSwingValidator<B> extends SwingValidator<B> { if (rootContext == null) { throw new IllegalStateException( "pas de context d'application enregistré... utiliser la " + - "methode " + + "methode " + //FIXME // DataSourceFactory.class.getName() + - "#setApplicationContext(context)"); + "#setApplicationContext(context)"); } dataContext = rootContext.getValidationContext(); } reloadDataContext(dataContext, true); - // on brand pour ne jamais revenir ici + // on marque pour ne jamais revenir ici setInit(true); } - public static void reloadDataContext(ValidationContext dataContext, - boolean strict) { - if (dataContext != validationContext) { + public static void reloadDataContext(ValidationContext validationContext, boolean strict) { + if (validationContext != ObserveSwingValidator.validationContext) { // keep this validation context - setValidationContext(dataContext); + ObserveSwingValidator.validationContext = validationContext; + setInit(false); } ValueStack valueStack; ActionContext context = ActionContext.getContext(); @@ -141,7 +141,7 @@ public class ObserveSwingValidator<B> extends SwingValidator<B> { if (strict) { throw new IllegalStateException( "pas de context xworks enregistré... utiliser la methode " + - ActionContext.class.getName() + "#setContext(context)"); + ActionContext.class.getName() + "#setContext(context)"); } valueStack = XWork2ValidatorUtil.getSharedValueStack(); @@ -153,24 +153,20 @@ public class ObserveSwingValidator<B> extends SwingValidator<B> { } if (log.isDebugEnabled()) { - log.debug("Enregistrement du context de validation [" + dataContext + "] dans la valueStack de " + - "validation (" + valueStack + ')'); + log.debug("Enregistrement du context de validation [" + validationContext + "] dans la valueStack de " + + "validation (" + valueStack + ')'); } - valueStack.push(dataContext); + valueStack.push(validationContext); } public static ValidationContext getValidationContext() { + if (validationContext == null) { + validationContext = ObserveSwingApplicationContext.get().getValidationContext(); + } return validationContext; } - public static void setValidationContext(ValidationContext validationContext) { - ObserveSwingValidator.validationContext = validationContext; - // a chaque fois qu'on change le contexte de validation - // il faudra reinitiliser la stack - setInit(false); - } - private static boolean isInit() { return init; } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/validation/ValidationContext.java b/observe-application-swing/src/main/java/fr/ird/observe/validation/ValidationContext.java index d794766..61f176f 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/validation/ValidationContext.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/validation/ValidationContext.java @@ -155,7 +155,7 @@ public class ValidationContext { } }; - protected DataContext dataContext; + protected final DataContext dataContext; protected Map<String, Object> cache; @@ -173,14 +173,8 @@ public class ValidationContext { referentielList = null; } - public void close() { - dataContext = null; - } - - @Override - protected void finalize() throws Throwable { - super.finalize(); - close(); + public ValidationContext(DataContext dataContext) { + this.dataContext = dataContext; } public DecoratorService getDecoratorService() { @@ -195,14 +189,6 @@ public class ValidationContext { return dataContext; } - public void setDataContext(DataContext dataContext) { - if (log.isInfoEnabled()) { - log.info("Attach data context " + dataContext); - } - this.dataContext = dataContext; - ObserveSwingValidator.reloadDataContext(this, false); - } - public TripSeineDto getCurrentTripSeine() { String tripSeineId = dataContext.getSelectedTripSeineId(); TripSeineDto result = null; @@ -320,7 +306,7 @@ public class ValidationContext { protected static abstract class DtoSupplier<D extends IdDto> { public final D get(String id) { - ObserveSwingDataSource dataSource = ObserveSwingApplicationContext.get().getDataSource(); + ObserveSwingDataSource dataSource = ObserveSwingApplicationContext.get().getDataSourcesManager().getMainDataSource(); D dto = get(dataSource, id); return dto; } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.