branch feature/4304_synchro_marees updated (8866f26 -> e9df03c)
This is an automated email from the git hooks/post-receive script. New change to branch feature/4304_synchro_marees in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git from 8866f26 Ajout de plus de messages de préparation des tâches à executer new 6d070a2 Check if classes are implemented new 84e8d0f Fix bad class name new 8b7d3ad Fix layout + add action icons new 0986ca7 introduce services provider contract new 9215bb2 Improve exception handler new f148eec make the test works again new 1284fff add rest service new e9df03c Sanitize the application context, introduce DataSourcesManager, clean code a lot The 8 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: 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 commit 1284fff1cd1c2769d4613c7fe17ce36b78504845 Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Aug 9 16:41:26 2016 +0200 add rest service commit f148eec60c85b895a444c65474c810eb5ff3bbc9 Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Aug 9 16:41:14 2016 +0200 make the test works again commit 9215bb29bfb1ab1efebf27d6c840da796caf9f68 Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Aug 9 16:40:32 2016 +0200 Improve exception handler commit 0986ca7fb2b5f4effe7842cf8e9cd64aa8f03c6a Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Aug 9 16:39:57 2016 +0200 introduce services provider contract commit 8b7d3adfdbda20184d512898919b92c88133bd99 Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Aug 9 16:39:38 2016 +0200 Fix layout + add action icons commit 84e8d0f65e0677c9fd41a993d3d7f19a04bc7f75 Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Aug 9 16:38:13 2016 +0200 Fix bad class name commit 6d070a250bb1c6407d8bd9fd6cb8584267a0e820 Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Aug 9 16:11:50 2016 +0200 Check if classes are implemented Summary of changes: .../src/main/filters/observe-ui.properties | 2 + .../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/DataSynchroUI.jaxx | 32 +- .../ui/admin/datasynchro/DataSynchroUI.jcss | 12 +- .../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 +- ...onglineDetailCompositionUIValidationHelper.java | 233 ----- ...LonglineDetailCompositionValidationContext.java | 116 +++ .../LonglineDetailCompositionValidatorService.java | 155 ++++ .../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 +- .../{action-go-back.png => action-copyToLeft.png} | Bin .../main/resources/icons/action-copyToRight.png | Bin 0 -> 349 bytes ...glineDetailCompositionValidatorServiceTest.java | 107 +-- .../DataSynchronizeServiceController.java | 32 + ...er.java => ReplicateTripServiceController.java} | 4 +- .../maven/plugins/checkapi/CheckApiMojo.java | 29 +- .../plugins/checkapi/MissingClassException.java | 21 + .../observe/services/ObserveServicesProvider.java | 124 +++ .../actions/validate/ValidateServiceUtils.java | 10 +- .../validate/ValidatorInitializationException.java | 14 + 129 files changed, 1685 insertions(+), 1659 deletions(-) create mode 100644 observe-application-swing/src/main/java/fr/ird/observe/ObserveSwingApplicationDataSourcesManager.java create mode 100644 observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/LonglineDetailCompositionValidationContext.java create mode 100644 observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/LonglineDetailCompositionValidatorService.java copy observe-application-swing/src/main/resources/icons/{action-go-back.png => action-copyToLeft.png} (100%) create mode 100644 observe-application-swing/src/main/resources/icons/action-copyToRight.png create mode 100644 observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/actions/datasynchro/DataSynchronizeServiceController.java rename observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/actions/export/{ReplicateTripServicecontroller.java => ReplicateTripServiceController.java} (94%) create mode 100644 observe-check-api-maven-plugin/src/main/java/fr/ird/observe/maven/plugins/checkapi/MissingClassException.java create mode 100644 observe-services-api/src/main/java/fr/ird/observe/services/ObserveServicesProvider.java create mode 100644 observe-services-api/src/main/java/fr/ird/observe/services/service/actions/validate/ValidatorInitializationException.java -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
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 6d070a250bb1c6407d8bd9fd6cb8584267a0e820 Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Aug 9 16:11:50 2016 +0200 Check if classes are implemented --- .../maven/plugins/checkapi/CheckApiMojo.java | 29 +++++++++++++--------- .../plugins/checkapi/MissingClassException.java | 21 ++++++++++++++++ 2 files changed, 38 insertions(+), 12 deletions(-) diff --git a/observe-check-api-maven-plugin/src/main/java/fr/ird/observe/maven/plugins/checkapi/CheckApiMojo.java b/observe-check-api-maven-plugin/src/main/java/fr/ird/observe/maven/plugins/checkapi/CheckApiMojo.java index effd66e..bee92eb 100644 --- a/observe-check-api-maven-plugin/src/main/java/fr/ird/observe/maven/plugins/checkapi/CheckApiMojo.java +++ b/observe-check-api-maven-plugin/src/main/java/fr/ird/observe/maven/plugins/checkapi/CheckApiMojo.java @@ -34,6 +34,8 @@ import org.nuiton.plugin.AbstractPlugin; import java.io.File; import java.lang.reflect.Method; +import java.util.Collections; +import java.util.LinkedHashMap; import java.util.Map; import java.util.Set; import java.util.regex.Matcher; @@ -92,7 +94,7 @@ public class CheckApiMojo extends AbstractPlugin { */ @Parameter(property = "checkApi.encoding", defaultValue = "${project.build.sourceEncoding}", required = true) protected String encoding; - protected ImmutableMap<ClassPath.ClassInfo, ClassPath.ClassInfo> translationMap; + protected Map<ClassPath.ClassInfo, ClassPath.ClassInfo> translationMap; @Override protected void init() throws Exception { @@ -112,7 +114,7 @@ public class CheckApiMojo extends AbstractPlugin { ImmutableMap<String, ClassPath.ClassInfo> targetClassInfosByClassName = Maps.uniqueIndex(targetApiClassesInPackage, ClassPath.ClassInfo::getName); - ImmutableMap.Builder<ClassPath.ClassInfo, ClassPath.ClassInfo> translationMapBuilder = ImmutableMap.builder(); + Map<ClassPath.ClassInfo, ClassPath.ClassInfo> translationMap = new LinkedHashMap<>(); for (ClassPath.ClassInfo sourceClassInfo : sourceApiClassesInPackage) { @@ -146,27 +148,26 @@ public class CheckApiMojo extends AbstractPlugin { String targetName = targetPackageName + "." + targetSimpleName; + ClassPath.ClassInfo targetClassInfo; + if (!targetClassInfosByClassName.containsKey(targetName)) { - if (isVerbose()) { - getLog().info("No matching target found for source class: " + sourceClassInfo); - } - continue; + targetClassInfo = null; + } else { + targetClassInfo = targetClassInfosByClassName.get(targetName); } - ClassPath.ClassInfo targetClassInfo = targetClassInfosByClassName.get(targetName); - if (isVerbose()) { getLog().info("Found maching class to check : " + sourceClassInfo + " → " + targetClassInfo); } - translationMapBuilder.put(sourceClassInfo, targetClassInfo); + translationMap.put(sourceClassInfo, targetClassInfo); } } - translationMap = translationMapBuilder.build(); + this.translationMap = Collections.unmodifiableMap(translationMap); } @@ -197,7 +198,7 @@ public class CheckApiMojo extends AbstractPlugin { ClassPath.ClassInfo targetClassInfo = entry.getValue(); Class<?> sourceClass = sourceClassInfo.load(); - Class<?> targetClass = targetClassInfo.load(); + Class<?> targetClass = targetClassInfo == null ? null : targetClassInfo.load(); checkClass(sourceClass, targetClass); @@ -225,7 +226,7 @@ public class CheckApiMojo extends AbstractPlugin { this.verbose = verbose; } - private void checkClass(Class<?> sourceClass, Class<?> targetClass) throws MissingMethodException, MismatchMethodParameterNameException { + private void checkClass(Class<?> sourceClass, Class<?> targetClass) throws MissingMethodException, MismatchMethodParameterNameException, MissingClassException { Method[] sourceDeclaredMethods = sourceClass.getDeclaredMethods(); @@ -235,6 +236,10 @@ public class CheckApiMojo extends AbstractPlugin { } + if (targetClass == null) { + throw new MissingClassException(sourceClass.getName()); + } + for (Method sourceMethod : sourceDeclaredMethods) { Method targetMethod; diff --git a/observe-check-api-maven-plugin/src/main/java/fr/ird/observe/maven/plugins/checkapi/MissingClassException.java b/observe-check-api-maven-plugin/src/main/java/fr/ird/observe/maven/plugins/checkapi/MissingClassException.java new file mode 100644 index 0000000..76a347a --- /dev/null +++ b/observe-check-api-maven-plugin/src/main/java/fr/ird/observe/maven/plugins/checkapi/MissingClassException.java @@ -0,0 +1,21 @@ +package fr.ird.observe.maven.plugins.checkapi; + +/** + * Created on 09/08/16. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class MissingClassException extends Exception { + private static final long serialVersionUID = -816569500190950442L; + + private final String sourceClassName; + + public MissingClassException(String sourceClassName) { + this.sourceClassName = sourceClassName; + } + + @Override + public String getMessage() { + return "Target class not found for contract " + sourceClassName; + } +} -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
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 84e8d0f65e0677c9fd41a993d3d7f19a04bc7f75 Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Aug 9 16:38:13 2016 +0200 Fix bad class name --- ...TripServicecontroller.java => ReplicateTripServiceController.java} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/actions/export/ReplicateTripServicecontroller.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/actions/export/ReplicateTripServiceController.java similarity index 94% rename from observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/actions/export/ReplicateTripServicecontroller.java rename to observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/actions/export/ReplicateTripServiceController.java index 2217515..faf2ec3 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/actions/export/ReplicateTripServicecontroller.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/actions/export/ReplicateTripServiceController.java @@ -33,9 +33,9 @@ import fr.ird.observe.services.service.actions.export.ReplicateTripsImportResult * * @author Tony Chemit - chemit@codelutin.com */ -public class ReplicateTripServicecontroller extends ObserveAuthenticatedServiceControllerSupport<ReplicateTripService> implements ReplicateTripService { +public class ReplicateTripServiceController extends ObserveAuthenticatedServiceControllerSupport<ReplicateTripService> implements ReplicateTripService { - public ReplicateTripServicecontroller() { + public ReplicateTripServiceController() { super(ReplicateTripService.class); } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
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 8b7d3adfdbda20184d512898919b92c88133bd99 Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Aug 9 16:39:38 2016 +0200 Fix layout + add action icons --- .../src/main/filters/observe-ui.properties | 2 ++ .../ui/admin/datasynchro/DataSynchroUI.jaxx | 32 ++++++++------------- .../ui/admin/datasynchro/DataSynchroUI.jcss | 12 +++----- .../src/main/resources/icons/action-copyToLeft.png | Bin 0 -> 345 bytes .../main/resources/icons/action-copyToRight.png | Bin 0 -> 349 bytes 5 files changed, 18 insertions(+), 28 deletions(-) diff --git a/observe-application-swing/src/main/filters/observe-ui.properties b/observe-application-swing/src/main/filters/observe-ui.properties index ed76d2d..80408dd 100644 --- a/observe-application-swing/src/main/filters/observe-ui.properties +++ b/observe-application-swing/src/main/filters/observe-ui.properties @@ -99,6 +99,8 @@ icon.action.connect_creating=action-connect_creating.png icon.action.connect_untested=action-connect_untested.png icon.action.connect_no=action-connect_no.png icon.action.connect_ok=action-connect_ok.png +icon.action.copyToLeft=action-copyToLeft.png +icon.action.copyToRight=action-copyToRight.png icon.action.close=action-close.png icon.action.db-change=action-db-change.png icon.action.db-local=action-db-local.png diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/datasynchro/DataSynchroUI.jaxx b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/datasynchro/DataSynchroUI.jaxx index 61cbf25..fea00d6 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/datasynchro/DataSynchroUI.jaxx +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/datasynchro/DataSynchroUI.jaxx @@ -52,12 +52,14 @@ <DataSelectionModel id='leftSelectDataModel' initializer='getModel().getDataSynchroModel().getLeftSelectionDataModel()'/> <DataSelectionTreeSelectionModel id='leftSelectionModel'/> - <DataSelectionTreeCellRenderer id='leftSelectionRenderer' constraints='BorderLayout.EAST'/> <DataSelectionModel id='rightSelectDataModel' initializer='getModel().getDataSynchroModel().getRightSelectionDataModel()'/> <DataSelectionTreeSelectionModel id='rightSelectionModel'/> - <DataSelectionTreeCellRenderer id='rightSelectionRenderer' constraints='BorderLayout.EAST'/> + <JPanel id='invisiblePanel'> + <DataSelectionTreeCellRenderer id='leftSelectionRenderer'/> + <DataSelectionTreeCellRenderer id='rightSelectionRenderer'/> + </JPanel> <script><![CDATA[ public DataSynchroUI(AdminUI parentContext) { @@ -77,21 +79,10 @@ public void destroy() { ]]> </script> - <!--JPanel id='PENDING_content'> - <Table constraints='BorderLayout.CENTER' fill='both' weightx='1' - weighty='1'> - <row> - <cell> - <JButton id='startAction' onActionPerformed="getHandler().doPrepareAction()"/> - </cell> - </row> - </Table> - </JPanel--> - <JPanel id='PENDING_content'> <JSplitPane id="contentSplitPane" constraints='BorderLayout.CENTER'> - <Table fill="both"> - <row weighty="1"> + <Table id='contentNorth' fill="both" weighty="1"> + <row> <cell weightx="0.45"> <JScrollPane id='leftTreePane' decorator='boxed'> <JTree id='leftTree'/> @@ -99,7 +90,7 @@ public void destroy() { </cell> <cell weightx="0.1"> <JPanel layout="{new BorderLayout()}" border='{new TitledBorder(" ")}'> - <JPanel id="middleActions" layout="{new GridLayout(0, 1)}" constraints='BorderLayout.CENTER'> + <JPanel id="middleActions" layout="{new GridLayout(0, 2)}" constraints='BorderLayout.CENTER'> <JButton id="copyToRight" onActionPerformed="getHandler().addCopyToRightTasks()"/> <JButton id="copyToLeft" onActionPerformed="getHandler().addCopyToLeftTasks()"/> <JButton id="deleteFromLeft" onActionPerformed="getHandler().addDeleteFromLeftTasks()"/> @@ -114,18 +105,19 @@ public void destroy() { </cell> </row> </Table> - <Table fill="both"> + <Table id='contentSouth' fill="both"> <row weighty="1"> <cell weightx="1"> <JScrollPane id='actionsToConsumePane'> - <JList id="actionsToConsume" onMouseClicked="getHandler().removeTasks(event)"/> + <JList id="actionsToConsume"/> </JScrollPane> </cell> </row> <row> <cell> - <JPanel layout="{new BorderLayout()}" > - <JButton id='applyAction' constraints='BorderLayout.CENTER' onActionPerformed='getHandler().doExecuteAction()'/> + <JPanel layout="{new BorderLayout()}"> + <JButton id='applyAction' constraints='BorderLayout.CENTER' + onActionPerformed='getHandler().doExecuteAction()'/> </JPanel> </cell> </row> diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/datasynchro/DataSynchroUI.jcss b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/datasynchro/DataSynchroUI.jcss index 6073115..c512d22 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/datasynchro/DataSynchroUI.jcss +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/datasynchro/DataSynchroUI.jcss @@ -20,10 +20,6 @@ * #L% */ -#NEED_FIX_content { - layout:{new BorderLayout()}; -} - #PENDING_content { layout:{new BorderLayout()}; } @@ -83,25 +79,25 @@ } #copyToLeft { - text:"observe.action.copyToLeft"; + actionIcon:copyToLeft; toolTipText:"observe.action.copyToLeft.tip"; enabled:false; } #copyToRight { - text:"observe.action.copyToRight"; + actionIcon:copyToRight; toolTipText:"observe.action.copyToRight.tip"; enabled:false; } #deleteFromLeft { - text:"observe.action.deleteFromLeft"; + actionIcon:delete; toolTipText:"observe.action.deleteFromLeft.tip"; enabled:false; } #deleteFromRight { - text:"observe.action.deleteFromRight"; + actionIcon:delete; toolTipText:"observe.action.deleteFromRight.tip"; enabled:false; } diff --git a/observe-application-swing/src/main/resources/icons/action-copyToLeft.png b/observe-application-swing/src/main/resources/icons/action-copyToLeft.png new file mode 100644 index 0000000..5dc6967 Binary files /dev/null and b/observe-application-swing/src/main/resources/icons/action-copyToLeft.png differ diff --git a/observe-application-swing/src/main/resources/icons/action-copyToRight.png b/observe-application-swing/src/main/resources/icons/action-copyToRight.png new file mode 100644 index 0000000..b1a1819 Binary files /dev/null and b/observe-application-swing/src/main/resources/icons/action-copyToRight.png differ -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
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 0986ca7fb2b5f4effe7842cf8e9cd64aa8f03c6a Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Aug 9 16:39:57 2016 +0200 introduce services provider contract --- .../observe/services/ObserveServicesProvider.java | 124 +++++++++++++++++++++ 1 file changed, 124 insertions(+) diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/ObserveServicesProvider.java b/observe-services-api/src/main/java/fr/ird/observe/services/ObserveServicesProvider.java new file mode 100644 index 0000000..0a5e627 --- /dev/null +++ b/observe-services-api/src/main/java/fr/ird/observe/services/ObserveServicesProvider.java @@ -0,0 +1,124 @@ +package fr.ird.observe.services; + +import fr.ird.observe.services.service.DataSourceService; +import fr.ird.observe.services.service.PingService; +import fr.ird.observe.services.service.ReferentialService; +import fr.ird.observe.services.service.SqlScriptProducerService; +import fr.ird.observe.services.service.actions.consolidate.ConsolidateDataService; +import fr.ird.observe.services.service.actions.datasynchro.DataSynchronizeService; +import fr.ird.observe.services.service.actions.export.ReplicateTripService; +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; + +/** + * Un provider de services typés. + * + * Created on 09/08/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 5.0 + */ +public interface ObserveServicesProvider { + + SqlScriptProducerService newSqlScriptProducerService(); + + ValidateService newValidateService(); + + ReportService newReportService(); + + PingService newPingService(); + + ReplicateTripService newReplicateTripService(); + + ConsolidateDataService newConsolidateDataService(); + + UnidirectionalReferentialSynchronizeLocalService newUnidirectionalReferentialSynchronizeLocalService(); + + UnidirectionalReferentialSynchronizeRemoteService newUnidirectionalReferentialSynchronizeRemoteService(); + + DataSynchronizeService newDataSynchronizeService(); + + DataSourceService newDataSourceService(); + + ReferentialService newReferentialService(); + + TripSeineService newTripSeineService(); + + RouteService newRouteService(); + + FloatingObjectService newFloatingObjectService(); + + ActivitySeineService newActivitySeineService(); + + SetSeineService newSetSeineService(); + + TripLonglineService newTripLonglineService(); + + ActivityLonglineService newActivityLonglineService(); + + SetLonglineService newSetLonglineService(); + + ActivitySeineObservedSystemService newActivitySeineObservedSystemService(); + + SetLonglineGlobalCompositionService newSetLonglineGlobalCompositionService(); + + SetLonglineDetailCompositionService newSetLonglineDetailCompositionService(); + + TransmittingBuoyOperationService newTransmittingBuoyOperationService(); + + BranchlineService newBranchlineService(); + + SetLonglineCatchService newSetLonglineCatchService(); + + ActivityLongLineEncounterService newActivityLongLineEncounterService(); + + TripLonglineGearUseService newTripLonglineGearUseService(); + + ActivityLongLineSensorUsedService newActivityLongLineSensorUsedService(); + + TdrService newTdrService(); + + TripSeineGearUseService newTripSeineGearUseService(); + + NonTargetCatchService newNonTargetCatchService(); + + NonTargetSampleService newNonTargetSampleService(); + + ObjectObservedSpeciesService newObjectObservedSpeciesService(); + + ObjectSchoolEstimateService newObjectSchoolEstimateService(); + + SchoolEstimateService newSchoolEstimateService(); + + TargetCatchService newTargetCatchService(); + + TargetSampleService newTargetSampleService(); +} -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
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 9215bb29bfb1ab1efebf27d6c840da796caf9f68 Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Aug 9 16:40:32 2016 +0200 Improve exception handler --- .../service/actions/validate/ValidateServiceUtils.java | 10 ++++------ .../actions/validate/ValidatorInitializationException.java | 14 ++++++++++++++ 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/actions/validate/ValidateServiceUtils.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/actions/validate/ValidateServiceUtils.java index 616c1e6..cf92b40 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/actions/validate/ValidateServiceUtils.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/actions/validate/ValidateServiceUtils.java @@ -26,8 +26,6 @@ import com.google.common.collect.ImmutableSet; import com.google.gson.Gson; import fr.ird.observe.services.dto.gson.ObserveDtoGsonSupplier; -import java.io.IOException; -import java.io.InputStream; import java.io.InputStreamReader; import java.io.Reader; @@ -42,19 +40,19 @@ public class ValidateServiceUtils { return ValidateService.AVAILABLE_CONTEXT_NAMES; } - public static ImmutableSet<ValidatorDto> getValidators() throws IOException { + public static ImmutableSet<ValidatorDto> getValidators() { ObserveDtoGsonSupplier gsonSupplier = new ObserveDtoGsonSupplier(false); Gson gson = gsonSupplier.get(); - InputStream inputStream = ValidateServiceUtils.class.getResourceAsStream(RESOURCE_VALIDATORS); - - try (Reader reader = new InputStreamReader(inputStream)) { + try (Reader reader = new InputStreamReader(ValidateServiceUtils.class.getResourceAsStream(RESOURCE_VALIDATORS))) { ValidatorDto[] validators = gson.fromJson(reader, ValidatorDto[].class); return ImmutableSet.copyOf(validators); + } catch (Exception e) { + throw new ValidatorInitializationException(e); } } diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/actions/validate/ValidatorInitializationException.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/actions/validate/ValidatorInitializationException.java new file mode 100644 index 0000000..80a2f8e --- /dev/null +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/actions/validate/ValidatorInitializationException.java @@ -0,0 +1,14 @@ +package fr.ird.observe.services.service.actions.validate; + +/** + * Created on 09/08/16. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class ValidatorInitializationException extends RuntimeException { + private static final long serialVersionUID =1L; + + public ValidatorInitializationException(Throwable cause) { + super(cause); + } +} -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
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 f148eec60c85b895a444c65474c810eb5ff3bbc9 Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Aug 9 16:41:14 2016 +0200 make the test works again --- ...onglineDetailCompositionUIValidationHelper.java | 233 --------------------- ...LonglineDetailCompositionValidationContext.java | 116 ++++++++++ .../LonglineDetailCompositionValidatorService.java | 155 ++++++++++++++ ...glineDetailCompositionValidatorServiceTest.java | 107 ++++------ 4 files changed, 316 insertions(+), 295 deletions(-) diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/LonglineDetailCompositionUIValidationHelper.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/LonglineDetailCompositionUIValidationHelper.java index 1c2061d..fcec8a8 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/LonglineDetailCompositionUIValidationHelper.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/LonglineDetailCompositionUIValidationHelper.java @@ -34,19 +34,13 @@ import jaxx.runtime.validator.swing.SwingValidator; import jaxx.runtime.validator.swing.SwingValidatorMessage; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.nuiton.validator.NuitonValidatorScope; import org.nuiton.validator.bean.simple.SimpleBeanValidator; -import org.nuiton.validator.bean.simple.SimpleBeanValidatorEvent; -import org.nuiton.validator.bean.simple.SimpleBeanValidatorListener; import javax.swing.JComponent; -import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Set; -import static org.nuiton.i18n.I18n.t; - /** * Created on 3/18/15. * @@ -168,231 +162,4 @@ public class LonglineDetailCompositionUIValidationHelper { this.objectValueAdjusting = objectValueAdjusting; } - public static class LonglineDetailCompositionValidatorService { - - private final SwingValidator<SectionDto> sectionValidator; - - private final SwingValidator<BasketDto> basketValidator; - - private final SwingValidator<BranchlineDto> branchlineValidator; - - private final DecoratorService decoratorService; - - private final Map<SwingValidator, JComponent> validatorEditors; - - public LonglineDetailCompositionValidatorService(SwingValidator<SectionDto> sectionValidator, - SwingValidator<BasketDto> basketValidator, - SwingValidator<BranchlineDto> branchlineValidator, - Map<SwingValidator, JComponent> validatorEditors, - DecoratorService decoratorService) { - this.sectionValidator = sectionValidator; - this.basketValidator = basketValidator; - this.branchlineValidator = branchlineValidator; - this.validatorEditors = validatorEditors; - this.decoratorService = decoratorService; - - } - - public List<SwingValidatorMessage> validateSections(List<? extends SectionDto> sections) { - - LonglineDetailCompositionValidationContext validationContext = new LonglineDetailCompositionValidationContext(decoratorService, validatorEditors); - - addListener(validationContext); - - try { - - for (SectionDto section : sections) { - - validateSection(validationContext, section); - - } - - } finally { - - removeListener(validationContext); - - } - - return validationContext.getMessages(); - - } - - protected void validateSection(LonglineDetailCompositionValidationContext validationContext, SectionDto section) { - - validationContext.setSection(section); - validationContext.setBasket(null); - validationContext.setBranchline(null); - - sectionValidator.setBean(null); - sectionValidator.setBean(section); - - if (!section.isBasketEmpty()) { - - BasketDto previousBasket = null; - - for (BasketDto basket : section.getBasket()) { - - if (previousBasket != null) { - - // validate previousBasket.floatline2Length = basket.floatline1Length - Float previousBasketFloatline2Length = previousBasket.getFloatline2Length(); - Float basketFloatline1Length = basket.getFloatline1Length(); - if (previousBasketFloatline2Length != null - && basketFloatline1Length != null - && Math.abs(previousBasketFloatline2Length - basketFloatline1Length) > 0.001f) { - - validationContext.addMessage(basketValidator, NuitonValidatorScope.ERROR, "floatline2Length", t("observe.basket.invalid.nextFloatline1Length", previousBasketFloatline2Length, basketFloatline1Length)); - - } - } - - validateBasket(validationContext, basket); - - previousBasket = basket; - - } - } - - } - - protected void validateBasket(LonglineDetailCompositionValidationContext validationContext, BasketDto basket) { - - validationContext.setBranchline(null); - validationContext.setBasket(basket); - - basketValidator.setBean(null); - basketValidator.setBean(basket); - - if (!basket.isBranchlineEmpty()) { - - for (BranchlineDto branchline : basket.getBranchline()) { - - validateBranchline(validationContext, branchline); - - } - } - - validationContext.setBranchline(null); - - } - - protected void validateBranchline(LonglineDetailCompositionValidationContext validationContext, BranchlineDto branchline) { - - validationContext.setBranchline(branchline); - branchlineValidator.setBean(null); - branchlineValidator.setBean(branchline); - - - } - - protected void addListener(LonglineDetailCompositionValidationContext validationContext) { - - sectionValidator.addSimpleBeanValidatorListener(validationContext); - basketValidator.addSimpleBeanValidatorListener(validationContext); - branchlineValidator.addSimpleBeanValidatorListener(validationContext); - - } - - protected void removeListener(LonglineDetailCompositionValidationContext validationContext) { - - sectionValidator.removeSimpleBeanValidatorListener(validationContext); - basketValidator.removeSimpleBeanValidatorListener(validationContext); - branchlineValidator.removeSimpleBeanValidatorListener(validationContext); - - } - - } - - private static class LonglineDetailCompositionValidationContext implements SimpleBeanValidatorListener { - - SectionDto section; - - BasketDto basket; - - BranchlineDto branchline; - - String contextLabel; - - final List<SwingValidatorMessage> messages; - - final DecoratorService decoratorService; - - private final Map<SwingValidator, JComponent> validatorEditors; - - private LonglineDetailCompositionValidationContext(DecoratorService decoratorService, Map<SwingValidator, JComponent> validatorEditors) { - this.decoratorService = decoratorService; - this.validatorEditors = validatorEditors; - this.messages = new ArrayList<>(); - } - - public List<SwingValidatorMessage> getMessages() { - return messages; - } - - public void setSection(SectionDto section) { - this.section = section; - this.basket = null; - this.branchline = null; - updateContextLabel(); - } - - public void setBasket(BasketDto basket) { - this.basket = basket; - this.branchline = null; - updateContextLabel(); - } - - public void setBranchline(BranchlineDto branchline) { - this.branchline = branchline; - updateContextLabel(); - } - - protected void updateContextLabel() { - - contextLabel = ""; - if (section != null) { - contextLabel += "S " + section.getSettingIdentifier(); - if (basket != null) { - contextLabel += " Ba " + basket.getSettingIdentifier(); - if (branchline != null) { - contextLabel += " Br " + branchline.getSettingIdentifier(); - } - } - } - - } - - @Override - public void onFieldChanged(SimpleBeanValidatorEvent event) { - - String[] messagesToAdd = event.getMessagesToAdd(); - if (messagesToAdd != null) { - - String field = event.getField(); - NuitonValidatorScope scope = event.getScope(); - SwingValidator<?> validator = (SwingValidator<?>) event.getSource(); - - for (String messageToAdd : messagesToAdd) { - addMessage(validator, scope, field, messageToAdd); - } - - } - - } - - public void addMessage(SwingValidator validator, NuitonValidatorScope scope, String field, String messageToAdd) { - - String propertyLabel = DecoratorService.getPropertyLabel(field); - SwingValidatorMessage message = new SwingValidatorMessage( - validator, - contextLabel + " - " + t(propertyLabel), - messageToAdd, - scope, - validatorEditors.get(validator) - ); - messages.add(message); - - } - - } } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/LonglineDetailCompositionValidationContext.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/LonglineDetailCompositionValidationContext.java new file mode 100644 index 0000000..385739e --- /dev/null +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/LonglineDetailCompositionValidationContext.java @@ -0,0 +1,116 @@ +package fr.ird.observe.ui.content.impl.longline; + +import fr.ird.observe.application.swing.decoration.DecoratorService; +import fr.ird.observe.services.dto.longline.BasketDto; +import fr.ird.observe.services.dto.longline.BranchlineDto; +import fr.ird.observe.services.dto.longline.SectionDto; +import jaxx.runtime.validator.swing.SwingValidator; +import jaxx.runtime.validator.swing.SwingValidatorMessage; +import org.nuiton.validator.NuitonValidatorScope; +import org.nuiton.validator.bean.simple.SimpleBeanValidatorEvent; +import org.nuiton.validator.bean.simple.SimpleBeanValidatorListener; + +import javax.swing.JComponent; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import static org.nuiton.i18n.I18n.t; + +/** + * Created on 09/08/16. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class LonglineDetailCompositionValidationContext implements SimpleBeanValidatorListener { + + SectionDto section; + + BasketDto basket; + + BranchlineDto branchline; + + String contextLabel; + + final List<SwingValidatorMessage> messages; + + final DecoratorService decoratorService; + + private final Map<SwingValidator, JComponent> validatorEditors; + + LonglineDetailCompositionValidationContext(DecoratorService decoratorService, Map<SwingValidator, JComponent> validatorEditors) { + this.decoratorService = decoratorService; + this.validatorEditors = validatorEditors; + this.messages = new ArrayList<>(); + } + + public List<SwingValidatorMessage> getMessages() { + return messages; + } + + public void setSection(SectionDto section) { + this.section = section; + this.basket = null; + this.branchline = null; + updateContextLabel(); + } + + public void setBasket(BasketDto basket) { + this.basket = basket; + this.branchline = null; + updateContextLabel(); + } + + public void setBranchline(BranchlineDto branchline) { + this.branchline = branchline; + updateContextLabel(); + } + + protected void updateContextLabel() { + + contextLabel = ""; + if (section != null) { + contextLabel += "S " + section.getSettingIdentifier(); + if (basket != null) { + contextLabel += " Ba " + basket.getSettingIdentifier(); + if (branchline != null) { + contextLabel += " Br " + branchline.getSettingIdentifier(); + } + } + } + + } + + @Override + public void onFieldChanged(SimpleBeanValidatorEvent event) { + + String[] messagesToAdd = event.getMessagesToAdd(); + if (messagesToAdd != null) { + + String field = event.getField(); + NuitonValidatorScope scope = event.getScope(); + SwingValidator<?> validator = (SwingValidator<?>) event.getSource(); + + for (String messageToAdd : messagesToAdd) { + addMessage(validator, scope, field, messageToAdd); + } + + } + + } + + public void addMessage(SwingValidator validator, NuitonValidatorScope scope, String field, String messageToAdd) { + + String propertyLabel = DecoratorService.getPropertyLabel(field); + SwingValidatorMessage message = new SwingValidatorMessage( + validator, + contextLabel + " - " + t(propertyLabel), + messageToAdd, + scope, + validatorEditors.get(validator) + ); + messages.add(message); + + } + +} diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/LonglineDetailCompositionValidatorService.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/LonglineDetailCompositionValidatorService.java new file mode 100644 index 0000000..1184d22 --- /dev/null +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/LonglineDetailCompositionValidatorService.java @@ -0,0 +1,155 @@ +package fr.ird.observe.ui.content.impl.longline; + +import fr.ird.observe.application.swing.decoration.DecoratorService; +import fr.ird.observe.services.dto.longline.BasketDto; +import fr.ird.observe.services.dto.longline.BranchlineDto; +import fr.ird.observe.services.dto.longline.SectionDto; +import jaxx.runtime.validator.swing.SwingValidator; +import jaxx.runtime.validator.swing.SwingValidatorMessage; +import org.nuiton.validator.NuitonValidatorScope; + +import javax.swing.JComponent; +import java.util.List; +import java.util.Map; + +import static org.nuiton.i18n.I18n.t; + +/** + * Created on 09/08/16. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class LonglineDetailCompositionValidatorService { + + private final SwingValidator<SectionDto> sectionValidator; + + private final SwingValidator<BasketDto> basketValidator; + + private final SwingValidator<BranchlineDto> branchlineValidator; + + private final DecoratorService decoratorService; + + private final Map<SwingValidator, JComponent> validatorEditors; + + public LonglineDetailCompositionValidatorService(SwingValidator<SectionDto> sectionValidator, + SwingValidator<BasketDto> basketValidator, + SwingValidator<BranchlineDto> branchlineValidator, + Map<SwingValidator, JComponent> validatorEditors, + DecoratorService decoratorService) { + this.sectionValidator = sectionValidator; + this.basketValidator = basketValidator; + this.branchlineValidator = branchlineValidator; + this.validatorEditors = validatorEditors; + this.decoratorService = decoratorService; + + } + + public List<SwingValidatorMessage> validateSections(List<? extends SectionDto> sections) { + + LonglineDetailCompositionValidationContext validationContext = new LonglineDetailCompositionValidationContext(decoratorService, validatorEditors); + + addListener(validationContext); + + try { + + for (SectionDto section : sections) { + + validateSection(validationContext, section); + + } + + } finally { + + removeListener(validationContext); + + } + + return validationContext.getMessages(); + + } + + protected void validateSection(LonglineDetailCompositionValidationContext validationContext, SectionDto section) { + + validationContext.setSection(section); + validationContext.setBasket(null); + validationContext.setBranchline(null); + + sectionValidator.setBean(null); + sectionValidator.setBean(section); + + if (!section.isBasketEmpty()) { + + BasketDto previousBasket = null; + + for (BasketDto basket : section.getBasket()) { + + if (previousBasket != null) { + + // validate previousBasket.floatline2Length = basket.floatline1Length + Float previousBasketFloatline2Length = previousBasket.getFloatline2Length(); + Float basketFloatline1Length = basket.getFloatline1Length(); + if (previousBasketFloatline2Length != null + && basketFloatline1Length != null + && Math.abs(previousBasketFloatline2Length - basketFloatline1Length) > 0.001f) { + + validationContext.addMessage(basketValidator, NuitonValidatorScope.ERROR, "floatline2Length", t("observe.basket.invalid.nextFloatline1Length", previousBasketFloatline2Length, basketFloatline1Length)); + + } + } + + validateBasket(validationContext, basket); + + previousBasket = basket; + + } + } + + } + + protected void validateBasket(LonglineDetailCompositionValidationContext validationContext, BasketDto basket) { + + validationContext.setBranchline(null); + validationContext.setBasket(basket); + + basketValidator.setBean(null); + basketValidator.setBean(basket); + + if (!basket.isBranchlineEmpty()) { + + for (BranchlineDto branchline : basket.getBranchline()) { + + validateBranchline(validationContext, branchline); + + } + } + + validationContext.setBranchline(null); + + } + + protected void validateBranchline(LonglineDetailCompositionValidationContext validationContext, BranchlineDto branchline) { + + validationContext.setBranchline(branchline); + branchlineValidator.setBean(null); + branchlineValidator.setBean(branchline); + + + } + + protected void addListener(LonglineDetailCompositionValidationContext validationContext) { + + sectionValidator.addSimpleBeanValidatorListener(validationContext); + basketValidator.addSimpleBeanValidatorListener(validationContext); + branchlineValidator.addSimpleBeanValidatorListener(validationContext); + + } + + protected void removeListener(LonglineDetailCompositionValidationContext validationContext) { + + sectionValidator.removeSimpleBeanValidatorListener(validationContext); + basketValidator.removeSimpleBeanValidatorListener(validationContext); + branchlineValidator.removeSimpleBeanValidatorListener(validationContext); + + } + +} diff --git a/observe-application-swing/src/test/java/fr/ird/observe/ui/content/impl/longline/LonglineDetailCompositionValidatorServiceTest.java b/observe-application-swing/src/test/java/fr/ird/observe/ui/content/impl/longline/LonglineDetailCompositionValidatorServiceTest.java index 4bedf20..0ef3e48 100644 --- a/observe-application-swing/src/test/java/fr/ird/observe/ui/content/impl/longline/LonglineDetailCompositionValidatorServiceTest.java +++ b/observe-application-swing/src/test/java/fr/ird/observe/ui/content/impl/longline/LonglineDetailCompositionValidatorServiceTest.java @@ -22,19 +22,18 @@ package fr.ird.observe.ui.content.impl.longline; * #L% */ +import com.google.common.collect.Iterables; import fr.ird.observe.ObserveSwingApplicationContext; -import fr.ird.observe.services.dto.constants.ReferentialLocale; +import fr.ird.observe.configuration.ObserveSwingApplicationConfig; import fr.ird.observe.services.dto.longline.BasketDto; import fr.ird.observe.services.dto.longline.BranchlineDto; import fr.ird.observe.services.dto.longline.SectionDto; -import fr.ird.observe.services.service.actions.validate.ObserveValidator; -import fr.ird.observe.application.swing.decoration.DecoratorService; +import jaxx.runtime.validator.swing.SwingValidator; import jaxx.runtime.validator.swing.SwingValidatorMessage; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.junit.Assert; import org.junit.Before; -import org.junit.Ignore; import org.junit.Test; import org.nuiton.i18n.I18n; import org.nuiton.i18n.init.ClassPathI18nInitializer; @@ -42,6 +41,7 @@ import org.nuiton.validator.NuitonValidatorScope; import org.nuiton.validator.bean.simple.SimpleBeanValidatorMessage; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import java.util.Locale; @@ -56,7 +56,7 @@ public class LonglineDetailCompositionValidatorServiceTest { /** Logger. */ private static final Log log = LogFactory.getLog(LonglineDetailCompositionValidatorServiceTest.class); - protected LonglineDetailCompositionUIValidationHelper.LonglineDetailCompositionValidatorService service; + protected LonglineDetailCompositionValidatorService service; @Before public void setUp() { @@ -66,28 +66,23 @@ public class LonglineDetailCompositionValidatorServiceTest { ObserveSwingApplicationContext.get().close(); } - ObserveSwingApplicationContext applicationContext = new ObserveSwingApplicationContext(); - ObserveSwingApplicationContext.set(applicationContext); - DecoratorService decoratorService = new DecoratorService(ReferentialLocale.FR); + ObserveSwingApplicationContext applicationContext = new ObserveSwingApplicationContext(new ObserveSwingApplicationConfig()); - ObserveValidator<SectionDto> sectionValidator = new ObserveValidator<>(SectionDto.class, "n1-update-table", NuitonValidatorScope.values()); - ObserveValidator<BasketDto> basketValidator = new ObserveValidator<>(BasketDto.class, "n1-update-table", NuitonValidatorScope.values()); - ObserveValidator<BranchlineDto> branchlineValidator = new ObserveValidator<>(BranchlineDto.class, "n1-update-table", NuitonValidatorScope.values()); + SwingValidator<SectionDto> sectionValidator = new SwingValidator<>(SectionDto.class, "n1-update-table", NuitonValidatorScope.values()); + SwingValidator<BasketDto> basketValidator = new SwingValidator<>(BasketDto.class, "n1-update-table", NuitonValidatorScope.values()); + SwingValidator<BranchlineDto> branchlineValidator = new SwingValidator<>(BranchlineDto.class, "n1-update-table", NuitonValidatorScope.values()); - //FIXME -// service = new LonglineDetailCompositionUIValidationHelper.LonglineDetailCompositionValidatorService( -// sectionValidator, -// basketValidator, -// branchlineValidator, -// Collections.<SwingValidator, JComponent>emptyMap(), -// decoratorService); + service = new LonglineDetailCompositionValidatorService( + sectionValidator, + basketValidator, + branchlineValidator, + Collections.emptyMap(), + applicationContext.getDecoratorService()); I18n.init(new ClassPathI18nInitializer(), Locale.FRANCE); } - // FIXME - @Ignore @Test public void testValidateSections() { @@ -145,11 +140,11 @@ public class LonglineDetailCompositionValidatorServiceTest { } { // 2 sections with baskets with settingIdentifier - //FIXME -// sections.get(0).getBasket().get(0).setSettingIdentifier(1); -// sections.get(0).getBasket().get(1).setSettingIdentifier(2); -// sections.get(1).getBasket().get(0).setSettingIdentifier(1); -// sections.get(1).getBasket().get(1).setSettingIdentifier(2); + + Iterables.get(sections.get(0).getBasket(), 0).setSettingIdentifier(1); + Iterables.get(sections.get(0).getBasket(), 1).setSettingIdentifier(2); + Iterables.get(sections.get(1).getBasket(), 0).setSettingIdentifier(1); + Iterables.get(sections.get(1).getBasket(), 1).setSettingIdentifier(2); List<SwingValidatorMessage> messages = service.validateSections(sections); assertMessages(messages, 0); @@ -158,18 +153,14 @@ public class LonglineDetailCompositionValidatorServiceTest { { // Section 1 - Basket 1 mistmatch floatline1Length with Section 1 - Basket 2 - //FIXME -// sections.get(0).getBasket().get(0).setFloatline1Length(1f); -// sections.get(0).getBasket().get(0).setFloatline2Length(2f); -// -// sections.get(0).getBasket().get(1).setFloatline1Length(1f); // should be 2 -// sections.get(0).getBasket().get(1).setFloatline2Length(6f); -// -// sections.get(1).getBasket().get(0).setFloatline1Length(6f); -// sections.get(1).getBasket().get(0).setFloatline2Length(11f); -// -// sections.get(1).getBasket().get(1).setFloatline1Length(11f); -// sections.get(1).getBasket().get(1).setFloatline2Length(12f); + Iterables.get(sections.get(0).getBasket(), 0).setFloatline1Length(1f); + Iterables.get(sections.get(0).getBasket(), 0).setFloatline2Length(2f); + Iterables.get(sections.get(0).getBasket(), 1).setFloatline1Length(1f); // should be 2 + Iterables.get(sections.get(0).getBasket(), 1).setFloatline2Length(6f); + Iterables.get(sections.get(1).getBasket(), 0).setFloatline1Length(6f); + Iterables.get(sections.get(1).getBasket(), 0).setFloatline2Length(11f); + Iterables.get(sections.get(1).getBasket(), 1).setFloatline1Length(11f); + Iterables.get(sections.get(1).getBasket(), 1).setFloatline2Length(12f); List<SwingValidatorMessage> messages = service.validateSections(sections); assertMessages(messages, 1); @@ -178,18 +169,14 @@ public class LonglineDetailCompositionValidatorServiceTest { { // OK d'ont check if last floatline has same length of first floatline for next section - //FIXME -// sections.get(0).getBasket().get(0).setFloatline1Length(1f); -// sections.get(0).getBasket().get(0).setFloatline2Length(2f); -// -// sections.get(0).getBasket().get(1).setFloatline1Length(2f); -// sections.get(0).getBasket().get(1).setFloatline2Length(6f); -// -// sections.get(1).getBasket().get(0).setFloatline1Length(10f); // Should be 6 -// sections.get(1).getBasket().get(0).setFloatline2Length(11f); -// -// sections.get(1).getBasket().get(1).setFloatline1Length(11f); -// sections.get(1).getBasket().get(1).setFloatline2Length(12f); + Iterables.get(sections.get(0).getBasket(), 0).setFloatline1Length(1f); + Iterables.get(sections.get(0).getBasket(), 0).setFloatline2Length(2f); + Iterables.get(sections.get(0).getBasket(), 1).setFloatline1Length(2f); + Iterables.get(sections.get(0).getBasket(), 1).setFloatline2Length(6f); + Iterables.get(sections.get(1).getBasket(), 0).setFloatline1Length(10f); // Should be 6 + Iterables.get(sections.get(1).getBasket(), 0).setFloatline2Length(11f); + Iterables.get(sections.get(1).getBasket(), 1).setFloatline1Length(11f); + Iterables.get(sections.get(1).getBasket(), 1).setFloatline2Length(12f); List<SwingValidatorMessage> messages = service.validateSections(sections); assertMessages(messages, 0); @@ -198,18 +185,14 @@ public class LonglineDetailCompositionValidatorServiceTest { { // Ok - //FIXME -// sections.get(0).getBasket().get(0).setFloatline1Length(1f); -// sections.get(0).getBasket().get(0).setFloatline2Length(2f); -// -// sections.get(0).getBasket().get(1).setFloatline1Length(2f); -// sections.get(0).getBasket().get(1).setFloatline2Length(10f); -// -// sections.get(1).getBasket().get(0).setFloatline1Length(10f); -// sections.get(1).getBasket().get(0).setFloatline2Length(11f); -// -// sections.get(1).getBasket().get(1).setFloatline1Length(11f); -// sections.get(1).getBasket().get(1).setFloatline2Length(12f); + Iterables.get(sections.get(0).getBasket(), 0).setFloatline1Length(1f); + Iterables.get(sections.get(0).getBasket(), 0).setFloatline2Length(2f); + Iterables.get(sections.get(0).getBasket(), 1).setFloatline1Length(2f); + Iterables.get(sections.get(0).getBasket(), 1).setFloatline2Length(10f); + Iterables.get(sections.get(1).getBasket(), 0).setFloatline1Length(10f); + Iterables.get(sections.get(1).getBasket(), 0).setFloatline2Length(11f); + Iterables.get(sections.get(1).getBasket(), 1).setFloatline1Length(11f); + Iterables.get(sections.get(1).getBasket(), 1).setFloatline2Length(12f); List<SwingValidatorMessage> messages = service.validateSections(sections); assertMessages(messages, 0); @@ -227,6 +210,6 @@ public class LonglineDetailCompositionValidatorServiceTest { if (log.isInfoEnabled()) { log.info(builder.toString()); } - Assert.assertEquals("Shoudl have found " + expectedNbMessages + " messages, but found " + messages.size(), expectedNbMessages, messages.size()); + Assert.assertEquals("Should have found " + expectedNbMessages + " messages, but found " + messages.size(), expectedNbMessages, messages.size()); } } \ No newline at end of file -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
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 1284fff1cd1c2769d4613c7fe17ce36b78504845 Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Aug 9 16:41:26 2016 +0200 add rest service --- .../DataSynchronizeServiceController.java | 32 ++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/actions/datasynchro/DataSynchronizeServiceController.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/actions/datasynchro/DataSynchronizeServiceController.java new file mode 100644 index 0000000..a17ba82 --- /dev/null +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/actions/datasynchro/DataSynchronizeServiceController.java @@ -0,0 +1,32 @@ +package fr.ird.observe.application.web.controller.v1.actions.datasynchro; + +import fr.ird.observe.application.web.controller.v1.ObserveAuthenticatedServiceControllerSupport; +import fr.ird.observe.services.service.actions.datasynchro.DataSynchronizeRequest; +import fr.ird.observe.services.service.actions.datasynchro.DataSynchronizeService; + +/** + * Created on 09/08/16. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class DataSynchronizeServiceController extends ObserveAuthenticatedServiceControllerSupport<DataSynchronizeService> implements DataSynchronizeService { + + public DataSynchronizeServiceController() { + super(DataSynchronizeService.class); + } + + @Override + public void prepareRequestOnOppositeDataSource(DataSynchronizeRequest request) { + service.prepareRequestOnOppositeDataSource(request); + } + + @Override + public void prepareRequestOnDataSource(DataSynchronizeRequest request) { + service.prepareRequestOnDataSource(request); + } + + @Override + public void executeRequest(DataSynchronizeRequest request) { + service.executeRequest(request); + } +} -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
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>.
participants (1)
-
codelutin.com scm