This is an automated email from the git hooks/post-receive script. New commit to branch feature/7519 in repository observe. See http://git.codelutin.com/observe.git commit 3efb3e691bc016c521a1ed4224e89fad96d1aee6 Author: Kevin Morin <morin@codelutin.com> Date: Fri Sep 11 17:50:53 2015 +0200 ca build toujours pas, mais ça avance... reste plus que les packages list, ref et table dans ui.content --- observe-application-swing/pom.xml | 7 +- .../main/java/fr/ird/observe/BinderService.java | 72 -- .../main/java/fr/ird/observe/ObserveConfig.java | 212 ++-- .../java/fr/ird/observe/ObserveConfigOption.java | 6 +- .../main/java/fr/ird/observe/ObserveContext.java | 1 + .../main/java/fr/ird/observe/ObserveRunner.java | 37 +- .../fr/ird/observe/business/BinderService.java | 72 ++ .../observe/{ => business}/DecoratorService.java | 202 ++-- .../ird/observe/{ => business}/IObserveConfig.java | 6 +- .../{ => business}/ObserveApplicationContext.java | 16 +- .../observe/business}/ObserveServiceHelper.java | 206 ++-- .../{ => business}/ObserveTechnicalException.java | 2 +- .../observe/{ => business}/SendMessageAble.java | 2 +- .../observe/business/converter/FloatConverter.java | 87 ++ .../ird/observe/{ => business}/db/DataContext.java | 36 +- .../ird/observe/{ => business}/db/DataSource.java | 4 +- .../{ => business}/db/DataSourceConfig.java | 8 +- .../{ => business}/db/DataSourceConfigParam.java | 2 +- .../{ => business}/db/DataSourceException.java | 2 +- .../{ => business}/db/DataSourceFactory.java | 437 ++++---- .../{ => business}/db/DataSourceProvider.java | 2 +- .../db/constants/CommonDataSourceConfigParam.java | 6 +- .../db/constants/ConnexionStatus.java | 2 +- .../{ => business}/db/constants/CreationMode.java | 2 +- .../db/constants/DataContextType.java | 22 +- .../{ => business}/db/constants/DataPolicy.java | 2 +- .../db/constants/DataSourceState.java | 2 +- .../{ => business}/db/constants/DbMode.java | 2 +- .../decorator/LengthWeightParameterDecorator.java | 89 ++ .../decorator/NonTargetCatchDecorator.java | 56 + .../decorator/NonTargetLengthDecorator.java | 63 ++ .../decorator/ObjectObservedSpeciesDecorator.java | 54 + .../business/decorator/ObserveDecorator.java | 91 ++ .../decorator/ReferenceDecorator.java} | 30 +- .../business/decorator/SpeciesDecorator.java | 71 ++ .../decorator/TripLonglineDecorator.java} | 27 +- .../decorator/TripSeineDecorator.java} | 28 +- .../ird/observe/business/gps/CoordinateHelper.java | 55 + .../gps/GPSAble.java} | 53 +- .../observe/{ => business}/gps/GPSFileReader.java | 2 +- .../fr/ird/observe/business}/gps/GPSPoint.java | 4 +- .../fr/ird/observe/business}/gps/GPSPointImpl.java | 5 +- .../observe/business}/gps/GPSPointInterval.java | 2 +- .../business}/gps/GPSPointIntervalImpl.java | 2 +- .../fr/ird/observe/business}/gps/GPSRoute.java | 2 +- .../fr/ird/observe/business}/gps/GPSRouteImpl.java | 2 +- .../ird/observe/{ => business}/gps/GPSService.java | 2 +- .../fr/ird/observe/business}/gps/GpsPoints.java | 8 +- .../ird/observe/business/report/ReportBuilder.java | 490 +++++++++ .../observe/business/report/model/DataMatrix.java | 259 +++++ .../ird/observe/business/report/model/Report.java | 144 +++ .../business/report/model/ReportExecute.java | 295 +++++ .../business/report/model/ReportOperation.java | 109 ++ .../business/report/model/ReportRequest.java | 369 +++++++ .../report/model/ReportVariable.java} | 39 +- .../report/model/operations/ExecuteRequests.java | 126 +++ .../report/model/operations/GroupByLength.java | 103 ++ .../report/model/operations/SumColumn.java | 132 +++ .../report/model/operations/SumIntColumn.java | 128 +++ .../report/model/operations/SumIntRow.java | 132 +++ .../business/report/model/operations/SumRow.java | 128 +++ .../report/package-info.java} | 11 +- .../{db => business}/util/SecurityModel.java | 2 +- .../validation/ObserveValidator.java | 8 +- .../business/validation/ValidationContext.java | 304 ++++++ .../validation/ValidationMessageDetector.java | 7 +- .../validation/ValidationModelMode.java | 38 +- .../validation/ValidationService.java | 29 +- .../{ => business}/validation/ValidatorsMap.java | 2 +- .../ird/observe/db/model/DataSelectionModel.java | 513 --------- .../observe/entities/longline/SectionTemplate.java | 184 ++++ .../ird/observe/entities/tripMap/TripMapPoint.java | 71 ++ .../observe/entities/tripMap/TripMapPointType.java | 58 + .../main/java/fr/ird/observe/ui/ObserveMainUI.jaxx | 2 +- .../fr/ird/observe/ui/ObserveMainUIHandler.java | 18 +- .../src/main/java/fr/ird/observe/ui/UIHelper.java | 2 +- .../observe/ui/actions/ChangeStorageAction.java | 2 +- .../fr/ird/observe/ui/actions/CloseHelpAction.java | 2 +- .../ird/observe/ui/actions/CloseStorageAction.java | 4 +- .../ui/actions/ImportStorageFromFileAction.java | 4 +- .../observe/ui/actions/ReloadResourcesAction.java | 2 +- .../observe/ui/actions/ReloadStorageAction.java | 12 +- .../ui/actions/SaveStorageToFileAction.java | 4 +- .../ird/observe/ui/actions/ShowConfigAction.java | 7 +- .../ui/actions/shared/AbstractUIAction.java | 2 +- .../java/fr/ird/observe/ui/admin/AdminStep.java | 2 +- .../fr/ird/observe/ui/admin/AdminTabUIHandler.java | 195 ++-- .../fr/ird/observe/ui/admin/AdminUIHandler.java | 3 - .../fr/ird/observe/ui/admin/AdminUILauncher.java | 21 +- .../java/fr/ird/observe/ui/admin/AdminUIModel.java | 379 ++++--- .../observe/ui/admin/config/ConfigUIHandler.java | 20 +- .../ui/admin/consolidate/ConsolidateModel.java | 26 +- .../ui/admin/consolidate/ConsolidateUIHandler.java | 145 ++- .../ird/observe/ui/admin/export/ExportModel.java | 81 +- .../observe/ui/admin/export/ExportUIHandler.java | 120 ++- .../fr/ird/observe/ui/admin/export/TripEntry.java | 20 +- .../ui/admin/export/TripToExportTableModel.java | 12 +- .../observe/ui/admin/gps/GPSAbleTableModel.java | 2 +- .../ui/admin/gps/GPSActivityTableModel.java | 19 +- .../observe/ui/admin/gps/ImportGPSUIHandler.java | 100 +- .../ird/observe/ui/admin/report/ReportModel.java | 17 +- .../observe/ui/admin/report/ReportUIHandler.java | 42 +- .../observe/ui/admin/save/SaveLocalUIHandler.java | 377 ++++--- .../ObsoleteEntityListCellRenderer.java | 2 +- .../ui/admin/synchronize/SynchronizeModel.java | 2 +- .../ui/admin/synchronize/SynchronizeUIHandler.java | 1127 ++++++++++---------- .../ui/admin/validate/ValidateConfigUI.jaxx | 2 +- .../validate/ValidateEntityListCellRenderer.java | 107 +- .../observe/ui/admin/validate/ValidateModel.java | 137 ++- .../ui/admin/validate/ValidateUIHandler.java | 290 ++--- .../ird/observe/ui/content/ContentUIHandler.java | 216 ++-- .../observe/ui/content/ContentUIInitializer.java | 128 ++- .../ird/observe/ui/content/ContentUIManager.java | 1 - .../fr/ird/observe/ui/content/ContentUIModel.java | 4 +- .../ird/observe/ui/content/ObserveContentUI.java | 4 +- .../content/impl/longline/BasketsTableModel.java | 2 +- .../content/impl/longline/BranchlineUIHandler.java | 41 +- .../content/impl/longline/BranchlineUIModel.java | 10 +- .../LonglineDetailCompositionUIHandler.java | 848 ++++++++------- .../LonglineDetailCompositionUIInitializer.java | 9 +- .../longline/LonglineDetailCompositionUIModel.java | 2 +- ...onglineDetailCompositionUIValidationHelper.java | 25 +- .../LonglineGlobalCompositionUIHandler.java | 78 +- .../longline/LonglineGlobalCompositionUIModel.java | 2 +- .../impl/longline/SectionTemplatesTableModel.java | 1 + .../content/impl/longline/SectionsTableModel.java | 4 +- .../impl/longline/SetLonglineUIHandler.java | 340 +++--- .../content/impl/longline/SetLonglineUIModel.java | 4 +- .../ActivitySeineObservedSystemUIHandler.java | 91 +- .../seine/ActivitySeineObservedSystemUIModel.java | 2 +- ...ngObjectTransmittingBuoyOperationUIHandler.java | 338 +++--- ...tingObjectTransmittingBuoyOperationUIModel.java | 2 +- .../impl/seine/FloatingObjectUIHandler.java | 178 ++-- .../content/impl/seine/FloatingObjectUIModel.java | 2 +- .../ui/content/impl/seine/SetSeineUIHandler.java | 319 +++--- .../ui/content/impl/seine/SetSeineUIModel.java | 2 +- .../ui/content/list/ContentListUIHandler.java | 6 +- .../impl/longline/ActivityLonglinesUIHandler.java | 10 +- .../impl/longline/ActivityLonglinesUIModel.java | 2 +- .../list/impl/longline/TripLonglinesUIHandler.java | 10 +- .../list/impl/longline/TripLonglinesUIModel.java | 2 +- .../list/impl/seine/ActivitySeinesUIHandler.java | 10 +- .../list/impl/seine/ActivitySeinesUIModel.java | 2 +- .../content/list/impl/seine/RoutesUIHandler.java | 10 +- .../ui/content/list/impl/seine/RoutesUIModel.java | 2 +- .../list/impl/seine/TripSeinesUIHandler.java | 10 +- .../content/list/impl/seine/TripSeinesUIModel.java | 2 +- .../ui/content/open/ContentOpenableUIHandler.java | 81 +- .../impl/longline/ActivityLonglineUIHandler.java | 371 +++---- .../impl/longline/ActivityLonglineUIModel.java | 2 +- .../open/impl/longline/TripLonglineUIHandler.java | 233 ++-- .../open/impl/longline/TripLonglineUIModel.java | 2 +- .../open/impl/seine/ActivitySeineUIHandler.java | 385 ++++--- .../open/impl/seine/ActivitySeineUIModel.java | 2 +- .../ui/content/open/impl/seine/RouteUIHandler.java | 381 ++++--- .../ui/content/open/impl/seine/RouteUIModel.java | 2 +- .../open/impl/seine/TripSeineUIHandler.java | 273 +++-- .../content/open/impl/seine/TripSeineUIModel.java | 2 +- .../ui/content/ref/ContentReferenceUIHandler.java | 10 +- .../ui/content/ref/ContentReferenceUIModel.java | 2 +- .../ui/content/ref/ReferenceHomeUIHandler.java | 5 +- .../ui/content/ref/ReferenceHomeUIModel.java | 2 +- .../ref/ReferentialContentUIInitializer.java | 6 +- .../ui/content/ref/UniqueKeyTableModel.java | 2 +- .../ui/content/table/ContentTableUIHandler.java | 9 +- .../content/table/ContentTableUIInitializer.java | 4 +- .../ui/content/table/ContentTableUIModel.java | 4 +- .../impl/longline/BaitsCompositionUIHandler.java | 10 +- .../longline/BranchlinesCompositionUIHandler.java | 10 +- .../CatchLonglineContentTableUIInitializer.java | 4 +- .../impl/longline/CatchLonglineUIHandler.java | 28 +- .../table/impl/longline/CatchLonglineUIModel.java | 2 +- .../table/impl/longline/EncounterUIHandler.java | 10 +- .../longline/FloatlinesCompositionUIHandler.java | 9 +- .../longline/GearUseFeaturesLonglineUIHandler.java | 15 +- .../longline/GearUseFeaturesLonglineUIModel.java | 6 - .../impl/longline/HooksCompositionUIHandler.java | 10 +- .../table/impl/longline/SensorUsedUIHandler.java | 15 +- .../content/table/impl/longline/TdrUIHandler.java | 14 +- .../ui/content/table/impl/longline/TdrUIModel.java | 2 +- .../impl/seine/GearUseFeaturesSeineUIHandler.java | 15 +- .../table/impl/seine/NonTargetCatchUIHandler.java | 16 +- .../table/impl/seine/NonTargetSampleUIHandler.java | 13 +- .../impl/seine/ObjectObservedSpeciesUIHandler.java | 10 +- .../impl/seine/ObjectSchoolEstimateUIHandler.java | 9 +- .../table/impl/seine/SchoolEstimateUIHandler.java | 12 +- .../table/impl/seine/TargetCatchUIHandler.java | 19 +- .../impl/seine/TargetDiscardCatchUIHandler.java | 20 +- .../table/impl/seine/TargetSampleUIHandler.java | 12 +- .../ird/observe/ui/storage/RemoteUILauncher.java | 5 +- .../ui/storage/StorageBackupUILauncher.java | 33 +- .../ird/observe/ui/storage/StorageUIHandler.java | 1013 +++++++++--------- .../ird/observe/ui/storage/StorageUILauncher.java | 2 +- .../fr/ird/observe/ui/storage/StorageUIModel.java | 63 +- .../observe/ui/storage/tabs/RolesTableModel.java | 2 +- .../ui/storage/tabs/StorageTabUIHandler.java | 43 +- .../ui/tree/AbstractObserveTreeCellRenderer.java | 38 +- .../ird/observe/ui/tree/ActivityLonglineNode.java | 18 +- .../fr/ird/observe/ui/tree/ActivitySeineNode.java | 17 +- .../ui/tree/DataSelectionTreeCellRenderer.java | 2 +- .../ui/tree/DataSelectionTreeSelectionModel.java | 109 +- ...{EntityNodeSupport.java => DtoNodeSupport.java} | 57 +- .../observe/ui/tree/FloatingObjectSeineNode.java | 18 +- .../ird/observe/ui/tree/ObserveDataProvider.java | 49 +- .../tree/ObserveNavigationTreeShowPopupAction.java | 89 +- .../java/fr/ird/observe/ui/tree/ObserveNode.java | 11 +- .../fr/ird/observe/ui/tree/ObserveTreeHelper.java | 104 +- .../ird/observe/ui/tree/ProgramLonglineNode.java | 18 +- .../fr/ird/observe/ui/tree/ProgramSeineNode.java | 18 +- .../fr/ird/observe/ui/tree/RouteSeineNode.java | 17 +- .../fr/ird/observe/ui/tree/SetLonglineNode.java | 18 +- .../java/fr/ird/observe/ui/tree/SetSeineNode.java | 18 +- .../fr/ird/observe/ui/tree/TripLonglineNode.java | 18 +- .../java/fr/ird/observe/ui/tree/TripSeineNode.java | 17 +- .../actions/ChangeTripProgramActionListener.java | 45 +- .../ui/tree/loadors/AbstractNodeChildLoador.java | 40 +- .../loadors/ActivityLonglineNodeChildLoador.java | 33 +- .../loadors/ActivityLonglinesNodeChildLoador.java | 17 +- .../tree/loadors/ActivitySeineNodeChildLoador.java | 37 +- .../loadors/ActivitySeinesNodeChildLoador.java | 16 +- .../loadors/FloatingObjectNodeChildLoador.java | 10 +- .../loadors/ProgramLonglineNodeChildLoador.java | 80 +- .../tree/loadors/ProgramSeineNodeChildLoador.java | 72 +- .../loadors/ReferenceCommonNodeChildLoador.java | 11 +- .../loadors/ReferenceLonglineNodeChildLoador.java | 11 +- .../loadors/ReferenceSeineNodeChildLoador.java | 11 +- .../ui/tree/loadors/RootNodeChildLoador.java | 66 +- .../ui/tree/loadors/RoutesNodeChildLoador.java | 18 +- .../tree/loadors/SetLonglineNodeChildLoador.java | 9 +- .../ui/tree/loadors/SetSeineNodeChildLoador.java | 21 +- .../fr/ird/observe/ui/usage/UsagesUIHandler.java | 6 +- ...ObserveSimpleValidatorMessageTableRenderer.java | 2 +- .../util/ObserveValidatorMessageTableRenderer.java | 2 +- .../ui/util/tripMap/TripMapContentBuilder.java | 5 +- .../observe/ui/util/tripMap/TripMapUIHandler.java | 26 +- .../ird/observe/validation/ValidationContext.java | 301 ------ ...glineDetailCompositionValidatorServiceTest.java | 9 +- .../main/java/fr/ird/observe/DecoratorService.java | 4 +- .../fr/ird/observe/ObserveApplicationContext.java | 6 +- .../java/fr/ird/observe/ObserveServiceHelper.java | 6 +- .../java/fr/ird/observe/gps/GPSFileReader.java | 2 +- .../main/java/fr/ird/observe/gps/GPSService.java | 2 +- .../ird/observe/validation/ObserveValidator.java | 2 +- .../ird/observe/validation/ValidationContext.java | 2 +- .../validation/ValidationMessageDetector.java | 2 +- .../observe/validation/ValidationModelMode.java | 2 +- .../ird/observe/validation/ValidationService.java | 2 +- .../fr/ird/observe/validation/ValidatorsMap.java | 2 +- .../fr.ird.observe.business.db.DataSourceProvider | 2 + .../services/fr.ird.observe.db.DataSourceProvider | 2 - .../java/fr/ird/observe/gps/GPSFileReaderTest.java | 2 +- .../test/java/fr/ird/observe/gps/GPSRouteTest.java | 2 +- .../java/fr/ird/observe/gps/GPSServiceTest.java | 2 +- .../observe/validation/ValidationServiceTest.java | 2 +- .../field/AbstractEspeceFieldValidator.java | 2 +- .../field/ActivityDebutDePecheSaneValidator.java | 2 +- .../field/ActivityFinDePecheSaneValidator.java | 2 +- .../field/ActivityFinDeVeilleExistsValidator.java | 2 +- .../field/ActivitySimpleSpeedValidator.java | 6 +- .../validation/field/ActivitySpeedValidator.java | 6 +- .../field/CollectionFieldExpressionValidator2.java | 2 +- .../field/CollectionUniqueKeyValidator2.java | 2 +- .../field/ObserveCollectionUniqueKeyValidator.java | 2 +- .../field/RouteActivitysFieldValidator.java | 2 +- .../field/SetLonglineUniqueHomeIdValidator.java | 2 +- .../field/SetLonglineUniqueNumberValidator.java | 2 +- .../field/SpeciesLengthFieldValidator.java | 2 +- .../field/SpeciesWeightFieldValidator.java | 2 +- .../field/VesselActivityFieldValidator.java | 2 +- .../src/main/resources/validators.xml | 26 +- .../validation/BeanValidatorDetectorTest.java | 2 +- .../validation/RelationRegexTest.java | 2 +- .../field/ActivitySeineSpeedValidatorTest.java | 2 +- .../ird/observe/{ => business}/gps/GPSPoint.java | 2 +- .../observe/{ => business}/gps/GPSPointImpl.java | 2 +- .../{ => business}/gps/GPSPointInterval.java | 2 +- .../{ => business}/gps/GPSPointIntervalImpl.java | 2 +- .../ird/observe/{ => business}/gps/GPSRoute.java | 2 +- .../observe/{ => business}/gps/GPSRouteImpl.java | 2 +- .../ird/observe/{ => business}/gps/GpsPoints.java | 2 +- .../java/fr/ird/observe/services/dto/IdDtos.java | 13 + .../observe/services/AbstractObserveService.java | 2 +- .../ObserveServiceFactoryProviderTopia.java | 6 +- .../observe/services/ReplicationServiceImpl.java | 6 +- .../services/operation/GpsImportServiceImpl.java | 4 +- .../services/operation/SynchronizeServiceImpl.java | 4 +- .../services/operation/ValidationServiceImpl.java | 2 +- 287 files changed, 9724 insertions(+), 6937 deletions(-) diff --git a/observe-application-swing/pom.xml b/observe-application-swing/pom.xml index 7884e03..5d71b8e 100644 --- a/observe-application-swing/pom.xml +++ b/observe-application-swing/pom.xml @@ -46,7 +46,7 @@ <jaxx.autoImportCss>true</jaxx.autoImportCss> <jaxx.autoRecurseInCss>false</jaxx.autoRecurseInCss> <jaxx.validatorFactoryFQN> - fr.ird.observe.validation.ObserveValidator + fr.ird.observe.business.validation.ObserveValidator </jaxx.validatorFactoryFQN> <jaxx.commonCss> ${project.basedir}/src/main/java/fr/ird/observe/ui/ObserveCommon.css @@ -258,6 +258,11 @@ <scope>runtime</scope> </dependency> + <dependency> + <groupId>xpp3</groupId> + <artifactId>xpp3</artifactId> + </dependency> + <!-- Logging --> <dependency> <groupId>org.slf4j</groupId> diff --git a/observe-application-swing/src/main/java/fr/ird/observe/BinderService.java b/observe-application-swing/src/main/java/fr/ird/observe/BinderService.java deleted file mode 100644 index cd641f9..0000000 --- a/observe-application-swing/src/main/java/fr/ird/observe/BinderService.java +++ /dev/null @@ -1,72 +0,0 @@ -/* - * #%L - * ObServe :: Business - * %% - * Copyright (C) 2008 - 2010 IRD, Codelutin, Tony Chemit - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ -package fr.ird.observe; - -import fr.ird.observe.services.dto.AbstractObserveDto; -import org.nuiton.topia.persistence.TopiaEntity; -import org.nuiton.topia.persistence.util.TopiaEntityBinder; -import org.nuiton.topia.persistence.util.TopiaEntityHelper; -import org.nuiton.util.beans.BinderModelBuilder; - -/** - * Service d'utilisation des binders - * - * @author Tony Chemit - chemit@codelutin.com - * @since 1.4 - */ -public class BinderService { - - public <E extends AbstractObserveDto> BinderModelBuilder<E, E> newBinderBuilder(Class<E> type, String... properties) { - BinderModelBuilder<E, E> builder = BinderModelBuilder.newEmptyBuilder(type); - builder.addSimpleProperties(properties); - return builder; - } - - public <E extends TopiaEntity> TopiaEntityBinder<E> getTopiaBinder(Class<E> entityClass, - String contextName) { - if (ObserveBinderHelper.getCachedBinderModel(entityClass, entityClass, contextName) == null) { - - // we do not want to have auto created binder model by the factory - return null; - } - return (TopiaEntityBinder<E>) ObserveBinderHelper.newBinder(entityClass, entityClass, contextName, TopiaEntityBinder.class); - } - - public <E extends TopiaEntity> TopiaEntityBinder<E> registerTopiaBinder(Class<E> entityClass, - BinderModelBuilder<E, E> builder, - String contextName) { - return ObserveBinderHelper.registerTopiaBinder(entityClass, builder, contextName); - } - - public <E extends TopiaEntity> TopiaEntityBinder<E> getSimpleTopiaBinder(Class<E> entityClass) { - return getTopiaBinder(entityClass, "Observe"); - } - - public <E extends TopiaEntity> void simpleCopy(E source, E target, boolean tech) { - Class<E> entityClass = (Class<E>) TopiaEntityHelper.getContractClass(ObserveDAOHelper.getContracts(), target.getClass()); - TopiaEntityBinder<E> binder = getSimpleTopiaBinder(entityClass); - if (binder == null) { - throw new NullPointerException("could not find a simple topia binder of type : " + target.getClass()); - } - binder.load(source, target, tech); - } -} diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ObserveConfig.java b/observe-application-swing/src/main/java/fr/ird/observe/ObserveConfig.java index 0302e1a..b965eea 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ObserveConfig.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ObserveConfig.java @@ -24,14 +24,9 @@ package fr.ird.observe; import com.google.common.collect.ImmutableSet; import com.google.common.collect.Lists; import com.google.common.collect.Sets; -import fr.ird.observe.db.DataSourceFactory; -import fr.ird.observe.db.constants.CommonDataSourceConfigParam; -import fr.ird.observe.db.constants.CreationMode; -import fr.ird.observe.db.constants.DbMode; -import fr.ird.observe.db.impl.H2DataSourceConfig; -import fr.ird.observe.db.impl.H2DataSourceConfigParam; -import fr.ird.observe.db.impl.PGDataSourceConfig; -import fr.ird.observe.db.impl.PGDataSourceConfigParam; +import fr.ird.observe.business.IObserveConfig; +import fr.ird.observe.business.db.constants.CreationMode; +import fr.ird.observe.business.db.constants.DbMode; import fr.ird.observe.ui.UIHelper; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -39,8 +34,8 @@ import org.nuiton.config.ApplicationConfig; import org.nuiton.util.version.Version; import org.nuiton.util.version.Versions; -import javax.swing.JOptionPane; -import java.awt.Color; +import javax.swing.*; +import java.awt.*; import java.beans.PropertyChangeListener; import java.io.File; import java.io.IOException; @@ -52,59 +47,7 @@ import java.util.Locale; import java.util.Properties; import java.util.Set; -import static fr.ird.observe.ObserveConfigOption.AUTO_POPUP_NUMBER_EDITOR; -import static fr.ird.observe.ObserveConfigOption.BACKUP_DIRECTORY; -import static fr.ird.observe.ObserveConfigOption.BAIT_OBSERVATION; -import static fr.ird.observe.ObserveConfigOption.BIRDS_OBSERVATION; -import static fr.ird.observe.ObserveConfigOption.CHANGE_SYNCHRO_SRC; -import static fr.ird.observe.ObserveConfigOption.CONFIG_FILE; -import static fr.ird.observe.ObserveConfigOption.DB_DIRECTORY; -import static fr.ird.observe.ObserveConfigOption.DB_LOCALE; -import static fr.ird.observe.ObserveConfigOption.DEFAULT_CREATION_MODE; -import static fr.ird.observe.ObserveConfigOption.DEFAULT_DB_MODE; -import static fr.ird.observe.ObserveConfigOption.DEFAULT_GPS_MAX_DELAY; -import static fr.ird.observe.ObserveConfigOption.DEFAULT_GPS_MAX_SPEED; -import static fr.ird.observe.ObserveConfigOption.DETAILLED_ACTIVITIES_OBSERVATION; -import static fr.ird.observe.ObserveConfigOption.DEV_MODE; -import static fr.ird.observe.ObserveConfigOption.FULL_SCREEN; -import static fr.ird.observe.ObserveConfigOption.H2_CAN_MIGRATE; -import static fr.ird.observe.ObserveConfigOption.H2_LOGIN; -import static fr.ird.observe.ObserveConfigOption.H2_PASSWORD; -import static fr.ird.observe.ObserveConfigOption.H2_SERVER_PORT; -import static fr.ird.observe.ObserveConfigOption.I18N_DIRECTORY; -import static fr.ird.observe.ObserveConfigOption.INITIAL_DB_DUMP; -import static fr.ird.observe.ObserveConfigOption.LOAD_LOCAL_STORAGE; -import static fr.ird.observe.ObserveConfigOption.LOCALE; -import static fr.ird.observe.ObserveConfigOption.LOG_CONFIGURATION_FILE; -import static fr.ird.observe.ObserveConfigOption.MAMMALS_OBSERVATION; -import static fr.ird.observe.ObserveConfigOption.MAP_BACKGROUND_COLOR; -import static fr.ird.observe.ObserveConfigOption.NON_TARGET_OBSERVATION; -import static fr.ird.observe.ObserveConfigOption.OBJECTS_OBSERVATION; -import static fr.ird.observe.ObserveConfigOption.OBSTUNA_CAN_MIGRATE; -import static fr.ird.observe.ObserveConfigOption.OBSTUNA_LOGIN; -import static fr.ird.observe.ObserveConfigOption.OBSTUNA_PASSWORD; -import static fr.ird.observe.ObserveConfigOption.OBSTUNA_URL; -import static fr.ird.observe.ObserveConfigOption.OBSTUNA_USE_SSL_CERT; -import static fr.ird.observe.ObserveConfigOption.REPORT_DIRECTORY; -import static fr.ird.observe.ObserveConfigOption.RESOURCES_DIRECTORY; -import static fr.ird.observe.ObserveConfigOption.SAMPLES_OBSERVATION; -import static fr.ird.observe.ObserveConfigOption.SHOW_DATE_TIME_EDITOR_SLIDER; -import static fr.ird.observe.ObserveConfigOption.SHOW_MIGRATION_PROGRESSION; -import static fr.ird.observe.ObserveConfigOption.SHOW_MIGRATION_SQL; -import static fr.ird.observe.ObserveConfigOption.SHOW_NUMBER_EDITOR_BUTTON; -import static fr.ird.observe.ObserveConfigOption.SHOW_SQL; -import static fr.ird.observe.ObserveConfigOption.SPECIES_LIST_LONGLINE_CATCH_ID; -import static fr.ird.observe.ObserveConfigOption.SPECIES_LIST_LONGLINE_DEPREDATOR_ID; -import static fr.ird.observe.ObserveConfigOption.SPECIES_LIST_LONGLINE_ENCOUNTER_ID; -import static fr.ird.observe.ObserveConfigOption.SPECIES_LIST_SEINE_NON_TARGET_CATCH_ID; -import static fr.ird.observe.ObserveConfigOption.SPECIES_LIST_SEINE_OBJECT_OBSERVED_SPECIES_ID; -import static fr.ird.observe.ObserveConfigOption.SPECIES_LIST_SEINE_OBJECT_SCHOOL_ESTIMATE_ID; -import static fr.ird.observe.ObserveConfigOption.SPECIES_LIST_SEINE_SCHOOL_ESTIMATE_ID; -import static fr.ird.observe.ObserveConfigOption.SPECIES_LIST_SEINE_TARGET_CATCH_ID; -import static fr.ird.observe.ObserveConfigOption.STORE_REMOTE_STORAGE; -import static fr.ird.observe.ObserveConfigOption.TARGET_DISCARDS_OBSERVATION; -import static fr.ird.observe.ObserveConfigOption.TMP_DIRECTORY; -import static fr.ird.observe.ObserveConfigOption.values; +import static fr.ird.observe.ObserveConfigOption.*; import static fr.ird.observe.ObserveResourceManager.Resource; import static org.nuiton.i18n.I18n.t; @@ -166,6 +109,7 @@ public class ObserveConfig extends ApplicationConfig implements IObserveConfig { */ protected String[] unsavables; + //FIXME private final ImmutableSet<String> longlinVesselTypeIds = ImmutableSet.copyOf( Sets.newHashSet("fr.ird.observe.entities.referentiel.VesselType#1239832675735#0.044156847891821505", "fr.ird.observe.entities.referentiel.VesselType#1239832675736#0.8708229847859869", @@ -222,11 +166,12 @@ public class ObserveConfig extends ApplicationConfig implements IObserveConfig { //TC-200100204 La version de la base n'est pas liéé à la version // de l'application - Version dbVersion; - - dbVersion = Versions.valueOf(ObserveDAOHelper.getModelVersion()); - - setDefaultOption(DB_VERSION, dbVersion.getVersion()); + //FIXME +// Version dbVersion; +// +// dbVersion = Versions.valueOf(ObserveDAOHelper.getModelVersion()); +// +// setDefaultOption(DB_VERSION, dbVersion.getVersion()); // creation des actions disponibles for (ObserveCLAction.ActionDefinition a : ObserveCLAction.ActionDefinition.values()) { @@ -297,8 +242,10 @@ public class ObserveConfig extends ApplicationConfig implements IObserveConfig { @Override public Version getDbVersion() { - Version option = getOption(Version.class, DB_VERSION); - return option; + //FIXME +// Version option = getOption(Version.class, DB_VERSION); +// return option; + return null; } @Override @@ -909,67 +856,70 @@ public class ObserveConfig extends ApplicationConfig implements IObserveConfig { super.saveForUser(getUnsavables()); } - @Override - public void fromStorageConfig(H2DataSourceConfig config) { - setOption(SHOW_MIGRATION_PROGRESSION, config.isShowMigrationProgression()); - setOption(SHOW_MIGRATION_SQL, config.isShowMigrationSql()); - saveForUser(); - } - - @Override - public void fromStorageConfig(PGDataSourceConfig config) { - setOption(OBSTUNA_URL.getKey(), config.getUrl()); - setOption(OBSTUNA_LOGIN.getKey(), config.getLogin()); - setOption(OBSTUNA_PASSWORD.getKey(), - new String(config.getPassword())); - boolean useSsl = config.isUseSsl(); - setOption(OBSTUNA_USE_SSL_CERT, useSsl); -// if (useSsl) { -// setOption(OBSTUNA_SSL_CERTIFICAT_FILE, -// config.getSslCertificatFile().getAbsolutePath()); -// setOption(OBSTUNA_SSL_CERTIFICAT_PASSWORD, -// new String(config.getSslCertificatPassword())); -// } else { -// setOption(OBSTUNA_SSL_CERTIFICAT_FILE.key, ""); -// setOption(OBSTUNA_SSL_CERTIFICAT_PASSWORD, EMPTY_CHAR_ARRAY); -// } - setOption(SHOW_MIGRATION_PROGRESSION, config.isShowMigrationProgression()); - setOption(SHOW_MIGRATION_SQL, config.isShowMigrationSql()); - //TODO-TC20100311 : on devrait pas regarder si l'utilisateur veut sauver - //TODO-TC20100311 : la configuration ? - saveForUser(); - } - - @Override - public H2DataSourceConfig toH2StorageConfig(String label) { - H2DataSourceConfig result; - result = DataSourceFactory.newH2Config( - label, - CommonDataSourceConfigParam.LOGIN, getH2Login(), - CommonDataSourceConfigParam.PASSWORD, getH2Password(), - CommonDataSourceConfigParam.CAN_MIGRATE, isCanMigrateH2(), - CommonDataSourceConfigParam.SHOW_MIGRATION_PROGRESSION, isShowMigrationProgression(), - CommonDataSourceConfigParam.SHOW_MIGRATION_SQL, isShowMigrationSql(), - H2DataSourceConfigParam.DIRECTORY, getLocalDBDirectory() - ); - return result; - } - - @Override - public PGDataSourceConfig toPostgresStorageConfig(String label) { - PGDataSourceConfig result; - result = DataSourceFactory.newPGConfig( - label, - PGDataSourceConfigParam.URL, getObstunaUrl(), - CommonDataSourceConfigParam.LOGIN, getObstunaLogin(), - CommonDataSourceConfigParam.PASSWORD, getObstunaPassword(), - CommonDataSourceConfigParam.CAN_MIGRATE, isCanMigrateObstuna(), - CommonDataSourceConfigParam.SHOW_MIGRATION_PROGRESSION, isShowMigrationProgression(), - CommonDataSourceConfigParam.SHOW_MIGRATION_SQL, isShowMigrationSql(), - PGDataSourceConfigParam.USE_SSL, isObstunaUseSsl() - ); - return result; - } + //FIXME +// @Override +// public void fromStorageConfig(H2DataSourceConfig config) { +// setOption(SHOW_MIGRATION_PROGRESSION, config.isShowMigrationProgression()); +// setOption(SHOW_MIGRATION_SQL, config.isShowMigrationSql()); +// saveForUser(); +// } + +// @Override +// public void fromStorageConfig(PGDataSourceConfig config) { +// setOption(OBSTUNA_URL.getKey(), config.getUrl()); +// setOption(OBSTUNA_LOGIN.getKey(), config.getLogin()); +// setOption(OBSTUNA_PASSWORD.getKey(), +// new String(config.getPassword())); +// boolean useSsl = config.isUseSsl(); +// setOption(OBSTUNA_USE_SSL_CERT, useSsl); +//// if (useSsl) { +//// setOption(OBSTUNA_SSL_CERTIFICAT_FILE, +//// config.getSslCertificatFile().getAbsolutePath()); +//// setOption(OBSTUNA_SSL_CERTIFICAT_PASSWORD, +//// new String(config.getSslCertificatPassword())); +//// } else { +//// setOption(OBSTUNA_SSL_CERTIFICAT_FILE.key, ""); +//// setOption(OBSTUNA_SSL_CERTIFICAT_PASSWORD, EMPTY_CHAR_ARRAY); +//// } +// setOption(SHOW_MIGRATION_PROGRESSION, config.isShowMigrationProgression()); +// setOption(SHOW_MIGRATION_SQL, config.isShowMigrationSql()); +// //TODO-TC20100311 : on devrait pas regarder si l'utilisateur veut sauver +// //TODO-TC20100311 : la configuration ? +// saveForUser(); +// } + + //FIXME +// @Override +// public H2DataSourceConfig toH2StorageConfig(String label) { +// H2DataSourceConfig result; +// result = DataSourceFactory.newH2Config( +// label, +// CommonDataSourceConfigParam.LOGIN, getH2Login(), +// CommonDataSourceConfigParam.PASSWORD, getH2Password(), +// CommonDataSourceConfigParam.CAN_MIGRATE, isCanMigrateH2(), +// CommonDataSourceConfigParam.SHOW_MIGRATION_PROGRESSION, isShowMigrationProgression(), +// CommonDataSourceConfigParam.SHOW_MIGRATION_SQL, isShowMigrationSql(), +// H2DataSourceConfigParam.DIRECTORY, getLocalDBDirectory() +// ); +// return result; +// } + + //FIXME +// @Override +// public PGDataSourceConfig toPostgresStorageConfig(String label) { +// PGDataSourceConfig result; +// result = DataSourceFactory.newPGConfig( +// label, +// PGDataSourceConfigParam.URL, getObstunaUrl(), +// CommonDataSourceConfigParam.LOGIN, getObstunaLogin(), +// CommonDataSourceConfigParam.PASSWORD, getObstunaPassword(), +// CommonDataSourceConfigParam.CAN_MIGRATE, isCanMigrateObstuna(), +// CommonDataSourceConfigParam.SHOW_MIGRATION_PROGRESSION, isShowMigrationProgression(), +// CommonDataSourceConfigParam.SHOW_MIGRATION_SQL, isShowMigrationSql(), +// PGDataSourceConfigParam.USE_SSL, isObstunaUseSsl() +// ); +// return result; +// } public void removeJaxxPropertyChangeListener() { List<String> tmp = new ArrayList<String>(); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ObserveConfigOption.java b/observe-application-swing/src/main/java/fr/ird/observe/ObserveConfigOption.java index 1ded80c..ab551f1 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ObserveConfigOption.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ObserveConfigOption.java @@ -22,8 +22,9 @@ package fr.ird.observe; import com.google.common.collect.ImmutableList; -import fr.ird.observe.db.constants.CreationMode; -import fr.ird.observe.db.constants.DbMode; +import fr.ird.observe.business.IObserveConfig; +import fr.ird.observe.business.db.constants.CreationMode; +import fr.ird.observe.business.db.constants.DbMode; import org.nuiton.config.ApplicationConfig; import org.nuiton.config.ConfigOptionDef; @@ -550,6 +551,7 @@ public enum ObserveConfigOption implements ConfigOptionDef { false ), + //FIXME /** le type de liste d'espèces pour les captures cibles (seine) */ SPECIES_LIST_SEINE_TARGET_CATCH_ID( "speciesList.seine.targetCatch", diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ObserveContext.java b/observe-application-swing/src/main/java/fr/ird/observe/ObserveContext.java index 85ee6f1..7a9ccf8 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ObserveContext.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ObserveContext.java @@ -21,6 +21,7 @@ */ package fr.ird.observe; +import fr.ird.observe.business.ObserveApplicationContext; import fr.ird.observe.ui.actions.ChangeStorageAction; import fr.ird.observe.ui.ObserveMainUIHandler; import fr.ird.observe.ui.ObserveUIMode; 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 5943996..b7cd96e 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 @@ -22,7 +22,9 @@ package fr.ird.observe; import com.google.common.base.Preconditions; -import fr.ird.converter.FloatConverter; +import fr.ird.observe.business.ObserveServiceHelper; +import fr.ird.observe.business.ObserveTechnicalException; +import fr.ird.observe.business.converter.FloatConverter; import fr.ird.observe.ui.ObserveMainUI; import fr.ird.observe.ui.ObserveMainUIHandler; import fr.ird.observe.ui.UIHelper; @@ -49,7 +51,7 @@ import org.nuiton.util.StringUtil; import javax.script.ScriptEngine; import javax.script.ScriptEngineManager; import javax.script.ScriptException; -import javax.swing.UIManager; +import javax.swing.*; import java.io.File; import java.io.IOException; import java.net.MalformedURLException; @@ -60,15 +62,7 @@ import java.util.Locale; import java.util.Map; import java.util.Properties; -import static fr.ird.observe.ObserveConfigOption.BACKUP_DIRECTORY; -import static fr.ird.observe.ObserveConfigOption.DATA_DIRECTORY; -import static fr.ird.observe.ObserveConfigOption.DB_DIRECTORY; -import static fr.ird.observe.ObserveConfigOption.INITIAL_DB_DUMP; -import static fr.ird.observe.ObserveConfigOption.MAP_DIRECTORY; -import static fr.ird.observe.ObserveConfigOption.REPORT_DIRECTORY; -import static fr.ird.observe.ObserveConfigOption.RESOURCES_DIRECTORY; -import static fr.ird.observe.ObserveConfigOption.TMP_DIRECTORY; -import static fr.ird.observe.ObserveConfigOption.VALIDATION_REPORT_DIRECTORY; +import static fr.ird.observe.ObserveConfigOption.*; import static fr.ird.observe.ObserveResourceManager.Resource; import static org.nuiton.i18n.I18n.t; @@ -297,7 +291,8 @@ public abstract class ObserveRunner extends ApplicationRunner { context, ObserveContext.CONFIG_ENTRY_DEF, ObserveContext.ACTIONS_ENTRY_DEF, - ObserveContext.DATA_SERVICE_ENTRY_DEF, + //FIXME +// ObserveContext.DATA_SERVICE_ENTRY_DEF, ObserveContext.DECORATOR_SERVICE_ENTRY_DEF ); @@ -513,13 +508,14 @@ public abstract class ObserveRunner extends ApplicationRunner { } protected void detectLocalDataBase(ObserveConfig config) throws IOException { - boolean hasLocalStorage = ObserveServiceHelper.isLocalStorageExists(config); - config.setLocalStorageExist(hasLocalStorage); - if (!hasLocalStorage) { - if (log.isInfoEnabled()) { - log.info(t("observe.init.no.local.db.detected", config.getLocalDBDirectory())); - } - } + //FIXME +// boolean hasLocalStorage = ObserveServiceHelper.isLocalStorageExists(config); +// config.setLocalStorageExist(hasLocalStorage); +// if (!hasLocalStorage) { +// if (log.isInfoEnabled()) { +// log.info(t("observe.init.no.local.db.detected", config.getLocalDBDirectory())); +// } +// } boolean hasInitialDb = ObserveServiceHelper.isInitialDbExists(config); config.setInitialDumpExist(hasInitialDb); @@ -646,7 +642,8 @@ public abstract class ObserveRunner extends ApplicationRunner { ObserveContext.CONFIG_ENTRY_DEF.setContextValue(instance, config); // add dataService - instance.getDataService(); + //FIXME +// instance.getDataService(); // add data context instance.getDataContext(); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/business/BinderService.java b/observe-application-swing/src/main/java/fr/ird/observe/business/BinderService.java new file mode 100644 index 0000000..93c3be2 --- /dev/null +++ b/observe-application-swing/src/main/java/fr/ird/observe/business/BinderService.java @@ -0,0 +1,72 @@ +/* + * #%L + * ObServe :: Business + * %% + * Copyright (C) 2008 - 2010 IRD, Codelutin, Tony Chemit + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ +package fr.ird.observe.business; + +import fr.ird.observe.services.dto.AbstractObserveDto; +import org.nuiton.util.beans.BinderModelBuilder; + +/** + * Service d'utilisation des binders + * + * @author Tony Chemit - chemit@codelutin.com + * @since 1.4 + */ +public class BinderService { + + public <E extends AbstractObserveDto> BinderModelBuilder<E, E> newBinderBuilder(Class<E> type, String... properties) { + BinderModelBuilder<E, E> builder = BinderModelBuilder.newEmptyBuilder(type); + builder.addSimpleProperties(properties); + return builder; + } + + //FIXME +// public <E extends TopiaEntity> TopiaEntityBinder<E> getTopiaBinder(Class<E> entityClass, +// String contextName) { +// if (ObserveBinderHelper.getCachedBinderModel(entityClass, entityClass, contextName) == null) { +// +// // we do not want to have auto created binder model by the factory +// return null; +// } +// return (TopiaEntityBinder<E>) ObserveBinderHelper.newBinder(entityClass, entityClass, contextName, TopiaEntityBinder.class); +// } + + //FIXME +// public <E extends TopiaEntity> TopiaEntityBinder<E> registerTopiaBinder(Class<E> entityClass, +// BinderModelBuilder<E, E> builder, +// String contextName) { +// return ObserveBinderHelper.registerTopiaBinder(entityClass, builder, contextName); +// } +// +// public <E extends TopiaEntity> TopiaEntityBinder<E> getSimpleTopiaBinder(Class<E> entityClass) { +// return getTopiaBinder(entityClass, "Observe"); +// } + + public <E extends AbstractObserveDto> void simpleCopy(E source, E target, boolean tech) { + //FIXME +// Class<E> entityClass = (Class<E>) TopiaEntityHelper.getContractClass(ObserveDAOHelper.getContracts(), target.getClass()); +// TopiaEntityBinder<E> binder = getSimpleTopiaBinder(entityClass); +// if (binder == null) { +// throw new NullPointerException("could not find a simple topia binder of type : " + target.getClass()); +// } +// binder.load(source, target, tech); + } +} diff --git a/observe-application-swing/src/main/java/fr/ird/observe/DecoratorService.java b/observe-application-swing/src/main/java/fr/ird/observe/business/DecoratorService.java similarity index 73% rename from observe-application-swing/src/main/java/fr/ird/observe/DecoratorService.java rename to observe-application-swing/src/main/java/fr/ird/observe/business/DecoratorService.java index b04984b..426d899 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/DecoratorService.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/business/DecoratorService.java @@ -19,34 +19,98 @@ * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ -package fr.ird.observe; - -import fr.ird.observe.decorator.LengthWeightParameterDecorator; -import fr.ird.observe.decorator.NonTargetCatchDecorator; -import fr.ird.observe.decorator.NonTargetLengthDecorator; -import fr.ird.observe.decorator.ObjectObservedSpeciesDecorator; -import fr.ird.observe.decorator.ReferenceDecorator; -import fr.ird.observe.decorator.SpeciesDecorator; -import fr.ird.observe.decorator.TripLonglineDecorator; -import fr.ird.observe.decorator.TripSeineDecorator; -import fr.ird.observe.services.dto.referential.*; -import fr.ird.observe.services.dto.seine.*; -import fr.ird.observe.services.dto.longline.*; -import fr.ird.observe.services.dto.referential.longline.*; -import fr.ird.observe.services.dto.referential.seine.*; -import fr.ird.observe.gps.GPSPoint; -import fr.ird.observe.gps.GPSPointInterval; +package fr.ird.observe.business; + +import fr.ird.observe.business.decorator.LengthWeightParameterDecorator; +import fr.ird.observe.business.decorator.NonTargetCatchDecorator; +import fr.ird.observe.business.decorator.NonTargetLengthDecorator; +import fr.ird.observe.business.decorator.ObjectObservedSpeciesDecorator; +import fr.ird.observe.business.decorator.ReferenceDecorator; +import fr.ird.observe.business.decorator.SpeciesDecorator; +import fr.ird.observe.business.decorator.TripLonglineDecorator; +import fr.ird.observe.business.decorator.TripSeineDecorator; +import fr.ird.observe.business.gps.GPSPoint; +import fr.ird.observe.business.gps.GPSPointInterval; +import fr.ird.observe.entities.longline.SectionTemplate; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.longline.ActivityLonglineDto; +import fr.ird.observe.services.dto.longline.BasketDto; +import fr.ird.observe.services.dto.longline.BranchlineDto; +import fr.ird.observe.services.dto.longline.CatchLonglineDto; +import fr.ird.observe.services.dto.longline.SectionDto; +import fr.ird.observe.services.dto.longline.SetLonglineDto; +import fr.ird.observe.services.dto.longline.TdrDto; +import fr.ird.observe.services.dto.referential.CountryDto; +import fr.ird.observe.services.dto.referential.FpaZoneDto; +import fr.ird.observe.services.dto.referential.GearCaracteristicDto; +import fr.ird.observe.services.dto.referential.GearCaracteristicTypeDto; +import fr.ird.observe.services.dto.referential.GearDto; +import fr.ird.observe.services.dto.referential.HarbourDto; +import fr.ird.observe.services.dto.referential.OceanDto; +import fr.ird.observe.services.dto.referential.OrganismDto; import fr.ird.observe.services.dto.referential.PersonDto; +import fr.ird.observe.services.dto.referential.ProgramDto; +import fr.ird.observe.services.dto.referential.ReferentialDto; +import fr.ird.observe.services.dto.referential.SexDto; +import fr.ird.observe.services.dto.referential.SpeciesGroupDto; +import fr.ird.observe.services.dto.referential.SpeciesListDto; +import fr.ird.observe.services.dto.referential.VesselDto; +import fr.ird.observe.services.dto.referential.VesselSizeCategoryDto; +import fr.ird.observe.services.dto.referential.VesselTypeDto; +import fr.ird.observe.services.dto.referential.longline.BaitHaulingStatusDto; +import fr.ird.observe.services.dto.referential.longline.BaitSettingStatusDto; +import fr.ird.observe.services.dto.referential.longline.BaitTypeDto; +import fr.ird.observe.services.dto.referential.longline.CatchFateLonglineDto; +import fr.ird.observe.services.dto.referential.longline.EncounterTypeDto; +import fr.ird.observe.services.dto.referential.longline.HealthnessDto; +import fr.ird.observe.services.dto.referential.longline.HookPositionDto; +import fr.ird.observe.services.dto.referential.longline.HookSizeDto; +import fr.ird.observe.services.dto.referential.longline.HookTypeDto; +import fr.ird.observe.services.dto.referential.longline.ItemHorizontalPositionDto; +import fr.ird.observe.services.dto.referential.longline.ItemVerticalPositionDto; +import fr.ird.observe.services.dto.referential.longline.LightsticksColorDto; +import fr.ird.observe.services.dto.referential.longline.LightsticksTypeDto; +import fr.ird.observe.services.dto.referential.longline.LineTypeDto; +import fr.ird.observe.services.dto.referential.longline.MaturityStatusDto; +import fr.ird.observe.services.dto.referential.longline.MitigationTypeDto; +import fr.ird.observe.services.dto.referential.longline.SensorBrandDto; +import fr.ird.observe.services.dto.referential.longline.SensorDataFormatDto; +import fr.ird.observe.services.dto.referential.longline.SensorTypeDto; +import fr.ird.observe.services.dto.referential.longline.SettingShapeDto; +import fr.ird.observe.services.dto.referential.longline.SizeMeasureTypeDto; +import fr.ird.observe.services.dto.referential.longline.StomacFullnessDto; +import fr.ird.observe.services.dto.referential.longline.TripTypeDto; +import fr.ird.observe.services.dto.referential.longline.VesselActivityLonglineDto; +import fr.ird.observe.services.dto.referential.longline.WeightMeasureTypeDto; +import fr.ird.observe.services.dto.referential.seine.DetectionModeDto; +import fr.ird.observe.services.dto.referential.seine.ObjectFateDto; +import fr.ird.observe.services.dto.referential.seine.ObjectOperationDto; +import fr.ird.observe.services.dto.referential.seine.ObjectTypeDto; +import fr.ird.observe.services.dto.referential.seine.ObservedSystemDto; +import fr.ird.observe.services.dto.referential.seine.ReasonForDiscardDto; +import fr.ird.observe.services.dto.referential.seine.ReasonForNoFishingDto; +import fr.ird.observe.services.dto.referential.seine.ReasonForNullSetDto; +import fr.ird.observe.services.dto.referential.seine.SpeciesFateDto; +import fr.ird.observe.services.dto.referential.seine.SpeciesStatusDto; +import fr.ird.observe.services.dto.referential.seine.SurroundingActivityDto; +import fr.ird.observe.services.dto.referential.seine.TransmittingBuoyOperationDto; +import fr.ird.observe.services.dto.referential.seine.TransmittingBuoyTypeDto; +import fr.ird.observe.services.dto.referential.seine.VesselActivitySeineDto; +import fr.ird.observe.services.dto.referential.seine.WeightCategoryDto; +import fr.ird.observe.services.dto.referential.seine.WindDto; import fr.ird.observe.services.dto.seine.ActivitySeineDto; +import fr.ird.observe.services.dto.seine.FloatingObjectDto; +import fr.ird.observe.services.dto.seine.ObjectSchoolEstimateDto; import fr.ird.observe.services.dto.seine.RouteDto; +import fr.ird.observe.services.dto.seine.SchoolEstimateDto; +import fr.ird.observe.services.dto.seine.SetSeineDto; +import fr.ird.observe.services.dto.seine.TargetCatchDto; +import fr.ird.observe.services.dto.seine.TargetLengthDto; +import fr.ird.observe.services.dto.seine.TransmittingBuoyDto; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.decorator.Decorator; import org.nuiton.decorator.DecoratorProvider; -import org.nuiton.topia.persistence.TopiaEntity; -import org.nuiton.topia.persistence.util.TopiaEntityRef; import java.beans.Introspector; import java.util.Arrays; @@ -106,12 +170,14 @@ public class DecoratorService extends DecoratorProvider { } public static String getEntityLabel(String prefix, Class entityClass) { - if (!TopiaEntity.class.isAssignableFrom(entityClass)) { - throw new IllegalArgumentException( - entityClass + " is not a TopiaEntity"); - } - entityClass = ObserveDAOHelper.getContractClass(entityClass); - return getPropertyLabel(prefix, entityClass.getSimpleName()); + //FIXME +// if (!TopiaEntity.class.isAssignableFrom(entityClass)) { +// throw new IllegalArgumentException( +// entityClass + " is not a TopiaEntity"); +// } +// entityClass = ObserveDAOHelper.getContractClass(entityClass); +// return getPropertyLabel(prefix, entityClass.getSimpleName()); + return null; } @@ -467,7 +533,8 @@ public class DecoratorService extends DecoratorProvider { // LengthWeightParameter decorator registerDecorator(new LengthWeightParameterDecorator(libelle)); - registerDecorator(new TopiaEntityRefDecorator()); + //FIXME +// registerDecorator(new TopiaEntityRefDecorator()); // gps decorators registerJXPathDecorator(ActivitySeineDto.class, @@ -499,45 +566,46 @@ public class DecoratorService extends DecoratorProvider { registerDecorator(new ReferenceDecorator<T>(referenceType, expression)); } - public class TopiaEntityRefDecorator extends Decorator<TopiaEntityRef> { - - private static final long serialVersionUID = 1L; - - public TopiaEntityRefDecorator() throws NullPointerException { - super(TopiaEntityRef.class); - } - - @Override - public String toString(Object bean) { - if (bean == null) { - return ""; - } - String message; - try { - TopiaEntityRef ref = (TopiaEntityRef) bean; - - TopiaEntity invoker = ref.getInvoker(); - if (invoker == null) { - invoker = ref.getRef(); - } - String invokerProperty = - t(getPropertyLabel( - ref.getInvokerProperty())); - String type = t(getEntityLabel(invoker.getClass())); - Decorator<?> decorator = - getDecoratorByType(invoker.getClass()); - if (invokerProperty == null) { - message = t("observe.synchro.obsolete.entity.label", type, decorator.toString(invoker)); - } else { - message = t("observe.synchro.obsolete.entity.ref", type, decorator.toString(invoker), invokerProperty); - } - } catch (Exception e) { - if (log.isErrorEnabled()) { - log.error(e); - } - message = ""; - } - return message; - } - } + //FIXME +// public class TopiaEntityRefDecorator extends Decorator<TopiaEntityRef> { +// +// private static final long serialVersionUID = 1L; +// +// public TopiaEntityRefDecorator() throws NullPointerException { +// super(TopiaEntityRef.class); +// } +// +// @Override +// public String toString(Object bean) { +// if (bean == null) { +// return ""; +// } +// String message; +// try { +// TopiaEntityRef ref = (TopiaEntityRef) bean; +// +// TopiaEntity invoker = ref.getInvoker(); +// if (invoker == null) { +// invoker = ref.getRef(); +// } +// String invokerProperty = +// t(getPropertyLabel( +// ref.getInvokerProperty())); +// String type = t(getEntityLabel(invoker.getClass())); +// Decorator<?> decorator = +// getDecoratorByType(invoker.getClass()); +// if (invokerProperty == null) { +// message = t("observe.synchro.obsolete.entity.label", type, decorator.toString(invoker)); +// } else { +// message = t("observe.synchro.obsolete.entity.ref", type, decorator.toString(invoker), invokerProperty); +// } +// } catch (Exception e) { +// if (log.isErrorEnabled()) { +// log.error(e); +// } +// message = ""; +// } +// return message; +// } +// } } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/IObserveConfig.java b/observe-application-swing/src/main/java/fr/ird/observe/business/IObserveConfig.java similarity index 98% rename from observe-application-swing/src/main/java/fr/ird/observe/IObserveConfig.java rename to observe-application-swing/src/main/java/fr/ird/observe/business/IObserveConfig.java index ddd8146..282c604 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/IObserveConfig.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/business/IObserveConfig.java @@ -19,10 +19,10 @@ * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ -package fr.ird.observe; +package fr.ird.observe.business; -import fr.ird.observe.db.constants.CreationMode; -import fr.ird.observe.db.constants.DbMode; +import fr.ird.observe.business.db.constants.CreationMode; +import fr.ird.observe.business.db.constants.DbMode; import org.nuiton.util.version.Version; import java.beans.PropertyChangeListener; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ObserveApplicationContext.java b/observe-application-swing/src/main/java/fr/ird/observe/business/ObserveApplicationContext.java similarity index 95% rename from observe-application-swing/src/main/java/fr/ird/observe/ObserveApplicationContext.java rename to observe-application-swing/src/main/java/fr/ird/observe/business/ObserveApplicationContext.java index eea92f7..7f1f2b2 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ObserveApplicationContext.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/business/ObserveApplicationContext.java @@ -19,15 +19,14 @@ * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ -package fr.ird.observe; +package fr.ird.observe.business; -import fr.ird.observe.db.DataContext; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.DataSourceFactory; -import fr.ird.observe.gps.GPSService; +import fr.ird.observe.business.db.DataContext; +import fr.ird.observe.business.db.DataSource; +import fr.ird.observe.business.gps.GPSService; +import fr.ird.observe.business.validation.ObserveValidator; +import fr.ird.observe.business.validation.ValidationContext; import fr.ird.observe.services.dto.constants.ReferentialLocale; -import fr.ird.observe.validation.ObserveValidator; -import fr.ird.observe.validation.ValidationContext; import jaxx.runtime.JAXXUtil; import jaxx.runtime.context.DefaultApplicationContext; import jaxx.runtime.context.JAXXContextEntryDef; @@ -217,7 +216,8 @@ public class ObserveApplicationContext extends DefaultApplicationContext { getValidationContext().closeDataSource(); // fermeture des services de persistances ouverts - DataSourceFactory.dispose(); + //FIXME +// DataSourceFactory.dispose(); // fermeture du context principal clear(); diff --git a/observe-business/src/main/java/fr/ird/observe/ObserveServiceHelper.java b/observe-application-swing/src/main/java/fr/ird/observe/business/ObserveServiceHelper.java similarity index 64% copy from observe-business/src/main/java/fr/ird/observe/ObserveServiceHelper.java copy to observe-application-swing/src/main/java/fr/ird/observe/business/ObserveServiceHelper.java index a904bc1..522c131 100644 --- a/observe-business/src/main/java/fr/ird/observe/ObserveServiceHelper.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/business/ObserveServiceHelper.java @@ -19,28 +19,16 @@ * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ -package fr.ird.observe; - -import com.google.common.base.Supplier; -import fr.ird.observe.db.DataContext; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.DataSourceFactory; -import fr.ird.observe.db.ReplicationService; -import fr.ird.observe.db.impl.H2DataSource; -import fr.ird.observe.db.impl.H2DataSourceConfig; -import fr.ird.observe.entities.migration.AbstractDataSourceMigration; -import fr.ird.observe.gps.GPSService; -import fr.ird.observe.validation.ValidationContext; -import fr.ird.observe.validation.ValidationService; +package fr.ird.observe.business; + +import fr.ird.observe.business.gps.GPSService; +import fr.ird.observe.business.validation.ValidationContext; +import fr.ird.observe.business.validation.ValidationService; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.nuiton.config.ApplicationConfig; -import java.io.File; import java.io.IOException; -import static org.nuiton.i18n.I18n.n; - public class ObserveServiceHelper { /** Logger. */ @@ -90,12 +78,13 @@ public class ObserveServiceHelper { } ObserveServiceHelper.context = context; - AbstractDataSourceMigration.setApplicationConfigSupplier(new Supplier<ApplicationConfig>() { - @Override - public ApplicationConfig get() { - return ObserveServiceHelper.context.getContextValue(ApplicationConfig.class); - } - }); + //FIXME +// AbstractDataSourceMigration.setApplicationConfigSupplier(new Supplier<ApplicationConfig>() { +// @Override +// public ApplicationConfig get() { +// return ObserveServiceHelper.context.getContextValue(ApplicationConfig.class); +// } +// }); // application non fermée closed = false; @@ -106,7 +95,8 @@ public class ObserveServiceHelper { log.debug("Closing service helper..."); } context = null; - AbstractDataSourceMigration.setApplicationConfigSupplier(null); + //FIXME +// AbstractDataSourceMigration.setApplicationConfigSupplier(null); // application fermée closed = true; @@ -117,9 +107,10 @@ public class ObserveServiceHelper { * * @return le nouveau service de réplication */ - public static ReplicationService newReplicationService() { - return new ReplicationService(); - } + //FIXME +// public static ReplicationService newReplicationService() { +// return new ReplicationService(); +// } /** * Pour instancier un nouveau service de validation. @@ -130,12 +121,13 @@ public class ObserveServiceHelper { return new ValidationService(); } - public static DataContext getDataContext() { - checkInit(); - ObserveApplicationContext context = get(); - DataContext dataContext = context.getDataContext(); - return dataContext; - } + //FIXME +// public static DataContext getDataContext() { +// checkInit(); +// ObserveApplicationContext context = get(); +// DataContext dataContext = context.getDataContext(); +// return dataContext; +// } public static ValidationContext getValidationContext() { checkInit(); @@ -161,25 +153,27 @@ public class ObserveServiceHelper { * * @return le service de consolidation des données partagé */ - public static ConsolidateDataService getConsolidateDataService() { - checkInit(); - ObserveApplicationContext context = get(); - ConsolidateDataService service = context.getConsolidateDataService(); - return service; - - } + //FIXME +// public static ConsolidateDataService getConsolidateDataService() { +// checkInit(); +// ObserveApplicationContext context = get(); +// ConsolidateDataService service = context.getConsolidateDataService(); +// return service; +// +// } /** * Pour obtenir l'unique service haut niveau de manipulation des données. * * @return le service haut niveau de manipulation des donées. */ - public static DataService getDataService() { - checkInit(); - ObserveApplicationContext context = get(); - DataService service = context.getDataService(); - return service; - } + //FIXME +// public static DataService getDataService() { +// checkInit(); +// ObserveApplicationContext context = get(); +// DataService service = context.getDataService(); +// return service; +// } /** * Pour obtenir l'unique service de décoration. @@ -202,25 +196,26 @@ public class ObserveServiceHelper { * @return the new service NOT opened * @throws IOException if any pb while configuring the service */ - public static DataSource newEmptyTempStorage( - IObserveConfig config, - String label, - String prefixName) throws IOException { - String dbfileName = (prefixName == null ? "tmp_" : prefixName + "_") - + System.nanoTime(); - - File dir = new File(config.getTmpDirectory(), dbfileName); - - H2DataSourceConfig conf = DataSourceFactory.newH2ConfigEmpty( - label, - dir, - config.getH2Login(), - config.getH2Password() - ); - - H2DataSource service = DataSourceFactory.newService(conf); - return service; - } + //FIXME +// public static DataSource newEmptyTempStorage( +// IObserveConfig config, +// String label, +// String prefixName) throws IOException { +// String dbfileName = (prefixName == null ? "tmp_" : prefixName + "_") +// + System.nanoTime(); +// +// File dir = new File(config.getTmpDirectory(), dbfileName); +// +// H2DataSourceConfig conf = DataSourceFactory.newH2ConfigEmpty( +// label, +// dir, +// config.getH2Login(), +// config.getH2Password() +// ); +// +// H2DataSource service = DataSourceFactory.newService(conf); +// return service; +// } /** * Creates a new local temp storage. @@ -230,19 +225,20 @@ public class ObserveServiceHelper { * @return the new service NOT opened * @throws IOException if any pb while configuring the service */ - public static DataSource newEmptyTempStorage(File dir, - String label) throws IOException { - - H2DataSourceConfig conf = DataSourceFactory.newH2ConfigEmpty( - label, - dir, - "sa", - "sa".toCharArray() - ); - - H2DataSource service = DataSourceFactory.newService(conf); - return service; - } + //FIXME +// public static DataSource newEmptyTempStorage(File dir, +// String label) throws IOException { +// +// H2DataSourceConfig conf = DataSourceFactory.newH2ConfigEmpty( +// label, +// dir, +// "sa", +// "sa".toCharArray() +// ); +// +// H2DataSource service = DataSourceFactory.newService(conf); +// return service; +// } /** * Construit une source de données sur la base locale de l'application. @@ -256,23 +252,24 @@ public class ObserveServiceHelper { * @throws IllegalStateException si la base locale n'existe pas * @see DataSource */ - public static H2DataSource newLocalStorageService(IObserveConfig config) throws IOException, IllegalStateException { - - - H2DataSourceConfig c = - config.toH2StorageConfig(n("observe.storage.label.local")); - - c.init(); - - if (!c.isStorageExists()) { - throw new IllegalStateException( - "local base must exist, when using this method (" + - c.getStorageDirectory() + ')'); - } - - H2DataSource service = DataSourceFactory.newService(c); - return service; - } + //FIXME +// public static H2DataSource newLocalStorageService(IObserveConfig config) throws IOException, IllegalStateException { +// +// +// H2DataSourceConfig c = +// config.toH2StorageConfig(n("observe.storage.label.local")); +// +// c.init(); +// +// if (!c.isStorageExists()) { +// throw new IllegalStateException( +// "local base must exist, when using this method (" + +// c.getStorageDirectory() + ')'); +// } +// +// H2DataSource service = DataSourceFactory.newService(c); +// return service; +// } /** * Teste si la base locale existe. @@ -281,15 +278,16 @@ public class ObserveServiceHelper { * @return {@code true} si la base locale existe, {@code false} sinon. * @throws IOException si pb d'IO */ - public static boolean isLocalStorageExists(IObserveConfig config) throws IOException { - - // build a local storage service config - H2DataSourceConfig storageConfig = config.toH2StorageConfig( - n("observe.storage.label.local")); - storageConfig.init(); - boolean dbExists = storageConfig.isStorageExists(); - return dbExists; - } + //FIXME +// public static boolean isLocalStorageExists(IObserveConfig config) throws IOException { +// +// // build a local storage service config +// H2DataSourceConfig storageConfig = config.toH2StorageConfig( +// n("observe.storage.label.local")); +// storageConfig.init(); +// boolean dbExists = storageConfig.isStorageExists(); +// return dbExists; +// } /** * Teste si le dump depuis la base obstuna a ete cree. diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ObserveTechnicalException.java b/observe-application-swing/src/main/java/fr/ird/observe/business/ObserveTechnicalException.java similarity index 97% copy from observe-application-swing/src/main/java/fr/ird/observe/ObserveTechnicalException.java copy to observe-application-swing/src/main/java/fr/ird/observe/business/ObserveTechnicalException.java index 7eb30b0..f362557 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ObserveTechnicalException.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/business/ObserveTechnicalException.java @@ -1,4 +1,4 @@ -package fr.ird.observe; +package fr.ird.observe.business; /* * #%L diff --git a/observe-application-swing/src/main/java/fr/ird/observe/SendMessageAble.java b/observe-application-swing/src/main/java/fr/ird/observe/business/SendMessageAble.java similarity index 96% copy from observe-application-swing/src/main/java/fr/ird/observe/SendMessageAble.java copy to observe-application-swing/src/main/java/fr/ird/observe/business/SendMessageAble.java index 1930156..d8bae0e 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/SendMessageAble.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/business/SendMessageAble.java @@ -19,7 +19,7 @@ * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ -package fr.ird.observe; +package fr.ird.observe.business; /** * Un contrat pour pouvoir propager les messages. diff --git a/observe-application-swing/src/main/java/fr/ird/observe/business/converter/FloatConverter.java b/observe-application-swing/src/main/java/fr/ird/observe/business/converter/FloatConverter.java new file mode 100644 index 0000000..6893018 --- /dev/null +++ b/observe-application-swing/src/main/java/fr/ird/observe/business/converter/FloatConverter.java @@ -0,0 +1,87 @@ +/* + * #%L + * MS-Access Importer + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2010 - 2011 IRD, Codelutin, Tony Chemit + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ +package fr.ird.observe.business.converter; + +import org.apache.commons.beanutils.ConversionException; +import org.nuiton.converter.NuitonConverter; + +import static org.nuiton.i18n.I18n.t; + +/** + * A float converter which is not dependant on user locale to obtain the locale + * {@code dot} representation. + * <p/> + * It can transform {@code 0.2} and also {@code 0, 2}. + * + * @author tchemit - chemit@codelutin.com + * @since 1.3 + */ +public class FloatConverter implements NuitonConverter { + + @Override + public Object convert(Class aClass, Object value) { + if (value == null) { + throw new ConversionException( + t("nuitonutil.error.convertor.noValue", this)); + } + if (isEnabled(aClass)) { + Object result; + if (isEnabled(value.getClass())) { + result = value; + return result; + } + if (value instanceof String) { + result = valueOf((String) value); + return result; + } + } + throw new ConversionException( + t("nuitonutil.error.no.convertor", aClass.getName(), value)); + } + + protected Float valueOf(String value) { + try { + if (value.contains(",")) { + value = value.replaceAll(",", "."); + } + Float result; + result = Float.valueOf(value); + return result; + } catch (NumberFormatException e) { + throw new ConversionException( + t("nuitonutil.error.float.convertor", value, this, e.getMessage())); + } + } + + + protected boolean isEnabled(Class<?> aClass) { + return Float.class.equals(aClass); + } + + @Override + public Class<Float> getType() { + return Float.class; + } +} diff --git a/observe-application-swing/src/main/java/fr/ird/observe/db/DataContext.java b/observe-application-swing/src/main/java/fr/ird/observe/business/db/DataContext.java similarity index 94% rename from observe-application-swing/src/main/java/fr/ird/observe/db/DataContext.java rename to observe-application-swing/src/main/java/fr/ird/observe/business/db/DataContext.java index 28603b1..37c06be 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/db/DataContext.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/business/db/DataContext.java @@ -1,4 +1,4 @@ -package fr.ird.observe.db; +package fr.ird.observe.business.db; /* * #%L @@ -22,8 +22,8 @@ package fr.ird.observe.db; * #L% */ -import fr.ird.observe.db.constants.DataContextType; -import fr.ird.observe.services.dto.AbstractObserveDto; +import fr.ird.observe.business.db.constants.DataContextType; +import fr.ird.observe.services.dto.IdDtos; import fr.ird.observe.services.dto.longline.ActivityLonglineDto; import fr.ird.observe.services.dto.longline.TripLonglineDto; import fr.ird.observe.services.dto.referential.ProgramDto; @@ -105,15 +105,15 @@ public class DataContext extends AbstractSerializableBean { protected boolean selectionChanged; - protected TripSeine validationTripSeine; + protected TripSeineDto validationTripSeine; - protected Route validationRoute; + protected RouteDto validationRoute; - protected ActivitySeine validationActivitySeine; + protected ActivitySeineDto validationActivitySeine; - protected SetSeine validationSetSeine; + protected SetSeineDto validationSetSeine; - protected FloatingObject validationFloatingObject; + protected FloatingObjectDto validationFloatingObject; /** Logger */ private static final Log log = LogFactory.getLog(DataContext.class); @@ -235,11 +235,11 @@ public class DataContext extends AbstractSerializableBean { } public boolean isSelectedTripLongline() { - return selectedTripId != null && Entities.isLonglineId(selectedTripId); + return selectedTripId != null && IdDtos.isLonglineId(selectedTripId); } public boolean isSelectedTripSeine() { - return selectedTripId != null && Entities.isSeineId(selectedTripId); + return selectedTripId != null && IdDtos.isSeineId(selectedTripId); } public String getSelectedRouteId() { @@ -265,11 +265,11 @@ public class DataContext extends AbstractSerializableBean { } public boolean isSelectedActivityLongline() { - return selectedActivityId != null && Entities.isLonglineId(selectedActivityId); + return selectedActivityId != null && IdDtos.isLonglineId(selectedActivityId); } public boolean isSelectedActivitySeine() { - return selectedActivityId != null && Entities.isSeineId(selectedActivityId); + return selectedActivityId != null && IdDtos.isSeineId(selectedActivityId); } public void setSelectedActivityId(String selectedActivityId) { @@ -463,11 +463,11 @@ public class DataContext extends AbstractSerializableBean { } public boolean isOpenTripLongline() { - return isOpenTrip() && Entities.isLonglineId(openTripId); + return isOpenTrip() && IdDtos.isLonglineId(openTripId); } public boolean isOpenTripSeine() { - return isOpenTrip() && Entities.isSeineId(openTripId); + return isOpenTrip() && IdDtos.isSeineId(openTripId); } public boolean isOpenRoute() { @@ -479,11 +479,11 @@ public class DataContext extends AbstractSerializableBean { } public boolean isOpenActivityLongline() { - return isOpenActivity() && Entities.isLonglineId(openActivityId); + return isOpenActivity() && IdDtos.isLonglineId(openActivityId); } public boolean isOpenActivitySeine() { - return isOpenActivity() && Entities.isSeineId(openActivityId); + return isOpenActivity() && IdDtos.isSeineId(openActivityId); } @@ -492,11 +492,11 @@ public class DataContext extends AbstractSerializableBean { } public boolean isOpenSetLongline() { - return isOpenSet() && Entities.isLonglineId(openSetId); + return isOpenSet() && IdDtos.isLonglineId(openSetId); } public boolean isOpenSetSeine() { - return isOpenSet() && Entities.isSeineId(openSetId); + return isOpenSet() && IdDtos.isSeineId(openSetId); } public boolean isSelectedOpen(Class<?> type) { diff --git a/observe-application-swing/src/main/java/fr/ird/observe/db/DataSource.java b/observe-application-swing/src/main/java/fr/ird/observe/business/db/DataSource.java similarity index 98% rename from observe-application-swing/src/main/java/fr/ird/observe/db/DataSource.java rename to observe-application-swing/src/main/java/fr/ird/observe/business/db/DataSource.java index 0a25edc..98aa6b8 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/db/DataSource.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/business/db/DataSource.java @@ -19,9 +19,9 @@ * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ -package fr.ird.observe.db; +package fr.ird.observe.business.db; -import fr.ird.observe.db.constants.DataSourceState; +import fr.ird.observe.business.db.constants.DataSourceState; import org.nuiton.util.version.Version; import java.io.File; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/db/DataSourceConfig.java b/observe-application-swing/src/main/java/fr/ird/observe/business/db/DataSourceConfig.java similarity index 96% rename from observe-application-swing/src/main/java/fr/ird/observe/db/DataSourceConfig.java rename to observe-application-swing/src/main/java/fr/ird/observe/business/db/DataSourceConfig.java index c082e06..7ce6315 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/db/DataSourceConfig.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/business/db/DataSourceConfig.java @@ -19,11 +19,11 @@ * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ -package fr.ird.observe.db; +package fr.ird.observe.business.db; -import fr.ird.observe.db.constants.CreationMode; -import fr.ird.observe.db.constants.DataPolicy; -import fr.ird.observe.db.constants.DataSourceState; +import fr.ird.observe.business.db.constants.CreationMode; +import fr.ird.observe.business.db.constants.DataPolicy; +import fr.ird.observe.business.db.constants.DataSourceState; import java.util.EnumSet; import java.util.Properties; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/db/DataSourceConfigParam.java b/observe-application-swing/src/main/java/fr/ird/observe/business/db/DataSourceConfigParam.java similarity index 97% copy from observe-application-swing/src/main/java/fr/ird/observe/db/DataSourceConfigParam.java copy to observe-application-swing/src/main/java/fr/ird/observe/business/db/DataSourceConfigParam.java index 2f1acd1..8002ce2 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/db/DataSourceConfigParam.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/business/db/DataSourceConfigParam.java @@ -19,7 +19,7 @@ * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ -package fr.ird.observe.db; +package fr.ird.observe.business.db; /** * Le contrat d'un paramètre de la configuration d'une source de données. diff --git a/observe-application-swing/src/main/java/fr/ird/observe/db/DataSourceException.java b/observe-application-swing/src/main/java/fr/ird/observe/business/db/DataSourceException.java similarity index 97% rename from observe-application-swing/src/main/java/fr/ird/observe/db/DataSourceException.java rename to observe-application-swing/src/main/java/fr/ird/observe/business/db/DataSourceException.java index 2782db7..4a970c0 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/db/DataSourceException.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/business/db/DataSourceException.java @@ -19,7 +19,7 @@ * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ -package fr.ird.observe.db; +package fr.ird.observe.business.db; /** * L'exception déclanché lors de l'accès aux méthodes de la source de données. diff --git a/observe-application-swing/src/main/java/fr/ird/observe/db/DataSourceFactory.java b/observe-application-swing/src/main/java/fr/ird/observe/business/db/DataSourceFactory.java similarity index 50% rename from observe-application-swing/src/main/java/fr/ird/observe/db/DataSourceFactory.java rename to observe-application-swing/src/main/java/fr/ird/observe/business/db/DataSourceFactory.java index 1a9961a..39838fb 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/db/DataSourceFactory.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/business/db/DataSourceFactory.java @@ -19,24 +19,11 @@ * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ -package fr.ird.observe.db; - -import fr.ird.observe.db.constants.CommonDataSourceConfigParam; -import fr.ird.observe.db.constants.CreationMode; -import fr.ird.observe.db.event.DataSourceEvent; -import fr.ird.observe.db.event.DataSourceListener; -import fr.ird.observe.db.event.DataSourceListenerAdapter; -import fr.ird.observe.db.impl.H2DataSource; -import fr.ird.observe.db.impl.H2DataSourceConfig; -import fr.ird.observe.db.impl.H2DataSourceConfigParam; -import fr.ird.observe.db.impl.PGDataSource; -import fr.ird.observe.db.impl.PGDataSourceConfig; -import fr.ird.observe.db.impl.PGDataSourceConfigParam; +package fr.ird.observe.business.db; + import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import java.io.File; -import java.net.URL; import java.util.Collections; import java.util.HashSet; import java.util.ServiceLoader; @@ -67,35 +54,37 @@ public class DataSourceFactory { * un ecouteur sur les services pour mettre à jour la liste des services * actifs */ - protected static final DataSourceListener l = - new DataSourceListenerAdapter() { - - @Override - public void onClosed(DataSourceEvent event) { - DataSource s = event.getSource(); - if (log.isDebugEnabled()) { - log.debug("remove active service " + s.getLabel()); - } - services.remove(s); - } - - @Override - public void onOpened(DataSourceEvent event) { - DataSource s = event.getSource(); - if (log.isDebugEnabled()) { - log.debug("add active service " + s.getLabel()); - } - services.add(s); - } - - @Override - public void onNewMessage(DataSourceEvent event) { - if (log.isInfoEnabled()) { - log.info(event.getMessage()); - } - } - }; - + //FIXME +// protected static final DataSourceListener l = +// new DataSourceListenerAdapter() { +// +// @Override +// public void onClosed(DataSourceEvent event) { +// DataSource s = event.getSource(); +// if (log.isDebugEnabled()) { +// log.debug("remove active service " + s.getLabel()); +// } +// services.remove(s); +// } +// +// @Override +// public void onOpened(DataSourceEvent event) { +// DataSource s = event.getSource(); +// if (log.isDebugEnabled()) { +// log.debug("add active service " + s.getLabel()); +// } +// services.add(s); +// } +// +// @Override +// public void onNewMessage(DataSourceEvent event) { +// if (log.isInfoEnabled()) { +// log.info(event.getMessage()); +// } +// } +// }; + + //FIXME // public static Version getDbVersion() { // if (ObserveServiceHelper.context != null) { // ApplicationConfig config; @@ -113,59 +102,64 @@ public class DataSourceFactory { * @param params les paramètres de la configuration * @return la configuration instanciée */ - public static H2DataSourceConfig newH2Config(String label, Object... params) { - - H2DataSourceConfig config = newConfig(label, - H2DataSourceConfig.class, - H2DataSource.class, - params - ); - - return config; - } +//FIXME +// public static H2DataSourceConfig newH2Config(String label, Object... params) { +// +// H2DataSourceConfig config = newConfig(label, +// H2DataSourceConfig.class, +// H2DataSource.class, +// params +// ); +// +// return config; +// } /** * @param label le label du service de persistance * @param params les paramètres de la configuration * @return la configuration instanciée */ - public static PGDataSourceConfig newPGConfig(String label, Object... params) { - - PGDataSourceConfig config = newConfig(label, - PGDataSourceConfig.class, - PGDataSource.class, - params - ); - - return config; - } - - public static PGDataSource newService(PGDataSourceConfig config) { - - PGDataSource service = newService(config, PGDataSource.class); - - return service; - } - - public static H2DataSource newService(H2DataSourceConfig config) { - - H2DataSource service = newService(config, H2DataSource.class); - - return service; - } - - public static DataSource newService(DataSourceConfig config) { +//FIXME +// public static PGDataSourceConfig newPGConfig(String label, Object... params) { +// +// PGDataSourceConfig config = newConfig(label, +// PGDataSourceConfig.class, +// PGDataSource.class, +// params +// ); +// +// return config; +// } - DataSource service = null; +//FIXME +// public static PGDataSource newService(PGDataSourceConfig config) { +// +// PGDataSource service = newService(config, PGDataSource.class); +// +// return service; +// } - if (config instanceof H2DataSourceConfig) { - service = newService((H2DataSourceConfig) config); - } else if (config instanceof PGDataSourceConfig) { - service = newService((PGDataSourceConfig) config); - } +//FIXME +// public static H2DataSource newService(H2DataSourceConfig config) { +// +// H2DataSource service = newService(config, H2DataSource.class); +// +// return service; +// } - return service; - } +//FIXME +// public static DataSource newService(DataSourceConfig config) { +// +// DataSource service = null; +// +// if (config instanceof H2DataSourceConfig) { +// service = newService((H2DataSourceConfig) config); +// } else if (config instanceof PGDataSourceConfig) { +// service = newService((PGDataSourceConfig) config); +// } +// +// return service; +// } /** * @param <C> le type de la configuration @@ -187,20 +181,21 @@ public class DataSourceFactory { return config; } - - public static <C extends DataSourceConfig, S extends DataSource> S - newService(C config, Class<S> serviceClass) { - - DataSourceProvider<C, S> provider = getProvider(config, serviceClass); - - S service = provider.newService(config); - - service.addDataSourceListener(l); - - service.init(); - - return service; - } +// +//FIXME +// public static <C extends DataSourceConfig, S extends DataSource> S +// newService(C config, Class<S> serviceClass) { +// +// DataSourceProvider<C, S> provider = getProvider(config, serviceClass); +// +// S service = provider.newService(config); +// +// service.addDataSourceListener(l); +// +// service.init(); +// +// return service; +// } public static Set<DataSourceProvider<?, ?>> getProversId() { if (proversId == null) { @@ -208,22 +203,22 @@ public class DataSourceFactory { } return proversId; } - - public static void dispose() throws DataSourceException { - if (log.isInfoEnabled()) { - log.info("close all services (" + services.size() + ')'); - } - - for (DataSource service : services) { - // on supprime le listener qui met a jour la liste de services - // sinon on entre en concurrence de modification - service.removeDataSourceListener(l); - if (service.isOpen()) { - service.doClose(false); - } - } - services.clear(); - } +//FIXME +// public static void dispose() throws DataSourceException { +// if (log.isInfoEnabled()) { +// log.info("close all services (" + services.size() + ')'); +// } +// +// for (DataSource service : services) { +// // on supprime le listener qui met a jour la liste de services +// // sinon on entre en concurrence de modification +// service.removeDataSourceListener(l); +// if (service.isOpen()) { +// service.doClose(false); +// } +// } +// services.clear(); +// } @SuppressWarnings("unchecked") protected static <C extends DataSourceConfig, S extends DataSource> @@ -289,20 +284,21 @@ public class DataSourceFactory { * @param password password to connect ot the storage * @return the instanciate config */ - public static H2DataSourceConfig newH2ConfigEmpty( - String label, - File dir, - String login, - char[] password) { - H2DataSourceConfig config = newH2Config( - label, - CommonDataSourceConfigParam.LOGIN, login, - CommonDataSourceConfigParam.PASSWORD, password, - CommonDataSourceConfigParam.CREATION_MODE, CreationMode.EMPTY, - H2DataSourceConfigParam.DIRECTORY, dir - ); - return config; - } +//FIXME +// public static H2DataSourceConfig newH2ConfigEmpty( +// String label, +// File dir, +// String login, +// char[] password) { +// H2DataSourceConfig config = newH2Config( +// label, +// CommonDataSourceConfigParam.LOGIN, login, +// CommonDataSourceConfigParam.PASSWORD, password, +// CommonDataSourceConfigParam.CREATION_MODE, CreationMode.EMPTY, +// H2DataSourceConfigParam.DIRECTORY, dir +// ); +// return config; +// } /** * Creates the config for a new local storage loaded from the given {@code @@ -316,24 +312,25 @@ public class DataSourceFactory { * @param canMigrate flag to migrate db if required * @return the instanciate config */ - public static H2DataSourceConfig newH2ConfigFromDump( - String label, - File dir, - URL dump, - String login, - char[] password, - boolean canMigrate) { - H2DataSourceConfig config = newH2Config( - label, - CommonDataSourceConfigParam.LOGIN, login, - CommonDataSourceConfigParam.PASSWORD, password, - CommonDataSourceConfigParam.CREATION_MODE, CreationMode.IMPORT_EXTERNAL_DUMP, - H2DataSourceConfigParam.DUMP, dump, - H2DataSourceConfigParam.DIRECTORY, dir, - CommonDataSourceConfigParam.CAN_MIGRATE, canMigrate - ); - return config; - } +//FIXME +// public static H2DataSourceConfig newH2ConfigFromDump( +// String label, +// File dir, +// URL dump, +// String login, +// char[] password, +// boolean canMigrate) { +// H2DataSourceConfig config = newH2Config( +// label, +// CommonDataSourceConfigParam.LOGIN, login, +// CommonDataSourceConfigParam.PASSWORD, password, +// CommonDataSourceConfigParam.CREATION_MODE, CreationMode.IMPORT_EXTERNAL_DUMP, +// H2DataSourceConfigParam.DUMP, dump, +// H2DataSourceConfigParam.DIRECTORY, dir, +// CommonDataSourceConfigParam.CAN_MIGRATE, canMigrate +// ); +// return config; +// } /** * Creates the config for an existing local storage with migration if @@ -346,21 +343,22 @@ public class DataSourceFactory { * @param canMigrate flag to update database * @return the instanciate config */ - public static H2DataSourceConfig newH2ConfigUseLocalStorage( - String label, - File dir, - String login, - char[] password, - boolean canMigrate) { - H2DataSourceConfig config = newH2Config( - label, - CommonDataSourceConfigParam.LOGIN, login, - CommonDataSourceConfigParam.PASSWORD, password, - H2DataSourceConfigParam.DIRECTORY, dir, - CommonDataSourceConfigParam.CAN_MIGRATE, canMigrate - ); - return config; - } +//FIXME +// public static H2DataSourceConfig newH2ConfigUseLocalStorage( +// String label, +// File dir, +// String login, +// char[] password, +// boolean canMigrate) { +// H2DataSourceConfig config = newH2Config( +// label, +// CommonDataSourceConfigParam.LOGIN, login, +// CommonDataSourceConfigParam.PASSWORD, password, +// H2DataSourceConfigParam.DIRECTORY, dir, +// CommonDataSourceConfigParam.CAN_MIGRATE, canMigrate +// ); +// return config; +// } /** * Creates the config for an new local storage with a copy of the @@ -375,24 +373,25 @@ public class DataSourceFactory { * @param canMigrate flag to allow migration * @return the instanciate config */ - public static H2DataSourceConfig newH2ConfigImportLocalStorage( - String label, - File dir, - H2DataSourceConfig importConfig, - String login, - char[] password, - boolean canMigrate) { - H2DataSourceConfig config = newH2Config( - label, - CommonDataSourceConfigParam.LOGIN, login, - CommonDataSourceConfigParam.PASSWORD, password, - CommonDataSourceConfigParam.CREATION_MODE, CreationMode.IMPORT_LOCAL_STORAGE, - H2DataSourceConfigParam.DIRECTORY, dir, - CommonDataSourceConfigParam.IMPORT_CONFIG, importConfig, - CommonDataSourceConfigParam.CAN_MIGRATE, canMigrate - ); - return config; - } +//FIXME +// public static H2DataSourceConfig newH2ConfigImportLocalStorage( +// String label, +// File dir, +// H2DataSourceConfig importConfig, +// String login, +// char[] password, +// boolean canMigrate) { +// H2DataSourceConfig config = newH2Config( +// label, +// CommonDataSourceConfigParam.LOGIN, login, +// CommonDataSourceConfigParam.PASSWORD, password, +// CommonDataSourceConfigParam.CREATION_MODE, CreationMode.IMPORT_LOCAL_STORAGE, +// H2DataSourceConfigParam.DIRECTORY, dir, +// CommonDataSourceConfigParam.IMPORT_CONFIG, importConfig, +// CommonDataSourceConfigParam.CAN_MIGRATE, canMigrate +// ); +// return config; +// } /** * Creates the config for an new local storage with a copy of the @@ -407,24 +406,25 @@ public class DataSourceFactory { * @param canMigrate flag to allow migration * @return the instanciate config */ - public static H2DataSourceConfig newH2ConfigImportRemoteStorage( - String label, - File dir, - PGDataSourceConfig importConfig, - String login, - char[] password, - boolean canMigrate) { - H2DataSourceConfig config = newH2Config( - label, - CommonDataSourceConfigParam.LOGIN, login, - CommonDataSourceConfigParam.PASSWORD, password, - CommonDataSourceConfigParam.CREATION_MODE, CreationMode.IMPORT_REMOTE_STORAGE, - H2DataSourceConfigParam.DIRECTORY, dir, - CommonDataSourceConfigParam.IMPORT_CONFIG, importConfig, - CommonDataSourceConfigParam.CAN_MIGRATE, canMigrate - ); - return config; - } +//FIXME +// public static H2DataSourceConfig newH2ConfigImportRemoteStorage( +// String label, +// File dir, +// PGDataSourceConfig importConfig, +// String login, +// char[] password, +// boolean canMigrate) { +// H2DataSourceConfig config = newH2Config( +// label, +// CommonDataSourceConfigParam.LOGIN, login, +// CommonDataSourceConfigParam.PASSWORD, password, +// CommonDataSourceConfigParam.CREATION_MODE, CreationMode.IMPORT_REMOTE_STORAGE, +// H2DataSourceConfigParam.DIRECTORY, dir, +// CommonDataSourceConfigParam.IMPORT_CONFIG, importConfig, +// CommonDataSourceConfigParam.CAN_MIGRATE, canMigrate +// ); +// return config; +// } /** * Creates a configuration to connect to a remote dn. @@ -436,21 +436,22 @@ public class DataSourceFactory { * @param canMigrate flag to allow migration * @return the new instanciated configuration */ - public static PGDataSourceConfig newPGConfig( - String dbName, - String login, - char[] password, - String url, - boolean canMigrate) { - - PGDataSourceConfig config = newPGConfig( - dbName, - CommonDataSourceConfigParam.LOGIN, login, - CommonDataSourceConfigParam.PASSWORD, password, - PGDataSourceConfigParam.URL, url, - CommonDataSourceConfigParam.CAN_MIGRATE, canMigrate - ); - - return config; - } +//FIXME +// public static PGDataSourceConfig newPGConfig( +// String dbName, +// String login, +// char[] password, +// String url, +// boolean canMigrate) { +// +// PGDataSourceConfig config = newPGConfig( +// dbName, +// CommonDataSourceConfigParam.LOGIN, login, +// CommonDataSourceConfigParam.PASSWORD, password, +// PGDataSourceConfigParam.URL, url, +// CommonDataSourceConfigParam.CAN_MIGRATE, canMigrate +// ); +// +// return config; +// } } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/db/DataSourceProvider.java b/observe-application-swing/src/main/java/fr/ird/observe/business/db/DataSourceProvider.java similarity index 98% rename from observe-application-swing/src/main/java/fr/ird/observe/db/DataSourceProvider.java rename to observe-application-swing/src/main/java/fr/ird/observe/business/db/DataSourceProvider.java index 769ba53..9c45b21 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/db/DataSourceProvider.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/business/db/DataSourceProvider.java @@ -19,7 +19,7 @@ * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ -package fr.ird.observe.db; +package fr.ird.observe.business.db; import fr.ird.observe.services.dto.migration.AbstractDataSourceMigrationDto; import org.hibernate.dialect.Dialect; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/db/constants/CommonDataSourceConfigParam.java b/observe-application-swing/src/main/java/fr/ird/observe/business/db/constants/CommonDataSourceConfigParam.java similarity index 95% rename from observe-application-swing/src/main/java/fr/ird/observe/db/constants/CommonDataSourceConfigParam.java rename to observe-application-swing/src/main/java/fr/ird/observe/business/db/constants/CommonDataSourceConfigParam.java index 5b6dbbf..a41bd4d 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/db/constants/CommonDataSourceConfigParam.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/business/db/constants/CommonDataSourceConfigParam.java @@ -19,10 +19,10 @@ * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ -package fr.ird.observe.db.constants; +package fr.ird.observe.business.db.constants; -import fr.ird.observe.db.DataSourceConfig; -import fr.ird.observe.db.DataSourceConfigParam; +import fr.ird.observe.business.db.DataSourceConfig; +import fr.ird.observe.business.db.DataSourceConfigParam; import org.hibernate.cfg.Environment; import org.nuiton.topia.migration.TopiaMigrationEngine; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/db/constants/ConnexionStatus.java b/observe-application-swing/src/main/java/fr/ird/observe/business/db/constants/ConnexionStatus.java similarity index 97% rename from observe-application-swing/src/main/java/fr/ird/observe/db/constants/ConnexionStatus.java rename to observe-application-swing/src/main/java/fr/ird/observe/business/db/constants/ConnexionStatus.java index f87c840..5ec2f9b 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/db/constants/ConnexionStatus.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/business/db/constants/ConnexionStatus.java @@ -19,7 +19,7 @@ * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ -package fr.ird.observe.db.constants; +package fr.ird.observe.business.db.constants; import static org.nuiton.i18n.I18n.n; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/db/constants/CreationMode.java b/observe-application-swing/src/main/java/fr/ird/observe/business/db/constants/CreationMode.java similarity index 98% rename from observe-application-swing/src/main/java/fr/ird/observe/db/constants/CreationMode.java rename to observe-application-swing/src/main/java/fr/ird/observe/business/db/constants/CreationMode.java index f82178b..c7be632 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/db/constants/CreationMode.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/business/db/constants/CreationMode.java @@ -19,7 +19,7 @@ * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ -package fr.ird.observe.db.constants; +package fr.ird.observe.business.db.constants; import static org.nuiton.i18n.I18n.n; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/db/constants/DataContextType.java b/observe-application-swing/src/main/java/fr/ird/observe/business/db/constants/DataContextType.java similarity index 92% rename from observe-application-swing/src/main/java/fr/ird/observe/db/constants/DataContextType.java rename to observe-application-swing/src/main/java/fr/ird/observe/business/db/constants/DataContextType.java index 054fa62..3c8b0dd 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/db/constants/DataContextType.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/business/db/constants/DataContextType.java @@ -19,9 +19,9 @@ * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ -package fr.ird.observe.db.constants; +package fr.ird.observe.business.db.constants; -import fr.ird.observe.db.DataContext; +import fr.ird.observe.business.db.DataContext; import fr.ird.observe.services.dto.longline.ActivityLonglineDto; import fr.ird.observe.services.dto.longline.SetLonglineDto; import fr.ird.observe.services.dto.longline.TripLonglineDto; @@ -42,7 +42,7 @@ import fr.ird.observe.services.dto.seine.TripSeineDto; */ public enum DataContextType { - Program(Program.class, DataContext.PROPERTY_OPEN_PROGRAM) { + Program(ProgramDto.class, DataContext.PROPERTY_OPEN_PROGRAM) { @Override public boolean isOpen(DataContext context) { return context.isOpenProgram(); @@ -69,7 +69,7 @@ public enum DataContextType { } }, - TripSeine(TripSeine.class, DataContext.PROPERTY_OPEN_TRIP) { + TripSeine(TripSeineDto.class, DataContext.PROPERTY_OPEN_TRIP) { @Override public boolean isOpen(DataContext context) { return context.isOpenTripSeine(); @@ -96,7 +96,7 @@ public enum DataContextType { } }, - TripLongline(TripLongline.class, DataContext.PROPERTY_OPEN_TRIP) { + TripLongline(TripLonglineDto.class, DataContext.PROPERTY_OPEN_TRIP) { @Override public boolean isOpen(DataContext context) { return context.isOpenTripLongline(); @@ -123,7 +123,7 @@ public enum DataContextType { } }, - Route(Route.class, DataContext.PROPERTY_OPEN_ROUTE) { + Route(RouteDto.class, DataContext.PROPERTY_OPEN_ROUTE) { @Override public boolean isOpen(DataContext context) { return context.isOpenRoute(); @@ -150,7 +150,7 @@ public enum DataContextType { } }, - ActivitySeine(ActivitySeine.class, DataContext.PROPERTY_OPEN_ACTIVITY) { + ActivitySeine(ActivitySeineDto.class, DataContext.PROPERTY_OPEN_ACTIVITY) { @Override public boolean isOpen(DataContext context) { return context.isOpenActivityLongline(); @@ -177,7 +177,7 @@ public enum DataContextType { } }, - ActivityLongline(ActivityLongline.class, DataContext.PROPERTY_OPEN_ACTIVITY) { + ActivityLongline(ActivityLonglineDto.class, DataContext.PROPERTY_OPEN_ACTIVITY) { @Override public boolean isOpen(DataContext context) { return context.isOpenActivityLongline(); @@ -204,7 +204,7 @@ public enum DataContextType { } }, - SetSeine(SetSeine.class, DataContext.PROPERTY_OPEN_SET) { + SetSeine(SetSeineDto.class, DataContext.PROPERTY_OPEN_SET) { @Override public boolean isOpen(DataContext context) { return context.isOpenSetSeine(); @@ -231,7 +231,7 @@ public enum DataContextType { } }, - SetLongline(SetLongline.class, DataContext.PROPERTY_OPEN_SET) { + SetLongline(SetLonglineDto.class, DataContext.PROPERTY_OPEN_SET) { @Override public boolean isOpen(DataContext context) { return context.isOpenSetLongline(); @@ -258,7 +258,7 @@ public enum DataContextType { } }, - FloatingObject(FloatingObject.class, null) { + FloatingObject(FloatingObjectDto.class, null) { @Override public String getSelectedId(DataContext context) { return context.getSelectedFloatingObjectId(); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/db/constants/DataPolicy.java b/observe-application-swing/src/main/java/fr/ird/observe/business/db/constants/DataPolicy.java similarity index 97% rename from observe-application-swing/src/main/java/fr/ird/observe/db/constants/DataPolicy.java rename to observe-application-swing/src/main/java/fr/ird/observe/business/db/constants/DataPolicy.java index 6cd2673..6ebb3db 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/db/constants/DataPolicy.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/business/db/constants/DataPolicy.java @@ -19,7 +19,7 @@ * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ -package fr.ird.observe.db.constants; +package fr.ird.observe.business.db.constants; import static org.nuiton.i18n.I18n.n; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/db/constants/DataSourceState.java b/observe-application-swing/src/main/java/fr/ird/observe/business/db/constants/DataSourceState.java similarity index 95% rename from observe-application-swing/src/main/java/fr/ird/observe/db/constants/DataSourceState.java rename to observe-application-swing/src/main/java/fr/ird/observe/business/db/constants/DataSourceState.java index 46bb8c6..0ec4987 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/db/constants/DataSourceState.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/business/db/constants/DataSourceState.java @@ -19,7 +19,7 @@ * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ -package fr.ird.observe.db.constants; +package fr.ird.observe.business.db.constants; /** * Pour qualifier l'état d'un storageService. diff --git a/observe-application-swing/src/main/java/fr/ird/observe/db/constants/DbMode.java b/observe-application-swing/src/main/java/fr/ird/observe/business/db/constants/DbMode.java similarity index 97% rename from observe-application-swing/src/main/java/fr/ird/observe/db/constants/DbMode.java rename to observe-application-swing/src/main/java/fr/ird/observe/business/db/constants/DbMode.java index 23053b9..31d697e 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/db/constants/DbMode.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/business/db/constants/DbMode.java @@ -19,7 +19,7 @@ * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ -package fr.ird.observe.db.constants; +package fr.ird.observe.business.db.constants; import static org.nuiton.i18n.I18n.n; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/business/decorator/LengthWeightParameterDecorator.java b/observe-application-swing/src/main/java/fr/ird/observe/business/decorator/LengthWeightParameterDecorator.java new file mode 100644 index 0000000..b1ac795 --- /dev/null +++ b/observe-application-swing/src/main/java/fr/ird/observe/business/decorator/LengthWeightParameterDecorator.java @@ -0,0 +1,89 @@ +/* + * #%L + * ObServe :: Business + * %% + * Copyright (C) 2008 - 2011 IRD, Codelutin, Tony Chemit + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ +package fr.ird.observe.business.decorator; + +import fr.ird.observe.services.dto.referential.LengthWeightParameterDto; +import org.apache.commons.jxpath.JXPathContext; + +import static org.nuiton.i18n.I18n.t; + +/** + * Decorator of {@link LengthWeightParameterDto}. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 2.4 + */ +public class LengthWeightParameterDecorator extends ObserveDecorator<LengthWeightParameterDto> { + + private static final long serialVersionUID = 1L; + + private final String libelle; + + public LengthWeightParameterDecorator(String libelle) throws IllegalArgumentException, NullPointerException { + super(LengthWeightParameterDto.class, + "${gender}$s##${ocean/" + libelle + "}$s##${species/scientificLabel}$s##" + + t("observe.common.lengthWeightFormula") + " ${lengthWeightFormula}$s" + ); + this.libelle = libelle; + } + + @SuppressWarnings({"unchecked"}) + @Override + protected Comparable<Comparable<?>> getTokenValue( + JXPathContext jxcontext, String token) { + Object value; +// if (token.equals("ocean/" + libelle)) { +// try { +// value = super.getTokenValue(jxcontext, +// token); +// } catch (JXPathNotFoundException e) { +// value = t("observe.common.inconnu"); +// } +// value = t("observe.common.ocean") + ' ' + value; +// } else { + + value = super.getTokenValue(jxcontext, token); + if (token.equals("species/scientificLabel") + && "xx".equals(value)) { + value = super.getTokenValue(jxcontext, + "species/" + + libelle); + } + if (token.equals("sex")) { + value = super.getTokenValue(jxcontext, + "sex/" + + libelle); + value = t("observe.common.sex") + ' ' + + value; + } +// } + return (Comparable<Comparable<?>>) value; + } + + @Override + protected Comparable<?> getDefaultUndefinedValue(String token) { + if (token.startsWith("ocean")) { + return t("observe.common.inconnu"); + } + return super.getDefaultUndefinedValue(token); + } +} diff --git a/observe-application-swing/src/main/java/fr/ird/observe/business/decorator/NonTargetCatchDecorator.java b/observe-application-swing/src/main/java/fr/ird/observe/business/decorator/NonTargetCatchDecorator.java new file mode 100644 index 0000000..16daae6 --- /dev/null +++ b/observe-application-swing/src/main/java/fr/ird/observe/business/decorator/NonTargetCatchDecorator.java @@ -0,0 +1,56 @@ +/* + * #%L + * ObServe :: Business + * %% + * Copyright (C) 2008 - 2011 IRD, Codelutin, Tony Chemit + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ +package fr.ird.observe.business.decorator; + +import fr.ird.observe.services.dto.seine.NonTargetCatchDto; +import org.apache.commons.jxpath.JXPathContext; + +/** + * Decorator of {@link NonTargetCatchDto}. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 2.4 + */ +public class NonTargetCatchDecorator extends ObserveDecorator<NonTargetCatchDto> { + + private static final long serialVersionUID = 1L; + + private final String libelle; + + public NonTargetCatchDecorator(String libelle) { + super(NonTargetCatchDto.class, + "${species/scientificLabel}$s##${speciesFate/" + libelle + "}$s" + ); + this.libelle = libelle; + } + + @Override + protected Comparable<Comparable<?>> getTokenValue(JXPathContext jxcontext, + String token) { + Comparable<Comparable<?>> value = super.getTokenValue(jxcontext, token); + if (token.equals("species/scientificLabel") && + "xx".equals(String.valueOf(value))) { + value = super.getTokenValue(jxcontext, "species/" + libelle); + } + return value; + } +} diff --git a/observe-application-swing/src/main/java/fr/ird/observe/business/decorator/NonTargetLengthDecorator.java b/observe-application-swing/src/main/java/fr/ird/observe/business/decorator/NonTargetLengthDecorator.java new file mode 100644 index 0000000..ff736e7 --- /dev/null +++ b/observe-application-swing/src/main/java/fr/ird/observe/business/decorator/NonTargetLengthDecorator.java @@ -0,0 +1,63 @@ +/* + * #%L + * ObServe :: Business + * %% + * Copyright (C) 2008 - 2011 IRD, Codelutin, Tony Chemit + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ +package fr.ird.observe.business.decorator; + +import fr.ird.observe.services.dto.seine.NonTargetLengthDto; +import org.apache.commons.jxpath.JXPathContext; + +/** + * Decorator of {@link NonTargetLengthDto}. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 2.4 + */ +public class NonTargetLengthDecorator extends ObserveDecorator<NonTargetLengthDto> { + + private static final long serialVersionUID = 1L; + + private final String libelle; + + public NonTargetLengthDecorator(String libelle) throws IllegalArgumentException, NullPointerException { + super(NonTargetLengthDto.class, + "${species/scientificLabel}$s##${length}$f##${gender}$s" + ); + this.libelle = libelle; + } + + @SuppressWarnings({"unchecked"}) + @Override + protected Comparable<Comparable<?>> getTokenValue( + JXPathContext jxcontext, String token) { + Comparable<?> value = + super.getTokenValue(jxcontext, token); + if (token.equals("species/scientificLabel") && + "xx".equals(value)) { + value = super.getTokenValue(jxcontext, "species/" + libelle); + } + if ("sex".equals(token)) { + value = super.getTokenValue(jxcontext, "sex/" + libelle); + } + return (Comparable<Comparable<?>>) value; + } + + +} diff --git a/observe-application-swing/src/main/java/fr/ird/observe/business/decorator/ObjectObservedSpeciesDecorator.java b/observe-application-swing/src/main/java/fr/ird/observe/business/decorator/ObjectObservedSpeciesDecorator.java new file mode 100644 index 0000000..74850ed --- /dev/null +++ b/observe-application-swing/src/main/java/fr/ird/observe/business/decorator/ObjectObservedSpeciesDecorator.java @@ -0,0 +1,54 @@ +/* + * #%L + * ObServe :: Business + * %% + * Copyright (C) 2008 - 2011 IRD, Codelutin, Tony Chemit + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ +package fr.ird.observe.business.decorator; + +import fr.ird.observe.services.dto.seine.ObjectObservedSpeciesDto; +import org.apache.commons.jxpath.JXPathContext; + +/** + * Decorator of {@link ObjectObservedSpeciesDto}. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 2.4 + */ +public class ObjectObservedSpeciesDecorator extends ObserveDecorator<ObjectObservedSpeciesDto> { + + private static final long serialVersionUID = 1L; + + private final String libelle; + + public ObjectObservedSpeciesDecorator(String libelle) { + super(ObjectObservedSpeciesDto.class, + "${species/scientificLabel}$s##${speciesStatus/" + libelle + "}$s##${count}$d" + ); + this.libelle = libelle; + } + + @Override + protected Comparable<Comparable<?>> getTokenValue(JXPathContext jxcontext, String token) { + Comparable<Comparable<?>> value = super.getTokenValue(jxcontext, token); + if (token.equals("species/scientificLabel") && "xx".equals(String.valueOf(value))) { + value = super.getTokenValue(jxcontext, "species/" + libelle); + } + return value; + } +} diff --git a/observe-application-swing/src/main/java/fr/ird/observe/business/decorator/ObserveDecorator.java b/observe-application-swing/src/main/java/fr/ird/observe/business/decorator/ObserveDecorator.java new file mode 100644 index 0000000..9995bfc --- /dev/null +++ b/observe-application-swing/src/main/java/fr/ird/observe/business/decorator/ObserveDecorator.java @@ -0,0 +1,91 @@ +/* + * #%L + * ObServe :: Business + * %% + * Copyright (C) 2008 - 2011 IRD, Codelutin, Tony Chemit + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ +package fr.ird.observe.business.decorator; + +import org.apache.commons.jxpath.JXPathContext; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.nuiton.decorator.MultiJXPathDecorator; + +import static org.nuiton.i18n.I18n.t; + +/** + * Abstract decorator for any complex decorator. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 2.4 + */ +public abstract class ObserveDecorator<E> extends MultiJXPathDecorator<E> implements Cloneable { + private static final long serialVersionUID = 1L; + + /** Logger. */ + private static final Log log = LogFactory.getLog(ObserveDecorator.class); + + public static final String DEFAULT_SEPARATOR = "##"; + + public static final String DEFAULT_SEPARATOR_REPLACEMENT = " - "; + + protected ObserveDecorator(Class<E> internalClass, String expression) { + super(internalClass, expression, DEFAULT_SEPARATOR, + DEFAULT_SEPARATOR_REPLACEMENT); + } + + + @Override + public final Object clone() throws CloneNotSupportedException { + Object clone = super.clone(); + return clone; + } + + protected Comparable<Comparable<?>> getTokenValue(JXPathContext jxcontext, + String token) { + // assume all values are comparable + Comparable<Comparable<?>> value; + try { + value = (Comparable<Comparable<?>>) jxcontext.getValue(token); + if (value == null) { + value = (Comparable<Comparable<?>>) getDefaultNullValue(token); + } + + } catch (Exception e) { + value = (Comparable<Comparable<?>>) getDefaultUndefinedValue(token); + } + + return value; + } + + protected Comparable<?> getDefaultUndefinedValue(String token) { + if (log.isWarnEnabled()) { + log.warn("No defined value for token [" + token + "]"); + } + return t("observe.common.none"); + } + + protected Comparable<?> getDefaultNullValue(String token) { + if (log.isWarnEnabled()) { + log.warn("Null value for token [" + token + "]"); + } + return t("observe.common.none"); + } + + +} diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ObserveTechnicalException.java b/observe-application-swing/src/main/java/fr/ird/observe/business/decorator/ReferenceDecorator.java similarity index 61% copy from observe-application-swing/src/main/java/fr/ird/observe/ObserveTechnicalException.java copy to observe-application-swing/src/main/java/fr/ird/observe/business/decorator/ReferenceDecorator.java index 7eb30b0..0aeec5c 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ObserveTechnicalException.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/business/decorator/ReferenceDecorator.java @@ -1,4 +1,4 @@ -package fr.ird.observe; +package fr.ird.observe.business.decorator; /* * #%L @@ -22,29 +22,27 @@ package fr.ird.observe; * #L% */ +import fr.ird.observe.services.dto.referential.ReferentialDto; + +import static org.nuiton.i18n.I18n.t; + /** - * Created on 8/30/14. + * Created on 7/26/14. * * @author Tony Chemit - chemit@codelutin.com - * @since 3.7 + * @since 3.6 */ -public class ObserveTechnicalException extends RuntimeException { +public class ReferenceDecorator<R extends ReferentialDto> extends ObserveDecorator<R> { private static final long serialVersionUID = 1L; - public ObserveTechnicalException() { - } - - public ObserveTechnicalException(String message) { - super(message); - } - - public ObserveTechnicalException(String message, Throwable cause) { - super(message, cause); + public ReferenceDecorator(Class<R> type, String expression) { + super(type, expression); } - public ObserveTechnicalException(Throwable cause) { - super(cause); + @Override + protected Comparable<?> getDefaultNullValue(String token) { + return ReferentialDto.PROPERTY_CODE.equals(token) ? t("observe.common.nocode") : super.getDefaultNullValue(token); } -} +} \ No newline at end of file diff --git a/observe-application-swing/src/main/java/fr/ird/observe/business/decorator/SpeciesDecorator.java b/observe-application-swing/src/main/java/fr/ird/observe/business/decorator/SpeciesDecorator.java new file mode 100644 index 0000000..3951478 --- /dev/null +++ b/observe-application-swing/src/main/java/fr/ird/observe/business/decorator/SpeciesDecorator.java @@ -0,0 +1,71 @@ +/* + * #%L + * ObServe :: Business + * %% + * Copyright (C) 2008 - 2011 IRD, Codelutin, Tony Chemit + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ +package fr.ird.observe.business.decorator; + +import fr.ird.observe.services.dto.referential.SpeciesDto; +import org.apache.commons.jxpath.JXPathContext; + +import static org.nuiton.i18n.I18n.n; + +/** + * Decorator of {@link SpeciesDto}. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 2.4 + */ +public class SpeciesDecorator extends ObserveDecorator<SpeciesDto> { + + private static final long serialVersionUID = 1L; + + private final String libelle; + + static { + + // pour avoir les traduction sur le nom de la propriété + + n("observe.common.faoCode"); + n("observe.common.species/scientificLabel"); + n("observe.common.scientificLabel"); + n("observe.common.homeId"); + + + } + + + public SpeciesDecorator(String libelle, String oldCode) { + super(SpeciesDto.class, + "${faoCode}$s##${scientificLabel}$s##" + oldCode + " ${homeId}$s" + ); + this.libelle = libelle; + } + + @Override + protected Comparable<Comparable<?>> getTokenValue(JXPathContext jxcontext, String token) { + Comparable<?> value; + value = super.getTokenValue(jxcontext, token); + if (token.equals(SpeciesDto.PROPERTY_SCIENTIFIC_LABEL) && "xx".equals(value)) { + value = super.getTokenValue(jxcontext, libelle); + } + return (Comparable<Comparable<?>>) value; + } + +} diff --git a/observe-application-swing/src/main/java/fr/ird/observe/db/DataSourceConfigParam.java b/observe-application-swing/src/main/java/fr/ird/observe/business/decorator/TripLonglineDecorator.java similarity index 55% copy from observe-application-swing/src/main/java/fr/ird/observe/db/DataSourceConfigParam.java copy to observe-application-swing/src/main/java/fr/ird/observe/business/decorator/TripLonglineDecorator.java index 2f1acd1..b7830ce 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/db/DataSourceConfigParam.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/business/decorator/TripLonglineDecorator.java @@ -2,7 +2,7 @@ * #%L * ObServe :: Business * %% - * Copyright (C) 2008 - 2010 IRD, Codelutin, Tony Chemit + * Copyright (C) 2008 - 2011 IRD, Codelutin, Tony Chemit * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as @@ -19,25 +19,24 @@ * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ -package fr.ird.observe.db; +package fr.ird.observe.business.decorator; + +import fr.ird.observe.services.dto.longline.TripLonglineDto; /** - * Le contrat d'un paramètre de la configuration d'une source de données. + * Decorator of {@link TripLonglineDto}. * * @author Tony Chemit - chemit@codelutin.com - * @since 1.4 + * @since 4.0 */ -public interface DataSourceConfigParam { +public class TripLonglineDecorator extends ObserveDecorator<TripLonglineDto> { - /** - * @return le lastName de la clef utilisée pour stocker la valeur de la - * propriété. - */ - String getMapName(); + private static final long serialVersionUID = 1L; - /** @return le lastName de la propriété. */ - String getPropertyName(); + public TripLonglineDecorator(String libelle) throws IllegalArgumentException, NullPointerException { + super(TripLonglineDto.class, + "${startDate}$td/%1$tm/%1$tY##${endDate}$td/%2$tm/%2$tY##${vessel/" + libelle + "}$s##${observerLabel}$s" + ); + } - /** @return le type de la propriété. */ - Class<?> getType(); } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/db/DataSourceConfigParam.java b/observe-application-swing/src/main/java/fr/ird/observe/business/decorator/TripSeineDecorator.java similarity index 56% rename from observe-application-swing/src/main/java/fr/ird/observe/db/DataSourceConfigParam.java rename to observe-application-swing/src/main/java/fr/ird/observe/business/decorator/TripSeineDecorator.java index 2f1acd1..f618b52 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/db/DataSourceConfigParam.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/business/decorator/TripSeineDecorator.java @@ -2,7 +2,7 @@ * #%L * ObServe :: Business * %% - * Copyright (C) 2008 - 2010 IRD, Codelutin, Tony Chemit + * Copyright (C) 2008 - 2011 IRD, Codelutin, Tony Chemit * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as @@ -19,25 +19,25 @@ * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ -package fr.ird.observe.db; +package fr.ird.observe.business.decorator; + + +import fr.ird.observe.services.dto.seine.TripSeineDto; /** - * Le contrat d'un paramètre de la configuration d'une source de données. + * Decorator of {@link TripSeineDto}. * * @author Tony Chemit - chemit@codelutin.com - * @since 1.4 + * @since 2.4 */ -public interface DataSourceConfigParam { +public class TripSeineDecorator extends ObserveDecorator<TripSeineDto> { - /** - * @return le lastName de la clef utilisée pour stocker la valeur de la - * propriété. - */ - String getMapName(); + private static final long serialVersionUID = 1L; - /** @return le lastName de la propriété. */ - String getPropertyName(); + public TripSeineDecorator(String libelle) throws IllegalArgumentException, NullPointerException { + super(TripSeineDto.class, + "${startDate}$td/%1$tm/%1$tY##${endDate}$td/%2$tm/%2$tY##${vessel/" + libelle + "}$s##${observerLabel}$s" + ); + } - /** @return le type de la propriété. */ - Class<?> getType(); } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/business/gps/CoordinateHelper.java b/observe-application-swing/src/main/java/fr/ird/observe/business/gps/CoordinateHelper.java new file mode 100644 index 0000000..a01f6e2 --- /dev/null +++ b/observe-application-swing/src/main/java/fr/ird/observe/business/gps/CoordinateHelper.java @@ -0,0 +1,55 @@ +/* + * #%L + * ObServe :: Entities + * %% + * Copyright (C) 2010 - 2011 IRD, Codelutin, Tony Chemit + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ +package fr.ird.observe.business.gps; + +/** + * Helper to deal with coordinates. + * + * @author tchemit - chemit@codelutin.com + * @since 1.2 + */ +public class CoordinateHelper { + + /** + * Calcule le quadrant à partir d'une {@code longitude} et {@code latitude}. + * + * @param longitude la longitude décimale + * @param latitude la latitude décimale + * @return la valeur du quadrant ou {@code null} si l'une des deux + * coordonnées est {@code null}. + * @since 1.2 + */ + public static Integer getQuadrant(Float longitude, Float latitude) { + if (longitude == null || latitude == null) { + return null; + } + int result; + + if (latitude > 0) { + result = longitude > 0 ? 1 : 4; + } else { + result = longitude > 0 ? 2 : 3; + } + return result; + } + +} diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ObserveTechnicalException.java b/observe-application-swing/src/main/java/fr/ird/observe/business/gps/GPSAble.java similarity index 54% rename from observe-application-swing/src/main/java/fr/ird/observe/ObserveTechnicalException.java rename to observe-application-swing/src/main/java/fr/ird/observe/business/gps/GPSAble.java index 7eb30b0..e9f126f 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ObserveTechnicalException.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/business/gps/GPSAble.java @@ -1,8 +1,8 @@ -package fr.ird.observe; +package fr.ird.observe.business.gps; /* * #%L - * ObServe :: Business + * ObServe :: Entities * %% * Copyright (C) 2008 - 2014 IRD, Codelutin, Tony Chemit * %% @@ -22,29 +22,38 @@ package fr.ird.observe; * #L% */ -/** - * Created on 8/30/14. - * - * @author Tony Chemit - chemit@codelutin.com - * @since 3.7 - */ -public class ObserveTechnicalException extends RuntimeException { +import java.util.Date; + +public interface GPSAble { + +// String PROPERTY_QUADRANT = "quadrant"; + + String PROPERTY_LATITUDE = "latitude"; + + String PROPERTY_LONGITUDE = "longitude"; + + String PROPERTY_VITESSE = "vitesse"; + + String PROPERTY_TIME = "time"; + + Integer getQuadrant(); + + void setQuadrant(Integer quadrant); + + Float getLatitude(); + + void setLatitude(Float latitude); + + Float getLongitude(); - private static final long serialVersionUID = 1L; + void setLongitude(Float longitude); - public ObserveTechnicalException() { - } + Float getVitesse(); - public ObserveTechnicalException(String message) { - super(message); - } + void setVitesse(Float vitesse); - public ObserveTechnicalException(String message, Throwable cause) { - super(message, cause); - } + Date getTime(); - public ObserveTechnicalException(Throwable cause) { - super(cause); - } + void setTime(Date time); -} +} //GPSAble diff --git a/observe-application-swing/src/main/java/fr/ird/observe/gps/GPSFileReader.java b/observe-application-swing/src/main/java/fr/ird/observe/business/gps/GPSFileReader.java similarity index 99% rename from observe-application-swing/src/main/java/fr/ird/observe/gps/GPSFileReader.java rename to observe-application-swing/src/main/java/fr/ird/observe/business/gps/GPSFileReader.java index 7f78c43..525791a 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/gps/GPSFileReader.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/business/gps/GPSFileReader.java @@ -19,7 +19,7 @@ * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ -package fr.ird.observe.gps; +package fr.ird.observe.business.gps; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.logging.Log; diff --git a/observe-entities/src/main/java/fr/ird/observe/gps/GPSPoint.java b/observe-application-swing/src/main/java/fr/ird/observe/business/gps/GPSPoint.java similarity index 98% copy from observe-entities/src/main/java/fr/ird/observe/gps/GPSPoint.java copy to observe-application-swing/src/main/java/fr/ird/observe/business/gps/GPSPoint.java index 4d256ad..7b9cfe8 100644 --- a/observe-entities/src/main/java/fr/ird/observe/gps/GPSPoint.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/business/gps/GPSPoint.java @@ -1,4 +1,4 @@ -package fr.ird.observe.gps; +package fr.ird.observe.business.gps; /* * #%L @@ -22,8 +22,6 @@ package fr.ird.observe.gps; * #L% */ -import fr.ird.observe.entities.GPSAble; - import java.beans.PropertyChangeListener; import java.beans.PropertyChangeSupport; import java.io.Serializable; diff --git a/observe-entities/src/main/java/fr/ird/observe/gps/GPSPointImpl.java b/observe-application-swing/src/main/java/fr/ird/observe/business/gps/GPSPointImpl.java similarity index 95% copy from observe-entities/src/main/java/fr/ird/observe/gps/GPSPointImpl.java copy to observe-application-swing/src/main/java/fr/ird/observe/business/gps/GPSPointImpl.java index 22bde71..8425091 100644 --- a/observe-entities/src/main/java/fr/ird/observe/gps/GPSPointImpl.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/business/gps/GPSPointImpl.java @@ -19,10 +19,7 @@ * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ -package fr.ird.observe.gps; - -import fr.ird.observe.entities.GPSAble; -import fr.ird.type.CoordinateHelper; +package fr.ird.observe.business.gps; /** * @author Tony Chemit - chemit@codelutin.com diff --git a/observe-entities/src/main/java/fr/ird/observe/gps/GPSPointInterval.java b/observe-application-swing/src/main/java/fr/ird/observe/business/gps/GPSPointInterval.java similarity index 99% copy from observe-entities/src/main/java/fr/ird/observe/gps/GPSPointInterval.java copy to observe-application-swing/src/main/java/fr/ird/observe/business/gps/GPSPointInterval.java index 84942e2..f1f92d2 100644 --- a/observe-entities/src/main/java/fr/ird/observe/gps/GPSPointInterval.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/business/gps/GPSPointInterval.java @@ -1,4 +1,4 @@ -package fr.ird.observe.gps; +package fr.ird.observe.business.gps; /* * #%L diff --git a/observe-entities/src/main/java/fr/ird/observe/gps/GPSPointIntervalImpl.java b/observe-application-swing/src/main/java/fr/ird/observe/business/gps/GPSPointIntervalImpl.java similarity index 98% copy from observe-entities/src/main/java/fr/ird/observe/gps/GPSPointIntervalImpl.java copy to observe-application-swing/src/main/java/fr/ird/observe/business/gps/GPSPointIntervalImpl.java index 15dbd56..a1c22c7 100644 --- a/observe-entities/src/main/java/fr/ird/observe/gps/GPSPointIntervalImpl.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/business/gps/GPSPointIntervalImpl.java @@ -19,7 +19,7 @@ * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ -package fr.ird.observe.gps; +package fr.ird.observe.business.gps; import java.util.Date; diff --git a/observe-entities/src/main/java/fr/ird/observe/gps/GPSRoute.java b/observe-application-swing/src/main/java/fr/ird/observe/business/gps/GPSRoute.java similarity index 99% copy from observe-entities/src/main/java/fr/ird/observe/gps/GPSRoute.java copy to observe-application-swing/src/main/java/fr/ird/observe/business/gps/GPSRoute.java index f60dfe1..166ebd4 100644 --- a/observe-entities/src/main/java/fr/ird/observe/gps/GPSRoute.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/business/gps/GPSRoute.java @@ -1,4 +1,4 @@ -package fr.ird.observe.gps; +package fr.ird.observe.business.gps; /* * #%L diff --git a/observe-entities/src/main/java/fr/ird/observe/gps/GPSRouteImpl.java b/observe-application-swing/src/main/java/fr/ird/observe/business/gps/GPSRouteImpl.java similarity index 99% copy from observe-entities/src/main/java/fr/ird/observe/gps/GPSRouteImpl.java copy to observe-application-swing/src/main/java/fr/ird/observe/business/gps/GPSRouteImpl.java index 9a14284..485c4e1 100644 --- a/observe-entities/src/main/java/fr/ird/observe/gps/GPSRouteImpl.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/business/gps/GPSRouteImpl.java @@ -19,7 +19,7 @@ * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ -package fr.ird.observe.gps; +package fr.ird.observe.business.gps; import java.util.Date; import java.util.List; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/gps/GPSService.java b/observe-application-swing/src/main/java/fr/ird/observe/business/gps/GPSService.java similarity index 98% rename from observe-application-swing/src/main/java/fr/ird/observe/gps/GPSService.java rename to observe-application-swing/src/main/java/fr/ird/observe/business/gps/GPSService.java index 139323b..b33ae29 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/gps/GPSService.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/business/gps/GPSService.java @@ -19,7 +19,7 @@ * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ -package fr.ird.observe.gps; +package fr.ird.observe.business.gps; import java.io.File; diff --git a/observe-entities/src/main/java/fr/ird/observe/gps/GpsPoints.java b/observe-application-swing/src/main/java/fr/ird/observe/business/gps/GpsPoints.java similarity index 96% copy from observe-entities/src/main/java/fr/ird/observe/gps/GpsPoints.java copy to observe-application-swing/src/main/java/fr/ird/observe/business/gps/GpsPoints.java index 132d711..6434ccd 100644 --- a/observe-entities/src/main/java/fr/ird/observe/gps/GpsPoints.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/business/gps/GpsPoints.java @@ -1,4 +1,4 @@ -package fr.ird.observe.gps; +package fr.ird.observe.business.gps; /* * #%L @@ -22,8 +22,8 @@ package fr.ird.observe.gps; * #L% */ -import fr.ird.observe.entities.seine.ActivitySeine; -import fr.ird.observe.entities.seine.Route; +import fr.ird.observe.services.dto.seine.ActivitySeineDto; +import fr.ird.observe.services.dto.seine.RouteDto; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.util.DateUtil; @@ -57,7 +57,7 @@ public class GpsPoints { * @return le nouveau point instancié * @since 3.8 */ - public static GPSPoint newPoint(Route route, ActivitySeine activity) { + public static GPSPoint newPoint(RouteDto route, ActivitySeineDto activity) { Date currentTime = DateUtil.getDateAndTime(route.getDate(), activity.getTime(), false, false); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/business/report/ReportBuilder.java b/observe-application-swing/src/main/java/fr/ird/observe/business/report/ReportBuilder.java new file mode 100644 index 0000000..f038fa4 --- /dev/null +++ b/observe-application-swing/src/main/java/fr/ird/observe/business/report/ReportBuilder.java @@ -0,0 +1,490 @@ +/* + * #%L + * ObServe :: Business + * %% + * Copyright (C) 2008 - 2010 IRD, Codelutin, Tony Chemit + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ +package fr.ird.observe.business.report; + + +import fr.ird.observe.business.report.model.Report; +import fr.ird.observe.business.report.model.ReportExecute; +import fr.ird.observe.business.report.model.ReportOperation; +import fr.ird.observe.business.report.model.ReportRequest; +import fr.ird.observe.business.report.model.ReportVariable; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.nuiton.util.SortedProperties; + +import java.io.IOException; +import java.io.InputStream; +import java.net.URL; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Enumeration; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Properties; +import java.util.ServiceLoader; +import java.util.TreeMap; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +/** + * Classe responsable de la construction d'un report à partir de sa définition + * lue dans un fichier de propriétés. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 1.4 + */ +public class ReportBuilder { + + public static final Pattern REPORT_DEFINITION_PATTERN = Pattern.compile("report.(\\w+).name"); + + public static final String REQUEST_PREFIX = "request."; + + public static final String OPERATION_PREFIX = "operations."; + + public static final String VARIABLE_PREFIX = "variable."; + + public static final String REPEAT_VARIABLE_PREFIX = "repeatVariable."; + + /** Logger */ + private static final Log log = LogFactory.getLog(ReportBuilder.class); + + /** les propriétés chargées par le builder pour construire les reports */ + protected Properties properties; + + /** la liste des lastName sde reports connus par le système */ + protected List<String> reportNames; + + /** les operations connues par le système */ + protected static Map<String, Class<?>> operations; + + public static Map<String, Class<?>> getOperations() { + if (operations == null) { + operations = new TreeMap<String, Class<?>>(); + ServiceLoader<ReportOperation> loader = + ServiceLoader.load(ReportOperation.class); + for (ReportOperation op : loader) { + if (log.isInfoEnabled()) { + log.info("Detected operations : " + op.getOperationName()); + } + operations.put(op.getOperationName(), op.getClass()); + } + } + return operations; + } + + public static ReportOperation newOperation(String operationsName) { + Class<?> operationsType = getOperations().get(operationsName); + if (operationsType == null) { + throw new IllegalArgumentException("No such operations [" + operationsName + "], available operationss : " + getOperations().keySet()); + } + try { + Object result = operationsType.newInstance(); + return (ReportOperation) result; + } catch (Exception e) { + throw new IllegalStateException("Could not instanciate operations [" + operationsType + "]", e); + } + } + + public List<String> getReportNames() { + return reportNames; + } + + public List<Report> load(URL definition) throws IOException { + properties = new SortedProperties(); + InputStream in = definition.openStream(); + try { + properties.load(in); + } finally { + in.close(); + } + + reportNames = detectReportNames(); + if (log.isInfoEnabled()) { + log.info("Detected report names : " + reportNames); + } + + List<Report> reports = new ArrayList<Report>(); + for (String reportName : reportNames) { + Report report = build(reportName); + reports.add(report); + } + + return reports; + } + + + protected List<String> detectReportNames() { + List<String> reportNames = new ArrayList<String>(); + Enumeration<Object> keys = properties.keys(); + while (keys.hasMoreElements()) { + String key = (String) keys.nextElement(); + Matcher matcher = REPORT_DEFINITION_PATTERN.matcher(key); + if (!matcher.matches()) { + + // pas de match + continue; + } + String reportName = matcher.group(1); + if (log.isInfoEnabled()) { + log.info("Discover a new report : " + reportName); + } + reportNames.add(reportName); + } + return reportNames; + } + + protected Report build(String reportName) { + + Map<String, String> dico = detectReportProperties(reportName); + + if (log.isDebugEnabled()) { + log.debug("Will build report [" + reportName + "] with " + dico.size() + " properties (" + dico + ")."); + } + + String name = getValue(dico, "name").trim(); + String description = getValue(dico, "description").trim(); + String rows = getValue(dico, "rows"); + String columns = getValue(dico, "columns"); + String[] rowHeaders = rows == null ? null : rows.split(","); + if (rowHeaders != null) { + for (int i = 0; i < rowHeaders.length; i++) { + String rowHeader = rowHeaders[i]; + rowHeaders[i] = rowHeader.trim(); + } + } + String[] columnHeaders = columns == null ? null : columns.split(","); + if (columnHeaders != null) { + for (int i = 0; i < columnHeaders.length; i++) { + String columnHeader = columnHeaders[i]; + columnHeaders[i] = columnHeader.trim(); + } + } + ReportRequest[] requests = getRequests(reportName, dico); + ReportOperation[] operationss = getOperations(reportName, dico); + ReportVariable[] variables = getVariables(reportName, dico); + ReportVariable[] repeatVariables = getRepeatVariables(reportName, dico); + + // a la fin il ne devrait plus y avoir de propriétés pour le report + if (!dico.isEmpty()) { + if (log.isWarnEnabled()) { + log.warn("Il reste des propriétés non utilisées pour le report [" + reportName + "] : " + dico); + } + } + + Report report = new Report(reportName, + name, + description, + rowHeaders, + columnHeaders, + operationss, + variables, + repeatVariables, + requests + ); + + return report; + } + + protected Map<String, String> detectReportProperties(String reportName) { + + Map<String, String> dico = new TreeMap<String, String>(); + + // pour chaque report, on récupère ses informations + String reportKeyPrefix = "report." + reportName + "."; + int reportKeyPrefixLength = reportKeyPrefix.length(); + + Enumeration<Object> keys = properties.keys(); + while (keys.hasMoreElements()) { + String key = (String) keys.nextElement(); + if (!key.startsWith(reportKeyPrefix)) { + // pas de match + continue; + } + String realKey = key.substring(reportKeyPrefixLength); + dico.put(realKey, (String) properties.get(key)); + } + + return dico; + } + + protected ReportRequest[] getRequests(String reportName, Map<String, String> dico) { + + Map<Integer, String> requestDico = new TreeMap<Integer, String>(); + Map<Integer, String> requestRepeatDico = new TreeMap<Integer, String>(); + Iterator<Map.Entry<String, String>> itr = dico.entrySet().iterator(); + while (itr.hasNext()) { + Map.Entry<String, String> entry = itr.next(); + String key = entry.getKey(); + if (!key.startsWith(REQUEST_PREFIX)) { + + continue; + } + String REQUEST_REPEAT_SUFFIX = ".repeat"; + if (key.endsWith(REQUEST_REPEAT_SUFFIX)) { + + // definition d'un repeat + String request = entry.getValue(); + String requestId = key.substring(REQUEST_PREFIX.length()); + requestId = requestId.substring(0, requestId.length() - REQUEST_REPEAT_SUFFIX.length()); + Integer id = Integer.valueOf(requestId); + if (log.isInfoEnabled()) { + log.info("Detects a request repeat [" + reportName + ":" + id + "] = " + request); + } + requestRepeatDico.put(id, request); + itr.remove(); + continue; + } + String request = entry.getValue(); + String requestId = key.substring(REQUEST_PREFIX.length()); + Integer id = Integer.valueOf(requestId); + if (log.isDebugEnabled()) { + log.debug("Detects a request [" + reportName + ":" + id + "] = " + request); + } + requestDico.put(id, request); + itr.remove(); + + } + + // On trie les request + List<Integer> ids = new ArrayList<Integer>(requestDico.keySet()); + Collections.sort(ids); + + // on construit (dans le bon ordre la liste des requetes) + List<ReportRequest> result = new ArrayList<ReportRequest>(); + for (Integer id : ids) { + + String requestDef = requestDico.get(id); + String requestRepeatDef = requestRepeatDico.get(id); + + ReportRequest def = getRequest(requestDef, requestRepeatDef); + if (log.isInfoEnabled()) { + log.info("Detects a request : " + def); + } + result.add(def); + + } + return result.toArray(new ReportRequest[result.size()]); + } + + protected ReportRequest getRequest(String requestDef, + String requestRepeatDef) { + + String[] parts = requestDef.split("\\|"); + if (parts.length != 3) { + throw new IllegalArgumentException("La définition de la requete doit etre de type 'X,Y|layout|hql' mais est : " + requestDef); + } + String[] coords = parts[0].split(","); + String layout = parts[1]; + String hql = parts[2]; + + if (coords.length != 2) { + throw new IllegalArgumentException("La définition des coordonées doit etre de type 'X,Y' mais est : " + parts[0]); + } + + int x = Integer.valueOf(coords[0]); + int y = Integer.valueOf(coords[1]); + ReportRequest.RequestLayout realLayout = ReportRequest.RequestLayout.valueOf(layout); + + ReportRequest.RequestRepeat repeat = null; + if (requestRepeatDef != null) { + + // il y a un repeat + String[] repeatParts = requestRepeatDef.split("\\|"); + if (repeatParts.length != 2) { + throw new IllegalArgumentException("La définition d'un repéteur de requete doit etre de type 'repeatName|layout' mais est : " + requestRepeatDef); + } + String repeatName = repeatParts[0].trim(); + String repeatLayout = repeatParts[1].trim(); + ReportRequest.RequestLayout realRepeatLayout = + ReportRequest.RequestLayout.valueOf(repeatLayout); + repeat = new ReportRequest.RequestRepeat(repeatName, realRepeatLayout); + + } + ReportRequest def = new ReportRequest(realLayout, x, y, hql, repeat); + return def; + } + + protected ReportOperation[] getOperations(String reportName, Map<String, String> dico) { + + Map<Integer, String> requestDico = new TreeMap<Integer, String>(); + Iterator<Map.Entry<String, String>> itr = dico.entrySet().iterator(); + while (itr.hasNext()) { + Map.Entry<String, String> entry = itr.next(); + String key = entry.getKey(); + if (!key.startsWith(OPERATION_PREFIX)) { + + continue; + } + String operations = entry.getValue(); + String requestId = key.substring(OPERATION_PREFIX.length()); + Integer id = Integer.valueOf(requestId); + if (log.isDebugEnabled()) { + log.debug("Detects a operations [" + reportName + ":" + id + "] = " + operations); + } + requestDico.put(id, operations); + itr.remove(); + } + + // On trie les request + List<Integer> ids = new ArrayList<Integer>(requestDico.keySet()); + Collections.sort(ids); + + // on construit (dans le bon ordre la liste des requetes) + List<ReportOperation> result = new ArrayList<ReportOperation>(); + for (Integer id : ids) { + + String operationsDef = requestDico.get(id); + + ReportOperation def = getOperation(operationsDef); + if (log.isInfoEnabled()) { + log.info("Detects a operations : " + def); + } + result.add(def); + } + return result.toArray(new ReportOperation[result.size()]); + } + + protected ReportVariable[] getVariables(String reportName, Map<String, String> dico) { + List<ReportVariable> result = new ArrayList<ReportVariable>(); + Iterator<Map.Entry<String, String>> itr = dico.entrySet().iterator(); + List<String> ids = new ArrayList<String>(); + while (itr.hasNext()) { + Map.Entry<String, String> entry = itr.next(); + String key = entry.getKey(); + if (!key.startsWith(VARIABLE_PREFIX)) { + + continue; + } + String operations = entry.getValue(); + String id = key.substring(VARIABLE_PREFIX.length()); + + // on interdit la surcharge d'une variable déjà trouvée pour le report + if (ids.contains(id)) { + throw new IllegalArgumentException("La variable " + id + " est déjà définie pour le report " + reportName); + } + + // on interdit l'utilisation de la variable tripId + if (ReportExecute.TRIP_ID_VARIABLE.equals(id)) { + throw new IllegalArgumentException("La variable tripId n'est pas utilisable (c'est uen variable réservée) pour le report " + reportName); + } + ids.add(id); + String[] parts = operations.split("\\|"); + + if (parts.length != 2) { + throw new IllegalArgumentException("La définition d'une variable doit etre de la forme 'type|hql' mais est : " + operations); + } + String typeStr = parts[0].trim(); + String request = parts[1].trim(); + Class<?> type = null; + try { + type = Class.forName(typeStr); + } catch (ClassNotFoundException eee) { + throw new IllegalArgumentException("Le type " + type + " n'est pas connu", eee); + } + ReportVariable variable = new ReportVariable(id, type, request); + if (log.isInfoEnabled()) { + log.info("Detects a variable : [" + reportName + ":" + variable.getName() + "] = " + variable.getRequest() + " (type = " + variable.getType().getName() + ")"); + } + result.add(variable); + itr.remove(); + } + return result.toArray(new ReportVariable[result.size()]); + } + + protected ReportVariable[] getRepeatVariables(String reportName, Map<String, String> dico) { + List<ReportVariable> result = new ArrayList<ReportVariable>(); + Iterator<Map.Entry<String, String>> itr = dico.entrySet().iterator(); + List<String> ids = new ArrayList<String>(); + while (itr.hasNext()) { + Map.Entry<String, String> entry = itr.next(); + String key = entry.getKey(); + if (!key.startsWith(REPEAT_VARIABLE_PREFIX)) { + + continue; + } + String operations = entry.getValue(); + String id = key.substring(REPEAT_VARIABLE_PREFIX.length()); + + // on interdit la surcharge d'une variable déjà trouvée pour le report + if (ids.contains(id)) { + throw new IllegalArgumentException("La variable de répétition " + id + " est déjà définie pour le report " + reportName); + } + + // on interdit l'utilisation de la variable tripId + if (ReportExecute.TRIP_ID_VARIABLE.equals(id)) { + throw new IllegalArgumentException("La variable de répétition tripId n'est pas utilisable (c'est uen variable réservée) pour le report " + reportName); + } + ids.add(id); + String[] parts = operations.split("\\|"); + + if (parts.length != 2) { + throw new IllegalArgumentException("La définition d'une variable de répétition doit etre de la forme 'type|hql' mais est : " + operations); + } + String typeStr = parts[0].trim(); + String request = parts[1].trim(); + Class<?> type = null; + try { + type = Class.forName(typeStr); + } catch (ClassNotFoundException eee) { + throw new IllegalArgumentException("Le type " + type + " n'est pas connu", eee); + } + ReportVariable variable = new ReportVariable(id, type, request); + if (log.isInfoEnabled()) { + log.info("Detects a variable : [" + reportName + ":" + variable.getName() + "] = " + variable.getRequest() + " (type = " + variable.getType().getName() + ")"); + } + result.add(variable); + itr.remove(); + } + return result.toArray(new ReportVariable[result.size()]); + } + + protected ReportOperation getOperation(String operationsDef) { + + // pour le moment, une operations n'a qu'une seule valeur : celle + // du lastName de l'opération + String operationsName = operationsDef; + + ReportOperation def = newOperation(operationsName); + return def; + } + + protected String getValue(Map<String, String> dico, String key) { + + String value = dico.get(key); + if (value != null) { + dico.remove(key); + } + return value; + } + + public void clear() { + if (reportNames != null) { + reportNames.clear(); + reportNames = null; + } + if (properties != null) { + properties.clear(); + properties = null; + } + } +} diff --git a/observe-application-swing/src/main/java/fr/ird/observe/business/report/model/DataMatrix.java b/observe-application-swing/src/main/java/fr/ird/observe/business/report/model/DataMatrix.java new file mode 100644 index 0000000..54fb09a --- /dev/null +++ b/observe-application-swing/src/main/java/fr/ird/observe/business/report/model/DataMatrix.java @@ -0,0 +1,259 @@ +/* + * #%L + * ObServe :: Business + * %% + * Copyright (C) 2008 - 2010 IRD, Codelutin, Tony Chemit + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ +package fr.ird.observe.business.report.model; + +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import java.awt.Dimension; +import java.awt.Point; +import java.io.Serializable; + +/** + * Une matrice de données + * + * @author Tony Chemit - chemit@codelutin.com + * @since 1.4 + */ +public class DataMatrix { + + /** Logger */ + private static final Log log = LogFactory.getLog(DataMatrix.class); + + protected Object[][] data; + + protected int width; + + protected int height; + + protected int x; + + protected int y; + + public int getWidth() { + return width; + } + + public int getHeight() { + return height; + } + + public int getX() { + return x; + } + + public int getY() { + return y; + } + + public Object[][] getData() { + return data; + } + + public void setWidth(int width) { + this.width = width; + } + + public void setHeight(int height) { + this.height = height; + } + + public void setX(int x) { + this.x = x; + } + + public void setY(int y) { + this.y = y; + } + + public void createData() { + data = new Object[height][width]; + } + + public void setData(Object[][] data) { + this.data = data; + } + + public void copyData(DataMatrix incoming) { + + int x = incoming.getX(); + int y = incoming.getY(); + + Integer height = incoming.getHeight(); + Integer width = incoming.getWidth(); + + if (log.isDebugEnabled()) { + log.debug("copying incoming matrix (dim: " + + incoming.getDimension() + ", location: " + + incoming.getLocation() + ")"); + } + + for (int i = 0; i < width; i++) { + + for (int j = 0; j < height; j++) { + + Serializable value = incoming.getValue(i, j); + setValue(x + i, y + j, value); + } + } + } + + public Dimension getDimension() { + return new Dimension(width, height); + } + + public void setDimension(Dimension dim) { + height = (int) dim.getHeight(); + width = (int) dim.getWidth(); + } + + public Point getLocation() { + return new Point(x, y); + } + + public void setLocation(Point location) { + x = (int) location.getX(); + y = (int) location.getY(); + } + + public Serializable getValue(int x, int y) { + return data == null ? null : (Serializable) data[y][x]; + } + + public void setValue(int x, int y, Object data) { + + String cellData = data == null ? null : String.valueOf(data); + if (log.isDebugEnabled()) { + log.debug("Put data [" + x + "," + y + "] = " + cellData); + } + this.data[y][x] = cellData; + } + + public static Dimension getDimension(DataMatrix... datas) { + int width = 0; + int height = 0; + + for (DataMatrix request : datas) { + + int nWidth = request.getX() + request.getWidth(); + int nHeight = request.getY() + request.getHeight(); + if (nWidth > width) { + width = nWidth; + } + if (nHeight > height) { + height = nHeight; + } + } + return new Dimension(width, height); + } + + public static DataMatrix merge(DataMatrix... incomings) { + DataMatrix result = merge(-1, -1, incomings); + return result; + } + + public static DataMatrix merge(int rows, + int columns, + DataMatrix... incomings) { + Dimension dimension = getDimension(incomings); + + if (log.isDebugEnabled()) { + log.debug("Merge dimension : " + dimension); + } + + if (rows != -1) { + int height = (int) dimension.getHeight(); + // on verifie que récupère bien le bon count de lignes + if (rows != height) { + if (log.isWarnEnabled()) { + log.warn("No matching rows number : should have " + rows + + ", but was " + height); + } + } + } + + if (columns != -1) { + int width = (int) dimension.getWidth(); + // on verifie que récupère bien le bon count de colonnes + if (columns != width) { + if (log.isWarnEnabled()) { + log.warn("No matching columns number : should have " + + columns + ", but was " + width); + } + } + } + + DataMatrix result = new DataMatrix(); + result.setDimension(dimension); + result.createData(); + for (DataMatrix incoming : incomings) { + result.copyData(incoming); + } + return result; + } + + @Override + public String toString() { + ToStringBuilder builder = new ToStringBuilder(this); + builder.append("dimension", getDimension()); + builder.append("location", getLocation()); + return builder.toString(); + } + + public String getClipbordContent(boolean copyRowHeaders, + boolean copyColumnHeaders) { + + if (getWidth() <= 0 || getHeight() <= 0) { + return ""; + } + + StringBuilder buffer = new StringBuilder(); + + char sep = '\t'; + char eol = '\n'; + + for (int y = copyColumnHeaders ? 0 : 1, rows = getHeight(); y < rows; y++) { + + Serializable value; + + // nouvell ligne + + int x = copyRowHeaders ? 0 : 1; + + for (int columns = getWidth() - 1; x < columns; x++) { + + // sur chaque cellule (sauf la dernière) + value = getValue(x, y); + buffer.append(value).append(sep); + } + + // dernière cellule + value = getValue(x, y); + buffer.append(value); + + // fin de ligne + buffer.append(eol); + } + return buffer.toString(); + } +} diff --git a/observe-application-swing/src/main/java/fr/ird/observe/business/report/model/Report.java b/observe-application-swing/src/main/java/fr/ird/observe/business/report/model/Report.java new file mode 100644 index 0000000..752efd1 --- /dev/null +++ b/observe-application-swing/src/main/java/fr/ird/observe/business/report/model/Report.java @@ -0,0 +1,144 @@ +/* + * #%L + * ObServe :: Business + * %% + * Copyright (C) 2008 - 2010 IRD, Codelutin, Tony Chemit + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ +package fr.ird.observe.business.report.model; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import java.io.Serializable; + +import static org.nuiton.i18n.I18n.t; + +public class Report implements Serializable { + + /** Logger. */ + private static final Log log = LogFactory.getLog(Report.class); + + /** l'id du report. */ + protected final String id; + + /** le libellé court du report. */ + protected final String name; + + /** la description du report. */ + protected final String description; + + /** les libellés des colonnes du report. */ + protected final String[] columnHeaders; + + /** les libellés des lignes du report. */ + protected final String[] rowHeaders; + + /** la liste des requêtes à jouer. */ + protected final ReportRequest[] requests; + + /** la liste des opérations à jouer. */ + protected final ReportOperation[] operations; + + /** la liste des variables du report. */ + protected final ReportVariable[] variables; + + /** la liste des variables de type repeat du report */ + protected final ReportVariable[] repeatVariables; + + private static final long serialVersionUID = 1L; + + public Report(String id, + String name, + String description, + String[] rowHeaders, + String[] columnHeaders, + ReportOperation[] operations, + ReportVariable[] variables, + ReportVariable[] repeatVariables, + ReportRequest... requests) { + this.id = id; + this.name = name; + this.description = description; + this.rowHeaders = rowHeaders; + this.columnHeaders = columnHeaders; + this.requests = requests; + this.operations = operations; + this.variables = variables; + this.repeatVariables = repeatVariables; + if (log.isDebugEnabled()) { + log.debug("New report [" + id + ":" + name + "], nb requests : " + + requests.length + ", nb objectOperations : " + + operations.length + ", nb variables : " + + variables.length + ", nb repeat variables : " + + repeatVariables.length); + } + } + + public String getId() { + return id; + } + + public String getName() { + return name; + } + + public String getDescription() { + return description; + } + + public int getRows() { + return rowHeaders == null ? -1 : rowHeaders.length; + } + + public int getColumns() { + return columnHeaders == null ? -1 : columnHeaders.length; + } + + public String[] getColumnHeaders() { + return columnHeaders; + } + + public String[] getRowHeaders() { + return rowHeaders; + } + + public ReportRequest[] getRequests() { + return requests; + } + + public ReportOperation[] getOperations() { + return operations; + } + + public ReportVariable[] getVariables() { + return variables; + } + + public ReportVariable[] getRepeatVariables() { + return repeatVariables; + } + + public boolean isVariableRequired() { + return variables.length > 0; + } + + @Override + public String toString() { + return t(name); + } +} diff --git a/observe-application-swing/src/main/java/fr/ird/observe/business/report/model/ReportExecute.java b/observe-application-swing/src/main/java/fr/ird/observe/business/report/model/ReportExecute.java new file mode 100644 index 0000000..7e416a1 --- /dev/null +++ b/observe-application-swing/src/main/java/fr/ird/observe/business/report/model/ReportExecute.java @@ -0,0 +1,295 @@ +/* + * #%L + * ObServe :: Business + * %% + * Copyright (C) 2008 - 2010 IRD, Codelutin, Tony Chemit + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ +package fr.ird.observe.business.report.model; + +import fr.ird.observe.business.db.DataSource; +import fr.ird.observe.business.db.DataSourceException; +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import java.util.List; +import java.util.Map; +import java.util.TreeMap; + +/** + * Objet contenant l'execution d'un report. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 1.7 + */ +public class ReportExecute { + + /** Logger. */ + private static final Log log = LogFactory.getLog(ReportExecute.class); + + /** le report a executer. */ + protected Report report; + + /** l'univers des valeurs possibles pour les variables que l'utilisateur doit sélectionner. */ + protected final Map<String, List<?>> variablesUniverse; + + /** l'univers des valeurs possibles pour les variables des requêtes en mode repeat. */ + protected final Map<String, List<?>> repeatVariablesUniverse; + + /** la source de données qui permet d'exécuter les requêtes hql. */ + protected DataSource source; + + public static final String TRIP_ID_VARIABLE = "tripId"; + + public ReportExecute() { + variablesUniverse = new TreeMap<String, List<?>>(); + repeatVariablesUniverse = new TreeMap<String, List<?>>(); + } + + public Report getReport() { + return report; + } + + public List<?> getVariableUniverse(String key) { + return variablesUniverse.get(key); + } + + public List<?> getRepeatVariableUniverse(String key) { + return repeatVariablesUniverse.get(key); + } + + public DataSource getSource() { + return source; + } + + public void setSource(DataSource source) { + this.source = source; + } + + public void populate(Report report, + String tripId) throws DataSourceException { + if (!checkDataSource(source)) { + + // source de donnee fermée + return; + } + this.report = report; + + // populate variables universe + doPopulateVariables(tripId); + } + + public DataMatrix execute(Map<String, Object> variables) throws DataSourceException { + + if (report == null) { + + // pas de report selectionne, donc pas de résultat + return null; + } + if (!checkDataSource(source)) { + + // source de donnee fermée + return null; + } + + if (!canExecute(variables)) { + + // la requete n'est pas exécutable + return null; + } + + // remplissage des variables de répétition si nécessaire + doPopulateRepeatVariables(variables); + + if (log.isDebugEnabled()) { + log.debug("Build result for report [" + report.getName() + + "] on " + variables.get(TRIP_ID_VARIABLE)); + } + + int rows = report.getRows(); + int columns = report.getColumns(); + + if (log.isDebugEnabled()) { + log.debug("Dimension : [" + rows + "," + columns + "]"); + } + + // execution des opérations sur le report + String txName = "execute"; + //FIXME +// TopiaContext tx = source.beginTransaction(txName); +// try { +// +// // creation de la première opération qui exécute les requètes +// ExecuteRequests firstRequest = (ExecuteRequests) +// ReportBuilder.newOperation(ExecuteRequests.OPERATION_NAME); +// +// // lancement de la première opération et la matrice de resultat +// DataMatrix result = firstRequest.execute(tx, +// report, +// new DataMatrix(), +// variables, +// repeatVariablesUniverse +// ); +// +// // lancement des opérations supplémentaires +// for (ReportOperation objectOperation : report.getOperations()) { +// +// DataMatrix tmp = result; +// if (log.isDebugEnabled()) { +// log.debug("Apply objectOperation " + objectOperation + " to " + tmp); +// } +// result = objectOperation.execute(tx, +// report, +// tmp, +// variables, +// repeatVariablesUniverse +// ); +// } +// if (log.isDebugEnabled()) { +// log.debug("Final result : " + result); +// } +// return result; +// } finally { +// source.closeTransaction(tx, txName); +// } + return null; + } + + public boolean canExecute(Map<String, Object> variables) { + + // il faut un report non null + if (report == null) { + + if (log.isInfoEnabled()) { + log.info("report is null"); + } + return false; + } + + for (ReportVariable request : report.getVariables()) { + + // on verifie qu'on a bien cette variable + String name = request.getName(); + if (!variables.containsKey(name)) { + + if (log.isInfoEnabled()) { + log.info("variable " + name + " is missing"); + } + return false; + } + + // et que sa valeur n'est pas null (ou vide) + Object variableValue = variables.get(name); + if (variableValue==null || StringUtils.isEmpty(variableValue.toString())) { + + if (log.isInfoEnabled()) { + log.info("variable " + name + " is empty or null"); + } + return false; + } + } + + // le report peut-être executé + return true; + } + + protected void doPopulateVariables(String tripId) throws DataSourceException { + + // on nettoye les univers de variables avant tout + variablesUniverse.clear(); + + if (report == null) { + + // pas de report, donc rien a faire + return; + } + + if (report.getVariables().length == 0) { + + // pas de variable utilise pour ce report + return; + } + + if (!checkDataSource(source)) { + + // source de donnee fermée + return; + } + String txName = "populateVariableUniverse"; + //FIXME +// TopiaContext tx = source.beginTransaction(txName); +// try { +// +// Map<String, Object> vars = new TreeMap<String, Object>(); +// vars.put(TRIP_ID_VARIABLE, tripId); +// for (ReportVariable variable : report.getVariables()) { +// String hql = variable.getRequest(); +// Object[] objects = ReportRequest.getParams(hql, vars); +// List<?> universe = tx.findAll(hql, objects); +// variablesUniverse.put(variable.getName(), universe); +// } +// } finally { +// source.closeTransaction(tx, txName); +// } + } + + protected void doPopulateRepeatVariables(Map<String, Object> variables) throws DataSourceException { + + // on nettoye les univers de variables de répétition avant tout + repeatVariablesUniverse.clear(); + + if (report.getRepeatVariables().length == 0) { + + // pas de variable de répétition + return; + } + if (!checkDataSource(source)) { + + // source de donnee fermée + return; + } + + String txName = "populateRepeatVariableUniverse"; + //FIXME +// TopiaContext tx = source.beginTransaction(txName); +// try { +// for (ReportVariable variable : report.getRepeatVariables()) { +// String hql = variable.getRequest(); +// Object[] objects = ReportRequest.getParams(hql, variables); +// List<?> universe = Lists.newArrayList(Sets.newLinkedHashSet(tx.findAll(hql, objects))); +// repeatVariablesUniverse.put(variable.getName(), universe); +// } +// } finally { +// source.closeTransaction(tx, txName); +// } + } + + protected boolean checkDataSource(DataSource source) throws IllegalStateException { + if (source.wasClosed()) { + + // la source de donnée a été fermée + return false; + } + + if (!source.isOpen()) { + throw new IllegalStateException("data source is not opened."); + } + return true; + } +} + diff --git a/observe-application-swing/src/main/java/fr/ird/observe/business/report/model/ReportOperation.java b/observe-application-swing/src/main/java/fr/ird/observe/business/report/model/ReportOperation.java new file mode 100644 index 0000000..60655f6 --- /dev/null +++ b/observe-application-swing/src/main/java/fr/ird/observe/business/report/model/ReportOperation.java @@ -0,0 +1,109 @@ +/* + * #%L + * ObServe :: Business + * %% + * Copyright (C) 2008 - 2010 IRD, Codelutin, Tony Chemit + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ +package fr.ird.observe.business.report.model; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import java.awt.*; +import java.io.Serializable; + +/** + * Pour caractériser une opération à lancer dans un report. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 1.4 + */ +public abstract class ReportOperation implements Serializable { + + private static final long serialVersionUID = 1L; + + /** Logger */ + private static final Log log = LogFactory.getLog(ReportOperation.class); + + public abstract String getOperationName(); + + /** + * Calcule la position où positionner le rsultat dans la matrice sortante. + * + * @param model le report + * @param incoming la matrice entrante + * @return la position de la première cellule + */ + protected abstract Point computeLocation(Report model, + DataMatrix incoming); + + /** + * Calcule la dimension du résultat de l'opération. + * + * @param model le report + * @param incoming la matrice entrante + * @return la dimension des données de l'opération + */ + protected abstract Dimension computeDimension(Report model, + DataMatrix incoming); + + /** + * Pour executer l'opération. + * +// * @param tx la transaction courante +// * @param model le modèle +// * @param incoming la matrice entrante +// * @param variables le dictionnaire de variables utilisées dans le report +// * @param repeatVariablesUniverse le dictionnaire des variables de répétition + * @return la matrice sortante + * @pour toute erreur de manipulation de base + */ + + //FIXME +// public abstract DataMatrix execute(TopiaContext tx, +// Report model, +// DataMatrix incoming, +// Map<String, Object> variables, +// Map<String, List<?>> repeatVariablesUniverse +// ) throws TopiaException; + + protected ReportOperation() { + } + + protected DataMatrix createTmpMatrix(Report model, DataMatrix incoming) { + + DataMatrix result = new DataMatrix(); + + // calcul de la position des résultats de l'opération + Point location = computeLocation(model, incoming); + result.setLocation(location); + + // calcul de la taille des résultats de l'opération + Dimension dim = computeDimension(model, incoming); + result.setDimension(dim); + + // creation de la matrice + result.createData(); + + if (log.isDebugEnabled()) { + log.debug("Operation [" + getOperationName() + "] tmp matrix : " + result); + } + return result; + } + +} diff --git a/observe-application-swing/src/main/java/fr/ird/observe/business/report/model/ReportRequest.java b/observe-application-swing/src/main/java/fr/ird/observe/business/report/model/ReportRequest.java new file mode 100644 index 0000000..1239f23 --- /dev/null +++ b/observe-application-swing/src/main/java/fr/ird/observe/business/report/model/ReportRequest.java @@ -0,0 +1,369 @@ +/* + * #%L + * ObServe :: Business + * %% + * Copyright (C) 2008 - 2010 IRD, Codelutin, Tony Chemit + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ +package fr.ird.observe.business.report.model; + +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import java.awt.*; +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +/** + * Pour caractériser une requète à lancer dans un report. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 1.4 + */ +public class ReportRequest implements Serializable { + + private static final long serialVersionUID = 1L; + + /** Logger. */ + private static final Log log = LogFactory.getLog(ReportRequest.class); + + /** le layout de la requete. */ + public enum RequestLayout { + /** lorsque les résultats de la requète sont les lignes du résultat. */ + row, + /** lorsque les résultats de la requète sont les colonnes du résultat. */ + column + } + + /** Un repeater optionnel sur la requête. */ + public static class RequestRepeat implements Serializable { + + protected final String variableName; + + protected final RequestLayout layout; + + private static final long serialVersionUID = 1L; + + public RequestRepeat(String variableName, RequestLayout layout) { + this.variableName = variableName; + this.layout = layout; + } + + public String getVariableName() { + return variableName; + } + + public RequestLayout getLayout() { + return layout; + } + + @Override + public String toString() { + ToStringBuilder builder = new ToStringBuilder(this); + builder.append("variableName", getVariableName()); + builder.append("layout", getLayout()); + return builder.toString(); + } + } + + /** layout de la requète. */ + protected final RequestLayout layout; + + /** la requète à exécuter. */ + protected final String request; + + /** la position de la requète. */ + protected final Point location; + + /** le repeater optionel. */ + protected final RequestRepeat repeat; + + public ReportRequest(RequestLayout layout, + int x, + int y, + String request, + RequestRepeat repeat) { + this.layout = layout; + this.request = request; + this.repeat = repeat; + location = new Point(x, y); + } + + public RequestLayout getLayout() { + return layout; + } + + public int getX() { + return (int) location.getX(); + } + + public int getY() { + return (int) location.getY(); + } + + public Point getLocation() { + return location; + } + + public String getRequest() { + return request; + } + + public RequestRepeat getRepeat() { + return repeat; + } + + //FIXME +// public DataMatrix execute(TopiaContext tx, +// Map<String, Object> params, +// List<?> repeatValues) { +// +// DataMatrix result = new DataMatrix(); +// for (Object repeatValue : repeatValues) { +// params.put(repeat.getVariableName(), repeatValue); +// DataMatrix tmp = execute(tx, params); +// if (result == null) { +// +// // premiere requete executee +// result = tmp; +// result.setX(0); +// result.setY(0); +// } else { +// switch (repeat.getLayout()) { +// +// case row: +// +// // on ajoute le resultat a droite de celui deja present +// tmp.setX(result.getX() + result.getWidth()); +// tmp.setY(result.getY()); +// break; +// +// case column: +// +// // on ajoute le resultat en dessous de celui deja present +// tmp.setX(result.getX()); +// tmp.setY(result.getY() + result.getHeight()); +// break; +// } +// result = DataMatrix.merge(result, tmp); +// } +// } +// result.setX(getX()); +// result.setY(getY()); +// if (log.isDebugEnabled()) { +// log.debug("Result location : " + result.getLocation()); +// log.debug("Result data :\n" + result.getClipbordContent(true, true)); +// } +// return result; +// } + + //FIXME +// public DataMatrix execute(TopiaContext tx, +// Map<String, Object> params) { +// +// // création des paramètres : couples (key, value) +// Object[] datas = getParams(request, params); +// if (log.isDebugEnabled()) { +// log.debug("Request : " + request); +// log.debug("Available params : " + params.keySet()); +// log.debug("Params to use : " + Arrays.toString(datas)); +// } +// +// // lancement de la requête +// List<?> list = tx.findAll(request, datas); +// if (log.isDebugEnabled()) { +// log.debug("Result size : " + list.size()); +// } +// +// // determination des dimensions du résultat +// Dimension dimension = computeDimension(list); +// if (log.isDebugEnabled()) { +// log.debug("Result dimension : " + dimension); +// } +// +// // construction du resultat +// DataMatrix result = computeResult(dimension, list); +// if (log.isDebugEnabled()) { +// log.debug("Result location : " + result.getLocation()); +// log.debug("Result data :\n" + result.getClipbordContent(true, true)); +// } +// return result; +// } + + protected DataMatrix computeResult(Dimension dimension, List<?> list) { + + DataMatrix result = new DataMatrix(); + result.setDimension(dimension); + result.createData(); + + // le seul cas différent est le n-* (une ligne correspond à une colonne) + + int y = 0; + int x = 0; + + switch (layout) { + + case row: + + boolean uniqueColumn = result.getWidth() == 1; + + // les lignes du résultat sont les lignes du tableau + + for (Object row : list) { + + if (uniqueColumn) { + + // une seule colonne + result.setValue(0, y, row); + } else { + + x = 0; + Object[] cells = (Object[]) row; + for (Object cell : cells) { + result.setValue(x++, y, cell); + } + } + + // on passage a la ligne suivante + y++; + } + break; + case column: + + // les lignes du résultat sont les colonnes du tableau + + boolean uniqueRow = result.getHeight() == 1; + + for (Object col : list) { + + if (uniqueRow) { + + // une seule ligne + result.setValue(x, 0, col); + } else { + + y = 0; + Object[] cells = (Object[]) col; + for (Object cell : cells) { + result.setValue(x, y++, cell); + } + } + + // on passage a la colonne suivante + x++; + } + break; + } + + // on pousse la position du résultat + result.setX(getX()); + result.setY(getY()); + return result; + } + + protected Dimension computeDimension(List<?> list) { + + int height = 0; + int width = 0; + + switch (layout) { + + case row: + + // le count de result est le lastNamebre de lignes + height = list.size(); + + if (list.isEmpty()) { + + // vu qu'il n'y a pas de résultat, on ne peut rien dire + width = 0; + } else { + + Object o = list.get(0); + + if (o == null || !o.getClass().isArray()) { + + // une seule colonne + width = 1; + } else { + width = ((Object[]) o).length; + } + } + + break; + case column: + + // le count de result est le lastNamebre de colonnes + width = list.size(); + + if (list.isEmpty()) { + + // vu qu'il n'y a pas de résultat, on ne peut rien dire + height = 0; + } else { + + Object o = list.get(0); + + if (o == null || !o.getClass().isArray()) { + + // une seule ligne + height = 1; + } else { + height = ((Object[]) o).length; + } + } + + break; + } + return new Dimension(width, height); + } + + public static Object[] getParams(String request, Map<String, Object> params) { + + // on parcourt la liste de tous les paramètres pour savoir si on doit + // les inclure pour la requête donnée : + List<String> namesToUsed = new ArrayList<String>(); + for (String paramName : params.keySet()) { + if (request.contains(":" + paramName)) { + namesToUsed.add(paramName); + } + } + Object[] datas = new Object[namesToUsed.size() * 2]; + int index = 0; + for (String name : namesToUsed) { + Object value = params.get(name); + datas[index * 2] = name; + datas[index * 2 + 1] = value; + index++; + } + namesToUsed.clear(); + return datas; + } + + @Override + public String toString() { + ToStringBuilder builder = new ToStringBuilder(this); + builder.append("request", getRequest()); + builder.append("layout", getLayout()); + builder.append("location", getLocation()); + builder.append("repeatVariable", getRepeat()); + return builder.toString(); + } +} diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/export/TripEntry.java b/observe-application-swing/src/main/java/fr/ird/observe/business/report/model/ReportVariable.java similarity index 56% copy from observe-application-swing/src/main/java/fr/ird/observe/ui/admin/export/TripEntry.java copy to observe-application-swing/src/main/java/fr/ird/observe/business/report/model/ReportVariable.java index 42b9ec9..868eb18 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/export/TripEntry.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/business/report/model/ReportVariable.java @@ -1,6 +1,6 @@ /* * #%L - * ObServe :: Swing + * ObServe :: Business * %% * Copyright (C) 2008 - 2010 IRD, Codelutin, Tony Chemit * %% @@ -19,32 +19,41 @@ * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ -package fr.ird.observe.ui.admin.export; - -import fr.ird.observe.services.dto.TripDto; +package fr.ird.observe.business.report.model; import java.io.Serializable; -/** Une classe qui représente une entrée dans le modèle (sans la sélection) */ -public class TripEntry implements Serializable { +/** + * La définition d'une variable utilisable dans un report. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 1.7 + */ +public class ReportVariable implements Serializable { private static final long serialVersionUID = 1L; - protected final Trip trip; + protected String name; - protected final boolean exist; + protected Class<?> type; - public TripEntry(Trip trip, boolean exist) { - this.trip = trip; - this.exist = exist; + protected String request; + + public ReportVariable(String name, Class<?> type, String request) { + this.name = name; + this.type = type; + this.request = request; } - public Trip getTrip() { - return trip; + public String getName() { + return name; } - public boolean isExist() { - return exist; + public Class<?> getType() { + return type; } + public String getRequest() { + return request; + } } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/business/report/model/operations/ExecuteRequests.java b/observe-application-swing/src/main/java/fr/ird/observe/business/report/model/operations/ExecuteRequests.java new file mode 100644 index 0000000..4fae51c --- /dev/null +++ b/observe-application-swing/src/main/java/fr/ird/observe/business/report/model/operations/ExecuteRequests.java @@ -0,0 +1,126 @@ +/* + * #%L + * ObServe :: Business + * %% + * Copyright (C) 2008 - 2010 IRD, Codelutin, Tony Chemit + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ +package fr.ird.observe.business.report.model.operations; + +import fr.ird.observe.business.report.model.DataMatrix; +import fr.ird.observe.business.report.model.Report; +import fr.ird.observe.business.report.model.ReportOperation; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import java.awt.*; + +/** + * Opération pour lancer les requètes d'un report. + * <p/> + * Cette opération est toujours exécuter en premier lors de la construction + * du résultat d'un report. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 1.4 + */ +public class ExecuteRequests extends ReportOperation { + + /** Logger */ + private static final Log log = LogFactory.getLog(ExecuteRequests.class); + + private static final long serialVersionUID = 1L; + + public static final String OPERATION_NAME = "ExecuteRequests"; + + public ExecuteRequests() { + } + + public String getOperationName() { + return OPERATION_NAME; + } + + //FIXME +// @Override +// public DataMatrix execute(TopiaContext tx, +// Report report, +// DataMatrix incoming, +// Map<String, Object> variables, +// Map<String, List<?>> repeatVariablesUniverse) { +// +// if (log.isDebugEnabled()) { +// log.debug("Launch " + this); +// } +// +// ReportRequest[] requests = report.getRequests(); +// +// DataMatrix[] requestResults = new DataMatrix[requests.length]; +// +// int i = 0; +// for (ReportRequest request : requests) { +// +// ReportRequest.RequestRepeat repeatVariable = request.getRepeat(); +// +// DataMatrix result; +// +// if (repeatVariable == null) { +// +// // requete simple sans repetition +// result = request.execute(tx, variables); +// } else { +// +// // on a une requete avec repetition +// String repeatVariableName = repeatVariable.getVariableName(); +// List<?> repeatValues = repeatVariablesUniverse.get(repeatVariableName); +// +// try { +// result = request.execute(tx, +// variables, +// repeatValues +// ); +// } finally { +// //FIXME rendre etanche l'utilisation des variables +// // la variable a ete ajoutee pendant l'execution +// // il faut la retirer +// variables.remove(repeatVariable.getVariableName()); +// } +// +// } +// +// requestResults[i++] = result; +// } +// +// int rows = report.getRows(); +// int columns = report.getColumns(); +// +// DataMatrix result = DataMatrix.merge(rows, columns, requestResults); +// return result; +// } + + @Override + protected Point computeLocation(Report model, DataMatrix incoming) { + Point result = new Point(0, 0); + return result; + } + + @Override + protected Dimension computeDimension(Report model, DataMatrix incoming) { + + Dimension result = new Dimension(0, 0); + return result; + } +} diff --git a/observe-application-swing/src/main/java/fr/ird/observe/business/report/model/operations/GroupByLength.java b/observe-application-swing/src/main/java/fr/ird/observe/business/report/model/operations/GroupByLength.java new file mode 100644 index 0000000..b8a946a --- /dev/null +++ b/observe-application-swing/src/main/java/fr/ird/observe/business/report/model/operations/GroupByLength.java @@ -0,0 +1,103 @@ +package fr.ird.observe.business.report.model.operations; + +/* + * #%L + * ObServe :: Business + * %% + * Copyright (C) 2008 - 2015 IRD, Codelutin, Tony Chemit + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + +import fr.ird.observe.business.report.model.DataMatrix; +import fr.ird.observe.business.report.model.Report; +import fr.ird.observe.business.report.model.ReportOperation; + +import java.awt.*; +import java.util.HashSet; +import java.util.Set; + +/** + * To group by legnth (first column, second row is count). + * + * I don't know how to make this with hibernate the group by + sum does not work :(. + * + * Created on 5/23/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 4.0 + */ +public class GroupByLength extends ReportOperation { + + private static final long serialVersionUID = 1L; + + private static final String OPERATION_NAME = "GroupByLength"; + + @Override + public String getOperationName() { + return OPERATION_NAME; + } + + @Override + protected Point computeLocation(Report model, DataMatrix incoming) { + Point result = new Point(0, incoming.getHeight()); + return result; + } + + @Override + protected Dimension computeDimension(Report model, DataMatrix incoming) { + Set<String> lengths = new HashSet<String>(); + for (int i = 0; i < incoming.getHeight(); i++) { + lengths.add((String) incoming.getValue(0, i)); + } + Dimension result = new Dimension(incoming.getWidth(), lengths.size()); + return result; + } + + //FIXME +// @Override +// public DataMatrix execute(TopiaContext tx, Report model, DataMatrix incoming, Map<String, Object> variables, Map<String, List<?>> repeatVariablesUniverse) { +// +// // Première passe pour grouper par classe de taille +// Map<String, MutableInt> data = new LinkedHashMap<String, MutableInt>(); +// for (int i = 0, nbRows = incoming.getHeight(); i < nbRows; i++) { +// +// String length = (String) incoming.getValue(0, i); +// Integer count = Integer.valueOf(incoming.getValue(1, i).toString()); +// +// MutableInt mutableInt = data.get(length); +// if (mutableInt == null) { +// mutableInt = new MutableInt(); +// data.put(length, mutableInt); +// } +// mutableInt.add(count); +// +// } +// +// // Deuxième passe pour remplir la matrice +// DataMatrix result = createTmpMatrix(model, incoming); +// int row = 0; +// for (Map.Entry<String, MutableInt> entry : data.entrySet()) { +// String length = entry.getKey(); +// MutableInt mutableInt = entry.getValue(); +// result.setValue(0, row, length); +// result.setValue(1, row, mutableInt.intValue()); +// row++; +// } +// +// return result; +// } +} diff --git a/observe-application-swing/src/main/java/fr/ird/observe/business/report/model/operations/SumColumn.java b/observe-application-swing/src/main/java/fr/ird/observe/business/report/model/operations/SumColumn.java new file mode 100644 index 0000000..dafdeeb --- /dev/null +++ b/observe-application-swing/src/main/java/fr/ird/observe/business/report/model/operations/SumColumn.java @@ -0,0 +1,132 @@ +/* + * #%L + * ObServe :: Business + * %% + * Copyright (C) 2008 - 2010 IRD, Codelutin, Tony Chemit + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ +package fr.ird.observe.business.report.model.operations; + +import fr.ird.observe.report.model.DataMatrix; +import fr.ird.observe.report.model.Report; +import fr.ird.observe.report.model.ReportOperation; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.nuiton.topia.TopiaContext; + + +import java.awt.Dimension; +import java.awt.Point; +import java.io.Serializable; +import java.util.List; +import java.util.Map; + +/** + * Opération pour calculer la somme de toutes les cellules d'une colonne. + * <p/> + * Le résultat de l'opération vient se placer dans une nouvelle ligne en bas + * du tableau. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 1.4 + */ +public class SumColumn extends ReportOperation { + + /** Logger */ + private static final Log log = + LogFactory.getLog(SumColumn.class); + + private static final long serialVersionUID = 1L; + + private static final String OPERATION_NAME = "SumColumn"; + + + public SumColumn() { + } + + public String getOperationName() { + return OPERATION_NAME; + } + + @Override + public DataMatrix execute(TopiaContext tx, + Report model, + DataMatrix incoming, + Map<String, Object> variables, + Map<String, List<?>> repeatVariablesUniverse) { + + if (log.isDebugEnabled()) { + log.debug("Launch " + this); + } + + // construction du resultat + + DataMatrix tmpMatrix = createTmpMatrix(model, incoming); + + for (int i = 0, nbColumns = incoming.getWidth(); i < nbColumns; i++) { + + Object result = getColumnData(i, incoming); + tmpMatrix.setValue(i, 0, result); + if (log.isDebugEnabled()) { + log.debug("objectOperation [" + i + ",0] = " + result); + } + } + + DataMatrix result = DataMatrix.merge(incoming, tmpMatrix); + return result; + } + + protected Object getColumnData(int column, DataMatrix incoming) { + Double result = 0d; + + int nbRows = incoming.getHeight(); + + for (int row = 0; row < nbRows; row++) { + Serializable o = incoming.getValue(column, row); + + if (o == null || "null".equals(o)) { + o = 0; + } + Double d; + try { + d = Double.valueOf(o.toString()); + } catch (NumberFormatException e) { + // une des données de la colonne n'est pas un count + // on sort directement + if (log.isDebugEnabled()) { + log.debug("Could not convert " + o + " to number", e); + } + return "-"; + } + result += d; + } + + return result; + } + + @Override + protected Point computeLocation(Report model, DataMatrix incoming) { + Point result = new Point(0, incoming.getHeight()); + return result; + } + + @Override + protected Dimension computeDimension(Report model, DataMatrix incoming) { + Dimension result = new Dimension(incoming.getWidth(), 1); + return result; + } +} diff --git a/observe-application-swing/src/main/java/fr/ird/observe/business/report/model/operations/SumIntColumn.java b/observe-application-swing/src/main/java/fr/ird/observe/business/report/model/operations/SumIntColumn.java new file mode 100644 index 0000000..b260ed5 --- /dev/null +++ b/observe-application-swing/src/main/java/fr/ird/observe/business/report/model/operations/SumIntColumn.java @@ -0,0 +1,128 @@ +/* + * #%L + * ObServe :: Business + * %% + * Copyright (C) 2008 - 2010 IRD, Codelutin, Tony Chemit + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ +package fr.ird.observe.business.report.model.operations; + +import fr.ird.observe.business.report.model.DataMatrix; +import fr.ird.observe.business.report.model.Report; +import fr.ird.observe.business.report.model.ReportOperation; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import java.awt.*; +import java.io.Serializable; + +/** + * Opération pour calculer la somme entière de toutes les cellules d'une colonne. + * <p/> + * Le résultat de l'opération vient se placer dans une nouvelle ligne en bas + * du tableau. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 1.4 + */ +public class SumIntColumn extends ReportOperation { + + /** Logger */ + private static final Log log = + LogFactory.getLog(SumIntColumn.class); + + private static final long serialVersionUID = 1L; + + private static final String OPERATION_NAME = "SumIntColumn"; + + + public SumIntColumn() { + } + + public String getOperationName() { + return OPERATION_NAME; + } + + //FIXME +// @Override +// public DataMatrix execute(TopiaContext tx, +// Report model, +// DataMatrix incoming, +// Map<String, Object> variables, +// Map<String, List<?>> repeatVariablesUniverse) { +// +// if (log.isDebugEnabled()) { +// log.debug("Launch " + this); +// } +// +// // construction du resultat +// +// DataMatrix tmpMatrix = createTmpMatrix(model, incoming); +// +// for (int i = 0, nbColumns = incoming.getWidth(); i < nbColumns; i++) { +// +// Object result = getColumnData(i, incoming); +// tmpMatrix.setValue(i, 0, result); +// if (log.isDebugEnabled()) { +// log.debug("objectOperation [" + i + ",0] = " + result); +// } +// } +// +// DataMatrix result = DataMatrix.merge(incoming, tmpMatrix); +// return result; +// } + + protected Object getColumnData(int column, DataMatrix incoming) { + Double result = 0d; + + int nbRows = incoming.getHeight(); + + for (int row = 0; row < nbRows; row++) { + Serializable o = incoming.getValue(column, row); + + if (o == null || "null".equals(o)) { + o = 0; + } + Double d; + try { + d = Double.valueOf(o.toString()); + } catch (NumberFormatException e) { + // une des données de la colonne n'est pas un count + // on sort directement + if (log.isDebugEnabled()) { + log.debug("Could not convert " + o + " to number", e); + } + return "-"; + } + result += d; + } + + return result.intValue(); + } + + @Override + protected Point computeLocation(Report model, DataMatrix incoming) { + Point result = new Point(0, incoming.getHeight()); + return result; + } + + @Override + protected Dimension computeDimension(Report model, DataMatrix incoming) { + Dimension result = new Dimension(incoming.getWidth(), 1); + return result; + } +} diff --git a/observe-application-swing/src/main/java/fr/ird/observe/business/report/model/operations/SumIntRow.java b/observe-application-swing/src/main/java/fr/ird/observe/business/report/model/operations/SumIntRow.java new file mode 100644 index 0000000..7566a4b --- /dev/null +++ b/observe-application-swing/src/main/java/fr/ird/observe/business/report/model/operations/SumIntRow.java @@ -0,0 +1,132 @@ +/* + * #%L + * ObServe :: Business + * %% + * Copyright (C) 2008 - 2010 IRD, Codelutin, Tony Chemit + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ +package fr.ird.observe.business.report.model.operations; + +import fr.ird.observe.report.model.DataMatrix; +import fr.ird.observe.report.model.Report; +import fr.ird.observe.report.model.ReportOperation; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.nuiton.topia.TopiaContext; + + +import java.awt.Dimension; +import java.awt.Point; +import java.io.Serializable; +import java.util.List; +import java.util.Map; + +/** + * Opération pour calculer la somme entière de toutes les cellules d'une ligne. + * <p/> + * Le résultat de l'opération vient se placer dans une nouvelle colonne à + * droite du tableau. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 1.4 + */ +public class SumIntRow extends ReportOperation { + + /** Logger */ + private static final Log log = LogFactory.getLog(SumIntRow.class); + + public static final String OPERATION_NAME = "SumIntRow"; + + private static final long serialVersionUID = 1L; + + public SumIntRow() { + } + + public String getOperationName() { + return OPERATION_NAME; + } + + @Override + public DataMatrix execute(TopiaContext tx, + Report model, + DataMatrix incoming, + Map<String, Object> variables, + Map<String, List<?>> repeatVariablesUniverse) { + if (log.isDebugEnabled()) { + log.debug("Launch " + this); + } + + // construction du result + + DataMatrix tmpMatrix = createTmpMatrix(model, incoming); + + for (int i = 0, nbRows = incoming.getHeight(); i < nbRows; i++) { + + Object result = getRowData(i, incoming); + tmpMatrix.setValue(0, i, result); + if (log.isDebugEnabled()) { + log.debug("objectOperation [0, " + i + "] = " + result); + } + } + + DataMatrix result = DataMatrix.merge(incoming, tmpMatrix); + return result; + } + + + protected Object getRowData(int row, DataMatrix incoming) { + + Double result = 0d; + + int nbColumns = incoming.getWidth(); + + for (int col = 0; col < nbColumns; col++) { + Serializable o = incoming.getValue(col, row); + + if (o == null || "null".equals(o)) { + o = 0; + } + Double d; + try { + d = Double.valueOf(o.toString()); + } catch (NumberFormatException e) { + // une des données de la colonne n'est pas un count + // on sort directement + if (log.isDebugEnabled()) { + log.debug("Could not convert " + o + " to number", e); + } + return "-"; + } + result += d; + } + + return result.intValue(); + } + + @Override + protected Point computeLocation(Report model, DataMatrix incoming) { + Point result = new Point(incoming.getWidth(), 0); + return result; + } + + @Override + protected Dimension computeDimension(Report model, DataMatrix incoming) { + + Dimension result = new Dimension(1, incoming.getHeight()); + return result; + } +} diff --git a/observe-application-swing/src/main/java/fr/ird/observe/business/report/model/operations/SumRow.java b/observe-application-swing/src/main/java/fr/ird/observe/business/report/model/operations/SumRow.java new file mode 100644 index 0000000..4153a05 --- /dev/null +++ b/observe-application-swing/src/main/java/fr/ird/observe/business/report/model/operations/SumRow.java @@ -0,0 +1,128 @@ +/* + * #%L + * ObServe :: Business + * %% + * Copyright (C) 2008 - 2010 IRD, Codelutin, Tony Chemit + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ +package fr.ird.observe.business.report.model.operations; + +import fr.ird.observe.business.report.model.DataMatrix; +import fr.ird.observe.business.report.model.Report; +import fr.ird.observe.business.report.model.ReportOperation; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import java.awt.*; +import java.io.Serializable; + +/** + * Opération pour calculer la somme de toutes les cellules d'une ligne. + * <p/> + * Le résultat de l'opération vient se placer dans une nouvelle colonne à + * droite du tableau. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 1.4 + */ +public class SumRow extends ReportOperation { + + /** Logger */ + private static final Log log = LogFactory.getLog(SumRow.class); + + public static final String OPERATION_NAME = "SumRow"; + + private static final long serialVersionUID = 1L; + + public SumRow() { + } + + public String getOperationName() { + return OPERATION_NAME; + } + + //FIXME +// @Override +// public DataMatrix execute(TopiaContext tx, +// Report model, +// DataMatrix incoming, +// Map<String, Object> variables, +// Map<String, List<?>> repeatVariablesUniverse) { +// if (log.isDebugEnabled()) { +// log.debug("Launch " + this); +// } +// +// // construction du result +// +// DataMatrix tmpMatrix = createTmpMatrix(model, incoming); +// +// for (int i = 0, nbRows = incoming.getHeight(); i < nbRows; i++) { +// +// Object result = getRowData(i, incoming); +// tmpMatrix.setValue(0, i, result); +// if (log.isDebugEnabled()) { +// log.debug("objectOperation [0, " + i + "] = " + result); +// } +// } +// +// DataMatrix result = DataMatrix.merge(incoming, tmpMatrix); +// return result; +// } + + + protected Object getRowData(int row, DataMatrix incoming) { + + Double result = 0d; + + int nbColumns = incoming.getWidth(); + + for (int col = 0; col < nbColumns; col++) { + Serializable o = incoming.getValue(col, row); + + if (o == null || "null".equals(o)) { + o = 0; + } + Double d; + try { + d = Double.valueOf(o.toString()); + } catch (NumberFormatException e) { + // une des données de la colonne n'est pas un count + // on sort directement + if (log.isDebugEnabled()) { + log.debug("Could not convert " + o + " to number", e); + } + return "-"; + } + result += d; + } + + return result; + } + + @Override + protected Point computeLocation(Report model, DataMatrix incoming) { + Point result = new Point(incoming.getWidth(), 0); + return result; + } + + @Override + protected Dimension computeDimension(Report model, DataMatrix incoming) { + + Dimension result = new Dimension(1, incoming.getHeight()); + return result; + } +} diff --git a/observe-application-swing/src/main/java/fr/ird/observe/SendMessageAble.java b/observe-application-swing/src/main/java/fr/ird/observe/business/report/package-info.java similarity index 83% rename from observe-application-swing/src/main/java/fr/ird/observe/SendMessageAble.java rename to observe-application-swing/src/main/java/fr/ird/observe/business/report/package-info.java index 1930156..1eab678 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/SendMessageAble.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/business/report/package-info.java @@ -19,15 +19,12 @@ * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ -package fr.ird.observe; - /** - * Un contrat pour pouvoir propager les messages. + * Ce paquetage définit l'api des reports d'observe : + * {@link Report}. * * @author Tony Chemit - chemit@codelutin.com - * @since 1.5 + * @since 1.7 */ -public interface SendMessageAble { +package fr.ird.observe.business.report; - void sendMessage(String message); -} diff --git a/observe-application-swing/src/main/java/fr/ird/observe/db/util/SecurityModel.java b/observe-application-swing/src/main/java/fr/ird/observe/business/util/SecurityModel.java similarity index 99% rename from observe-application-swing/src/main/java/fr/ird/observe/db/util/SecurityModel.java rename to observe-application-swing/src/main/java/fr/ird/observe/business/util/SecurityModel.java index b0223aa..878c1ff 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/db/util/SecurityModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/business/util/SecurityModel.java @@ -19,7 +19,7 @@ * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ -package fr.ird.observe.db.util; +package fr.ird.observe.business.util; import com.google.common.base.Function; import com.google.common.collect.Iterables; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/validation/ObserveValidator.java b/observe-application-swing/src/main/java/fr/ird/observe/business/validation/ObserveValidator.java similarity index 96% rename from observe-application-swing/src/main/java/fr/ird/observe/validation/ObserveValidator.java rename to observe-application-swing/src/main/java/fr/ird/observe/business/validation/ObserveValidator.java index ae6b33e..39d1af5 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/validation/ObserveValidator.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/business/validation/ObserveValidator.java @@ -19,13 +19,13 @@ * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ -package fr.ird.observe.validation; +package fr.ird.observe.business.validation; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.util.ValueStack; -import fr.ird.observe.ObserveApplicationContext; -import fr.ird.observe.ObserveServiceHelper; -import fr.ird.observe.db.DataSourceFactory; +import fr.ird.observe.business.ObserveApplicationContext; +import fr.ird.observe.business.ObserveServiceHelper; +import fr.ird.observe.business.db.DataSourceFactory; import jaxx.runtime.validator.swing.SwingValidator; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/business/validation/ValidationContext.java b/observe-application-swing/src/main/java/fr/ird/observe/business/validation/ValidationContext.java new file mode 100644 index 0000000..8bd8c2e --- /dev/null +++ b/observe-application-swing/src/main/java/fr/ird/observe/business/validation/ValidationContext.java @@ -0,0 +1,304 @@ +/* + * #%L + * ObServe :: Business + * %% + * Copyright (C) 2008 - 2010 IRD, Codelutin, Tony Chemit + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ +package fr.ird.observe.business.validation; + +import fr.ird.observe.business.db.DataContext; +import fr.ird.observe.business.db.DataSource; +import fr.ird.observe.services.dto.AbstractObserveDto; +import fr.ird.observe.services.dto.longline.ActivityLonglineDto; +import fr.ird.observe.services.dto.longline.SetLonglineDto; +import fr.ird.observe.services.dto.longline.TripLonglineDto; +import fr.ird.observe.services.dto.seine.ActivitySeineDto; +import fr.ird.observe.services.dto.seine.FloatingObjectDto; +import fr.ird.observe.services.dto.seine.RouteDto; +import fr.ird.observe.services.dto.seine.SetSeineDto; +import fr.ird.observe.services.dto.seine.TripSeineDto; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import java.util.List; +import java.util.Map; +import java.util.TreeMap; + +/** + * Contient les objets en cours de validation. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 1.4 + */ +public class ValidationContext { + + /** Logger */ + static private final Log log = LogFactory.getLog(ValidationContext.class); + + public static final String VALIDATION_TRANSACTION_NAME = "validation"; + + protected DataSource dataSource; + + //FIXME +// protected TopiaContext tx; + + protected DataContext dataContext; + + protected Map<String, Object> cache; + + private List<?> referentielList; + + public Map<String, Object> getCache() { + if (cache == null) { + cache = new TreeMap<String, Object>(); + } + return cache; + } + + public void cleanCache() { + getCache().clear(); + referentielList = null; + cleanTransaction(); + } + + public DataSource getDataSource() { + return dataSource; + } + + public void close() { + closeDataSource(); + dataContext = null; + } + + @Override + protected void finalize() throws Throwable { + super.finalize(); + close(); + } + + public void closeDataSource() { + closeTransaction(); + dataSource = null; + } + + protected void closeTransaction() { + //FIXME +// if (tx != null) { +// if (log.isDebugEnabled()) { +// log.debug("close 'validation' transaction"); +// } +// try { +// dataSource.closeTransaction(tx, VALIDATION_TRANSACTION_NAME); +// } catch (DataSourceException e) { +// if (log.isErrorEnabled()) { +// log.error("Could not close transaction", e); +// } +// } finally { +// tx = null; +// } +// } + } + + protected void cleanTransaction() { + //FIXME +// if (tx != null) { +// if (log.isDebugEnabled()) { +// log.debug("clean 'validation' transaction"); +// } +// try { +// dataSource.rollbackTransaction(tx, VALIDATION_TRANSACTION_NAME); +// } catch (DataSourceException e) { +// if (log.isErrorEnabled()) { +// log.error("Could not clean transaction", e); +// } +// } +// } + } + + public DataContext getDataContext() { + return dataContext; + } + + public void setDataSource(DataSource dataSource) { + if (this.dataSource != null) { + closeDataSource(); + } + if (log.isDebugEnabled()) { + log.debug("Attach data source " + (dataSource == null ? "null" : dataSource.getShortLabel())); + } + this.dataSource = dataSource; + } + + public void setDataContext(DataContext dataContext) { + if (log.isInfoEnabled()) { + log.info("Attach data context " + dataContext); + } + this.dataContext = dataContext; + ObserveValidator.reloadDataContext(this, false); + } + + //FIXME +// public Trip getCurrentTrip() { +// +// Trip result = null; +// +// String selectedTripId = dataContext.getSelectedTripId(); +// if (selectedTripId != null) { +// if (selectedTripId.contains("Seine")) { +// result = getCurrentTripSeine(); +// } else { +// result = getCurrentTripLongline(); +// } +// } +// return result; +// +// } + + public TripSeineDto getCurrentTripSeine() { + TripSeineDto result = getDto(TripSeineDto.class, dataContext.getSelectedTripId()); + return result; + } + + public TripLonglineDto getCurrentTripLongline() { + TripLonglineDto result = getDto(TripLonglineDto.class, dataContext.getSelectedTripId()); + return result; + } + + public RouteDto getCurrentRoute() { + RouteDto result = getDto(RouteDto.class, dataContext.getSelectedRouteId()); + return result; + } + + //FIXME +// public Activity getCurrentActivity() { +// +// Activity result = null; +// +// String selectedActivityId = dataContext.getSelectedActivityId(); +// if (selectedActivityId != null) { +// if (selectedActivityId.contains("Seine")) { +// result = getCurrentActivitySeine(); +// } else { +// result = getCurrentActivityLongline(); +// } +// } +// return result; +// +// } + + public ActivitySeineDto getCurrentActivitySeine() { + ActivitySeineDto result = getDto(ActivitySeineDto.class, dataContext.getSelectedActivityId()); + return result; + } + + public ActivityLonglineDto getCurrentActivityLongline() { + ActivityLonglineDto result = getDto(ActivityLonglineDto.class, dataContext.getSelectedActivityId()); + return result; + } + + //FIXME +// public Set getCurrentSet() { +// +// Set result = null; +// +// String selectedSetId = dataContext.getSelectedSetId(); +// if (selectedSetId != null) { +// if (selectedSetId.contains("Seine")) { +// result = getCurrentSetSeine(); +// } else { +// result = getCurrentSetLongline(); +// } +// } +// return result; +// +// } + + public SetSeineDto getCurrentSetSeine() { + SetSeineDto result = getDto(SetSeineDto.class, dataContext.getSelectedSetId()); + return result; + } + + public SetLonglineDto getCurrentSetLongline() { + SetLonglineDto result = getDto(SetLonglineDto.class, dataContext.getSelectedSetId()); + return result; + } + + public FloatingObjectDto getCurrentFloatingObject() { + FloatingObjectDto result = getDto(FloatingObjectDto.class, dataContext.getSelectedFloatingObjectId()); + return result; + } + + public List<?> getEditingReferentielList() { + return referentielList; + } + + public void setEditingReferentielList(List<?> referentielList) { + if (log.isDebugEnabled()) { + log.debug("Add referentielList (size : " + (referentielList == null ? 0 : referentielList.size()) + ")"); + } + this.referentielList = referentielList; + } + + //FIXME +// public TopiaContext getTx() throws DataSourceException { +// if (tx == null) { +// if (dataSource != null) { +// if (log.isInfoEnabled()) { +// log.info("Open a new transaction " + tx); +// } +// tx = dataSource.beginTransaction(VALIDATION_TRANSACTION_NAME); +// } +// } +// return tx; +// } + + public <E extends AbstractObserveDto> E getDto(Class<E> klass, String id) { + + if (dataSource == null || dataContext == null || !dataSource.isOpen() || id == null) { + return null; + } + Object o = getCache().get(id); + if (o != null) { + if (log.isDebugEnabled()) { + log.debug("Use cached entity : " + id); + } + // found in cache + return (E) o; + } + //FIXME +// try { +// TopiaContext tx = getTx(); +// if (tx == null) { +// return null; +// } +// TopiaDAO<E> dao = dataSource.getDAO(tx, klass); +// E result = dao.findByTopiaId(id); +// if (log.isInfoEnabled()) { +// log.info("Put entity into cache : " + id); +// } +// getCache().put(id, result); +// return result; +// } catch (Exception e) { +// if (log.isErrorEnabled()) { +// log.error("Could not obtain " + id, e); +// } +// return null; +// } + return null; + } +} diff --git a/observe-application-swing/src/main/java/fr/ird/observe/validation/ValidationMessageDetector.java b/observe-application-swing/src/main/java/fr/ird/observe/business/validation/ValidationMessageDetector.java similarity index 98% rename from observe-application-swing/src/main/java/fr/ird/observe/validation/ValidationMessageDetector.java rename to observe-application-swing/src/main/java/fr/ird/observe/business/validation/ValidationMessageDetector.java index acef4f2..3cbbb24 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/validation/ValidationMessageDetector.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/business/validation/ValidationMessageDetector.java @@ -19,15 +19,12 @@ * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ -package fr.ird.observe.validation; +package fr.ird.observe.business.validation; import fr.ird.observe.ObserveDAOHelper; import fr.ird.observe.ObserveEntityEnum; import fr.ird.observe.ObserveServiceHelper; -import fr.ird.observe.db.DataContext; -import fr.ird.observe.services.dto.longline.TripLonglineDto; -import fr.ird.observe.services.dto.referential.ProgramDto; -import fr.ird.observe.services.dto.seine.TripSeineDto; +import fr.ird.observe.business.db.DataContext; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/validation/ValidationModelMode.java b/observe-application-swing/src/main/java/fr/ird/observe/business/validation/ValidationModelMode.java similarity index 68% rename from observe-application-swing/src/main/java/fr/ird/observe/validation/ValidationModelMode.java rename to observe-application-swing/src/main/java/fr/ird/observe/business/validation/ValidationModelMode.java index e649381..c9e3fb4 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/validation/ValidationModelMode.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/business/validation/ValidationModelMode.java @@ -19,12 +19,7 @@ * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ -package fr.ird.observe.validation; - -import fr.ird.observe.services.dto.EntitiesDto; -import fr.ird.observe.ObserveEntityEnum; -import org.nuiton.topia.persistence.TopiaEntity; -import org.nuiton.topia.persistence.util.TopiaEntityHelper; +package fr.ird.observe.business.validation; import static org.nuiton.i18n.I18n.n; @@ -39,36 +34,41 @@ public enum ValidationModelMode { /** validation du referentiel */ REFERENTIEL( n("observe.validation.model.type.referentiel"), - n("observe.validation.model.type.referentiel.description"), - Entities.REFERENCE_ENTITIES + n("observe.validation.model.type.referentiel.description") + //FIXME +// Entities.REFERENCE_ENTITIES ), /** validation de donnees observer */ DATA( n("observe.validation.model.type.data"), - n("observe.validation.model.type.data.description"), - Entities.DATA_ENTITIES + n("observe.validation.model.type.data.description") + //FIXME +// Entities.DATA_ENTITIES ), /** validation du referentiel et de donnees observer */ ALL( n("observe.validation.model.type.all"), - n("observe.validation.model.type.all.description"), - Entities.ALL_ENTITIES + n("observe.validation.model.type.all.description") + //FIXME +// Entities.ALL_ENTITIES ); private final String label; private final String description; - private final Class<? extends TopiaEntity>[] contracts; +// private final Class<? extends TopiaEntity>[] contracts; ValidationModelMode(String label, - String description, - ObserveEntityEnum... contracts) { + String description + //FIXME +// ObserveEntityEnum... contracts + ) { this.label = label; this.description = description; - this.contracts = TopiaEntityHelper.getContracts(contracts); +// this.contracts = TopiaEntityHelper.getContracts(contracts); } public String getLabel() { @@ -79,7 +79,7 @@ public enum ValidationModelMode { return description; } - public Class<? extends TopiaEntity>[] getContracts() { - return contracts; - } +// public Class<? extends TopiaEntity>[] getContracts() { +// return contracts; +// } } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/validation/ValidationService.java b/observe-application-swing/src/main/java/fr/ird/observe/business/validation/ValidationService.java similarity index 88% rename from observe-application-swing/src/main/java/fr/ird/observe/validation/ValidationService.java rename to observe-application-swing/src/main/java/fr/ird/observe/business/validation/ValidationService.java index 84a71e8..bba633e 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/validation/ValidationService.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/business/validation/ValidationService.java @@ -19,14 +19,12 @@ * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ -package fr.ird.observe.validation; +package fr.ird.observe.business.validation; -import fr.ird.observe.ObserveEntityEnum; +import fr.ird.observe.services.dto.AbstractObserveDto; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.nuiton.topia.persistence.TopiaEntity; -import org.nuiton.topia.persistence.util.TopiaEntityHelper; import org.nuiton.validator.NuitonValidatorScope; import org.nuiton.validator.bean.simple.SimpleBeanValidator; @@ -112,18 +110,19 @@ public class ValidationService { public ValidatorsMap getValidators( String contextName, NuitonValidatorScope[] scopes, - TopiaEntity... entities) { + AbstractObserveDto... dtos) { - Set<Class<? extends TopiaEntity>> types; - try { - types = TopiaEntityHelper.detectTypes( - ObserveEntityEnum.values(), - entities - ); - } catch (TopiaException e) { - throw new IllegalArgumentException( - "could not obtains types for reason " + e.getMessage(), e); - } + //FIXME + Set<Class<? extends AbstractObserveDto>> types = null; +// try { +// types = TopiaEntityHelper.detectTypes( +// ObserveEntityEnum.values(), +// entities +// ); +// } catch (TopiaException e) { +// throw new IllegalArgumentException( +// "could not obtains types for reason " + e.getMessage(), e); +// } ValidatorsMap result = detectValidators( contextName, diff --git a/observe-application-swing/src/main/java/fr/ird/observe/validation/ValidatorsMap.java b/observe-application-swing/src/main/java/fr/ird/observe/business/validation/ValidatorsMap.java similarity index 98% rename from observe-application-swing/src/main/java/fr/ird/observe/validation/ValidatorsMap.java rename to observe-application-swing/src/main/java/fr/ird/observe/business/validation/ValidatorsMap.java index c4f1a03..b040f4c 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/validation/ValidatorsMap.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/business/validation/ValidatorsMap.java @@ -19,7 +19,7 @@ * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ -package fr.ird.observe.validation; +package fr.ird.observe.business.validation; import org.nuiton.validator.NuitonValidatorScope; import org.nuiton.validator.bean.simple.SimpleBeanValidator; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/db/model/DataSelectionModel.java b/observe-application-swing/src/main/java/fr/ird/observe/db/model/DataSelectionModel.java deleted file mode 100644 index 9d9c84f..0000000 --- a/observe-application-swing/src/main/java/fr/ird/observe/db/model/DataSelectionModel.java +++ /dev/null @@ -1,513 +0,0 @@ -/* - * #%L - * ObServe :: Business - * %% - * Copyright (C) 2008 - 2010 IRD, Codelutin, Tony Chemit - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ -package fr.ird.observe.db.model; - -import fr.ird.observe.DataService; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.constants.DataSourceState; -import fr.ird.observe.services.dto.EntitiesDto; -import fr.ird.observe.services.dto.TripDto; -import fr.ird.observe.services.dto.TripsDto; -import fr.ird.observe.services.dto.longline.TripLonglineDto; -import fr.ird.observe.services.dto.referential.ProgramDto; -import fr.ird.observe.services.dto.referential.ProgramsDto; -import fr.ird.observe.services.dto.seine.TripSeineDto; -import org.apache.commons.collections4.CollectionUtils; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.nuiton.topia.persistence.TopiaEntity; -import org.nuiton.topia.persistence.util.TopiaEntityHelper; - -import java.beans.PropertyChangeListener; -import java.beans.PropertyChangeSupport; -import java.io.Serializable; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.TreeMap; - -/** - * Un modèle pour représenter la sélection de données. - * - * @author Tony Chemit - chemit@codelutin.com - * @since 1.4 - */ -public class DataSelectionModel implements Serializable { - - public static void populate(DataSelectionModel model, - DataService service, - DataSource source) throws Exception { - - source.checkState(DataSourceState.OPEN); - - Map<String, List<String>> datas = new HashMap<String, List<String>>(); - - List<Program> programs = service.getAllProgramStub(source); - for (Program program : programs) { - - if (Programs.isProgramSeine(program)) { - List<TripSeine> trips = service.getTripSeineStubByProgram(source, program.getTopiaId()); - populate(model, program, trips, datas); - } - - if (Programs.isProgramLongline(program)) { - List<TripLongline> trips = service.getTripLonglineStubByProgram(source, program.getTopiaId()); - populate(model, program, trips, datas); - } - - } - model.setDatas(datas); - - } - - protected static <T extends Trip> void populate(DataSelectionModel model, - Program program, - List<T> trips, - Map<String, List<String>> datas) { - - model.cacheEntity(program); - - if (!trips.isEmpty()) { - List<String> tripIds = new ArrayList<String>(); - - if (model.isUseOpenData()) { - - // ajout de toutes les marées ouvertes ou non - for (T trip : trips) { - trip.setProgram(program); - model.cacheEntity(trip); - tripIds.add(trip.getTopiaId()); - } - - } else { - - // ajout de toutes les marées non ouvertes - for (T trip : trips) { - trip.setProgram(program); - if (!trip.isOpen()) { - model.cacheEntity(trip); - tripIds.add(trip.getTopiaId()); - } - } - - } - - if (!tripIds.isEmpty()) { - - datas.put(program.getTopiaId(), tripIds); - if (log.isDebugEnabled()) { - log.debug("Add program " + program.getLabel1() + " with " + tripIds.size() + " trip(s)."); - } - - } - - } - - } - - public static final String PROPERTY_USE_REFERENTIEL = "useReferentiel"; - - public static final String PROPERTY_USE_DATA = "useData"; - - public static final String PROPERTY_USE_OPEN_DATA = "useOpenData"; - - public static final String PROPERTY_SELECTED_DATA = "selectedData"; - - public static final String PROPERTY_SELECTED_REFERENTIEL = "selectedReferentiel"; - - public static final String PROPERTY_DATAS = "datas"; - - /** Logger */ - private static final Log log = LogFactory.getLog(DataSelectionModel.class); - - private static final long serialVersionUID = 2L; - - /** un drapeau pour selectionner ou non les donnees observers */ - protected boolean useData; - - /** un drapeau pour selectionner ou non des donnees observers ouvertes */ - protected boolean useOpenData; - - /** un drapeau pour selectionner ou non des donnees observer */ - protected boolean useReferentiel; - - /** la liste des programs utilisables (qui ont des marees) */ - protected transient Map<String, List<String>> datas; - - /** - * Le cache des entités chargées pour construire le modèle de sélection. - * - * Ces entités pourront ensuite être injectées dans les noeuds sans avoir à les recharger. - * - * @since 4.0 - */ - protected final Map<String, ? super TopiaEntity> entityCache; - - /** la liste des marees selectionnee */ - protected transient Set<String> selectedData; - - /** la liste des referentiels possibles */ - protected final Set<Class<?>> referentiel; - - /** la liste des referentiels selectionnes */ - protected final Set<Class<?>> selectedReferentiel; - - /** nb marees */ - protected int nbTrips; - - /** nb referentiels */ - protected final int nbReferentiels; - - protected final PropertyChangeSupport pcs; - - public void populate() throws Exception { - throw new UnsupportedOperationException(); - } - - public DataSelectionModel() { - pcs = new PropertyChangeSupport(this); - Class<?>[] classes = TopiaEntityHelper.getContracts(Entities.REFERENCE_ENTITIES); - List<Class<?>> list = Arrays.asList(classes); - referentiel = new HashSet<Class<?>>(list); - selectedReferentiel = new HashSet<Class<?>>(); - nbReferentiels = referentiel.size(); - entityCache = new TreeMap<String, TopiaEntity>(); - } - - public boolean isUseReferentiel() { - return useReferentiel; - } - - public boolean isUseData() { - return useData; - } - - public boolean isUseOpenData() { - return useOpenData; - } - - public boolean isEmpty() { - if (isUseReferentiel()) { - if (!isReferentielEmpty()) { - return false; - } - } - if (isUseData()) { - if (!isDataEmpty()) { - return false; - } - } - return true; - } - - protected void cacheEntity(TopiaEntity entity) { - entityCache.put(entity.getTopiaId(), entity); - } - - public TopiaEntity getEntityCache(String id) { - return (TopiaEntity) entityCache.get(id); - } - - public boolean isReferentielEmpty() { - return selectedReferentiel.isEmpty(); - } - - public boolean isReferentielFull() { - return selectedReferentiel.size() == nbReferentiels; - } - - public boolean isDataEmpty() { - return selectedData == null || selectedData.isEmpty(); - } - - public boolean isDataFull() { - return selectedData != null && selectedData.size() == nbTrips; - } - - public Set<Class<?>> getSelectedReferentiel() { - return selectedReferentiel; - } - - public Map<String, List<String>> getDatas() { - if (datas == null) { - datas = new HashMap<String, List<String>>(); - } - return datas; - } - - public Set<String> getSelectedData() { - if (selectedData == null) { - selectedData = new HashSet<String>(); - } - return selectedData; - } - - public Map<String, List<String>> getSelectedDataByProgram() { - if (datas == null || selectedData == null || selectedData.isEmpty()) { - return Collections.emptyMap(); - } - Map<String, List<String>> result = - new HashMap<String, List<String>>(datas.size()); - - for (String m : selectedData) { - - // on recherche son program - for (String p : datas.keySet()) { - if (datas.get(p).contains(m)) { - List<String> trips = result.get(p); - if (trips == null) { - trips = new ArrayList<String>(); - result.put(p, trips); - } - trips.add(m); - break; - } - } - } - return result; - } - - public boolean isSelectedData(String id) { - - if (Trips.isTripId(id)) { - - // recherche directe sur les ids de marees - return getSelectedData().contains(id); - } - - if (id.startsWith(Program.class.getName())) { - // on doit verifier que toutes les marees du program sont sélectionnées - List<String> tripIds = datas.get(id); - if (CollectionUtils.isEmpty(tripIds)) { - - // pas de marées - return false; - } - - for (String tripId : tripIds) { - if (!isSelectedData(tripId)) { - - // au moins une marée non sélectionnée - - return false; - } - } - - // toutes les marées sont sélectionnée - return true; - } - - // ne devrait pas arrivée - return false; - - } - - public boolean isSelectedReferentiel(Class<?> type) { - checkReferentielType(type); - return getSelectedReferentiel().contains(type); - } - - public void setUseReferentiel(boolean useReferentiel) { - this.useReferentiel = useReferentiel; - firePropertyChange(PROPERTY_USE_REFERENTIEL, useReferentiel); - } - - public void setUseData(boolean useData) { - this.useData = useData; - firePropertyChange(PROPERTY_USE_DATA, useData); - } - - public void setUseOpenData(boolean useOpenData) { - this.useOpenData = useOpenData; - firePropertyChange(PROPERTY_USE_OPEN_DATA, useOpenData); - } - - public void addSelectedReferentiel(Class<?> type) { - checkReferentielType(type); - if (log.isDebugEnabled()) { - log.debug("Add referentiel type " + type); - } - getSelectedReferentiel().add(type); - firePropertyChange(PROPERTY_SELECTED_REFERENTIEL, selectedReferentiel); - } - - public void addAllSelectedReferentiel() { - getSelectedReferentiel().addAll(referentiel); - firePropertyChange(PROPERTY_SELECTED_REFERENTIEL, selectedReferentiel); - } - - public void removeSelectedReferentiel(Class<?> type) { - checkReferentielType(type); - if (log.isDebugEnabled()) { - log.debug("remove referentiel type " + type); - } - getSelectedReferentiel().remove(type); - firePropertyChange(PROPERTY_SELECTED_REFERENTIEL, selectedReferentiel); - } - - public void removeAll() { - getSelectedReferentiel().clear(); - getSelectedData().clear(); - firePropertyChange(PROPERTY_SELECTED_REFERENTIEL, selectedReferentiel); - firePropertyChange(PROPERTY_SELECTED_DATA, selectedData); - } - - public void removeAllSelectedReferentiel() { - getSelectedReferentiel().clear(); - firePropertyChange(PROPERTY_SELECTED_REFERENTIEL, selectedReferentiel); - } - - public void setDatas(Map<String, List<String>> datas) { - this.datas = datas; - - // on compte le count de marées totale - int nbTrips = 0; - if (datas != null) { - for (List<String> marees : datas.values()) { - nbTrips += marees.size(); - } - } - this.nbTrips = nbTrips; - - if (log.isDebugEnabled()) { - log.debug("Nb program registred : " + (datas == null ? 0 : datas.size())); - log.debug("Nb trip registred : " + this.nbTrips); - } - firePropertyChange(PROPERTY_DATAS, datas); - } - - public void addSelectedData(String id) { - - if (Trips.isTripId(id)) { - - // ajout d'une marée - if (log.isDebugEnabled()) { - log.debug("Add Trip " + id); - } - getSelectedData().add(id); - } else if (id.startsWith(Program.class.getName())) { - - // ajout de toutes les marées du program - - if (log.isDebugEnabled()) { - log.debug("Add all trips of program " + id); - } - getSelectedData().addAll(datas.get(id)); - } - - - firePropertyChange(PROPERTY_SELECTED_DATA, selectedData); - } - - public void addAllSelectedData() { - if (log.isDebugEnabled()) { - log.debug("All all data."); - } - for (List<String> p : datas.values()) { - getSelectedData().addAll(p); - } - firePropertyChange(PROPERTY_SELECTED_DATA, selectedData); - } - - public void removeSelectedData(String id) { - if (Trips.isTripId(id)) { - - // ajout d'une marée - if (log.isDebugEnabled()) { - log.debug("Remove maree " + id); - } - getSelectedData().remove(id); - } else if (id.startsWith(Program.class.getName())) { - - // ajout de toutes les marées du program - - if (log.isDebugEnabled()) { - log.debug("Remove all marees of program " + id); - } - getSelectedData().removeAll(datas.get(id)); - } - firePropertyChange(PROPERTY_SELECTED_DATA, selectedData); - } - - public void removeAllSelectedData() { - if (selectedData != null) { - selectedData.clear(); - } - firePropertyChange(PROPERTY_SELECTED_DATA, selectedData); - } - - public void addPropertyChangeListener(PropertyChangeListener listener) { - pcs.addPropertyChangeListener(listener); - } - - public void addPropertyChangeListener(String propertyName, - PropertyChangeListener listener) { - pcs.addPropertyChangeListener(propertyName, listener); - } - - public void removePropertyChangeListener(PropertyChangeListener listener) { - pcs.removePropertyChangeListener(listener); - } - - public void removePropertyChangeListener(String propertyName, - PropertyChangeListener listener) { - pcs.removePropertyChangeListener(propertyName, listener); - } - - protected void firePropertyChange(String propertyName, Object newValue) { - pcs.firePropertyChange(propertyName, null, newValue); - } - - protected void firePropertyChange(String propertyName, - Object oldValue, - Object newValue) { - pcs.firePropertyChange(propertyName, oldValue, newValue); - } - - protected void checkReferentielType(Class<?> type) { - if (!referentiel.contains(type)) { - throw new IllegalArgumentException( - "given <" + type + "> is not in referentiel universe : " + - referentiel); - } - } - - public void destroy() { - removeAll(); - // suppression de tous les listeners - PropertyChangeListener[] listeners = pcs.getPropertyChangeListeners(); - for (PropertyChangeListener l : listeners) { - removePropertyChangeListener(l); - } - } - - @Override - protected void finalize() throws Throwable { - super.finalize(); - destroy(); - } -} diff --git a/observe-application-swing/src/main/java/fr/ird/observe/entities/longline/SectionTemplate.java b/observe-application-swing/src/main/java/fr/ird/observe/entities/longline/SectionTemplate.java new file mode 100644 index 0000000..67eae53 --- /dev/null +++ b/observe-application-swing/src/main/java/fr/ird/observe/entities/longline/SectionTemplate.java @@ -0,0 +1,184 @@ +package fr.ird.observe.entities.longline; + +/* + * #%L + * ObServe :: Entities + * %% + * Copyright (C) 2008 - 2014 IRD, Codelutin, Tony Chemit + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + +import com.google.common.base.Objects; +import com.google.common.base.Preconditions; +import fr.ird.observe.services.dto.longline.BasketDto; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import org.jdesktop.beans.AbstractSerializableBean; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +/** + * Created on 12/11/14. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 3.9 + */ +public class SectionTemplate extends AbstractSerializableBean { + + private static final long serialVersionUID = 1L; + + public static final String PROPERTY_ID = "id"; + + public static final String PROPERTY_FLOATLINE_LENGTHS = "floatlineLengths"; + + protected static final Pattern FLOATLINE_LENGTHS_PATTERN = Pattern.compile("(\\d+)(\\.\\d*){0,1}(/(\\d+)(\\.\\d*){0,1})+"); + + /** + * Identifier of the template. + */ + protected String id; + + /** + * Floatlines lengths for this template. + */ + protected String floatlineLengths; + + public String getId() { + return id; + } + + public void setId(String id) { + String oldValue = getId(); + this.id = id; + firePropertyChange(PROPERTY_ID, oldValue, id); + } + + public String getFloatlineLengths() { + return floatlineLengths; + } + + + public void setFloatlineLengths(String floatlineLengths) { + + String oldValue = getFloatlineLengths(); + this.floatlineLengths = floatlineLengths; + firePropertyChange(PROPERTY_FLOATLINE_LENGTHS, oldValue, this.floatlineLengths); + + } + + public boolean isFloatlineLengthsValid() { + + Matcher matcher = FLOATLINE_LENGTHS_PATTERN.matcher(floatlineLengths); + return matcher.matches(); + + } + + public List<Float> getFloatlineLengthsAsList() { + + String[] parts = floatlineLengths.split("\\/"); + List<Float> newLengths = new ArrayList<Float>(parts.length); + for (String part : parts) { + Float aFloat = Float.valueOf(part); + newLengths.add(aFloat); + } + return newLengths; + + } + + public boolean isCompiliantWithBasketCount(int basketsCount) { + + Preconditions.checkArgument(isFloatlineLengthsValid()); + + List<Float> floatlineLengthsAsList = getFloatlineLengthsAsList(); + boolean valid = basketsCount + 1 == floatlineLengthsAsList.size(); + return valid; + + } + + public void applyToBaskets(List<BasketDto> baskets) { + + Preconditions.checkArgument(isFloatlineLengthsValid()); + Preconditions.checkNotNull(baskets); + Preconditions.checkArgument(!baskets.isEmpty()); + Preconditions.checkArgument(isCompiliantWithBasketCount(baskets.size())); + + List<Float> floatlineLengthsAsList = getFloatlineLengthsAsList(); + + Iterator<Float> lengthsIterator = floatlineLengthsAsList.iterator(); + + float floatline1; + float floatline2; + + Iterator<BasketDto> basketIterator = baskets.iterator(); + + { + + // on first basket, usgin the two first lengths + floatline1 = lengthsIterator.next(); + floatline2 = lengthsIterator.next(); + + BasketDto basket = basketIterator.next(); + basket.setFloatline1Length(floatline1); + basket.setFloatline2Length(floatline2); + + } + + while (basketIterator.hasNext()) { + + // floatline1 is previous floatline2 + floatline1 = floatline2; + floatline2 = lengthsIterator.next(); + + BasketDto basket = basketIterator.next(); + basket.setFloatline1Length(floatline1); + basket.setFloatline2Length(floatline2); + + } + + } + + @Override + public String toString() { + return new ToStringBuilder(this, ToStringStyle.SHORT_PREFIX_STYLE) + .append("id", id) + .append("floatlineLengths", floatlineLengths) + .toString(); + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (!(o instanceof SectionTemplate)) return false; + + SectionTemplate that = (SectionTemplate) o; + + return Objects.equal(floatlineLengths, that.floatlineLengths) + && Objects.equal(id, that.id); + + } + + @Override + public int hashCode() { + int result = id == null ? 0 : id.hashCode(); + result = 31 * result + (floatlineLengths == null ? 0 : floatlineLengths.hashCode()); + return result; + } +} diff --git a/observe-application-swing/src/main/java/fr/ird/observe/entities/tripMap/TripMapPoint.java b/observe-application-swing/src/main/java/fr/ird/observe/entities/tripMap/TripMapPoint.java new file mode 100644 index 0000000..ffc703a --- /dev/null +++ b/observe-application-swing/src/main/java/fr/ird/observe/entities/tripMap/TripMapPoint.java @@ -0,0 +1,71 @@ +package fr.ird.observe.entities.tripMap; + +/* + * #%L + * ObServe :: Entities + * %% + * Copyright (C) 2008 - 2015 IRD, Codelutin, Tony Chemit + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + +import java.util.Date; + +/** + * @author Sylvain Bavencoff - bavencoff@codelutin.com + */ +public class TripMapPoint { + + protected Date time; + + protected float latitude; + + protected float longitude; + + protected TripMapPointType type; + + public Date getTime() { + return time; + } + + public void setTime(Date time) { + this.time = time; + } + + public float getLatitude() { + return latitude; + } + + public void setLatitude(float latitude) { + this.latitude = latitude; + } + + public float getLongitude() { + return longitude; + } + + public void setLongitude(float longitude) { + this.longitude = longitude; + } + + public TripMapPointType getType() { + return type; + } + + public void setType(TripMapPointType type) { + this.type = type; + } +} diff --git a/observe-application-swing/src/main/java/fr/ird/observe/entities/tripMap/TripMapPointType.java b/observe-application-swing/src/main/java/fr/ird/observe/entities/tripMap/TripMapPointType.java new file mode 100644 index 0000000..917ac54 --- /dev/null +++ b/observe-application-swing/src/main/java/fr/ird/observe/entities/tripMap/TripMapPointType.java @@ -0,0 +1,58 @@ +package fr.ird.observe.entities.tripMap; + +/* + * #%L + * ObServe :: Entities + * %% + * Copyright (C) 2008 - 2015 IRD, Codelutin, Tony Chemit + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + +import static org.nuiton.i18n.I18n.n; +import static org.nuiton.i18n.I18n.t; + +/** + * @author Sylvain Bavencoff - bavencoff@codelutin.com + */ +public enum TripMapPointType { + + SEINE_DEPARTURE_HARBOUR(n("observe.map.seine.harbour.departure")), + SEINE_LANDING_HARBOUR(n("observe.map.seine.harbour.landing")), + SEINE_ACTIVITY(n("observe.map.seine.activity")), + SEINE_ACTIVITY_IN_HARBOUR(n("observe.map.seine.activity.inHarbour")), + SEINE_ACTIVITY_WITH_FREE_SCHOOL_TYPE(n("observe.map.seine.activity.schollType.free")), + SEINE_ACTIVITY_WITH_OBJECT_SCHOOL_TYPE(n("observe.map.seine.activity.schollType.object")), + + LONGLINE_IN_HARBOUR(n("observe.map.longLine.seine.harbour")), + LONGLINE_ACTIVITY(n("observe.map.longLine.activity")), + LONGLINE_ACTIVITY_WITH_SETTING_START(n("observe.map.longLine.activity.setting.start")), + LONGLINE_ACTIVITY_WITH_SETTING_END(n("observe.map.longLine.activity.setting.end")), + LONGLINE_ACTIVITY_WITH_HAULING_START(n("observe.map.longLine.activity.hauling.start")), + LONGLINE_ACTIVITY_WITH_HAULING_END(n("observe.map.longLine.activity.hauling.end")), + LONGLINE_ACTIVITY_WITH_INTERACTION(n("observe.map.longLine.activity.interaction")), + LONGLINE_ACTIVITY_WITH_STATION(n("observe.map.longLine.activity.station")); + + String label; + + TripMapPointType(String label) { + this.label = label; + } + + public String getLabel() { + return t(label); + } +} 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 2e05b68..b95579e 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 @@ -25,7 +25,7 @@ <import> fr.ird.observe.ObserveConfig - fr.ird.observe.db.DataContext + fr.ird.observe.business.db.DataContext fr.ird.observe.services.dto.TripDto fr.ird.observe.services.dto.ActivityDto fr.ird.observe.services.dto.SetDto 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 3221063..87426f2 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 @@ -22,13 +22,14 @@ package fr.ird.observe.ui; import fr.ird.observe.DataService; -import fr.ird.observe.DecoratorService; +import fr.ird.observe.business.DecoratorService; import fr.ird.observe.ObserveConfig; import fr.ird.observe.ObserveContext; -import fr.ird.observe.db.DataContext; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.impl.H2DataSource; +import fr.ird.observe.business.db.DataContext; +import fr.ird.observe.business.db.DataSource; +import fr.ird.observe.business.db.impl.H2DataSource; import fr.ird.observe.services.dto.constants.ReferenceLocaleDto; +import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.ui.content.ContentMode; import fr.ird.observe.ui.content.ContentUI; import fr.ird.observe.ui.content.ContentUIManager; @@ -212,8 +213,7 @@ public class ObserveMainUIHandler { if (log.isInfoEnabled()) { log.info("re-init db with locale " + config.getDbLocale()); } - decoratorService.setReferentialLocale( - ReferenceLocale.valueOf(config.getDbLocale())); + decoratorService.setReferentialLocale(ReferentialLocale.valueOf(config.getDbLocale())); reloadDecorators = true; } @@ -274,9 +274,9 @@ public class ObserveMainUIHandler { return source; } - protected static DataService getDataService() { - return ObserveContext.get().getDataService(); - } +// protected static DataService getDataService() { +// return ObserveContext.get().getDataService(); +// } public static void restartEdit() { ContentUI<?> selectedUI = ObserveContext.get().getSelectedContentUI(); 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 adaee02..3d0b828 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 @@ -21,7 +21,7 @@ */ package fr.ird.observe.ui; -import fr.ird.observe.DecoratorService; +import fr.ird.observe.business.DecoratorService; import fr.ird.observe.ObserveContext; import fr.ird.observe.services.dto.AbstractObserveDto; import fr.ird.observe.ui.util.table.ObserveBooleanTableCellRenderer; 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 a704970..1a1e6d3 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 @@ -23,7 +23,7 @@ package fr.ird.observe.ui.actions; */ import fr.ird.observe.ObserveContext; -import fr.ird.observe.db.constants.DbMode; +import fr.ird.observe.business.db.constants.DbMode; import fr.ird.observe.ui.ObserveMainUI; import fr.ird.observe.ui.storage.StorageUILauncher; import jaxx.runtime.SwingUtil; 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 613e8c1..e0813c7 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 @@ -23,7 +23,7 @@ package fr.ird.observe.ui.actions; */ import fr.ird.observe.ObserveContext; -import fr.ird.observe.db.DataSource; +import fr.ird.observe.business.db.DataSource; import jaxx.runtime.SwingUtil; import javax.swing.AbstractAction; 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 e87fab2..e6f2149 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 @@ -23,8 +23,8 @@ package fr.ird.observe.ui.actions; */ import fr.ird.observe.ObserveContext; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.DataSourceException; +import fr.ird.observe.business.db.DataSource; +import fr.ird.observe.business.db.DataSourceException; import fr.ird.observe.ui.ObserveMainUI; import fr.ird.observe.ui.ObserveMainUIHandler; import jaxx.runtime.SwingUtil; 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 b942f95..32ad905 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 @@ -23,8 +23,8 @@ package fr.ird.observe.ui.actions; */ import fr.ird.observe.ObserveContext; -import fr.ird.observe.db.constants.CreationMode; -import fr.ird.observe.db.constants.DbMode; +import fr.ird.observe.business.db.constants.CreationMode; +import fr.ird.observe.business.db.constants.DbMode; import fr.ird.observe.ui.ObserveMainUI; import fr.ird.observe.ui.storage.StorageStep; import fr.ird.observe.ui.storage.StorageUI; 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 f02e2da..c7fcb31 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 @@ -22,7 +22,7 @@ package fr.ird.observe.ui.actions; * #L% */ -import fr.ird.observe.DecoratorService; +import fr.ird.observe.business.DecoratorService; import fr.ird.observe.ObserveConfig; import fr.ird.observe.ObserveContext; import fr.ird.observe.ObserveRunner; 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 c4a0ee0..e4543b6 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 @@ -24,12 +24,12 @@ package fr.ird.observe.ui.actions; import fr.ird.observe.ObserveConfig; import fr.ird.observe.ObserveContext; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.DataSourceConfig; -import fr.ird.observe.db.DataSourceException; -import fr.ird.observe.db.DataSourceFactory; -import fr.ird.observe.db.impl.H2DataSourceConfig; -import fr.ird.observe.db.impl.PGDataSourceConfig; +import fr.ird.observe.business.db.DataSource; +import fr.ird.observe.business.db.DataSourceConfig; +import fr.ird.observe.business.db.DataSourceException; +import fr.ird.observe.business.db.DataSourceFactory; +import fr.ird.observe.business.db.impl.H2DataSourceConfig; +import fr.ird.observe.business.db.impl.PGDataSourceConfig; import jaxx.runtime.SwingUtil; import jaxx.runtime.swing.ErrorDialogUI; import org.apache.commons.logging.Log; 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 0a74cc4..6ef073f 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 @@ -23,8 +23,8 @@ package fr.ird.observe.ui.actions; */ import fr.ird.observe.ObserveContext; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.impl.H2DataSourceConfig; +import fr.ird.observe.business.db.DataSource; +import fr.ird.observe.business.db.impl.H2DataSourceConfig; import fr.ird.observe.ui.storage.StorageBackupUILauncher; import jaxx.runtime.SwingUtil; 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 e95b4c6..e41ba3e 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 @@ -26,11 +26,10 @@ import fr.ird.observe.DataService; import fr.ird.observe.ObserveConfig; import fr.ird.observe.ObserveConfigOption; import fr.ird.observe.ObserveContext; -import fr.ird.observe.ObserveTechnicalException; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.DataSourceException; +import fr.ird.observe.business.ObserveTechnicalException; +import fr.ird.observe.business.db.DataSource; +import fr.ird.observe.business.db.DataSourceException; import fr.ird.observe.services.dto.EntitiesDto; -import fr.ird.observe.services.dto.referential.SpeciesListDto; import fr.ird.observe.ui.ObserveMainUI; import fr.ird.observe.ui.ObserveMainUIHandler; import fr.ird.observe.ui.ObserveUICallback; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/AbstractUIAction.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/AbstractUIAction.java index c86a2a7..598b035 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/AbstractUIAction.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/AbstractUIAction.java @@ -21,7 +21,7 @@ */ package fr.ird.observe.ui.actions.shared; -import fr.ird.observe.db.DataContext; +import fr.ird.observe.business.db.DataContext; import fr.ird.observe.ui.ObserveMainUI; import fr.ird.observe.ui.content.ContentUI; import fr.ird.observe.ui.content.ObserveContentUI; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/AdminStep.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/AdminStep.java index 867603b..f1bf638 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/AdminStep.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/AdminStep.java @@ -21,7 +21,7 @@ */ package fr.ird.observe.ui.admin; -import fr.ird.observe.db.constants.DbMode; +import fr.ird.observe.business.db.constants.DbMode; import fr.ird.observe.ui.UIHelper; import fr.ird.observe.ui.admin.config.ConfigUI; import fr.ird.observe.ui.admin.config.SelectDataUI; 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 7dc1127..8dd8535 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 @@ -21,34 +21,20 @@ */ package fr.ird.observe.ui.admin; -import fr.ird.observe.BinderService; -import fr.ird.observe.DataService; -import fr.ird.observe.DecoratorService; +import fr.ird.observe.business.BinderService; +import fr.ird.observe.business.DecoratorService; import fr.ird.observe.ObserveContext; -import fr.ird.observe.ObserveDAOHelper; import fr.ird.observe.ObserveRunner; -import fr.ird.observe.ObserveServiceHelper; -import fr.ird.observe.SendMessageAble; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.DataSourceException; -import fr.ird.observe.db.ReplicationService; -import fr.ird.observe.db.event.DataSourceEvent; -import fr.ird.observe.db.event.DataSourceListener; -import fr.ird.observe.db.event.DataSourceListenerAdapter; -import fr.ird.observe.db.model.DataSelectionModel; -import fr.ird.observe.gps.GPSService; -import fr.ird.observe.ui.admin.config.SelectDataUI; -import fr.ird.observe.ui.admin.resume.ShowResumeUI; +import fr.ird.observe.business.SendMessageAble; +import fr.ird.observe.business.db.DataSource; +import fr.ird.observe.business.db.DataSourceException; +import fr.ird.observe.business.gps.GPSService; import fr.ird.observe.ui.tree.DataSelectionTreeSelectionModel; import fr.ird.observe.ui.tree.ObserveTreeHelper; -import fr.ird.observe.validation.ValidationService; +import fr.ird.observe.business.validation.ValidationService; import jaxx.runtime.swing.wizard.ext.WizardState; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.nuiton.topia.TopiaContext; -import org.nuiton.topia.TopiaException; -import org.nuiton.topia.persistence.TopiaDAO; -import org.nuiton.topia.persistence.TopiaEntity; import javax.swing.JTree; import javax.swing.tree.TreeModel; @@ -74,19 +60,20 @@ public class AdminTabUIHandler implements SendMessageAble { protected final AdminUIModel model; - protected final DataSourceListener serviceLogger = - new DataSourceListenerAdapter() { - - @Override - public void onNewMessage(DataSourceEvent event) { - DataSource service = event.getSource(); - - if (event.getMessageLevel() == DataSourceEvent.MessageLevel.INFO) { - sendMessage(service.getShortLabel() + " : " + - event.getMessage()); - } - } - }; + //FIXME +// protected final DataSourceListener serviceLogger = +// new DataSourceListenerAdapter() { +// +// @Override +// public void onNewMessage(DataSourceEvent event) { +// DataSource service = event.getSource(); +// +// if (event.getMessageLevel() == DataSourceEvent.MessageLevel.INFO) { +// sendMessage(service.getShortLabel() + " : " + +// event.getMessage()); +// } +// } +// }; protected AdminUI parentUI; @@ -95,7 +82,8 @@ public class AdminTabUIHandler implements SendMessageAble { * <p/> * Note: le service est sans état et donc peut rester en état du handler. */ - private ReplicationService replicationService; + //FIXME +// private ReplicationService replicationService; /** * Service de replication. @@ -115,7 +103,8 @@ public class AdminTabUIHandler implements SendMessageAble { private DecoratorService decoratorService; /** Service de manipulation de données depuis des bases. */ - private DataService dataService; + //FIXME +// private DataService dataService; /** Service de binders. */ private BinderService binderService; @@ -133,17 +122,19 @@ public class AdminTabUIHandler implements SendMessageAble { return model; } - public final ReplicationService getReplicationService() { - if (replicationService == null) { - replicationService = ObserveServiceHelper.newReplicationService(); - } - return replicationService; - } + //FIXME +// public final ReplicationService getReplicationService() { +// if (replicationService == null) { +// replicationService = ObserveServiceHelper.newReplicationService(); +// } +// return replicationService; +// } public final ValidationService getValidationService() { - if (validationService == null) { - validationService = ObserveServiceHelper.newValidationService(); - } + //FIXME +// if (validationService == null) { +// validationService = ObserveServiceHelper.newValidationService(); +// } return validationService; } @@ -154,12 +145,13 @@ public class AdminTabUIHandler implements SendMessageAble { return decoratorService; } - public final DataService getDataService() { - if (dataService == null) { - dataService = ObserveContext.get().getDataService(); - } - return dataService; - } + //FIXME +// public final DataService getDataService() { +// if (dataService == null) { +// dataService = ObserveContext.get().getDataService(); +// } +// return dataService; +// } public final BinderService getBinderService() { if (binderService == null) { @@ -204,46 +196,53 @@ public class AdminTabUIHandler implements SendMessageAble { protected void replicateData(DataSource source, DataSource target, String... tripIds) throws DataSourceException { - ReplicationService service = getReplicationService(); - if (tripIds == null || tripIds.length == 0) { - - // on replique toutes les données - service.replicateAllData(source, target); - } else { - - // on replique les données specifiees - service.replicateData(source, target, tripIds); - } + //FIXME +// ReplicationService service = getReplicationService(); +// if (tripIds == null || tripIds.length == 0) { +// +// // on replique toutes les données +// service.replicateAllData(source, target); +// } else { +// +// // on replique les données specifiees +// service.replicateData(source, target, tripIds); +// } } protected void replicateReferentiel(DataSource source, DataSource target) throws DataSourceException { - getReplicationService().replicateReferentiel(source, target); + //FIXME +// getReplicationService().replicateReferentiel(source, target); } - protected TopiaContext beginTransaction(DataSource source, String methodName) throws DataSourceException { - TopiaContext ctxt = source.beginTransaction(methodName); - return ctxt; - } - - protected void commitTransaction(DataSource source, TopiaContext tx, String methodName) throws DataSourceException { - source.commitTransaction(tx, methodName); - } - - protected void closeTransaction(DataSource source, TopiaContext tx, String methodName) throws DataSourceException { - source.closeTransaction(tx, methodName); - } - - protected void rollbackTransaction(DataSource source, TopiaContext tx, String methodName) throws DataSourceException { - source.rollbackTransaction(tx, methodName); - } - - protected TopiaDAO<TopiaEntity> getDAO(TopiaContext tx, TopiaEntity entity) throws TopiaException { - TopiaDAO<TopiaEntity> dao = - ObserveDAOHelper.<TopiaEntity, TopiaDAO<TopiaEntity>>getDAO(tx, entity); - return dao; - } + //FIXME +// protected TopiaContext beginTransaction(DataSource source, String methodName) throws DataSourceException { +// TopiaContext ctxt = source.beginTransaction(methodName); +// return ctxt; +// } + + //FIXME +// protected void commitTransaction(DataSource source, TopiaContext tx, String methodName) throws DataSourceException { +// source.commitTransaction(tx, methodName); +// } + + //FIXME +// protected void closeTransaction(DataSource source, TopiaContext tx, String methodName) throws DataSourceException { +// source.closeTransaction(tx, methodName); +// } + + //FIXME +// protected void rollbackTransaction(DataSource source, TopiaContext tx, String methodName) throws DataSourceException { +// source.rollbackTransaction(tx, methodName); +// } + + //FIXME +// protected TopiaDAO<TopiaEntity> getDAO(TopiaContext tx, TopiaEntity entity) throws TopiaException { +// TopiaDAO<TopiaEntity> dao = +// ObserveDAOHelper.<TopiaEntity, TopiaDAO<TopiaEntity>>getDAO(tx, entity); +// return dao; +// } public void initTabUI(AdminUI ui, AdminTabUI tabUI) { @@ -326,7 +325,8 @@ public class AdminTabUIHandler implements SendMessageAble { public void updateSelectionModel(SelectDataUI tabUI) { JTree selectTree = tabUI.getSelectTree(); - DataSelectionModel selectDataModel = tabUI.getSelectDataModel(); + //FIXME +// DataSelectionModel selectDataModel = tabUI.getSelectDataModel(); DataSelectionTreeSelectionModel selectionModel = tabUI.getSelectionModel(); ObserveTreeHelper helper = tabUI.getTreeHelper(); @@ -339,14 +339,16 @@ public class AdminTabUIHandler implements SendMessageAble { if (log.isDebugEnabled()) { log.debug("Will treeHelper : " + helper); - log.debug("selection model : " + selectDataModel); - log.debug("use referentiel : " + selectDataModel.isUseReferentiel()); - log.debug("use data : " + selectDataModel.isUseData()); + //FIXME +// log.debug("selection model : " + selectDataModel); +// log.debug("use referentiel : " + selectDataModel.isUseReferentiel()); +// log.debug("use data : " + selectDataModel.isUseData()); } - TreeModel model = helper.createModel(tabUI, selectDataModel, source); + //FIXME +// TreeModel model = helper.createModel(tabUI, selectDataModel, source); - selectTree.setModel(model); +// selectTree.setModel(model); selectionModel.initUI(selectTree); } @@ -369,15 +371,16 @@ public class AdminTabUIHandler implements SendMessageAble { } protected void addStorageServiceLogger(DataSource service) { - if (!service.containsDataSourceListener(serviceLogger)) { - service.addDataSourceListener(serviceLogger); - } + //FIXME +// if (!service.containsDataSourceListener(serviceLogger)) { +// service.addDataSourceListener(serviceLogger); +// } } protected void removeStorageServiceLogger(DataSource service) { - if (service.containsDataSourceListener(serviceLogger)) { - service.removeDataSourceListener(serviceLogger); - } +// if (service.containsDataSourceListener(serviceLogger)) { +// service.removeDataSourceListener(serviceLogger); +// } } protected void openSource(DataSource service) throws DataSourceException { diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/AdminUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/AdminUIHandler.java index e69e31d..a68d1f8 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/AdminUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/AdminUIHandler.java @@ -24,9 +24,6 @@ package fr.ird.observe.ui.admin; import fr.ird.observe.ObserveActionExecutor; import fr.ird.observe.ObserveRunner; import fr.ird.observe.ui.UIHelper; -import fr.ird.observe.ui.admin.config.ConfigUI; -import fr.ird.observe.ui.admin.resume.ShowResumeUI; -import fr.ird.observe.ui.admin.save.SaveLocalUI; import jaxx.runtime.swing.wizard.WizardUILancher; import jaxx.runtime.swing.wizard.ext.WizardExtUtil; import jaxx.runtime.swing.wizard.ext.WizardState; 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 b703c0d..4f80ccb 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 @@ -22,12 +22,8 @@ package fr.ird.observe.ui.admin; import fr.ird.observe.ObserveContext; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.DataSourceConfig; -import fr.ird.observe.db.DataSourceFactory; -import fr.ird.observe.db.impl.H2DataSourceConfig; -import fr.ird.observe.db.impl.PGDataSourceConfig; -import fr.ird.observe.ui.ObserveMainUI; +import fr.ird.observe.business.db.DataSource; +import fr.ird.observe.business.db.DataSourceConfig; import fr.ird.observe.ui.ObserveUIMode; import fr.ird.observe.ui.UIHelper; import jaxx.runtime.JAXXContext; @@ -271,12 +267,13 @@ public class AdminUILauncher extends WizardUILancher<AdminStep, AdminUIModel, Ad // on avait une source avant l'opération et aussi une ui DataSourceConfig sourceConfig = source.getConfig(); - if (sourceConfig instanceof H2DataSourceConfig) - source = DataSourceFactory.newService( - (H2DataSourceConfig) sourceConfig); - else - source = DataSourceFactory.newService( - (PGDataSourceConfig) sourceConfig); + //FIXME +// if (sourceConfig instanceof H2DataSourceConfig) +// source = DataSourceFactory.newService( +// (H2DataSourceConfig) sourceConfig); +// else +// source = DataSourceFactory.newService( +// (PGDataSourceConfig) sourceConfig); // on attache la source a l'ui ObserveContext.get().prepareMainStorage(source); 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 1cdebea..425ca35 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 @@ -22,12 +22,12 @@ package fr.ird.observe.ui.admin; import fr.ird.observe.ObserveConfig; -import fr.ird.observe.ObserveTechnicalException; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.DataSourceConfig; -import fr.ird.observe.db.DataSourceException; -import fr.ird.observe.db.constants.DbMode; -import fr.ird.observe.db.model.DataSelectionModel; +import fr.ird.observe.business.ObserveTechnicalException; +import fr.ird.observe.business.db.DataSource; +import fr.ird.observe.business.db.DataSourceConfig; +import fr.ird.observe.business.db.DataSourceException; +import fr.ird.observe.business.db.constants.DbMode; +import fr.ird.observe.services.service.actions.report.model.Report; import fr.ird.observe.ui.admin.consolidate.ConsolidateModel; import fr.ird.observe.ui.admin.export.ExportModel; import fr.ird.observe.ui.admin.gps.ImportGPSModel; @@ -37,8 +37,8 @@ import fr.ird.observe.ui.admin.synchronize.SynchronizeModel; import fr.ird.observe.ui.admin.validate.ValidateModel; import fr.ird.observe.ui.storage.StorageUIHandler; import fr.ird.observe.ui.storage.StorageUIModel; -import fr.ird.observe.validation.ValidationModelMode; -import fr.ird.observe.validation.ValidatorsMap; +import fr.ird.observe.business.validation.ValidationModelMode; +import fr.ird.observe.business.validation.ValidatorsMap; import jaxx.runtime.swing.wizard.ext.WizardExtModel; import jaxx.runtime.swing.wizard.ext.WizardState; import org.apache.commons.lang3.StringUtils; @@ -101,13 +101,15 @@ public class AdminUIModel extends WizardExtModel<AdminStep> { protected StorageUIHandler storageHandler; /** data service pour effectuer des opérations sur les sources */ - protected DataService dataService; + //FIXME +// protected DataService dataService; /** configuration de l'application */ protected ObserveConfig config; /** selection des donnees a valider */ - protected DataSelectionModel selectionDataModel; + //FIXME +// protected DataSelectionModel selectionDataModel; /** la liste des modes disponibles en entrée */ protected EnumSet<DbMode> availableIncomingModes; @@ -169,21 +171,24 @@ public class AdminUIModel extends WizardExtModel<AdminStep> { return; } - DataSelectionModel selectModel = getSelectionDataModel(); + //FIXME +// DataSelectionModel selectModel = getSelectionDataModel(); if (containsOperation(AdminStep.EXPORT_DATA)) { // on doit aussi calculer les ids des marées distantes - computeExistingTrips(dataService, getSafeCentralSource(true)); + //FIXME +// computeExistingTrips(dataService, getSafeCentralSource(true)); } // on remplit le modèle de sélection - if (log.isDebugEnabled()) { - log.debug("Will refill selectionModel [" + newStep + "] : " + selectModel); - } +// if (log.isDebugEnabled()) { +// log.debug("Will refill selectionModel [" + newStep + "] : " + selectModel); +// } DataSource dataSource = getSafeLocalSource(true); - populateSelectionModel(dataService, dataSource); + //FIXME +// populateSelectionModel(dataService, dataSource); } }; @@ -191,20 +196,21 @@ public class AdminUIModel extends WizardExtModel<AdminStep> { @Override public void propertyChange(PropertyChangeEvent evt) { - DataSelectionModel source = (DataSelectionModel) evt.getSource(); - if (log.isDebugEnabled()) { - log.debug("selection data model [" + source + "] changed on " + - evt.getPropertyName() + ", new value = " + - evt.getNewValue()); - } - validate(); - if (log.isDebugEnabled()) { - log.debug("nb selected export datas = " + - source.getSelectedData().size()); - } - - // on declanche la revalidation du modèle - firePropertyChange(VALID_STEP_PROPERTY_NAME, validStep); + //FIXME +// DataSelectionModel source = (DataSelectionModel) evt.getSource(); +// if (log.isDebugEnabled()) { +// log.debug("selection data model [" + source + "] changed on " + +// evt.getPropertyName() + ", new value = " + +// evt.getNewValue()); +// } +// validate(); +// if (log.isDebugEnabled()) { +// log.debug("nb selected export datas = " + +// source.getSelectedData().size()); +// } +// +// // on declanche la revalidation du modèle +// firePropertyChange(VALID_STEP_PROPERTY_NAME, validStep); } }; @@ -346,11 +352,12 @@ public class AdminUIModel extends WizardExtModel<AdminStep> { String txt; String params; txt = n("observe.storage.label.synchro.referentiel"); - if (getDbMode() == DbMode.CREATE_LOCAL) { - params = getH2Config().getDataDirectory().getAbsolutePath(); - } else { + //FIXME +// if (getDbMode() == DbMode.CREATE_LOCAL) { +// params = getH2Config().getDataDirectory().getAbsolutePath(); +// } else { params = getRemoteUrl(); - } +// } txt = t(txt, params); return txt; } @@ -364,7 +371,8 @@ public class AdminUIModel extends WizardExtModel<AdminStep> { } }; - selectionDataModel = new DataSelectionModel(); + //FIXME +// selectionDataModel = new DataSelectionModel(); availableIncomingModes = EnumSet.noneOf(DbMode.class); @@ -373,9 +381,10 @@ public class AdminUIModel extends WizardExtModel<AdminStep> { } } - public DataSelectionModel getSelectionDataModel() { - return selectionDataModel; - } + //FIXME +// public DataSelectionModel getSelectionDataModel() { +// return selectionDataModel; +// } public boolean needSelect() { if (WizardState.CANCELED == getModelState()) { @@ -391,16 +400,17 @@ public class AdminUIModel extends WizardExtModel<AdminStep> { } public String getSelectedTrip() { - Set<String> data = getSelectionDataModel().getSelectedData(); - if (data.isEmpty()) { - - // pas de Trip selectionne - return null; - } - String id = data.iterator().next(); - if (Trips.isTripId(id)) { - return id; - } + //FIXME +// Set<String> data = getSelectionDataModel().getSelectedData(); +// if (data.isEmpty()) { +// +// // pas de Trip selectionne +// return null; +// } +// String id = data.iterator().next(); +// if (Trips.isTripId(id)) { +// return id; +// } // la donnée n'est pas une marée return null; @@ -411,9 +421,10 @@ public class AdminUIModel extends WizardExtModel<AdminStep> { return (AdminActionModel) super.getStepModel(operation); } - public DataService getDataService() { - return dataService; - } + //FIXME +// public DataService getDataService() { +// return dataService; +// } public ObserveConfig getConfig() { return config; @@ -484,7 +495,8 @@ public class AdminUIModel extends WizardExtModel<AdminStep> { availableIncomingModes.clear(); storageHandler = ui.getContextValue(StorageUIHandler.class); - dataService = ui.getContextValue(DataService.class); + //FIXME +// dataService = ui.getContextValue(DataService.class); config = ui.getContextValue(ObserveConfig.class); // demarrage du modèle : on fixe ici une fois pour toute les liste @@ -580,7 +592,8 @@ public class AdminUIModel extends WizardExtModel<AdminStep> { getReportModel().addPropertyChangeListener(listenReportModified); // on ecoute la modification de la sélection - getSelectionDataModel().addPropertyChangeListener(DataSelectionModel.PROPERTY_SELECTED_DATA, listenerSelectedDataForReport); + //FIXME +// getSelectionDataModel().addPropertyChangeListener(DataSelectionModel.PROPERTY_SELECTED_DATA, listenerSelectedDataForReport); if (log.isInfoEnabled()) { log.info("Detects " + reports.size() + " report(s)."); @@ -675,28 +688,29 @@ public class AdminUIModel extends WizardExtModel<AdminStep> { modes.add(DbMode.CREATE_LOCAL); } - if (previousSource != null) { - - previousSourceConfig = previousSource.getConfig().clone(); - - if (previousSource instanceof PGDataSource) { - - if (!modes.contains(DbMode.USE_REMOTE)) { - - // pas autorise a utiliser cette source en entree - previousSource = null; - } - } - - if (previousSource instanceof H2DataSource) { - - if (!modes.contains(DbMode.USE_LOCAL)) { - - // pas autorise a utiliser cette source en entree - previousSource = null; - } - } - } + //FIXME +// if (previousSource != null) { +// +// previousSourceConfig = previousSource.getConfig().clone(); +// +// if (previousSource instanceof PGDataSource) { +// +// if (!modes.contains(DbMode.USE_REMOTE)) { +// +// // pas autorise a utiliser cette source en entree +// previousSource = null; +// } +// } +// +// if (previousSource instanceof H2DataSource) { +// +// if (!modes.contains(DbMode.USE_LOCAL)) { +// +// // pas autorise a utiliser cette source en entree +// previousSource = null; +// } +// } +// } availableIncomingModes.addAll(modes); @@ -744,42 +758,44 @@ public class AdminUIModel extends WizardExtModel<AdminStep> { return; } - DataSelectionModel selectionModel = getSelectionDataModel(); - - if (containsOperation(AdminStep.EXPORT_DATA)) { - - selectionModel.setUseData(true); - selectionModel.setUseOpenData(false); - selectionModel.setUseReferentiel(false); - } - - if (containsOperation(AdminStep.REPORT)) { - - selectionModel.setUseData(true); - selectionModel.setUseOpenData(true); - selectionModel.setUseReferentiel(false); - } - - if (containsOperation(AdminStep.VALIDATE)) { - - selectionModel.setUseOpenData(true); - } - - if (containsOperation(AdminStep.CONSOLIDATE)) { - - selectionModel.setUseOpenData(true); - selectionModel.setUseData(true); - selectionModel.setUseReferentiel(false); - } - - selectionModel.addPropertyChangeListener(listenSelectModified); + //FIXME +// DataSelectionModel selectionModel = getSelectionDataModel(); +// +// if (containsOperation(AdminStep.EXPORT_DATA)) { +// +// selectionModel.setUseData(true); +// selectionModel.setUseOpenData(false); +// selectionModel.setUseReferentiel(false); +// } +// +// if (containsOperation(AdminStep.REPORT)) { +// +// selectionModel.setUseData(true); +// selectionModel.setUseOpenData(true); +// selectionModel.setUseReferentiel(false); +// } +// +// if (containsOperation(AdminStep.VALIDATE)) { +// +// selectionModel.setUseOpenData(true); +// } +// +// if (containsOperation(AdminStep.CONSOLIDATE)) { +// +// selectionModel.setUseOpenData(true); +// selectionModel.setUseData(true); +// selectionModel.setUseReferentiel(false); +// } +// +// selectionModel.addPropertyChangeListener(listenSelectModified); } @Override public void destroy() { localSourceModel.destroy(); centralSourceModel.destroy(); - selectionDataModel.destroy(); + //FIXME +// selectionDataModel.destroy(); super.destroy(); } @@ -828,15 +844,16 @@ public class AdminUIModel extends WizardExtModel<AdminStep> { public DataSource getSafeTmpSource(boolean open) { if (tmpSource == null) { - try { - tmpSource = ObserveServiceHelper.newEmptyTempStorage( - config, - n("observe.storage.label.synchro"), - "synchrodb" - ); - } catch (IOException e) { - throw new IllegalStateException("Could not create temporary database", e); - } + //FIXME +// try { +// tmpSource = ObserveServiceHelper.newEmptyTempStorage( +// config, +// n("observe.storage.label.synchro"), +// "synchrodb" +// ); +// } catch (IOException e) { +// throw new IllegalStateException("Could not create temporary database", e); +// } if (open) { doOpenSource(tmpSource); } @@ -942,7 +959,8 @@ public class AdminUIModel extends WizardExtModel<AdminStep> { return false; } - DataSelectionModel selectionModel = getSelectionDataModel(); + //FIXME +// DataSelectionModel selectionModel = getSelectionDataModel(); switch (s) { case CONFIG: @@ -1015,26 +1033,27 @@ public class AdminUIModel extends WizardExtModel<AdminStep> { DataSource source = getSafeLocalSource(true); // pour valider une base il faut les droits - if (selectionModel.isUseData()) { - - // il faut les droits en Lecture sur les donnes - if (!(source.canReadData() && source.canWriteData())) { - if (log.isDebugEnabled()) { - log.debug("can not read and write data"); - } - return false; - } - } - if (selectionModel.isUseReferentiel()) { - - // il faut les droits en L/E sur le referentiel - if (!(source.canReadReferentiel() && source.canWriteReferentiel())) { - if (log.isDebugEnabled()) { - log.debug("can not read and write referentiel"); - } - return false; - } - } + //FIXME +// if (selectionModel.isUseData()) { +// +// // il faut les droits en Lecture sur les donnes +// if (!(source.canReadData() && source.canWriteData())) { +// if (log.isDebugEnabled()) { +// log.debug("can not read and write data"); +// } +// return false; +// } +// } +// if (selectionModel.isUseReferentiel()) { +// +// // il faut les droits en L/E sur le referentiel +// if (!(source.canReadReferentiel() && source.canWriteReferentiel())) { +// if (log.isDebugEnabled()) { +// log.debug("can not read and write referentiel"); +// } +// return false; +// } +// } } if (containsOperation(AdminStep.SYNCHRONIZE)) { @@ -1042,7 +1061,8 @@ public class AdminUIModel extends WizardExtModel<AdminStep> { DbMode dbMode = localSourceModel.getDbMode(); if (dbMode == centralSourceModel.getDbMode()) { if (dbMode == DbMode.USE_REMOTE) { - validate &= !localSourceModel.getPgConfig().getUrl().equals(centralSourceModel.getPgConfig().getUrl()); + //FIXME +// validate &= !localSourceModel.getPgConfig().getUrl().equals(centralSourceModel.getPgConfig().getUrl()); } else { // pour le moment ce cas n'est pas possible @@ -1057,7 +1077,8 @@ public class AdminUIModel extends WizardExtModel<AdminStep> { // avec des droits d'écriture de données // validate &= centralSourceModel.isValid() && // centralSourceModel.getPgConfig().isCanWriteData(); - validate &= centralSourceModel.getPgConfig().isCanWriteData(); + //FIXME +// validate &= centralSourceModel.getPgConfig().isCanWriteData(); } if (containsOperation(AdminStep.IMPORT_GPS)) { @@ -1084,8 +1105,9 @@ public class AdminUIModel extends WizardExtModel<AdminStep> { if (validate) { // il faut au moins une donnee de selectionnee - boolean empty = selectionModel.isEmpty(); - validate &= !empty; + //FIXME +// boolean empty = selectionModel.isEmpty(); +// validate &= !empty; } } if (containsOperation(AdminStep.EXPORT_DATA)) { @@ -1095,8 +1117,9 @@ public class AdminUIModel extends WizardExtModel<AdminStep> { if (validate) { // il faut au moins une donnee de selectionnee - boolean empty = selectionModel.isDataEmpty(); - validate &= !empty; + //FIXME +// boolean empty = selectionModel.isDataEmpty(); +// validate &= !empty; } } if (containsOperation(AdminStep.CONSOLIDATE)) { @@ -1106,8 +1129,9 @@ public class AdminUIModel extends WizardExtModel<AdminStep> { if (validate) { // il faut au moins une donnee de selectionnee - boolean empty = selectionModel.isDataEmpty(); - validate &= !empty; + //FIXME +// boolean empty = selectionModel.isDataEmpty(); +// validate &= !empty; } } if (containsOperation(AdminStep.REPORT)) { @@ -1117,9 +1141,10 @@ public class AdminUIModel extends WizardExtModel<AdminStep> { if (validate) { // il faut exactement une Trip de selectionnee - boolean empty = selectionModel.isDataEmpty(); - validate &= !empty && - selectionModel.getSelectedData().size() == 1; + //FIXME +// boolean empty = selectionModel.isDataEmpty(); +// validate &= !empty && +// selectionModel.getSelectedData().size() == 1; } } break; @@ -1243,36 +1268,38 @@ public class AdminUIModel extends WizardExtModel<AdminStep> { } } - public void populateSelectionModel(DataService dataService, DataSource source) { - try { - DataSelectionModel.populate(getSelectionDataModel(), dataService, source); - } catch (Exception e) { - if (log.isErrorEnabled()) { - log.error("could not populate selected model", e); - } - } finally { - - // on notifie que le modèle de sélection a changé - // (il faut donc recalculé l'arbre de sélection) - firePropertyChange(SELECTION_MODEL_CHANGED_PROPERTY_NAME, getSelectionDataModel()); - } - } - - protected void computeExistingTrips(DataService dataService, DataSource source) { - - List<String> existingTripIds = new ArrayList<String>(); - try { - List<String> tripSeineIds = dataService.getEntityIds(source, TripSeine.class); - existingTripIds.addAll(tripSeineIds); - List<String> tripLonglineIds = dataService.getEntityIds(source, TripLongline.class); - existingTripIds.addAll(tripLonglineIds); - } catch (DataSourceException e) { - throw new ObserveTechnicalException("Coould not get trip ids",e); - } - - getExportModel().setExistingTripIds(existingTripIds); - - } + //FIXME +// public void populateSelectionModel(DataService dataService, DataSource source) { +// try { +// DataSelectionModel.populate(getSelectionDataModel(), dataService, source); +// } catch (Exception e) { +// if (log.isErrorEnabled()) { +// log.error("could not populate selected model", e); +// } +// } finally { +// +// // on notifie que le modèle de sélection a changé +// // (il faut donc recalculé l'arbre de sélection) +// firePropertyChange(SELECTION_MODEL_CHANGED_PROPERTY_NAME, getSelectionDataModel()); +// } +// } + + //FIXME +// protected void computeExistingTrips(DataService dataService, DataSource source) { +// +// List<String> existingTripIds = new ArrayList<String>(); +// try { +// List<String> tripSeineIds = dataService.getEntityIds(source, TripSeine.class); +// existingTripIds.addAll(tripSeineIds); +// List<String> tripLonglineIds = dataService.getEntityIds(source, TripLongline.class); +// existingTripIds.addAll(tripLonglineIds); +// } catch (DataSourceException e) { +// throw new ObserveTechnicalException("Coould not get trip ids",e); +// } +// +// getExportModel().setExistingTripIds(existingTripIds); +// +// } protected void updateSaveLocalOperation() { boolean shouldAdd = false; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/config/ConfigUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/config/ConfigUIHandler.java index 17682e3..6151069 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/config/ConfigUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/config/ConfigUIHandler.java @@ -21,8 +21,8 @@ */ package fr.ird.observe.ui.admin.config; -import fr.ird.observe.db.DataSourceConfig; -import fr.ird.observe.db.constants.DbMode; +import fr.ird.observe.business.db.DataSourceConfig; +import fr.ird.observe.business.db.constants.DbMode; import fr.ird.observe.ui.UIHelper; import fr.ird.observe.ui.admin.AdminStep; import fr.ird.observe.ui.admin.AdminTabUI; @@ -169,13 +169,15 @@ public class ConfigUIHandler extends AdminTabUIHandler { return t("observe.common.storage.not.valid"); } - DataSourceConfig config; - if (sourceModel.getDbMode() == DbMode.USE_REMOTE) { - config = sourceModel.getPgConfig(); - } else { - config = sourceModel.getH2Config(); - } - return config.getPolicyLabel(); + //FIXME +// DataSourceConfig config; +// if (sourceModel.getDbMode() == DbMode.USE_REMOTE) { +// config = sourceModel.getPgConfig(); +// } else { +// config = sourceModel.getH2Config(); +// } +// return config.getPolicyLabel(); + return null; } protected boolean canShowLocalStorage(Set<AdminStep> operations, diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/consolidate/ConsolidateModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/consolidate/ConsolidateModel.java index ea233a1..0a3d831 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/consolidate/ConsolidateModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/consolidate/ConsolidateModel.java @@ -21,7 +21,7 @@ */ package fr.ird.observe.ui.admin.consolidate; -import fr.ird.observe.db.DataSource; +import fr.ird.observe.business.db.DataSource; import fr.ird.observe.services.dto.referential.ProgramDto; import fr.ird.observe.services.dto.seine.ActivitySeineDto; import fr.ird.observe.services.dto.seine.SetSeineDto; @@ -41,13 +41,13 @@ public class ConsolidateModel extends AdminActionModel { /** la source de données où effectuer la consolidation des données */ private DataSource source; - private Decorator<Program> programDecorator; + private Decorator<ProgramDto> programDecorator; - private Decorator<TripSeine> tripDecorator; + private Decorator<TripSeineDto> tripDecorator; - private Decorator<SetSeine> setDecorator; + private Decorator<SetSeineDto> setDecorator; - private Decorator<ActivitySeine> activityDecorator; + private Decorator<ActivitySeineDto> activityDecorator; public ConsolidateModel() { super(AdminStep.CONSOLIDATE); @@ -61,35 +61,35 @@ public class ConsolidateModel extends AdminActionModel { this.source = source; } - public Decorator<Program> getProgramDecorator() { + public Decorator<ProgramDto> getProgramDecorator() { return programDecorator; } - public void setProgramDecorator(Decorator<Program> programDecorator) { + public void setProgramDecorator(Decorator<ProgramDto> programDecorator) { this.programDecorator = programDecorator; } - public Decorator<TripSeine> getTripDecorator() { + public Decorator<TripSeineDto> getTripDecorator() { return tripDecorator; } - public void setTripDecorator(Decorator<TripSeine> tripDecorator) { + public void setTripDecorator(Decorator<TripSeineDto> tripDecorator) { this.tripDecorator = tripDecorator; } - public Decorator<SetSeine> getSetDecorator() { + public Decorator<SetSeineDto> getSetDecorator() { return setDecorator; } - public void setSetDecorator(Decorator<SetSeine> setDecorator) { + public void setSetDecorator(Decorator<SetSeineDto> setDecorator) { this.setDecorator = setDecorator; } - public Decorator<ActivitySeine> getActivityDecorator() { + public Decorator<ActivitySeineDto> getActivityDecorator() { return activityDecorator; } - public void setActivityDecorator(Decorator<ActivitySeine> activityDecorator) { + public void setActivityDecorator(Decorator<ActivitySeineDto> activityDecorator) { this.activityDecorator = activityDecorator; } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/consolidate/ConsolidateUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/consolidate/ConsolidateUIHandler.java index 205536c..a6988b0 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/consolidate/ConsolidateUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/consolidate/ConsolidateUIHandler.java @@ -21,13 +21,9 @@ */ package fr.ird.observe.ui.admin.consolidate; -import fr.ird.observe.ConsolidateDataService; -import fr.ird.observe.DecoratorService; -import fr.ird.observe.ObserveServiceHelper; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.DataSourceException; -import fr.ird.observe.db.model.DataSelectionModel; -import fr.ird.observe.services.dto.EntitiesDto; +import fr.ird.observe.business.DecoratorService; +import fr.ird.observe.business.db.DataSource; +import fr.ird.observe.business.db.DataSourceException; import fr.ird.observe.services.dto.referential.ProgramDto; import fr.ird.observe.services.dto.seine.ActivitySeineDto; import fr.ird.observe.services.dto.seine.SetSeineDto; @@ -42,8 +38,6 @@ import jaxx.runtime.swing.wizard.ext.WizardState; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.decorator.Decorator; -import org.nuiton.topia.TopiaContext; -import org.nuiton.topia.persistence.TopiaDAO; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; @@ -98,10 +92,11 @@ public class ConsolidateUIHandler extends AdminTabUIHandler { // avoid multi-cast return; } - DataSelectionModel value = (DataSelectionModel) evt.getNewValue(); - if (log.isDebugEnabled()) { - log.debug("selection model changed to " + value); - } + //FIXME +// DataSelectionModel value = (DataSelectionModel) evt.getNewValue(); +// if (log.isDebugEnabled()) { +// log.debug("selection model changed to " + value); +// } updateSelectionModel(selectTabUI); } }; @@ -136,68 +131,70 @@ public class ConsolidateUIHandler extends AdminTabUIHandler { // une erreur ou une annulation return init; } - java.util.Set<String> tripIds = model.getSelectionDataModel().getSelectedData(); - List<TripSeine> toUpdate = new ArrayList<TripSeine>(tripIds.size()); + //FIXME +// java.util.Set<String> tripIds = model.getSelectionDataModel().getSelectedData(); +// List<TripSeineDto> toUpdate = new ArrayList<TripSeineDto>(tripIds.size()); - ConsolidateDataService service = - ObserveServiceHelper.getConsolidateDataService(); +// ConsolidateDataService service = +// ObserveServiceHelper.getConsolidateDataService(); DataSource source = getStepModel().getSource(); String txName = "consolidateData"; - TopiaContext tx = source.beginTransaction(txName); - try { - TopiaDAO<TripSeine> dao = source.getDAO(tx, TripSeine.class); - for (String mareeId : tripIds) { - - if (Entities.isSeineId(mareeId)) { - - TripSeine trip = (TripSeine) tx.findByTopiaId(mareeId); - - boolean needUpdate = service.consolidateTrip(this, tx, trip); - if (needUpdate) { - - // on met a jour la maree en base - dao.update(trip); - - // on conserve une reference sur la maree mise à jour - toUpdate.add(trip); - } - - } - - } - - // on commite si quelque chose a ete mise a jour - boolean needCommit = !toUpdate.isEmpty(); - - if (needCommit) { - - sendMessage(t("observe.message.consolidate.save.changes", - toUpdate.size())); - source.commitTransaction(tx, txName); - } - - } catch (Exception eee) { - try { - source.rollbackTransaction(tx, txName); - } catch (DataSourceException e1) { - - // une autre erreur lors du rollback, qui ne doit pas empecher - // de continuer le traitement - if (log.isErrorEnabled()) { - log.error(e1); - } - } - throw eee; - } finally { - - // clean service - service.clear(); - - // toujours fermer la transaction - source.closeTransaction(tx, txName); - } + //FIXME +// TopiaContext tx = source.beginTransaction(txName); +// try { +// TopiaDAO<TripSeine> dao = source.getDAO(tx, TripSeine.class); +// for (String mareeId : tripIds) { +// +// if (Entities.isSeineId(mareeId)) { +// +// TripSeine trip = (TripSeine) tx.findByTopiaId(mareeId); +// +// boolean needUpdate = service.consolidateTrip(this, tx, trip); +// if (needUpdate) { +// +// // on met a jour la maree en base +// dao.update(trip); +// +// // on conserve une reference sur la maree mise à jour +// toUpdate.add(trip); +// } +// +// } +// +// } +// +// // on commite si quelque chose a ete mise a jour +// boolean needCommit = !toUpdate.isEmpty(); +// +// if (needCommit) { +// +// sendMessage(t("observe.message.consolidate.save.changes", +// toUpdate.size())); +// source.commitTransaction(tx, txName); +// } +// +// } catch (Exception eee) { +// try { +// source.rollbackTransaction(tx, txName); +// } catch (DataSourceException e1) { +// +// // une autre erreur lors du rollback, qui ne doit pas empecher +// // de continuer le traitement +// if (log.isErrorEnabled()) { +// log.error(e1); +// } +// } +// throw eee; +// } finally { +// +// // clean service +// service.clear(); +// +// // toujours fermer la transaction +// source.closeTransaction(tx, txName); +// } sendMessage(t("observe.message.consolidate.operation.done", new Date())); @@ -216,10 +213,10 @@ public class ConsolidateUIHandler extends AdminTabUIHandler { DecoratorService dProvider = getDecoratorService(); ConsolidateModel stepModel = getStepModel(); - Decorator<Program> p = dProvider.getDecoratorByType(Program.class); - Decorator<TripSeine> m = dProvider.getDecoratorByType(TripSeine.class); - Decorator<ActivitySeine> a = dProvider.getDecoratorByType(ActivitySeine.class); - Decorator<SetSeine> c = dProvider.getDecoratorByType(SetSeine.class); + Decorator<ProgramDto> p = dProvider.getDecoratorByType(ProgramDto.class); + Decorator<TripSeineDto> m = dProvider.getDecoratorByType(TripSeineDto.class); + Decorator<ActivitySeineDto> a = dProvider.getDecoratorByType(ActivitySeineDto.class); + Decorator<SetSeineDto> c = dProvider.getDecoratorByType(SetSeineDto.class); stepModel.setProgramDecorator(p); stepModel.setTripDecorator(m); stepModel.setActivityDecorator(a); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/export/ExportModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/export/ExportModel.java index 7714a60..dcce58a 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/export/ExportModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/export/ExportModel.java @@ -21,16 +21,12 @@ */ package fr.ird.observe.ui.admin.export; -import com.google.common.collect.ImmutableList; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.model.DataSelectionModel; -import fr.ird.observe.services.dto.TripDto; +import fr.ird.observe.business.db.DataSource; import fr.ird.observe.services.dto.longline.TripLonglineDto; import fr.ird.observe.services.dto.referential.ProgramDto; import fr.ird.observe.services.dto.seine.TripSeineDto; import fr.ird.observe.ui.admin.AdminActionModel; import fr.ird.observe.ui.admin.AdminStep; -import org.apache.commons.collections4.CollectionUtils; import org.nuiton.decorator.Decorator; import java.util.ArrayList; @@ -53,11 +49,11 @@ public class ExportModel extends AdminActionModel { /** les données exportables */ protected List<TripEntry> data; - protected Decorator<Program> programDecorator; + protected Decorator<ProgramDto> programDecorator; - protected Decorator<TripSeine> tripSeineDecorator; + protected Decorator<TripSeineDto> tripSeineDecorator; - protected Decorator<TripLongline> tripLonglineDecorator; + protected Decorator<TripLonglineDto> tripLonglineDecorator; protected DataSource source; @@ -97,32 +93,33 @@ public class ExportModel extends AdminActionModel { return data; } - public void setData(DataSelectionModel selectionModel) { - - List<TripEntry> tripEntries = new ArrayList<TripEntry>(); - - for (List<String> tripIds : selectionModel.getSelectedDataByProgram().values()) { - - if (CollectionUtils.isNotEmpty(tripIds)) { - - for (String tripId : tripIds) { - - Trip trip = (Trip) selectionModel.getEntityCache(tripId); - - boolean exists = existingTripIds.contains(trip.getTopiaId()); - - TripEntry entry = new TripEntry(trip, exists); - tripEntries.add(entry); - - } - - } - - } - - this.data = ImmutableList.copyOf(tripEntries); - - } + //FIXME +// public void setData(DataSelectionModel selectionModel) { +// +// List<TripEntry> tripEntries = new ArrayList<TripEntry>(); +// +// for (List<String> tripIds : selectionModel.getSelectedDataByProgram().values()) { +// +// if (CollectionUtils.isNotEmpty(tripIds)) { +// +// for (String tripId : tripIds) { +// +// Trip trip = (Trip) selectionModel.getEntityCache(tripId); +// +// boolean exists = existingTripIds.contains(trip.getTopiaId()); +// +// TripEntry entry = new TripEntry(trip, exists); +// tripEntries.add(entry); +// +// } +// +// } +// +// } +// +// this.data = ImmutableList.copyOf(tripEntries); +// +// } public DataSource getSource() { return source; @@ -140,23 +137,27 @@ public class ExportModel extends AdminActionModel { this.centralSource = centralSource; } - public void setProgramDecorator(Decorator<Program> programDecorator) { + public void setProgramDecorator(Decorator<ProgramDto> programDecorator) { this.programDecorator = programDecorator; } - public void setTripSeineDecorator(Decorator<TripSeine> mareeDecorator) { + public void setTripSeineDecorator(Decorator<TripSeineDto> mareeDecorator) { this.tripSeineDecorator = mareeDecorator; } - public void setTripLonglineDecorator(Decorator<TripLongline> tripLonglineDecorator) { + public void setTripLonglineDecorator(Decorator<TripLonglineDto> tripLonglineDecorator) { this.tripLonglineDecorator = tripLonglineDecorator; } - public String decorate(Trip trip) { - return trip instanceof TripSeine ? tripSeineDecorator.toString(trip) : tripLonglineDecorator.toString(trip); + public String decorate(TripSeineDto trip) { + return tripSeineDecorator.toString(trip); + } + + public String decorate(TripLonglineDto trip) { + return tripLonglineDecorator.toString(trip); } - public String decorate(Program program) { + public String decorate(ProgramDto program) { return programDecorator.toString(program); } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/export/ExportUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/export/ExportUIHandler.java index 42cf398..511ee05 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/export/ExportUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/export/ExportUIHandler.java @@ -21,10 +21,8 @@ */ package fr.ird.observe.ui.admin.export; -import fr.ird.observe.DecoratorService; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.model.DataSelectionModel; -import fr.ird.observe.services.dto.TripDto; +import fr.ird.observe.business.DecoratorService; +import fr.ird.observe.business.db.DataSource; import fr.ird.observe.services.dto.longline.TripLonglineDto; import fr.ird.observe.services.dto.referential.ProgramDto; import fr.ird.observe.services.dto.seine.TripSeineDto; @@ -41,7 +39,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.decorator.Decorator; -import javax.swing.JTable; +import javax.swing.*; import javax.swing.table.DefaultTableCellRenderer; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; @@ -90,10 +88,11 @@ public class ExportUIHandler extends AdminTabUIHandler { // // avoid multi-cast // return; // } - DataSelectionModel value = (DataSelectionModel) evt.getNewValue(); - if (log.isInfoEnabled()) { - log.info("selection model changed to " + value); - } + //FIXME +// DataSelectionModel value = (DataSelectionModel) evt.getNewValue(); +// if (log.isInfoEnabled()) { +// log.info("selection model changed to " + value); +// } selectTabUI.getSelectionModel().clearSelection(); selectTabUI.getSelectionRenderer().setExistingTripIds(model.getExportModel().getExistingTripIds()); @@ -123,8 +122,8 @@ public class ExportUIHandler extends AdminTabUIHandler { n("observe.synchro.table.exportData.exist.label.tip")); UIHelper.setTableColumnRenderer(table4, 0, UIHelper.newBooleanTableCellRenderer(renderer5)); - UIHelper.setTableColumnRenderer(table4, 1, UIHelper.newDecorateTableCellRenderer(renderer5, Program.class)); - UIHelper.setTableColumnRenderer(table4, 2, UIHelper.newDecorateTableCellRenderer(renderer5, TripSeine.class)); + UIHelper.setTableColumnRenderer(table4, 1, UIHelper.newDecorateTableCellRenderer(renderer5, ProgramDto.class)); + UIHelper.setTableColumnRenderer(table4, 2, UIHelper.newDecorateTableCellRenderer(renderer5, TripSeineDto.class)); UIHelper.setTableColumnRenderer(table4, 3, UIHelper.newBooleanTableCellRenderer(renderer5)); UIHelper.setTableColumnEditor(table4, 0, MyDefaultCellEditor.newBooleanEditor(false)); @@ -195,9 +194,9 @@ public class ExportUIHandler extends AdminTabUIHandler { DecoratorService decoratorProvider = getDecoratorService(); ExportModel stepModel = model.getExportModel(); - Decorator<Program> pDecorator = decoratorProvider.getDecoratorByType(Program.class); - Decorator<TripLongline> tripLonglineDecorator = decoratorProvider.getDecoratorByType(TripLongline.class); - Decorator<TripSeine> tripSeineDecorator = decoratorProvider.getDecoratorByType(TripSeine.class); + Decorator<ProgramDto> pDecorator = decoratorProvider.getDecoratorByType(ProgramDto.class); + Decorator<TripLonglineDto> tripLonglineDecorator = decoratorProvider.getDecoratorByType(TripLonglineDto.class); + Decorator<TripSeineDto> tripSeineDecorator = decoratorProvider.getDecoratorByType(TripSeineDto.class); stepModel.setProgramDecorator(pDecorator); stepModel.setTripSeineDecorator(tripSeineDecorator); stepModel.setTripLonglineDecorator(tripLonglineDecorator); @@ -227,8 +226,9 @@ public class ExportUIHandler extends AdminTabUIHandler { sendMessage(t("observe.message.exportData.prepare.data")); // récupération des couples (program, marees) sur la base temporaire - DataSelectionModel selectionModel = model.getSelectionDataModel(); - stepModel.setData(selectionModel); + //FIXME +// DataSelectionModel selectionModel = model.getSelectionDataModel(); +// stepModel.setData(selectionModel); List<TripEntry> entries = stepModel.getData(); @@ -268,51 +268,53 @@ public class ExportUIHandler extends AdminTabUIHandler { DataSource centralSource = stepModel.getCentralSource(); DataSource source = stepModel.getSource(); - Trip trip = tripEntry.getTrip(); - String tripId = trip.getTopiaId(); - - String tripDecorated = stepModel.decorate(trip); - String programDecorated = stepModel.decorate(trip.getProgram()); - - if (tripEntry.isExist()) { - - //TODO afficher un message de confirmation pour l'écrasement des marées sur la base distante - // on supprime les marées à écraser de la base distante - - if (log.isInfoEnabled()) { - log.info(tripId + " -- " + t("observe.message.exportData.delete.remote.maree", tripDecorated, programDecorated)); - } - sendMessage(t("observe.message.exportData.delete.remote.maree", tripDecorated, programDecorated)); - - getDataService().deleteTrip(centralSource, tripId); - - } - - if (log.isInfoEnabled()) { - log.info(tripId + " -- " + t("observe.message.exportData.replicate.maree", tripDecorated, programDecorated)); - } - sendMessage(t("observe.message.exportData.replicate.maree", tripDecorated, programDecorated)); - - try { - replicateData(source, centralSource, tripId); - } catch (Exception e) { - //FIXME 20100726 : il faut supprimer tous les objets crées pour cette marée -// tx = beginTransaction(centralSource, txName); + //FIXME +// Trip trip = tripEntry.getTrip(); +// String tripId = trip.getTopiaId(); // -// // on supprime la maree qui n'a pas pu etre importee -// try { -// TopiaDAO<Trip> dao = ObserveDAOHelper.getTripSeineDAO(tx); -// // on recharge la données depuis la base centrale -// m = dao.findByTopiaId(m.getTopiaId()); -// dao.delete(m); -// commitTransaction(centralSource, tx, txName); -// } finally { -// closeTransaction(centralSource, tx, txName); -// } - - throw e; - } +// String tripDecorated = stepModel.decorate(trip); +// String programDecorated = stepModel.decorate(trip.getProgram()); +// +// if (tripEntry.isExist()) { +// +// //TODO afficher un message de confirmation pour l'écrasement des marées sur la base distante +// // on supprime les marées à écraser de la base distante +// +// if (log.isInfoEnabled()) { +// log.info(tripId + " -- " + t("observe.message.exportData.delete.remote.maree", tripDecorated, programDecorated)); +// } +// sendMessage(t("observe.message.exportData.delete.remote.maree", tripDecorated, programDecorated)); +// +// getDataService().deleteTrip(centralSource, tripId); +// +// } +// +// if (log.isInfoEnabled()) { +// log.info(tripId + " -- " + t("observe.message.exportData.replicate.maree", tripDecorated, programDecorated)); +// } +// sendMessage(t("observe.message.exportData.replicate.maree", tripDecorated, programDecorated)); +// +// try { +// replicateData(source, centralSource, tripId); +// } catch (Exception e) { +// //FIXME 20100726 : il faut supprimer tous les objets crées pour cette marée +// +//// tx = beginTransaction(centralSource, txName); +//// +//// // on supprime la maree qui n'a pas pu etre importee +//// try { +//// TopiaDAO<Trip> dao = ObserveDAOHelper.getTripSeineDAO(tx); +//// // on recharge la données depuis la base centrale +//// m = dao.findByTopiaId(m.getTopiaId()); +//// dao.delete(m); +//// commitTransaction(centralSource, tx, txName); +//// } finally { +//// closeTransaction(centralSource, tx, txName); +//// } +// +// throw e; +// } } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/export/TripEntry.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/export/TripEntry.java index 42b9ec9..3e96d54 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/export/TripEntry.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/export/TripEntry.java @@ -21,7 +21,8 @@ */ package fr.ird.observe.ui.admin.export; -import fr.ird.observe.services.dto.TripDto; +import fr.ird.observe.services.dto.longline.TripLonglineDto; +import fr.ird.observe.services.dto.seine.TripSeineDto; import java.io.Serializable; @@ -30,19 +31,26 @@ public class TripEntry implements Serializable { private static final long serialVersionUID = 1L; - protected final Trip trip; + //FIXME +// protected final Trip trip; protected final boolean exist; - public TripEntry(Trip trip, boolean exist) { - this.trip = trip; + public TripEntry(TripLonglineDto trip, boolean exist) { +// this.trip = trip; this.exist = exist; } - public Trip getTrip() { - return trip; + public TripEntry(TripSeineDto trip, boolean exist) { +// this.trip = trip; + this.exist = exist; } + //FIXME +// public Trip getTrip() { +// return trip; +// } + public boolean isExist() { return exist; } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/export/TripToExportTableModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/export/TripToExportTableModel.java index cc71c7d..d05c654 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/export/TripToExportTableModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/export/TripToExportTableModel.java @@ -21,7 +21,6 @@ */ package fr.ird.observe.ui.admin.export; -import fr.ird.observe.services.dto.TripDto; import fr.ird.observe.services.dto.referential.ProgramDto; import javax.swing.table.AbstractTableModel; @@ -40,8 +39,9 @@ public class TripToExportTableModel extends AbstractTableModel { protected static final Class<?>[] COLUMN_CLASSES = { Boolean.class, - Program.class, - Trip.class, + ProgramDto.class, + //FIXME +// Trip.class, Boolean.class }; @@ -115,10 +115,12 @@ public class TripToExportTableModel extends AbstractTableModel { value = selected.contains(rowIndex); break; case 1: - value = tripEntry.getTrip().getProgram(); + //FIXME +// value = tripEntry.getTrip().getProgram(); break; case 2: - value = tripEntry.getTrip(); + //FIXME +// value = tripEntry.getTrip(); break; case 3: value = tripEntry.isExist(); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/gps/GPSAbleTableModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/gps/GPSAbleTableModel.java index e2cd70d..ad88677 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/gps/GPSAbleTableModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/gps/GPSAbleTableModel.java @@ -21,7 +21,7 @@ */ package fr.ird.observe.ui.admin.gps; -import fr.ird.observe.services.dto.GPSAbleDto; +import fr.ird.observe.business.gps.GPSAble; import org.nuiton.i18n.I18n; import javax.swing.table.AbstractTableModel; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/gps/GPSActivityTableModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/gps/GPSActivityTableModel.java index f542906..65b0701 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/gps/GPSActivityTableModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/gps/GPSActivityTableModel.java @@ -22,8 +22,8 @@ package fr.ird.observe.ui.admin.gps; import fr.ird.observe.ObserveContext; +import fr.ird.observe.business.gps.GPSPoint; import fr.ird.observe.services.dto.seine.ActivitySeineDto; -import fr.ird.observe.gps.GPSPoint; import org.nuiton.decorator.Decorator; import org.nuiton.i18n.I18n; @@ -55,7 +55,7 @@ public class GPSActivityTableModel extends AbstractTableModel { protected static final Class<?>[] COLUMN_CLASSES = { Boolean.class, - ActivitySeine.class, + ActivitySeineDto.class, Integer.class, Float.class, Float.class, @@ -64,7 +64,7 @@ public class GPSActivityTableModel extends AbstractTableModel { private static final long serialVersionUID = 1L; - protected List<Entry<ActivitySeine, GPSPoint>> entries; + protected List<Entry<ActivitySeineDto, GPSPoint>> entries; protected Set<Integer> selected; @@ -74,7 +74,7 @@ public class GPSActivityTableModel extends AbstractTableModel { public GPSActivityTableModel() { selected = new HashSet<Integer>(); - decorator = ObserveContext.get().getDecorator(ActivitySeine.class, + decorator = ObserveContext.get().getDecorator(ActivitySeineDto.class, "gps-activity"); } @@ -88,9 +88,9 @@ public class GPSActivityTableModel extends AbstractTableModel { return columnIndex == 0; } - public void init(Map<ActivitySeine, GPSPoint> entries) { + public void init(Map<ActivitySeineDto, GPSPoint> entries) { // on nettoye toujours le model lors de l'init d'une entité - this.entries = new ArrayList<Entry<ActivitySeine, GPSPoint>>( + this.entries = new ArrayList<Entry<ActivitySeineDto, GPSPoint>>( entries.entrySet()); selected.clear(); // par defaut, on selectionne toutes les references @@ -161,7 +161,7 @@ public class GPSActivityTableModel extends AbstractTableModel { String text = ""; GPSPoint p; - ActivitySeine a; + ActivitySeineDto a; switch (columnIndex) { case 0: break; @@ -203,7 +203,8 @@ public class GPSActivityTableModel extends AbstractTableModel { } break; case -2: - value = getActivityAt(rowIndex).getQuadrant(); + //FIXME +// value = getActivityAt(rowIndex).getQuadrant(); if (value == null || (Integer) value == 0) { text = I18n.t("observe.common.undefined"); } else { @@ -241,7 +242,7 @@ public class GPSActivityTableModel extends AbstractTableModel { return text; } - public ActivitySeine getActivityAt(int rowIndex) { + public ActivitySeineDto getActivityAt(int rowIndex) { return entries.get(rowIndex).getKey(); } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/gps/ImportGPSUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/gps/ImportGPSUIHandler.java index 3de45fd..d650be6 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/gps/ImportGPSUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/gps/ImportGPSUIHandler.java @@ -21,15 +21,14 @@ */ package fr.ird.observe.ui.admin.gps; -import fr.ird.observe.DecoratorService; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.services.dto.OpenableEntitiesDto; +import fr.ird.observe.business.DecoratorService; +import fr.ird.observe.business.db.DataSource; +import fr.ird.observe.business.gps.GPSPoint; +import fr.ird.observe.business.gps.GPSPointInterval; +import fr.ird.observe.business.gps.GPSRoute; import fr.ird.observe.services.dto.seine.ActivitySeineDto; import fr.ird.observe.services.dto.seine.RouteDto; import fr.ird.observe.services.dto.seine.TripSeineDto; -import fr.ird.observe.gps.GPSPoint; -import fr.ird.observe.gps.GPSPointInterval; -import fr.ird.observe.gps.GPSRoute; import fr.ird.observe.ui.UIHelper; import fr.ird.observe.ui.admin.AdminStep; import fr.ird.observe.ui.admin.AdminTabUIHandler; @@ -45,9 +44,6 @@ import org.apache.commons.collections.primitives.IntList; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.decorator.Decorator; -import org.nuiton.topia.TopiaContext; -import org.nuiton.topia.TopiaException; -import org.nuiton.topia.persistence.TopiaDAO; import javax.swing.DefaultListCellRenderer; import javax.swing.DefaultListSelectionModel; @@ -86,7 +82,7 @@ public class ImportGPSUIHandler extends AdminTabUIHandler { protected boolean wasInit; /** la route ouverte */ - protected TripSeine openTripSeine; + protected TripSeineDto openTripSeine; /** la route gps */ protected GPSRoute route; @@ -96,11 +92,11 @@ public class ImportGPSUIHandler extends AdminTabUIHandler { * correspondant à une marée alors la valeur sera nulle * (data.get(a)==null). */ - protected Map<ActivitySeine, GPSPoint> data; + protected Map<ActivitySeineDto, GPSPoint> data; protected DataSource source; - protected Decorator<ActivitySeine> dActivity; + protected Decorator<ActivitySeineDto> dActivity; protected Decorator<GPSPoint> dGPSPoint; @@ -370,7 +366,7 @@ public class ImportGPSUIHandler extends AdminTabUIHandler { DecoratorService dService = getDecoratorService(); - dActivity = dService.getDecoratorByType(ActivitySeine.class, "activity-gps"); + dActivity = dService.getDecoratorByType(ActivitySeineDto.class, "activity-gps"); dGPSPoint = dService.getDecoratorByType(GPSPoint.class, "gpsPoint-gps"); source = model.getSafeLocalSource(false); @@ -379,12 +375,13 @@ public class ImportGPSUIHandler extends AdminTabUIHandler { openSource(source); // récuperation de la marée ouverte - TopiaContext srcCtxt = beginTransaction(source, "beforeAction"); - try { - openTripSeine = OpenableEntities.getOpenTrip(srcCtxt); - } catch (TopiaException e) { - closeTransaction(source, srcCtxt, "beforeAction"); - } + //FIXME +// TopiaContext srcCtxt = beginTransaction(source, "beforeAction"); +// try { +// openTripSeine = OpenableEntities.getOpenTrip(srcCtxt); +// } catch (TopiaException e) { +// closeTransaction(source, srcCtxt, "beforeAction"); +// } if (openTripSeine == null) { // pas de route ouverte @@ -392,19 +389,21 @@ public class ImportGPSUIHandler extends AdminTabUIHandler { return WizardState.FAILED; } - if (openTripSeine.isRouteEmpty()) { - // pas de route sur la maree ouverte - sendMessage(t("observe.message.no.route.detected")); - return WizardState.FAILED; - } - for (Route r : openTripSeine.getRoute()) { - if (!r.isActivitySeineEmpty()) { - // on enregistre les actitives - for (ActivitySeine a : r.getActivitySeine()) { - data.put(a, null); - } - } - } + //FIXME +// if (openTripSeine.isRouteEmpty()) { +// // pas de route sur la maree ouverte +// sendMessage(t("observe.message.no.route.detected")); +// return WizardState.FAILED; +// } + //FIXME +// for (RouteDto r : openTripSeine.getRoute()) { +// if (!r.isActivitySeineEmpty()) { +// // on enregistre les actitives +// for (ActivitySeine a : r.getActivitySeine()) { +// data.put(a, null); +// } +// } +// } if (data.isEmpty()) { // pas d'activity a traiter @@ -486,7 +485,7 @@ public class ImportGPSUIHandler extends AdminTabUIHandler { } - public Map<ActivitySeine, GPSPoint> getData() { + public Map<ActivitySeineDto, GPSPoint> getData() { return data; } @@ -497,8 +496,8 @@ public class ImportGPSUIHandler extends AdminTabUIHandler { /** detection des points gps pour les activitys trouvees. */ protected void detectPoints() { - Set<ActivitySeine> rejected = new HashSet<ActivitySeine>(); - for (ActivitySeine a : data.keySet()) { + Set<ActivitySeineDto> rejected = new HashSet<ActivitySeineDto>(); + for (ActivitySeineDto a : data.keySet()) { Date time = a.getTime(); sendMessage(t("observe.message.importGPS.detect.point", dActivity.toString(a))); @@ -513,7 +512,7 @@ public class ImportGPSUIHandler extends AdminTabUIHandler { } // on supprime toutes les activités qui n'ont pas été acceptées - for (ActivitySeine a : rejected) { + for (ActivitySeineDto a : rejected) { data.remove(a); } } @@ -525,7 +524,8 @@ public class ImportGPSUIHandler extends AdminTabUIHandler { IntList lIndex = new ArrayIntList(selectedIndex.length); String txName = "applyPoints"; - TopiaContext ctxt = beginTransaction(source, txName); + //FIXME +// TopiaContext ctxt = beginTransaction(source, txName); try { @@ -537,8 +537,9 @@ public class ImportGPSUIHandler extends AdminTabUIHandler { int currentActivityIndex = 0; int nextActivityIndex = indexItr.next(); - TopiaDAO<ActivitySeine> activityDAO = source.getDAO(ctxt, ActivitySeine.class); - for (ActivitySeine a : data.keySet()) { + //FIXME +// TopiaDAO<ActivitySeine> activityDAO = source.getDAO(ctxt, ActivitySeine.class); + for (ActivitySeineDto a : data.keySet()) { if (currentActivityIndex == nextActivityIndex) { // l'activity courante a ete selectionne GPSPoint p = data.get(a); @@ -550,16 +551,18 @@ public class ImportGPSUIHandler extends AdminTabUIHandler { int quadrant = p.getQuadrant(); // application de la position - ActivitySeine aa = activityDAO.findByTopiaId(a.getTopiaId()); - aa.setLatitude(latitude); - aa.setLongitude(longitude); - aa.setQuadrant(quadrant); + //FIXME +// ActivitySeineDto aa = activityDAO.findByTopiaId(a.getTopiaId()); +// aa.setLatitude(latitude); +// aa.setLongitude(longitude); +// aa.setQuadrant(quadrant); //TODO appliquer la vitesse ? //a.setVesselSpeed(p.getVitesse()); // mise a jour de l'activity - activityDAO.update(aa); + //FIXME +// activityDAO.update(aa); // a.update(); if (indexItr.hasNext()) { @@ -574,13 +577,16 @@ public class ImportGPSUIHandler extends AdminTabUIHandler { currentActivityIndex++; } - commitTransaction(source, ctxt, txName); + //FIXME +// commitTransaction(source, ctxt, txName); } catch (Exception e) { - rollbackTransaction(source, ctxt, txName); + //FIXME +// rollbackTransaction(source, ctxt, txName); throw e; } finally { - closeTransaction(source, ctxt, txName); + //FIXME +// closeTransaction(source, ctxt, txName); lIndex.clear(); } } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/report/ReportModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/report/ReportModel.java index 5aa079d..907bb72 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/report/ReportModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/report/ReportModel.java @@ -21,6 +21,7 @@ */ package fr.ird.observe.ui.admin.report; +import fr.ird.observe.business.report.model.ReportExecute; import fr.ird.observe.services.service.actions.report.ReportBuilder; import fr.ird.observe.services.service.actions.report.model.Report; import fr.ird.observe.ui.admin.AdminActionModel; @@ -97,21 +98,19 @@ public class ReportModel extends AdminActionModel { /** Pour copier les entêtes de colonnes */ protected boolean copyColumnHeaders = true; - //FIXME -// protected ReportExecute reportExecute; + protected ReportExecute reportExecute; public ReportModel() { super(AdminStep.REPORT); variables = new TreeMap<String, Object>(); } - //FIXME -// public ReportExecute getReportExecute() { -// if (reportExecute == null) { -// reportExecute = new ReportExecute(); -// } -// return reportExecute; -// } + public ReportExecute getReportExecute() { + if (reportExecute == null) { + reportExecute = new ReportExecute(); + } + return reportExecute; + } public List<Report> loadReports(URL resource) throws IOException { diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/report/ReportUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/report/ReportUIHandler.java index 22737de..426d1e3 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/report/ReportUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/report/ReportUIHandler.java @@ -21,9 +21,10 @@ */ package fr.ird.observe.ui.admin.report; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.DataSourceException; -import fr.ird.observe.db.model.DataSelectionModel; +import fr.ird.observe.business.db.DataSource; +import fr.ird.observe.business.db.DataSourceException; +import fr.ird.observe.business.report.model.ReportExecute; +import fr.ird.observe.services.dto.IdDto; import fr.ird.observe.services.service.actions.report.model.DataMatrix; import fr.ird.observe.services.service.actions.report.model.Report; import fr.ird.observe.services.service.actions.report.model.ReportVariable; @@ -43,7 +44,6 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.decorator.Decorator; import org.nuiton.decorator.JXPathDecorator; -import org.nuiton.topia.persistence.TopiaEntity; import org.nuiton.util.TimeLog; import javax.swing.*; @@ -249,10 +249,10 @@ public class ReportUIHandler extends AdminTabUIHandler { throw new IllegalStateException( "No 'variableName' clientProperty on " + combo); } - TopiaEntity entity = (TopiaEntity) value; + IdDto entity = (IdDto) value; String id = null; if (entity != null) { - id = entity.getTopiaId(); + id = entity.getId(); } if (log.isInfoEnabled()) { log.info("Set variable [" + variableName + "] to value " + id); @@ -385,14 +385,13 @@ public class ReportUIHandler extends AdminTabUIHandler { protected void onVariablesChanges(ReportModel model, Map<String, Object> variables) { - //FIXME -// ReportExecute execute = getReportExecute(model); -// if (execute == null) { -// -// // l'executeur n'est plus disponible, on ne fait rien -// return; -// } -// updateValidState(execute, variables); + ReportExecute execute = getReportExecute(model); + if (execute == null) { + + // l'executeur n'est plus disponible, on ne fait rien + return; + } + updateValidState(execute, variables); } protected void onValidChanged(ReportModel model, boolean valid) { @@ -409,14 +408,13 @@ public class ReportUIHandler extends AdminTabUIHandler { getModel().setBusy(true); try { - //FIXME -// ReportExecute execute = getReportExecute(model); -// -// if (execute == null) { -// -// // l'executeur n'est plus disponible, on ne fait rien -// return; -// } + ReportExecute execute = getReportExecute(model); + + if (execute == null) { + + // l'executeur n'est plus disponible, on ne fait rien + return; + } Report report = null; // nettoyage diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/save/SaveLocalUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/save/SaveLocalUIHandler.java index 73ee654..e20395e 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/save/SaveLocalUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/save/SaveLocalUIHandler.java @@ -21,12 +21,7 @@ */ package fr.ird.observe.ui.admin.save; -import fr.ird.observe.ObserveDAOHelper; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.services.dto.EntitiesDto; -import fr.ird.observe.services.dto.referential.OceanDto; -import fr.ird.observe.services.dto.referential.SpeciesDto; -import fr.ird.observe.services.dto.referential.SpeciesListDto; +import fr.ird.observe.business.db.DataSource; import fr.ird.observe.ui.UIHelper; import fr.ird.observe.ui.admin.AdminStep; import fr.ird.observe.ui.admin.AdminTabUIHandler; @@ -39,12 +34,6 @@ import org.apache.commons.collections.MapUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.hibernate.jdbc.Work; -import org.nuiton.topia.TopiaContext; -import org.nuiton.topia.TopiaException; -import org.nuiton.topia.framework.TopiaContextImplementor; -import org.nuiton.topia.persistence.TopiaDAO; -import org.nuiton.topia.persistence.TopiaEntity; -import org.nuiton.topia.persistence.util.DiffState; import java.io.File; import java.sql.Connection; @@ -205,187 +194,191 @@ public class SaveLocalUIHandler extends AdminTabUIHandler { } DataSource targetSource = stepModel.getSource(); - DiffState.DiffStateMap diff = stepModel.getDiff(); - - String txName = "saveReferentiel"; - TopiaContext targetTx = beginTransaction(targetSource, txName); - try { - TopiaContext sourceTx = beginTransaction(referentielSource, txName); - try { - // ajout des nouvelles entites du referentiel - - ids = diff.get(DiffState.NEW); - if (CollectionUtils.isNotEmpty(ids)) { - for (String id : ids) { - //FIXME on doit s'assurer de l'orde d'injection des entites - TopiaEntity entity = sourceTx.findByTopiaId(id); - String message = t("observe.synchro.add.object", id); - sendMessage(message); - sourceTx.replicateEntity(targetTx, entity); - - // On est obligé de commiter à chaque ajout sinon si - // une autre entité à ajouter depend de celle là, on - // ne la retrouve pas - // - commitTransaction(targetSource, targetTx, txName); - if (log.isDebugEnabled()) { - log.debug("add [" + id + "] : " + targetTx.findByTopiaId(id)); - } - } - } - - // mis a jour des entites modifiees - - ids = diff.get(DiffState.MODIFIED); - if (CollectionUtils.isNotEmpty(ids)) { - - for (String id : ids) { - - copyEntity(stepModel, sourceTx, targetTx, id); - } - } - - // mise à jour des données utilisateurs (remplacements d'objets obsolètes) - - for (SynchronizeUIHandler.ObsoleteRefReplaceAction action : stepModel.getReplaceActions()) { - - String message = t("observe.synchro.replaceObsolete.object", action.getObsoleteId()); - sendMessage(message); - - action.doAction(targetTx); - } - - // si on ne commite pas ici, les modifications utilisateurs - // sont perdues - commitTransaction(targetSource, targetTx, txName); - - // suppression des entités obsoletes de la base source - - ids = diff.get(DiffState.REMOVED); - if (CollectionUtils.isNotEmpty(ids)) { - for (String id : ids) { - String message = t("observe.synchro.remove.object", id); - sendMessage(message); - TopiaEntity entity = targetTx.findByTopiaId(id); - getDAO(targetTx, entity).delete(entity); - } - } - - Map<TopiaEntity, Long> versionsToUpdate = - stepModel.getVersionsToUpdate(); - - if (MapUtils.isNotEmpty(versionsToUpdate)) { - - // on applique le patch sur les versions pour bien avoir - // la bonne version de topiaversion et pas seulement un incrément - // de 1 puisque ce champs est géré par hibernate et qu'il ne nous laisse - // pas la possibilité de choisir la valeur qu'on veut attribuer au champs... - patchTopiaVersions((TopiaContextImplementor) targetTx, versionsToUpdate); - } - - commitTransaction(targetSource, targetTx, txName); - } finally { - try { - rollbackTransaction(referentielSource, sourceTx, txName); - } finally { - closeTransaction(referentielSource, sourceTx, txName); - } - } - } catch (Exception e) { - rollbackTransaction(targetSource, targetTx, txName); - throw e; - } finally { - closeTransaction(targetSource, targetTx, txName); - } + //FIXME +// DiffState.DiffStateMap diff = stepModel.getDiff(); +// +// String txName = "saveReferentiel"; +// TopiaContext targetTx = beginTransaction(targetSource, txName); +// try { +// TopiaContext sourceTx = beginTransaction(referentielSource, txName); +// try { +// // ajout des nouvelles entites du referentiel +// +// ids = diff.get(DiffState.NEW); +// if (CollectionUtils.isNotEmpty(ids)) { +// for (String id : ids) { +// //FIXME on doit s'assurer de l'orde d'injection des entites +// TopiaEntity entity = sourceTx.findByTopiaId(id); +// String message = t("observe.synchro.add.object", id); +// sendMessage(message); +// sourceTx.replicateEntity(targetTx, entity); +// +// // On est obligé de commiter à chaque ajout sinon si +// // une autre entité à ajouter depend de celle là, on +// // ne la retrouve pas +// // +// commitTransaction(targetSource, targetTx, txName); +// if (log.isDebugEnabled()) { +// log.debug("add [" + id + "] : " + targetTx.findByTopiaId(id)); +// } +// } +// } +// +// // mis a jour des entites modifiees +// +// ids = diff.get(DiffState.MODIFIED); +// if (CollectionUtils.isNotEmpty(ids)) { +// +// for (String id : ids) { +// +// copyEntity(stepModel, sourceTx, targetTx, id); +// } +// } +// +// // mise à jour des données utilisateurs (remplacements d'objets obsolètes) +// +// for (SynchronizeUIHandler.ObsoleteRefReplaceAction action : stepModel.getReplaceActions()) { +// +// String message = t("observe.synchro.replaceObsolete.object", action.getObsoleteId()); +// sendMessage(message); +// +// action.doAction(targetTx); +// } +// +// // si on ne commite pas ici, les modifications utilisateurs +// // sont perdues +// commitTransaction(targetSource, targetTx, txName); +// +// // suppression des entités obsoletes de la base source +// +// ids = diff.get(DiffState.REMOVED); +// if (CollectionUtils.isNotEmpty(ids)) { +// for (String id : ids) { +// String message = t("observe.synchro.remove.object", id); +// sendMessage(message); +// TopiaEntity entity = targetTx.findByTopiaId(id); +// getDAO(targetTx, entity).delete(entity); +// } +// } +// +// Map<TopiaEntity, Long> versionsToUpdate = +// stepModel.getVersionsToUpdate(); +// +// if (MapUtils.isNotEmpty(versionsToUpdate)) { +// +// // on applique le patch sur les versions pour bien avoir +// // la bonne version de topiaversion et pas seulement un incrément +// // de 1 puisque ce champs est géré par hibernate et qu'il ne nous laisse +// // pas la possibilité de choisir la valeur qu'on veut attribuer au champs... +// patchTopiaVersions((TopiaContextImplementor) targetTx, versionsToUpdate); +// } +// +// commitTransaction(targetSource, targetTx, txName); +// } finally { +// try { +// rollbackTransaction(referentielSource, sourceTx, txName); +// } finally { +// closeTransaction(referentielSource, sourceTx, txName); +// } +// } +// } catch (Exception e) { +// rollbackTransaction(targetSource, targetTx, txName); +// throw e; +// } finally { +// closeTransaction(targetSource, targetTx, txName); +// } } - protected <E extends TopiaEntity> void copyEntity(SynchronizeModel synchronizeModel, - TopiaContext sourceTx, - TopiaContext targetTx, - String id) throws TopiaException { - - E source = (E) sourceTx.findByTopiaId(id); - - long sourceVersion = source.getTopiaVersion(); - - String message = t("observe.synchro.update.object", source.getTopiaId(), sourceVersion); - sendMessage(message); - - TopiaDAO<E> dao = ObserveDAOHelper.<E, TopiaDAO<E>>getDAO(targetTx, source); - - E target = dao.findByTopiaId(source.getTopiaId()); - - long targetVersion = target.getTopiaVersion(); - - // bind new entity to old one - copyEntity(targetTx, source, target); - - if (targetVersion < sourceVersion) { - //FIXME chemit : si la version n'est pas exactement celle voulue, - // on positionner à la main la version( hibernate ne nous permet - // pas de le faire - if (log.isDebugEnabled()) { - message = "register [" + source.getTopiaId() + - "] to update version " + sourceVersion + - " to " + targetVersion; - log.debug(message); - } - synchronizeModel.getVersionsToUpdate().put(target, sourceVersion); - } - - // wants to have exactly the same topiaversion after commit - target.setTopiaVersion(source.getTopiaVersion() - 1); - - dao.update(target); - } - - protected <E extends TopiaEntity> void copyEntity(TopiaContext targetTx, E source, E target) throws TopiaException { - - getBinderService().simpleCopy(source, target, false); - - if (source instanceof Species) { - - // Need also to bind ocean - getDataService().copyAssociation(Species.class, Ocean.class, Species.PROPERTY_OCEAN, (Species) source, (Species) target, targetTx); - - } else if (source instanceof SpeciesList) { - - // Need also to bind species - getDataService().copyAssociation(SpeciesList.class, Species.class, SpeciesList.PROPERTY_SPECIES, (SpeciesList) source, (SpeciesList) target, targetTx); - - } - - } - - protected void patchTopiaVersions(TopiaContextImplementor sourceCtxt, - Map<TopiaEntity, Long> versionsToUpdate) throws TopiaException { - - final StringBuilder buffer = new StringBuilder(); - - for (Map.Entry<TopiaEntity, Long> entry : - versionsToUpdate.entrySet()) { - TopiaEntity entity = entry.getKey(); - String id = entity.getTopiaId(); - Long version = entry.getValue(); - String tableName = Entities.getTableName(entity); - buffer.append(String.format(UPDATE_VERSION_PATTERN, tableName, version, id)); - - } - sourceCtxt.getHibernate().doWork(new Work() { - @Override - public void execute(Connection connection) throws SQLException { - String sql = buffer.toString(); - PreparedStatement sta = connection.prepareStatement(sql); - try { - if (log.isDebugEnabled()) { - log.debug("Will execute sql code :\n" + sql); - } - sta.executeUpdate(); - } finally { - sta.close(); - } - } - }); - } + //FIXME +// protected <E extends TopiaEntity> void copyEntity(SynchronizeModel synchronizeModel, +// TopiaContext sourceTx, +// TopiaContext targetTx, +// String id) throws TopiaException { +// +// E source = (E) sourceTx.findByTopiaId(id); +// +// long sourceVersion = source.getTopiaVersion(); +// +// String message = t("observe.synchro.update.object", source.getTopiaId(), sourceVersion); +// sendMessage(message); +// +// TopiaDAO<E> dao = ObserveDAOHelper.<E, TopiaDAO<E>>getDAO(targetTx, source); +// +// E target = dao.findByTopiaId(source.getTopiaId()); +// +// long targetVersion = target.getTopiaVersion(); +// +// // bind new entity to old one +// copyEntity(targetTx, source, target); +// +// if (targetVersion < sourceVersion) { +// //FIXME chemit : si la version n'est pas exactement celle voulue, +// // on positionner à la main la version( hibernate ne nous permet +// // pas de le faire +// if (log.isDebugEnabled()) { +// message = "register [" + source.getTopiaId() + +// "] to update version " + sourceVersion + +// " to " + targetVersion; +// log.debug(message); +// } +// synchronizeModel.getVersionsToUpdate().put(target, sourceVersion); +// } +// +// // wants to have exactly the same topiaversion after commit +// target.setTopiaVersion(source.getTopiaVersion() - 1); +// +// dao.update(target); +// } +// + //FIXME +// protected <E extends TopiaEntity> void copyEntity(TopiaContext targetTx, E source, E target) throws TopiaException { +// +// getBinderService().simpleCopy(source, target, false); +// +// if (source instanceof Species) { +// +// // Need also to bind ocean +// getDataService().copyAssociation(Species.class, Ocean.class, Species.PROPERTY_OCEAN, (Species) source, (Species) target, targetTx); +// +// } else if (source instanceof SpeciesList) { +// +// // Need also to bind species +// getDataService().copyAssociation(SpeciesList.class, Species.class, SpeciesList.PROPERTY_SPECIES, (SpeciesList) source, (SpeciesList) target, targetTx); +// +// } +// +// } +// + //FIXME +// protected void patchTopiaVersions(TopiaContextImplementor sourceCtxt, +// Map<TopiaEntity, Long> versionsToUpdate) throws TopiaException { +// +// final StringBuilder buffer = new StringBuilder(); +// +// for (Map.Entry<TopiaEntity, Long> entry : +// versionsToUpdate.entrySet()) { +// TopiaEntity entity = entry.getKey(); +// String id = entity.getTopiaId(); +// Long version = entry.getValue(); +// String tableName = Entities.getTableName(entity); +// buffer.append(String.format(UPDATE_VERSION_PATTERN, tableName, version, id)); +// +// } +// sourceCtxt.getHibernate().doWork(new Work() { +// @Override +// public void execute(Connection connection) throws SQLException { +// String sql = buffer.toString(); +// PreparedStatement sta = connection.prepareStatement(sql); +// try { +// if (log.isDebugEnabled()) { +// log.debug("Will execute sql code :\n" + sql); +// } +// sta.executeUpdate(); +// } finally { +// sta.close(); +// } +// } +// }); +// } } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/synchronize/ObsoleteEntityListCellRenderer.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/synchronize/ObsoleteEntityListCellRenderer.java index 45520cb..8af99cd 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/synchronize/ObsoleteEntityListCellRenderer.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/synchronize/ObsoleteEntityListCellRenderer.java @@ -21,7 +21,7 @@ */ package fr.ird.observe.ui.admin.synchronize; -import fr.ird.observe.DecoratorService; +import fr.ird.observe.business.DecoratorService; import fr.ird.observe.ObserveContext; import org.nuiton.decorator.Decorator; import org.nuiton.topia.persistence.TopiaEntity; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/synchronize/SynchronizeModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/synchronize/SynchronizeModel.java index 9360bde..edfa6c5 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/synchronize/SynchronizeModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/synchronize/SynchronizeModel.java @@ -21,7 +21,7 @@ */ package fr.ird.observe.ui.admin.synchronize; -import fr.ird.observe.db.DataSource; +import fr.ird.observe.business.db.DataSource; import fr.ird.observe.ui.admin.AdminActionModel; import fr.ird.observe.ui.admin.AdminStep; import org.nuiton.topia.persistence.TopiaEntity; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/synchronize/SynchronizeUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/synchronize/SynchronizeUIHandler.java index 13ad4e5..d73bb4c 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/synchronize/SynchronizeUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/synchronize/SynchronizeUIHandler.java @@ -21,13 +21,10 @@ */ package fr.ird.observe.ui.admin.synchronize; -import fr.ird.observe.DecoratorService; -import fr.ird.observe.ObserveDAOHelper; -import fr.ird.observe.ObserveEntityEnum; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.DataSourceException; -import fr.ird.observe.services.dto.EntitiesDto; -import fr.ird.observe.services.dto.seine.TripSeineDto; +import fr.ird.observe.business.DecoratorService; +import fr.ird.observe.business.db.DataSource; +import fr.ird.observe.business.db.DataSourceException; +import fr.ird.observe.services.dto.AbstractObserveDto; import fr.ird.observe.ui.UIHelper; import fr.ird.observe.ui.admin.AdminStep; import fr.ird.observe.ui.admin.AdminTabUI; @@ -43,13 +40,6 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.decorator.Decorator; import org.nuiton.decorator.JXPathDecorator; -import org.nuiton.topia.TopiaContext; -import org.nuiton.topia.TopiaException; -import org.nuiton.topia.persistence.TopiaDAO; -import org.nuiton.topia.persistence.TopiaEntity; -import org.nuiton.topia.persistence.util.DiffState; -import org.nuiton.topia.persistence.util.TopiaEntityHelper; -import org.nuiton.topia.persistence.util.TopiaEntityRef; import javax.swing.DefaultListModel; import javax.swing.JPanel; @@ -165,7 +155,8 @@ public class SynchronizeUIHandler extends AdminTabUIHandler { public void updateState(AdminTabUI tabUI, WizardState newState) { super.updateState(tabUI, newState); if (newState == WizardState.NEED_FIX) { - setObsoleteRefs(getStepModel().getObsoleteRefs()); + //FIXME +// setObsoleteRefs(getStepModel().getObsoleteRefs()); } } @@ -180,7 +171,7 @@ public class SynchronizeUIHandler extends AdminTabUIHandler { } else if ("obsoleteResolved".equals(propertyName)) { SynchronizeUI ui = (SynchronizeUI) evt.getSource(); SynchronizeModel model = ui.getStepModel(); - TopiaEntity entity = (TopiaEntity) evt.getNewValue(); + AbstractObserveDto entity = (AbstractObserveDto) evt.getNewValue(); DecoratorService decoratorService = getDecoratorService(); String type = t(DecoratorService.getEntityLabel(entity.getClass())); Decorator<?> decorator = @@ -196,21 +187,23 @@ public class SynchronizeUIHandler extends AdminTabUIHandler { ); } else { //on recharge le dictionnaire des references - setObsoleteRefs(model.getObsoleteRefs()); + //FIXME +// setObsoleteRefs(model.getObsoleteRefs()); } } } - public void setObsoleteRefs(SortedMap<TopiaEntity, List<TopiaEntityRef>> refs) { - SynchronizeUI ui = getUi(); - ui.errorsSelectionModel.clearSelection(); - ui.errorsModel.removeAllElements(); - for (Object entry : refs.entrySet()) { - ui.errorsModel.addElement(entry); - } - ui.setCanApply(false); - ui.errors.setSelectedIndex(0); - } + //FIXME +// public void setObsoleteRefs(SortedMap<AbstractObserveDto, List<TopiaEntityRef>> refs) { +// SynchronizeUI ui = getUi(); +// ui.errorsSelectionModel.clearSelection(); +// ui.errorsModel.removeAllElements(); +// for (Object entry : refs.entrySet()) { +// ui.errorsModel.addElement(entry); +// } +// ui.setCanApply(false); +// ui.errors.setSelectedIndex(0); +// } @SuppressWarnings({"unchecked"}) public void updateSelectedObsoleteEntity() { @@ -219,37 +212,38 @@ public class SynchronizeUIHandler extends AdminTabUIHandler { int row = ui.errorsSelectionModel.getMinSelectionIndex(); DefaultListModel errorsModel = ui.errorsModel; - if (row == -1 || errorsModel.getElementAt(row) == null || - ((Map.Entry<TopiaEntity, List<TopiaEntityRef>>) - errorsModel.getElementAt(row)).getValue().isEmpty()) { - // entree supprimee - - ui.obsoleteRefLabel.setText(""); - ui.setObsoleteEntity(null); - ui.obsoleteTableModel.initEntity(Collections.<TopiaEntityRef>emptyList()); - } else { - - Map.Entry<TopiaEntity, List<TopiaEntityRef>> entry = - (Map.Entry<TopiaEntity, List<TopiaEntityRef>>) - errorsModel.getElementAt(row); - TopiaEntity entity = entry.getKey(); - ui.setObsoleteEntity(entity); - - List<TopiaEntityRef> refs = entry.getValue(); - - DecoratorService decoratorService = getDecoratorService(); - String type = DecoratorService.getEntityLabel(entity.getClass()); - Decorator<?> decorator = - decoratorService.getDecoratorByType(entity.getClass()); - String label = t("observe.synchro.obsolete.entity.label", - type, - decorator.toString(entity)); - ui.obsoleteRefLabel.setText(label); - - changeSafeRefsComboBox(entry); - - ui.obsoleteTableModel.initEntity(refs); - } + //FIXME +// if (row == -1 || errorsModel.getElementAt(row) == null || +// ((Map.Entry<TopiaEntity, List<TopiaEntityRef>>) +// errorsModel.getElementAt(row)).getValue().isEmpty()) { +// // entree supprimee +// +// ui.obsoleteRefLabel.setText(""); +// ui.setObsoleteEntity(null); +// ui.obsoleteTableModel.initEntity(Collections.<TopiaEntityRef>emptyList()); +// } else { +// +// Map.Entry<TopiaEntity, List<TopiaEntityRef>> entry = +// (Map.Entry<TopiaEntity, List<TopiaEntityRef>>) +// errorsModel.getElementAt(row); +// TopiaEntity entity = entry.getKey(); +// ui.setObsoleteEntity(entity); +// +// List<TopiaEntityRef> refs = entry.getValue(); +// +// DecoratorService decoratorService = getDecoratorService(); +// String type = DecoratorService.getEntityLabel(entity.getClass()); +// Decorator<?> decorator = +// decoratorService.getDecoratorByType(entity.getClass()); +// String label = t("observe.synchro.obsolete.entity.label", +// type, +// decorator.toString(entity)); +// ui.obsoleteRefLabel.setText(label); +// +// changeSafeRefsComboBox(entry); +// +// ui.obsoleteTableModel.initEntity(refs); +// } } public void updateCanApply() { @@ -269,51 +263,52 @@ public class SynchronizeUIHandler extends AdminTabUIHandler { } @SuppressWarnings({"unchecked"}) - public void changeSafeRefsComboBox(Map.Entry<TopiaEntity, List<TopiaEntityRef>> entry) { - SynchronizeUI ui = getUi(); - - TopiaEntity entity = entry.getKey(); - - ObserveEntityEnum constant = ObserveEntityEnum.valueOf(entity); - String key = constant.getContract().getName(); - CardLayout2 safeRefsPanelLayout = ui.getSafeRefsPanelLayout(); - JPanel safeRefsPanel = ui.getSafeRefsPanel(); - if (safeRefsPanelLayout.contains(key)) { - - // la liste déroulante existe deja pour ce type - BeanComboBox<?> list = (BeanComboBox<?>) - safeRefsPanelLayout.getComponent(safeRefsPanel, key); - - if (!getSafeComboBox().equals(list)) { - // on l'affiche - safeRefsPanelLayout.show(safeRefsPanel, key); - } - return; - } - - Decorator<?> decorator = - getDecoratorService().getDecoratorByType(entity.getClass()); - - List<?> data = getEntityListFromSynchroDB(entity.getClass(), true); - - // la liste n'existe pas encore - BeanComboBox<?> box = new BeanComboBox(ui); - box.setBean(this); - box.setProperty("safeEntity"); - box.setShowReset(true); - box.addPropertyChangeListener( - "selectedItem", - new PropertyChangeListener() { - @Override - public void propertyChange(PropertyChangeEvent evt) { - updateCanApply(); - } - }); - safeRefsPanel.add(box, key); - box.init((JXPathDecorator) decorator, (List) data); - - safeRefsPanelLayout.show(safeRefsPanel, key); - } + //FIXME +// public void changeSafeRefsComboBox(Map.Entry<TopiaEntity, List<TopiaEntityRef>> entry) { +// SynchronizeUI ui = getUi(); + +// TopiaEntity entity = entry.getKey(); +// +// ObserveEntityEnum constant = ObserveEntityEnum.valueOf(entity); +// String key = constant.getContract().getName(); +// CardLayout2 safeRefsPanelLayout = ui.getSafeRefsPanelLayout(); +// JPanel safeRefsPanel = ui.getSafeRefsPanel(); +// if (safeRefsPanelLayout.contains(key)) { +// +// // la liste déroulante existe deja pour ce type +// BeanComboBox<?> list = (BeanComboBox<?>) +// safeRefsPanelLayout.getComponent(safeRefsPanel, key); +// +// if (!getSafeComboBox().equals(list)) { +// // on l'affiche +// safeRefsPanelLayout.show(safeRefsPanel, key); +// } +// return; +// } +// +// Decorator<?> decorator = +// getDecoratorService().getDecoratorByType(entity.getClass()); +// +// List<?> data = getEntityListFromSynchroDB(entity.getClass(), true); +// +// // la liste n'existe pas encore +// BeanComboBox<?> box = new BeanComboBox(ui); +// box.setBean(this); +// box.setProperty("safeEntity"); +// box.setShowReset(true); +// box.addPropertyChangeListener( +// "selectedItem", +// new PropertyChangeListener() { +// @Override +// public void propertyChange(PropertyChangeEvent evt) { +// updateCanApply(); +// } +// }); +// safeRefsPanel.add(box, key); +// box.init((JXPathDecorator) decorator, (List) data); +// +// safeRefsPanelLayout.show(safeRefsPanel, key); +// } public void doStartAction() { @@ -348,88 +343,89 @@ public class SynchronizeUIHandler extends AdminTabUIHandler { sendMessage(t("observe.message.synchro.build.diff", centralSource.getLabel())); - DiffState.DiffStateMap diff = - getDataService().buildReferentielDifferentiel(centralSource, - source, - this - ); - getStepModel().setDiff(diff); - - if (diff.isEmpty() || - CollectionUtils.isEmpty(diff.get(DiffState.REMOVED))) { - - // aucune modification du référentiel - // ou aucune entité obsolète - // aucune intervention requise - - reportSuccess(); - - // pas de reference obsolete a traiter - return WizardState.SUCCESSED; - } - - // detection des entités obsoletes - - SortedMap<TopiaEntity, List<TopiaEntityRef>> obsoleteRefs = - detectObsoleteEntities(); - getStepModel().setObsoleteRefs(obsoleteRefs); - - if (obsoleteRefs == null || obsoleteRefs.isEmpty()) { - - reportSuccess(); - - // pas de reference obsolete a traiter - return WizardState.SUCCESSED; - } - - // il existe des entités obsolètes utilisées dans la base locale - - // on conserve la liste complète des entités qui utilisent des - // référentiels obsolètes (on va les recopier plus tard) - - List<TopiaEntity> obsoleteEntities = - new ArrayList<TopiaEntity>(obsoleteRefs.keySet()); - - // on filtre les entités obsolètes directes (les seuls que l'utilisateur - // peut changer) - - removeUndirectObsoleteRefs(); - - if (obsoleteRefs.isEmpty()) { - - reportSuccess(); - - // pas de reference obsolete directe a traiter - return WizardState.SUCCESSED; - } - - // dernier cas (le seul demandant une intervention humaine) - // il y a des références obsolètes directes sur des données observers - - // on mets en place une base temporaire pour effectuer les corrections - - sendMessage( - t("observe.message.synchro.create.temporary.db.to.resolve.obsoletes")); - - DataSource tmpSource = model.getSafeTmpSource(false); - getStepModel().setTmpSource(tmpSource); - openSource(tmpSource); - - // duplication du referentiel à jour vers la base temporaire - replicateReferentiel(centralSource, tmpSource); - - // duplication des objets de la base locale qui utilisent les données obsolètes - replicateObsoletesEntities(obsoleteEntities, source, tmpSource); - - // on injecte toutes les donnes utilisateurs dans la base de synchro - // car on va ensuite remplacer - replicateData(source, tmpSource); - - // la synchronisation demande des modification de la base locale - // on enregistre cette action aupres de l'action de sauvegarde - model.getSaveLocalModel().addStepForSave(AdminStep.SYNCHRONIZE); - - sendMessage(t("observe.message.synchro.operation.needFix")); + //FIXME +// DiffState.DiffStateMap diff = +// getDataService().buildReferentielDifferentiel(centralSource, +// source, +// this +// ); +// getStepModel().setDiff(diff); +// +// if (diff.isEmpty() || +// CollectionUtils.isEmpty(diff.get(DiffState.REMOVED))) { +// +// // aucune modification du référentiel +// // ou aucune entité obsolète +// // aucune intervention requise +// +// reportSuccess(); +// +// // pas de reference obsolete a traiter +// return WizardState.SUCCESSED; +// } +// +// // detection des entités obsoletes +// +// SortedMap<TopiaEntity, List<TopiaEntityRef>> obsoleteRefs = +// detectObsoleteEntities(); +// getStepModel().setObsoleteRefs(obsoleteRefs); +// +// if (obsoleteRefs == null || obsoleteRefs.isEmpty()) { +// +// reportSuccess(); +// +// // pas de reference obsolete a traiter +// return WizardState.SUCCESSED; +// } +// +// // il existe des entités obsolètes utilisées dans la base locale +// +// // on conserve la liste complète des entités qui utilisent des +// // référentiels obsolètes (on va les recopier plus tard) +// +// List<TopiaEntity> obsoleteEntities = +// new ArrayList<TopiaEntity>(obsoleteRefs.keySet()); +// +// // on filtre les entités obsolètes directes (les seuls que l'utilisateur +// // peut changer) +// +// removeUndirectObsoleteRefs(); +// +// if (obsoleteRefs.isEmpty()) { +// +// reportSuccess(); +// +// // pas de reference obsolete directe a traiter +// return WizardState.SUCCESSED; +// } +// +// // dernier cas (le seul demandant une intervention humaine) +// // il y a des références obsolètes directes sur des données observers +// +// // on mets en place une base temporaire pour effectuer les corrections +// +// sendMessage( +// t("observe.message.synchro.create.temporary.db.to.resolve.obsoletes")); +// +// DataSource tmpSource = model.getSafeTmpSource(false); +// getStepModel().setTmpSource(tmpSource); +// openSource(tmpSource); +// +// // duplication du referentiel à jour vers la base temporaire +// replicateReferentiel(centralSource, tmpSource); +// +// // duplication des objets de la base locale qui utilisent les données obsolètes +// replicateObsoletesEntities(obsoleteEntities, source, tmpSource); +// +// // on injecte toutes les donnes utilisateurs dans la base de synchro +// // car on va ensuite remplacer +// replicateData(source, tmpSource); +// +// // la synchronisation demande des modification de la base locale +// // on enregistre cette action aupres de l'action de sauvegarde +// model.getSaveLocalModel().addStepForSave(AdminStep.SYNCHRONIZE); +// +// sendMessage(t("observe.message.synchro.operation.needFix")); return WizardState.NEED_FIX; } @@ -437,393 +433,400 @@ public class SynchronizeUIHandler extends AdminTabUIHandler { public void reportSuccess() { boolean needSave = false; - DiffState.DiffStateMap diff = getStepModel().getDiff(); - - List<String> ids = diff.get(DiffState.REMOVED); - if (!CollectionUtils.isEmpty(ids)) { - // des doonées ont ete supprimées du referentiel distant - needSave = true; - sendMessage( - t("observe.message.synchro.referentiel.was.removed", - ids.size())); - for (String id : ids) { - sendMessage(" - " + id); - } - } - - ids = diff.get(DiffState.NEW); - if (!CollectionUtils.isEmpty(ids)) { - // des données ont ete ajoutees au referentiel distant - needSave = true; - sendMessage(t("observe.message.synchro.referentiel.was.added", - ids.size())); - for (String id : ids) { - sendMessage(" - " + id); - } - } - - ids = diff.get(DiffState.MODIFIED); - if (!CollectionUtils.isEmpty(ids)) { - // des doonées ont ete modifiees dans le referentiel distant - needSave = true; - sendMessage( - t("observe.message.synchro.referentiel.was.modified", - ids.size())); - for (String id : ids) { - sendMessage(" - " + id); - } - } - - if (needSave) { - // des données doivent être transférer vers la base locale - model.getSaveLocalModel().addStepForSave( - AdminStep.SYNCHRONIZE); - sendMessage(t("observe.message.synchro.local.modification")); - sendMessage( - t("observe.message.synchro.no.referentiel.conflict")); - - } else { - sendMessage(t("observe.message.synchro.ref.is.updtodate")); - } +// DiffState.DiffStateMap diff = getStepModel().getDiff(); +// +// List<String> ids = diff.get(DiffState.REMOVED); +// if (!CollectionUtils.isEmpty(ids)) { +// // des doonées ont ete supprimées du referentiel distant +// needSave = true; +// sendMessage( +// t("observe.message.synchro.referentiel.was.removed", +// ids.size())); +// for (String id : ids) { +// sendMessage(" - " + id); +// } +// } +// +// ids = diff.get(DiffState.NEW); +// if (!CollectionUtils.isEmpty(ids)) { +// // des données ont ete ajoutees au referentiel distant +// needSave = true; +// sendMessage(t("observe.message.synchro.referentiel.was.added", +// ids.size())); +// for (String id : ids) { +// sendMessage(" - " + id); +// } +// } +// +// ids = diff.get(DiffState.MODIFIED); +// if (!CollectionUtils.isEmpty(ids)) { +// // des doonées ont ete modifiees dans le referentiel distant +// needSave = true; +// sendMessage( +// t("observe.message.synchro.referentiel.was.modified", +// ids.size())); +// for (String id : ids) { +// sendMessage(" - " + id); +// } +// } +// +// if (needSave) { +// // des données doivent être transférer vers la base locale +// model.getSaveLocalModel().addStepForSave( +// AdminStep.SYNCHRONIZE); +// sendMessage(t("observe.message.synchro.local.modification")); +// sendMessage( +// t("observe.message.synchro.no.referentiel.conflict")); +// +// } else { +// sendMessage(t("observe.message.synchro.ref.is.updtodate")); +// } sendMessage( t("observe.message.synchro.operation.done", new Date())); } - protected SortedMap<TopiaEntity, List<TopiaEntityRef>> detectObsoleteEntities() throws Exception { - - DiffState.DiffStateMap diff = getStepModel().getDiff(); - - DataSource source = getStepModel().getSource(); - - // detection des entites obsoletes - - List<String> removedList = diff.get(DiffState.REMOVED); - - String[] ids = removedList.toArray(new String[removedList.size()]); - - TopiaContext tx = beginTransaction(source, "detectObsoleteRefs"); - - // detection des entites obsoletes - - try { - // des suppressions ont ete detectees, on doit retrouver - // dans la base locale les entites utilisant ces entites - // obsoletes - List<TripSeine> marees = ObserveDAOHelper.getTripSeineDAO(tx).findAll(); - - ObserveEntityEnum[] contracts = ObserveDAOHelper.getContracts(); - - SortedMap<TopiaEntity, List<TopiaEntityRef>> result; - - result = TopiaEntityHelper.detectReferences(contracts, ids, marees); - return result; - } finally { - closeTransaction(source, tx, "detectObsoleteRefs"); - } - } - - protected void removeUndirectObsoleteRefs() { - - Iterator<Map.Entry<TopiaEntity, List<TopiaEntityRef>>> itr; - - SortedMap<TopiaEntity, List<TopiaEntityRef>> obsoleteRefs = - getStepModel().getObsoleteRefs(); - - for (itr = obsoleteRefs.entrySet().iterator(); itr.hasNext(); ) { - Map.Entry<TopiaEntity, List<TopiaEntityRef>> entry = itr.next(); - for (Iterator<TopiaEntityRef> itrRef = - entry.getValue().iterator(); itrRef.hasNext(); ) { - TopiaEntityRef ref = itrRef.next(); - TopiaEntity refInvoker = ref.getInvoker(); - if (refInvoker == null) { - // on est sur un program - // et on ne va pas resoudre un program obsolete - itrRef.remove(); - if (log.isTraceEnabled()) { - log.trace("remove ref " + ref); - } - continue; - } - - ObserveEntityEnum refConstant = - ObserveEntityEnum.valueOf(refInvoker); - if (!Entities.DATA_ENTITIES_LIST.contains( - refConstant)) { - // on peut supprimer cette référence - itrRef.remove(); - if (log.isTraceEnabled()) { - log.trace("remove ref " + ref); - } - } - } - if (entry.getValue().isEmpty()) { - // on peut supprimer cette entité obsolete car plus de - // references dessus - itr.remove(); - if (log.isDebugEnabled()) { - log.debug("remove obsolete entity (not direct " + - "referentiel) : " + - entry.getKey().getTopiaId()); - } - } - } - } - - protected void replicateObsoletesEntities( - List<TopiaEntity> obsoleteEntities, - DataSource source, - DataSource tmpSource) throws Exception { - - String txName = "replicateObsoletesEntities"; - TopiaContext sourceCtxt = beginTransaction(source, txName); - try { - TopiaContext tmpCtxt = beginTransaction(tmpSource, txName); - try { - for (ObserveEntityEnum constant : Entities.REFERENCE_ENTITIES) { - Class<? extends TopiaEntity> contractClass = - constant.getContract(); - List<TopiaEntity> toReplicate = new ArrayList<TopiaEntity>(); - for (Iterator<TopiaEntity> itr = - obsoleteEntities.iterator(); itr.hasNext(); ) { - TopiaEntity e = itr.next(); - if (contractClass.isAssignableFrom(e.getClass())) { - if (log.isDebugEnabled()) { - log.debug("obsolete to inject : " + - e.getTopiaId()); - } - itr.remove(); - - // cet objet doit etre replique - toReplicate.add(e); - - sendMessage(t("observe.message.synchro.obsolete.data.to.duplicate", e)); - } - } - if (toReplicate.isEmpty()) { - if (log.isDebugEnabled()) { - log.debug("no obsolete entity " + constant); - } - continue; - } - - if (log.isDebugEnabled()) { - log.debug("inject obsolete entity " + constant + " (" + - toReplicate.size() + ")"); - } - sourceCtxt.replicateEntities(tmpCtxt, toReplicate); - commitTransaction(tmpSource, tmpCtxt, txName); - } - - } finally { - closeTransaction(tmpSource, tmpCtxt, txName); - } - } finally { - closeTransaction(source, sourceCtxt, txName); - } - - if (!obsoleteEntities.isEmpty()) { - throw new IllegalStateException( - "there is still obsolete entities to inject in " + - "synchro db : " + obsoleteEntities); - } - } + //FIXME +// protected SortedMap<TopiaEntity, List<TopiaEntityRef>> detectObsoleteEntities() throws Exception { +// +// DiffState.DiffStateMap diff = getStepModel().getDiff(); +// +// DataSource source = getStepModel().getSource(); +// +// // detection des entites obsoletes +// +// List<String> removedList = diff.get(DiffState.REMOVED); +// +// String[] ids = removedList.toArray(new String[removedList.size()]); +// +// TopiaContext tx = beginTransaction(source, "detectObsoleteRefs"); +// +// // detection des entites obsoletes +// +// try { +// // des suppressions ont ete detectees, on doit retrouver +// // dans la base locale les entites utilisant ces entites +// // obsoletes +// List<TripSeine> marees = ObserveDAOHelper.getTripSeineDAO(tx).findAll(); +// +// ObserveEntityEnum[] contracts = ObserveDAOHelper.getContracts(); +// +// SortedMap<TopiaEntity, List<TopiaEntityRef>> result; +// +// result = TopiaEntityHelper.detectReferences(contracts, ids, marees); +// return result; +// } finally { +// closeTransaction(source, tx, "detectObsoleteRefs"); +// } +// } + + //FIXME +// protected void removeUndirectObsoleteRefs() { +// +// Iterator<Map.Entry<TopiaEntity, List<TopiaEntityRef>>> itr; +// +// SortedMap<TopiaEntity, List<TopiaEntityRef>> obsoleteRefs = +// getStepModel().getObsoleteRefs(); +// +// for (itr = obsoleteRefs.entrySet().iterator(); itr.hasNext(); ) { +// Map.Entry<TopiaEntity, List<TopiaEntityRef>> entry = itr.next(); +// for (Iterator<TopiaEntityRef> itrRef = +// entry.getValue().iterator(); itrRef.hasNext(); ) { +// TopiaEntityRef ref = itrRef.next(); +// TopiaEntity refInvoker = ref.getInvoker(); +// if (refInvoker == null) { +// // on est sur un program +// // et on ne va pas resoudre un program obsolete +// itrRef.remove(); +// if (log.isTraceEnabled()) { +// log.trace("remove ref " + ref); +// } +// continue; +// } +// +// ObserveEntityEnum refConstant = +// ObserveEntityEnum.valueOf(refInvoker); +// if (!Entities.DATA_ENTITIES_LIST.contains( +// refConstant)) { +// // on peut supprimer cette référence +// itrRef.remove(); +// if (log.isTraceEnabled()) { +// log.trace("remove ref " + ref); +// } +// } +// } +// if (entry.getValue().isEmpty()) { +// // on peut supprimer cette entité obsolete car plus de +// // references dessus +// itr.remove(); +// if (log.isDebugEnabled()) { +// log.debug("remove obsolete entity (not direct " + +// "referentiel) : " + +// entry.getKey().getTopiaId()); +// } +// } +// } +// } + + //FIXME +// protected void replicateObsoletesEntities( +// List<TopiaEntity> obsoleteEntities, +// DataSource source, +// DataSource tmpSource) throws Exception { +// +// String txName = "replicateObsoletesEntities"; +// TopiaContext sourceCtxt = beginTransaction(source, txName); +// try { +// TopiaContext tmpCtxt = beginTransaction(tmpSource, txName); +// try { +// for (ObserveEntityEnum constant : Entities.REFERENCE_ENTITIES) { +// Class<? extends TopiaEntity> contractClass = +// constant.getContract(); +// List<TopiaEntity> toReplicate = new ArrayList<TopiaEntity>(); +// for (Iterator<TopiaEntity> itr = +// obsoleteEntities.iterator(); itr.hasNext(); ) { +// TopiaEntity e = itr.next(); +// if (contractClass.isAssignableFrom(e.getClass())) { +// if (log.isDebugEnabled()) { +// log.debug("obsolete to inject : " + +// e.getTopiaId()); +// } +// itr.remove(); +// +// // cet objet doit etre replique +// toReplicate.add(e); +// +// sendMessage(t("observe.message.synchro.obsolete.data.to.duplicate", e)); +// } +// } +// if (toReplicate.isEmpty()) { +// if (log.isDebugEnabled()) { +// log.debug("no obsolete entity " + constant); +// } +// continue; +// } +// +// if (log.isDebugEnabled()) { +// log.debug("inject obsolete entity " + constant + " (" + +// toReplicate.size() + ")"); +// } +// sourceCtxt.replicateEntities(tmpCtxt, toReplicate); +// commitTransaction(tmpSource, tmpCtxt, txName); +// } +// +// } finally { +// closeTransaction(tmpSource, tmpCtxt, txName); +// } +// } finally { +// closeTransaction(source, sourceCtxt, txName); +// } +// +// if (!obsoleteEntities.isEmpty()) { +// throw new IllegalStateException( +// "there is still obsolete entities to inject in " + +// "synchro db : " + obsoleteEntities); +// } +// } public List<?> getEntityListFromSynchroDB(Class<?> type, boolean removeObsoletes) { - DataSource tmpSource = getStepModel().getTmpSource(); - List<?> list; - try { - ObserveEntityEnum constant = ObserveEntityEnum.valueOf(type); - list = getDataService().getList(tmpSource, constant.getContract()); - } catch (DataSourceException ex) { - //TODO should do better... - if (log.isErrorEnabled()) { - log.error(ex); - } - list = new ArrayList(); - } - if (removeObsoletes) { - - DiffState.DiffStateMap diff = getStepModel().getDiff(); - - List<String> removedList = diff.get(DiffState.REMOVED); - for (Iterator<?> itr = list.iterator(); itr.hasNext(); ) { - TopiaEntity e = (TopiaEntity) itr.next(); - if (removedList.contains(e.getTopiaId())) { - // c'est une entite qui est obsolete, l'utilisateur - // ne peut pas l'utiliser - itr.remove(); - } - } - } - return list; - } - - public void resolvObsoleteReferences(TopiaEntity obsoleteRef, - List<TopiaEntityRef> refs, - TopiaEntity safeRef) { - - ObsoleteRefReplaceAction action = new ObsoleteRefReplaceAction( - obsoleteRef.getTopiaId(), - safeRef.getTopiaId(), - refs); - - SynchronizeModel stepModel = getStepModel(); - stepModel.getReplaceActions().add(action); - - SortedMap<TopiaEntity, List<TopiaEntityRef>> obsoleteRefs = - stepModel.getObsoleteRefs(); - - List<TopiaEntityRef> globalRefs = obsoleteRefs.get(obsoleteRef); - - DataSource tmpSource = stepModel.getTmpSource(); - - String txName = "resolvObsoleteReferences"; - TopiaContext tx = null; - try { - tx = beginTransaction(tmpSource, txName); - - action.doAction(tx); - - commitTransaction(tmpSource, tx, txName); - - // on supprime toutes les références traitées - globalRefs.removeAll(refs); - - ui.firePropertyChange("refsResolved", null, obsoleteRef); - - if (globalRefs.isEmpty()) { - - // la reference obsolete n'est pas utilisee dans aucune donnee - - obsoleteRefs.remove(obsoleteRef); - - if (log.isDebugEnabled()) { - log.debug("remove resolved obsolete property from temp " + - "db : " + obsoleteRef.getTopiaId()); - } - - obsoleteRef = tx.findByTopiaId(obsoleteRef.getTopiaId()); - - // on peut la supprimer de la base temporaire - getDAO(tx, obsoleteRef).delete(obsoleteRef); - - ui.firePropertyChange("obsoleteResolved", null, obsoleteRef); - } - - commitTransaction(tmpSource, tx, txName); - - if (obsoleteRefs.isEmpty()) { - - sendMessage( - t("observe.message.synchro.operation.done", new Date())); - - // plus de references obsoletes a resoudre, l'action est - // terminée - model.setStepState(WizardState.SUCCESSED); - } - - } catch (Exception e) { - model.setStepState(onError(e)); - } finally { - try { - if (tx != null) { - closeTransaction(tmpSource, tx, txName); - } - } catch (DataSourceException e) { - model.setStepState(onError(e)); - } - } + //FIXME +// DataSource tmpSource = getStepModel().getTmpSource(); +// List<?> list; +// try { +// ObserveEntityEnum constant = ObserveEntityEnum.valueOf(type); +// list = getDataService().getList(tmpSource, constant.getContract()); +// } catch (DataSourceException ex) { +// //TODO should do better... +// if (log.isErrorEnabled()) { +// log.error(ex); +// } +// list = new ArrayList(); +// } +// if (removeObsoletes) { +// +// DiffState.DiffStateMap diff = getStepModel().getDiff(); +// +// List<String> removedList = diff.get(DiffState.REMOVED); +// for (Iterator<?> itr = list.iterator(); itr.hasNext(); ) { +// TopiaEntity e = (TopiaEntity) itr.next(); +// if (removedList.contains(e.getTopiaId())) { +// // c'est une entite qui est obsolete, l'utilisateur +// // ne peut pas l'utiliser +// itr.remove(); +// } +// } +// } +// return list; + return null; } - public class ObsoleteRefReplaceAction { - - /** l'id de l'entité à remplacer */ - String obsoleteId; - - /** l'id de l'entité de remplacement */ - String safeId; - - /** la liste des références à traiter */ - TopiaEntityRef[] refs; - - ObsoleteRefReplaceAction(String obsoleteId, - String safeId, - List<TopiaEntityRef> refs) { - this.obsoleteId = obsoleteId; - this.refs = refs.toArray(new TopiaEntityRef[refs.size()]); - this.safeId = safeId; - } - - public void doAction(TopiaContext tx) throws TopiaException { - - if (log.isInfoEnabled()) { - log.info("load obsolete object " + obsoleteId); - } - - if (log.isInfoEnabled()) { - log.info("load safe object " + safeId); - } - - TopiaEntity safeRef = tx.findByTopiaId(safeId); - - // on remplace les references - for (TopiaEntityRef ref : refs) { - TopiaEntity invoker = ref.getInvoker(); - - if (invoker == null) { - throw new NullPointerException( - "can not have a null invoker in " + ref); - } - - if (log.isInfoEnabled()) { - log.info("load invoker object " + invoker.getTopiaId()); - } - - invoker = tx.findByTopiaId(invoker.getTopiaId()); - - // switch entity - - String path = ref.getInvokerProperty(); - - JXPathContext jxcontext = JXPathContext.newContext(invoker); - - TopiaEntity oldValue = (TopiaEntity) jxcontext.getValue(path); - - if (log.isDebugEnabled()) { - log.debug("property to switch " + path + " old : " + - oldValue); - } - - if (log.isInfoEnabled()) { - log.info("change path : " + path); - log.info("old value : " + oldValue.getTopiaId()); - } - - jxcontext.setValue(path, safeRef); - - TopiaEntity newValue = (TopiaEntity) jxcontext.getValue(path); - - if (log.isInfoEnabled()) { - log.info("new value : " + newValue.getTopiaId()); - } - if (log.isDebugEnabled()) { - log.debug("property to switch " + path + " new : " + - safeRef); - log.debug("property to switch " + path + " new Check : " + - newValue); - } - TopiaDAO<TopiaEntity> dao = getDAO(tx, invoker); - - dao.update(invoker); - } - } - - public String getObsoleteId() { - return obsoleteId; - } - } + //FIXME +// public void resolvObsoleteReferences(TopiaEntity obsoleteRef, +// List<TopiaEntityRef> refs, +// TopiaEntity safeRef) { +// +// ObsoleteRefReplaceAction action = new ObsoleteRefReplaceAction( +// obsoleteRef.getTopiaId(), +// safeRef.getTopiaId(), +// refs); +// +// SynchronizeModel stepModel = getStepModel(); +// stepModel.getReplaceActions().add(action); +// +// SortedMap<TopiaEntity, List<TopiaEntityRef>> obsoleteRefs = +// stepModel.getObsoleteRefs(); +// +// List<TopiaEntityRef> globalRefs = obsoleteRefs.get(obsoleteRef); +// +// DataSource tmpSource = stepModel.getTmpSource(); +// +// String txName = "resolvObsoleteReferences"; +// TopiaContext tx = null; +// try { +// tx = beginTransaction(tmpSource, txName); +// +// action.doAction(tx); +// +// commitTransaction(tmpSource, tx, txName); +// +// // on supprime toutes les références traitées +// globalRefs.removeAll(refs); +// +// ui.firePropertyChange("refsResolved", null, obsoleteRef); +// +// if (globalRefs.isEmpty()) { +// +// // la reference obsolete n'est pas utilisee dans aucune donnee +// +// obsoleteRefs.remove(obsoleteRef); +// +// if (log.isDebugEnabled()) { +// log.debug("remove resolved obsolete property from temp " + +// "db : " + obsoleteRef.getTopiaId()); +// } +// +// obsoleteRef = tx.findByTopiaId(obsoleteRef.getTopiaId()); +// +// // on peut la supprimer de la base temporaire +// getDAO(tx, obsoleteRef).delete(obsoleteRef); +// +// ui.firePropertyChange("obsoleteResolved", null, obsoleteRef); +// } +// +// commitTransaction(tmpSource, tx, txName); +// +// if (obsoleteRefs.isEmpty()) { +// +// sendMessage( +// t("observe.message.synchro.operation.done", new Date())); +// +// // plus de references obsoletes a resoudre, l'action est +// // terminée +// model.setStepState(WizardState.SUCCESSED); +// } +// +// } catch (Exception e) { +// model.setStepState(onError(e)); +// } finally { +// try { +// if (tx != null) { +// closeTransaction(tmpSource, tx, txName); +// } +// } catch (DataSourceException e) { +// model.setStepState(onError(e)); +// } +// } +// } + + //FIXME +// public class ObsoleteRefReplaceAction { +// +// /** l'id de l'entité à remplacer */ +// String obsoleteId; +// +// /** l'id de l'entité de remplacement */ +// String safeId; +// +// /** la liste des références à traiter */ +// TopiaEntityRef[] refs; +// +// ObsoleteRefReplaceAction(String obsoleteId, +// String safeId, +// List<TopiaEntityRef> refs) { +// this.obsoleteId = obsoleteId; +// this.refs = refs.toArray(new TopiaEntityRef[refs.size()]); +// this.safeId = safeId; +// } +// +// public void doAction(TopiaContext tx) throws TopiaException { +// +// if (log.isInfoEnabled()) { +// log.info("load obsolete object " + obsoleteId); +// } +// +// if (log.isInfoEnabled()) { +// log.info("load safe object " + safeId); +// } +// +// TopiaEntity safeRef = tx.findByTopiaId(safeId); +// +// // on remplace les references +// for (TopiaEntityRef ref : refs) { +// TopiaEntity invoker = ref.getInvoker(); +// +// if (invoker == null) { +// throw new NullPointerException( +// "can not have a null invoker in " + ref); +// } +// +// if (log.isInfoEnabled()) { +// log.info("load invoker object " + invoker.getTopiaId()); +// } +// +// invoker = tx.findByTopiaId(invoker.getTopiaId()); +// +// // switch entity +// +// String path = ref.getInvokerProperty(); +// +// JXPathContext jxcontext = JXPathContext.newContext(invoker); +// +// TopiaEntity oldValue = (TopiaEntity) jxcontext.getValue(path); +// +// if (log.isDebugEnabled()) { +// log.debug("property to switch " + path + " old : " + +// oldValue); +// } +// +// if (log.isInfoEnabled()) { +// log.info("change path : " + path); +// log.info("old value : " + oldValue.getTopiaId()); +// } +// +// jxcontext.setValue(path, safeRef); +// +// TopiaEntity newValue = (TopiaEntity) jxcontext.getValue(path); +// +// if (log.isInfoEnabled()) { +// log.info("new value : " + newValue.getTopiaId()); +// } +// if (log.isDebugEnabled()) { +// log.debug("property to switch " + path + " new : " + +// safeRef); +// log.debug("property to switch " + path + " new Check : " + +// newValue); +// } +// TopiaDAO<TopiaEntity> dao = getDAO(tx, invoker); +// +// dao.update(invoker); +// } +// } +// +// public String getObsoleteId() { +// return obsoleteId; +// } +// } } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/validate/ValidateConfigUI.jaxx b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/validate/ValidateConfigUI.jaxx index 8d770c1..f7e4b0f 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/validate/ValidateConfigUI.jaxx +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/validate/ValidateConfigUI.jaxx @@ -28,7 +28,7 @@ <import> fr.ird.observe.ObserveConfig fr.ird.observe.ui.admin.AdminUIModel - fr.ird.observe.validation.ValidationModelMode + fr.ird.observe.business.validation.ValidationModelMode org.nuiton.validator.NuitonValidatorScope diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/validate/ValidateEntityListCellRenderer.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/validate/ValidateEntityListCellRenderer.java index 1b71b99..980ce13 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/validate/ValidateEntityListCellRenderer.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/validate/ValidateEntityListCellRenderer.java @@ -21,27 +21,16 @@ */ package fr.ird.observe.ui.admin.validate; -import fr.ird.observe.DecoratorService; import fr.ird.observe.ObserveContext; -import fr.ird.observe.ObserveDAOHelper; +import fr.ird.observe.business.DecoratorService; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.nuiton.decorator.Decorator; -import org.nuiton.topia.persistence.TopiaEntity; -import org.nuiton.topia.persistence.util.TopiaEntityRef; -import org.nuiton.validator.NuitonValidatorScope; -import org.nuiton.validator.bean.simple.SimpleBeanValidatorMessage; -import org.nuiton.validator.bean.simple.SimpleBeanValidators; - -import javax.swing.DefaultListCellRenderer; -import javax.swing.JList; -import java.awt.Component; + +import javax.swing.*; +import java.awt.*; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; -import java.util.EnumMap; import java.util.HashMap; -import java.util.Iterator; -import java.util.List; import java.util.Map; import static org.nuiton.i18n.I18n.t; @@ -103,52 +92,54 @@ public class ValidateEntityListCellRenderer extends DefaultListCellRenderer impl int index, boolean isSelected, boolean cellHasFocus) { - if (value != null) { - DecoratorService decoratorService = getService(); - if (value instanceof Class<?>) { - value = renderCache.get(value); - } else { - value = valueFromEntityRef(decoratorService, (TopiaEntityRef) value); - } - } + //FIXME +// if (value != null) { +// DecoratorService decoratorService = getService(); +// if (value instanceof Class<?>) { +// value = renderCache.get(value); +// } else { +// value = valueFromEntityRef(decoratorService, (TopiaEntityRef) value); +// } +// } return super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); } - public Object valueFromEntityRef(DecoratorService decoratorService, - TopiaEntityRef value) { - String s = renderCache.get(value); - if (s != null) { - return s; - } - if (log.isDebugEnabled()) { - log.debug("compute render cache for " + value.getRef().getTopiaId()); - } - List<SimpleBeanValidatorMessage<?>> messages = model.getMessages(value); - EnumMap<NuitonValidatorScope, Integer> scopes = - SimpleBeanValidators.getScopesCount(messages); - StringBuilder buffer = new StringBuilder(); - TopiaEntity entity = value.getRef(); - Class<? extends TopiaEntity> type = - ObserveDAOHelper.getContractClass(entity.getClass()); - Decorator<?> decorator = decoratorService.getDecoratorByType(type); - buffer.append(decorator.toString(entity)); - buffer.append(" ("); - - Iterator<NuitonValidatorScope> itr = scopes.keySet().iterator(); - while (itr.hasNext()) { - NuitonValidatorScope scope = itr.next(); - int nb = scopes.get(scope); - String t = t(scope.getLabel()); - buffer.append(t).append(" : ").append(nb); - if (itr.hasNext()) { - buffer.append(", "); - } - } - buffer.append(")"); - s = buffer.toString(); - renderCache.put(value, s); - return s; - } + //FIXME +// public Object valueFromEntityRef(DecoratorService decoratorService, +// TopiaEntityRef value) { +// String s = renderCache.get(value); +// if (s != null) { +// return s; +// } +// if (log.isDebugEnabled()) { +// log.debug("compute render cache for " + value.getRef().getTopiaId()); +// } +// List<SimpleBeanValidatorMessage<?>> messages = model.getMessages(value); +// EnumMap<NuitonValidatorScope, Integer> scopes = +// SimpleBeanValidators.getScopesCount(messages); +// StringBuilder buffer = new StringBuilder(); +// TopiaEntity entity = value.getRef(); +// Class<? extends TopiaEntity> type = +// ObserveDAOHelper.getContractClass(entity.getClass()); +// Decorator<?> decorator = decoratorService.getDecoratorByType(type); +// buffer.append(decorator.toString(entity)); +// buffer.append(" ("); +// +// Iterator<NuitonValidatorScope> itr = scopes.keySet().iterator(); +// while (itr.hasNext()) { +// NuitonValidatorScope scope = itr.next(); +// int nb = scopes.get(scope); +// String t = t(scope.getLabel()); +// buffer.append(t).append(" : ").append(nb); +// if (itr.hasNext()) { +// buffer.append(", "); +// } +// } +// buffer.append(")"); +// s = buffer.toString(); +// renderCache.put(value, s); +// return s; +// } } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/validate/ValidateModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/validate/ValidateModel.java index cfdaf3b..9ba477c 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/validate/ValidateModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/validate/ValidateModel.java @@ -22,29 +22,18 @@ package fr.ird.observe.ui.admin.validate; import fr.ird.observe.ObserveConfig; -import fr.ird.observe.ObserveEntityEnum; +import fr.ird.observe.business.validation.ValidationModelMode; +import fr.ird.observe.business.validation.ValidationService; +import fr.ird.observe.business.validation.ValidatorsMap; import fr.ird.observe.ui.admin.AdminActionModel; import fr.ird.observe.ui.admin.AdminStep; -import fr.ird.observe.validation.ValidationModelMode; -import fr.ird.observe.validation.ValidationService; -import fr.ird.observe.validation.ValidatorsMap; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.nuiton.topia.persistence.TopiaEntity; -import org.nuiton.topia.persistence.util.TopiaEntityHelper; -import org.nuiton.topia.persistence.util.TopiaEntityRef; import org.nuiton.validator.NuitonValidatorScope; -import org.nuiton.validator.bean.simple.SimpleBeanValidatorMessage; import java.io.File; -import java.util.ArrayList; import java.util.Date; import java.util.EnumSet; -import java.util.HashSet; -import java.util.List; -import java.util.Set; -import java.util.SortedMap; -import java.util.TreeMap; /** * Modele pour preparer une validation de donnees d'une base. @@ -95,12 +84,14 @@ public class ValidateModel extends AdminActionModel { protected ValidatorsMap validators; /** le dictionnaire des paths d'entites detectees */ - protected SortedMap<TopiaEntityRef, List<SimpleBeanValidatorMessage<?>>> messages; + //FIXME +// protected SortedMap<TopiaEntityRef, List<SimpleBeanValidatorMessage<?>>> messages; public ValidateModel() { super(AdminStep.VALIDATE); scopes = EnumSet.noneOf(NuitonValidatorScope.class); - messages = new TreeMap<TopiaEntityRef, List<SimpleBeanValidatorMessage<?>>>(); + //FIXME +// messages = new TreeMap<TopiaEntityRef, List<SimpleBeanValidatorMessage<?>>>(); } /** @@ -124,7 +115,9 @@ public class ValidateModel extends AdminActionModel { } public Class<?>[] getBeanTypes() { - return modelMode == null ? EMPTY_CLASS_ARRAY : modelMode.getContracts(); + //FIXME +// return modelMode == null ? EMPTY_CLASS_ARRAY : modelMode.getContracts(); + return EMPTY_CLASS_ARRAY; } public ValidationModelMode getModelMode() { @@ -181,55 +174,60 @@ public class ValidateModel extends AdminActionModel { return validators; } - public SortedMap<TopiaEntityRef, List<SimpleBeanValidatorMessage<?>>> getMessages() { - return messages; - } - - public void setMessages(SortedMap<TopiaEntityRef, List<SimpleBeanValidatorMessage<?>>> messages) { - Object oldValue = this.messages; - this.messages = messages; - firePropertyChange(PROPERTY_MESSAGES, oldValue, messages); - } - - public Class<?>[] getMessageTypes() { - if (messages == null || messages.isEmpty()) { - return EMPTY_CLASS_ARRAY; - } - Set<Class<? extends TopiaEntity>> tmp = new HashSet<Class<? extends TopiaEntity>>(); - for (TopiaEntityRef ref : messages.keySet()) { - tmp.add(ref.getRef().getClass()); - } - Set<Class<? extends TopiaEntity>> result; - result = TopiaEntityHelper.getContractClasses( - ObserveEntityEnum.values(), - tmp - ); - tmp.clear(); - if (log.isDebugEnabled()) { - log.debug(" = " + result); - } - return result.toArray(new Class<?>[result.size()]); - } - - public List<TopiaEntityRef> getMessagesEntities(Class<?> klass) { - List<TopiaEntityRef> tmp = new ArrayList<TopiaEntityRef>(); - if (messages != null) { - for (TopiaEntityRef ref : messages.keySet()) { - if (klass.isAssignableFrom(ref.getRef().getClass())) { - tmp.add(ref); - } - } - } - return tmp; - } - - public List<SimpleBeanValidatorMessage<?>> getMessages(TopiaEntityRef ref) { - List<SimpleBeanValidatorMessage<?>> result = null; - if (messages != null) { - result = messages.get(ref); - } - return result; - } + //FIXME +// public SortedMap<TopiaEntityRef, List<SimpleBeanValidatorMessage<?>>> getMessages() { +// return messages; +// } + + //FIXME +// public void setMessages(SortedMap<TopiaEntityRef, List<SimpleBeanValidatorMessage<?>>> messages) { +// Object oldValue = this.messages; +// this.messages = messages; +// firePropertyChange(PROPERTY_MESSAGES, oldValue, messages); +// } + + //FIXME +// public Class<?>[] getMessageTypes() { +// if (messages == null || messages.isEmpty()) { +// return EMPTY_CLASS_ARRAY; +// } +// Set<Class<? extends TopiaEntity>> tmp = new HashSet<Class<? extends TopiaEntity>>(); +// for (TopiaEntityRef ref : messages.keySet()) { +// tmp.add(ref.getRef().getClass()); +// } +// Set<Class<? extends TopiaEntity>> result; +// result = TopiaEntityHelper.getContractClasses( +// ObserveEntityEnum.values(), +// tmp +// ); +// tmp.clear(); +// if (log.isDebugEnabled()) { +// log.debug(" = " + result); +// } +// return result.toArray(new Class<?>[result.size()]); +// } + + //FIXME +// public List<TopiaEntityRef> getMessagesEntities(Class<?> klass) { +// List<TopiaEntityRef> tmp = new ArrayList<TopiaEntityRef>(); +// if (messages != null) { +// for (TopiaEntityRef ref : messages.keySet()) { +// if (klass.isAssignableFrom(ref.getRef().getClass())) { +// tmp.add(ref); +// } +// } +// } +// return tmp; +// } + + //FIXME +// public List<SimpleBeanValidatorMessage<?>> getMessages(TopiaEntityRef ref) { +// List<SimpleBeanValidatorMessage<?>> result = null; +// if (messages != null) { +// result = messages.get(ref); +// } +// return result; +// } public void addScope(NuitonValidatorScope scope) { scopes.add(scope); @@ -261,9 +259,10 @@ public class ValidateModel extends AdminActionModel { @Override public void destroy() { super.destroy(); - if (messages != null) { - setMessages(null); - } + //FIXME +// if (messages != null) { +// setMessages(null); +// } if (validators != null) { validators.clear(); validators = null; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/validate/ValidateUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/validate/ValidateUIHandler.java index 16a32d1..e540928 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/validate/ValidateUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/validate/ValidateUIHandler.java @@ -22,13 +22,14 @@ package fr.ird.observe.ui.admin.validate; import com.google.common.base.Charsets; -import fr.ird.observe.DataService; -import fr.ird.observe.DecoratorService; -import fr.ird.observe.ObserveServiceHelper; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.DataSourceException; -import fr.ird.observe.db.model.DataSelectionModel; -import fr.ird.observe.services.dto.TripDto; +import fr.ird.observe.business.DecoratorService; +import fr.ird.observe.business.ObserveServiceHelper; +import fr.ird.observe.business.db.DataSource; +import fr.ird.observe.business.db.DataSourceException; +import fr.ird.observe.business.validation.ValidationContext; +import fr.ird.observe.business.validation.ValidationMessageDetector; +import fr.ird.observe.business.validation.ValidationModelMode; +import fr.ird.observe.business.validation.ValidatorsMap; import fr.ird.observe.services.dto.referential.ProgramDto; import fr.ird.observe.services.dto.seine.TripSeineDto; import fr.ird.observe.ui.UIHelper; @@ -40,10 +41,6 @@ import fr.ird.observe.ui.admin.AdminUIModel; import fr.ird.observe.ui.admin.config.ConfigUI; import fr.ird.observe.ui.admin.config.SelectDataUI; import fr.ird.observe.ui.util.ObserveSimpleValidatorMessageTableRenderer; -import fr.ird.observe.validation.ValidationContext; -import fr.ird.observe.validation.ValidationMessageDetector; -import fr.ird.observe.validation.ValidationModelMode; -import fr.ird.observe.validation.ValidatorsMap; import jaxx.runtime.context.JAXXInitialContext; import jaxx.runtime.swing.wizard.ext.WizardState; import jaxx.runtime.validator.swing.SwingValidatorUtil; @@ -51,20 +48,12 @@ import org.apache.commons.io.FileUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.decorator.Decorator; -import org.nuiton.topia.TopiaContext; -import org.nuiton.topia.TopiaException; -import org.nuiton.topia.persistence.TopiaEntity; -import org.nuiton.topia.persistence.util.TopiaEntityRef; 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.SimpleBeanValidatorMessage; import org.nuiton.validator.bean.simple.SimpleBeanValidators; -import javax.swing.ComboBoxModel; -import javax.swing.DefaultComboBoxModel; -import javax.swing.DefaultListModel; -import javax.swing.JCheckBox; +import javax.swing.*; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.io.File; @@ -100,9 +89,9 @@ public class ValidateUIHandler extends AdminTabUIHandler { protected DataSource source; - protected Decorator<TripSeine> dTrip; + protected Decorator<TripSeineDto> dTrip; - protected Decorator<Program> dProgram; + protected Decorator<ProgramDto> dProgram; public ValidateUIHandler(AdminTabUI ui) { super(ui); @@ -177,10 +166,11 @@ public class ValidateUIHandler extends AdminTabUIHandler { // avoid multi-cast return; } - DataSelectionModel value = (DataSelectionModel) evt.getNewValue(); - if (log.isInfoEnabled()) { - log.info("selection model changed to " + value); - } + //FIXME +// DataSelectionModel value = (DataSelectionModel) evt.getNewValue(); +// if (log.isInfoEnabled()) { +// log.info("selection model changed to " + value); +// } updateSelectionModel(selectTabUI); } }); @@ -253,13 +243,14 @@ public class ValidateUIHandler extends AdminTabUIHandler { Class<?> type = (Class<?>) o; - List<TopiaEntityRef> refs = tabUI.getStepModel().getMessagesEntities(type); - for (TopiaEntityRef ref : refs) { - if (log.isDebugEnabled()) { - log.debug("add ref = " + ref); - } - tabUI.refModel.addElement(ref); - } + //FIXME +// List<TopiaEntityRef> refs = tabUI.getStepModel().getMessagesEntities(type); +// for (TopiaEntityRef ref : refs) { +// if (log.isDebugEnabled()) { +// log.debug("add ref = " + ref); +// } +// tabUI.refModel.addElement(ref); +// } tabUI.refList.setSelectedIndex(0); getModel().setBusy(false); } @@ -283,22 +274,23 @@ public class ValidateUIHandler extends AdminTabUIHandler { return; } - TopiaEntityRef ref = (TopiaEntityRef) o; - - if (log.isDebugEnabled()) { - log.debug(ref.getAccessorExpression()); - } - - for (SimpleBeanValidatorMessage<?> m : tabUI.getStepModel().getMessages(ref)) { - SimpleBeanValidatorEvent evt = new SimpleBeanValidatorEvent( - m.getValidator(), - m.getField(), - m.getScope(), - new String[]{m.getMessage()}, - EMPTY_STRING_ARRAY - ); - tabUI.messagesModel.onFieldChanged(evt); - } + //FIXME +// TopiaEntityRef ref = (TopiaEntityRef) o; +// +// if (log.isDebugEnabled()) { +// log.debug(ref.getAccessorExpression()); +// } +// +// for (SimpleBeanValidatorMessage<?> m : tabUI.getStepModel().getMessages(ref)) { +// SimpleBeanValidatorEvent evt = new SimpleBeanValidatorEvent( +// m.getValidator(), +// m.getField(), +// m.getScope(), +// new String[]{m.getMessage()}, +// EMPTY_STRING_ARRAY +// ); +// tabUI.messagesModel.onFieldChanged(evt); +// } } public void startAction() { @@ -328,18 +320,19 @@ public class ValidateUIHandler extends AdminTabUIHandler { launchValidation(); - SortedMap<TopiaEntityRef, List<SimpleBeanValidatorMessage<?>>> refs = - model.getValidateModel().getMessages(); - if (refs == null || refs.isEmpty()) { - - // pas de validation ou bien pas d'erreurs rencontrées - - sendMessage(t("observe.message.validation.nothing.to.do")); - sendMessage( - t("observe.message.validation.operation.done", new Date())); - - return WizardState.SUCCESSED; - } + //FIXME +// SortedMap<TopiaEntityRef, List<SimpleBeanValidatorMessage<?>>> refs = +// model.getValidateModel().getMessages(); +// if (refs == null || refs.isEmpty()) { +// +// // pas de validation ou bien pas d'erreurs rencontrées +// +// sendMessage(t("observe.message.validation.nothing.to.do")); +// sendMessage( +// t("observe.message.validation.operation.done", new Date())); +// +// return WizardState.SUCCESSED; +// } sendMessage( t("observe.message.validation.operation.needFix", new Date())); @@ -355,9 +348,9 @@ public class ValidateUIHandler extends AdminTabUIHandler { DecoratorService decoratorService = getDecoratorService(); - dTrip = decoratorService.getDecoratorByType(TripSeine.class); + dTrip = decoratorService.getDecoratorByType(TripSeineDto.class); - dProgram = decoratorService.getDecoratorByType(Program.class); + dProgram = decoratorService.getDecoratorByType(ProgramDto.class); openSource(source); @@ -390,80 +383,86 @@ public class ValidateUIHandler extends AdminTabUIHandler { // on vide les anciens messages ValidateModel stepModel = model.getValidateModel(); - stepModel.setMessages(null); + //FIXME +// stepModel.setMessages(null); ValidatorsMap validators = stepModel.getValidators(); ValidationMessageDetector detector = new ValidationMessageDetector(validators); - DataSelectionModel dataModel = model.getSelectionDataModel(); + //FIXME +// DataSelectionModel dataModel = model.getSelectionDataModel(); ValidationContext context = ObserveServiceHelper.getValidationContext(); context.setDataSource(model.getLocalSource()); - context.setDataContext(model.getDataService().getDataContext()); - - TopiaContext ctxt = beginTransaction(source, "launchValidation"); - try { - - - if (dataModel.isUseReferentiel()) { - - // validation des referentiels selectionnes - - validateReferentiel(detector, ctxt, dataModel); - } - - if (dataModel.isUseData()) { - - // validation des donnees observateur selectionnee - - validateData(detector, ctxt, dataModel); - } - - } finally { - context.setDataSource(null); - SortedMap<TopiaEntityRef, List<SimpleBeanValidatorMessage<?>>> refs = detector.getRefs(); - stepModel.setMessages(refs); - detector.clear(); - closeTransaction(source, ctxt, "launchValidation"); - } - } - - private void validateData(ValidationMessageDetector detector, - TopiaContext ctxt, - DataSelectionModel dataModel) throws TopiaException { - Set<String> data = dataModel.getSelectedData(); - - for (String id : data) { - Trip e = (Trip) ctxt.findByTopiaId(id); - Program p = e.getProgram(); - sendMessage(t("observe.message.validation.start.maree", dTrip.toString(e), dProgram.toString(p))); - detector.detectMessages(e); - } + //FIXME +// context.setDataContext(model.getDataService().getDataContext()); + + //FIXME +// TopiaContext ctxt = beginTransaction(source, "launchValidation"); +// try { +// +// +// if (dataModel.isUseReferentiel()) { +// +// // validation des referentiels selectionnes +// +// validateReferentiel(detector, ctxt, dataModel); +// } +// +// if (dataModel.isUseData()) { +// +// // validation des donnees observateur selectionnee +// +// validateData(detector, ctxt, dataModel); +// } +// +// } finally { +// context.setDataSource(null); +// SortedMap<TopiaEntityRef, List<SimpleBeanValidatorMessage<?>>> refs = detector.getRefs(); +// stepModel.setMessages(refs); +// detector.clear(); +// closeTransaction(source, ctxt, "launchValidation"); +// } } - protected void validateReferentiel(ValidationMessageDetector detector, - TopiaContext ctxt, - DataSelectionModel dataModel) throws DataSourceException, TopiaException { - - DataService dataService = getDataService(); - Set<Class<?>> classes = dataModel.getSelectedReferentiel(); - - for (Class<?> klass : classes) { - // on recupere la liste des ids a valider - Class<? extends TopiaEntity> refClass = (Class<? extends TopiaEntity>) klass; - List<String> ids = dataService.getEntityIds(source, refClass); - String entityLabel = t(DecoratorService.getEntityLabel(klass)); - sendMessage(t("observe.message.validation.start.referentiel", entityLabel, ids.size())); - for (String id : ids) { - TopiaEntity e = ctxt.findByTopiaId(id); - detector.detectMessages(e); - } - ids.clear(); - } - } + //FIXME +// private void validateData(ValidationMessageDetector detector, +// TopiaContext ctxt, +// DataSelectionModel dataModel) throws TopiaException { +// Set<String> data = dataModel.getSelectedData(); +// +// for (String id : data) { +// Trip e = (Trip) ctxt.findByTopiaId(id); +// Program p = e.getProgram(); +// sendMessage(t("observe.message.validation.start.maree", dTrip.toString(e), dProgram.toString(p))); +// detector.detectMessages(e); +// } +// } + + //FIXME +// protected void validateReferentiel(ValidationMessageDetector detector, +// TopiaContext ctxt, +// DataSelectionModel dataModel) throws DataSourceException, TopiaException { +// +// DataService dataService = getDataService(); +// Set<Class<?>> classes = dataModel.getSelectedReferentiel(); +// +// for (Class<?> klass : classes) { +// // on recupere la liste des ids a valider +// Class<? extends TopiaEntity> refClass = (Class<? extends TopiaEntity>) klass; +// List<String> ids = dataService.getEntityIds(source, refClass); +// String entityLabel = t(DecoratorService.getEntityLabel(klass)); +// sendMessage(t("observe.message.validation.start.referentiel", entityLabel, ids.size())); +// for (String id : ids) { +// TopiaEntity e = ctxt.findByTopiaId(id); +// detector.detectMessages(e); +// } +// ids.clear(); +// } +// } public void saveReport() { WizardState finalState = null; @@ -500,26 +499,27 @@ public class ValidateUIHandler extends AdminTabUIHandler { builder.append(t("observe.validation.report.title", new Date())).append('\n'); builder.append(t("observe.validation.report.scopes", validationModel.getScopes())).append('\n'); builder.append(t("observe.validation.report.contextName", validationModel.getContextName())).append('\n'); - SortedMap<TopiaEntityRef, List<SimpleBeanValidatorMessage<?>>> messages = - validationModel.getMessages(); - builder.append(t("observe.validation.report.entities.with.messages", messages.size())).append('\n'); - builder.append(LINE).append('\n').append('\n'); - for (Map.Entry<TopiaEntityRef, List<SimpleBeanValidatorMessage<?>>> entry : messages.entrySet()) { - TopiaEntityRef ref = entry.getKey(); - String refStr = service.decorate(ref.getRef()); - List<SimpleBeanValidatorMessage<?>> refMessages = entry.getValue(); - EnumSet<NuitonValidatorScope> scopes = - SimpleBeanValidators.getScopes(refMessages); - builder.append(t("observe.validation.report.entity", ref.getRef().getTopiaId(), refStr, refMessages.size(), scopes)).append('\n'); - for (NuitonValidatorScope scope : scopes) { - List<SimpleBeanValidatorMessage<?>> messagesByScope = filterMessages(scope, refMessages); - for (SimpleBeanValidatorMessage<?> message : messagesByScope) { - builder.append(message).append('\n'); - } - builder.append('\n'); - } - builder.append(LINE).append('\n').append('\n'); - } + //FIXME +// SortedMap<TopiaEntityRef, List<SimpleBeanValidatorMessage<?>>> messages = +// validationModel.getMessages(); +// builder.append(t("observe.validation.report.entities.with.messages", messages.size())).append('\n'); +// builder.append(LINE).append('\n').append('\n'); +// for (Map.Entry<TopiaEntityRef, List<SimpleBeanValidatorMessage<?>>> entry : messages.entrySet()) { +// TopiaEntityRef ref = entry.getKey(); +// String refStr = service.decorate(ref.getRef()); +// List<SimpleBeanValidatorMessage<?>> refMessages = entry.getValue(); +// EnumSet<NuitonValidatorScope> scopes = +// SimpleBeanValidators.getScopes(refMessages); +// builder.append(t("observe.validation.report.entity", ref.getRef().getTopiaId(), refStr, refMessages.size(), scopes)).append('\n'); +// for (NuitonValidatorScope scope : scopes) { +// List<SimpleBeanValidatorMessage<?>> messagesByScope = filterMessages(scope, refMessages); +// for (SimpleBeanValidatorMessage<?> message : messagesByScope) { +// builder.append(message).append('\n'); +// } +// builder.append('\n'); +// } +// builder.append(LINE).append('\n').append('\n'); +// } String content = builder.toString(); if (log.isInfoEnabled()) { 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 27569c9..5e5849d 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 @@ -21,26 +21,22 @@ */ package fr.ird.observe.ui.content; -import fr.ird.observe.BinderService; -import fr.ird.observe.DataService; -import fr.ird.observe.DecoratorService; import fr.ird.observe.ObserveContext; -import fr.ird.observe.ObserveServiceHelper; -import fr.ird.observe.ObserveTechnicalException; -import fr.ird.observe.db.DataContext; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.constants.DataContextType; -import fr.ird.observe.db.util.TopiaExecutor; -import fr.ird.observe.db.util.TopiaExecutor2; -import fr.ird.observe.services.dto.referential.ReferenceEntityDto; +import fr.ird.observe.business.BinderService; +import fr.ird.observe.business.DecoratorService; +import fr.ird.observe.business.ObserveServiceHelper; +import fr.ird.observe.business.ObserveTechnicalException; +import fr.ird.observe.business.db.DataContext; +import fr.ird.observe.business.db.DataSource; +import fr.ird.observe.business.db.constants.DataContextType; import fr.ird.observe.services.dto.AbstractObserveDto; +import fr.ird.observe.services.dto.referential.ReferentialDto; import fr.ird.observe.ui.UIHelper; import fr.ird.observe.ui.actions.shared.AbstractUIAction; import fr.ird.observe.ui.content.ref.ContentReferenceUIHandler; import fr.ird.observe.ui.tree.AbstractObserveTreeCellRenderer; import fr.ird.observe.ui.tree.ObserveNode; import fr.ird.observe.ui.tree.ObserveTreeHelper; -import fr.ird.observe.util.DBHelper; import jaxx.runtime.JAXXContext; import jaxx.runtime.swing.ErrorDialogUI; import jaxx.runtime.swing.JAXXButtonGroup; @@ -54,21 +50,10 @@ import org.nuiton.decorator.Decorator; import org.nuiton.decorator.DecoratorUtil; import org.nuiton.decorator.JXPathDecorator; import org.nuiton.jaxx.widgets.gis.absolute.CoordinatesEditor; -import org.nuiton.topia.TopiaContext; -import org.nuiton.topia.TopiaException; -import org.nuiton.topia.persistence.TopiaEntity; -import org.nuiton.topia.persistence.TopiaEntityAbstract; -import org.nuiton.topia.persistence.util.TopiaEntityBinder; import org.nuiton.validator.NuitonValidatorScope; -import javax.swing.AbstractButton; -import javax.swing.ActionMap; -import javax.swing.Icon; -import javax.swing.JComponent; -import javax.swing.JOptionPane; -import javax.swing.JToolBar; -import javax.swing.UIManager; -import java.awt.Component; +import javax.swing.*; +import java.awt.*; import java.util.ArrayList; import java.util.List; @@ -154,7 +139,7 @@ public abstract class ContentUIHandler<E extends AbstractObserveDto> { errorIcon = UIManager.getIcon("action.error"); } - public static <E extends TopiaEntity> ContentUIHandler<E> newHandler(ObserveContentUI<E> ui) { + public static <E extends AbstractObserveDto> ContentUIHandler<E> newHandler(ObserveContentUI<E> ui) { String uiName = ui.getClass().getName(); String modelName = uiName + "Handler"; @@ -186,7 +171,7 @@ public abstract class ContentUIHandler<E extends AbstractObserveDto> { */ public static boolean checkEdit(ObserveContentUI<?> ui) { - ContentUIModel<? extends TopiaEntity> model = ui.getModel(); + ContentUIModel<? extends AbstractObserveDto> model = ui.getModel(); if (model.isCreatingMode()) { @@ -517,22 +502,23 @@ public abstract class ContentUIHandler<E extends AbstractObserveDto> { public final void saveUI(boolean refresh) { boolean ok = false; - try { - ok = doSave(getBean(), - getDataService(), - getDataSource(), - getLoadBinder() - ); - } catch (Exception e) { - ErrorDialogUI.showError(e); - if (log.isErrorEnabled()) { - log.error(e); - } - } finally { - if (ok) { - afterSave(refresh); - } - } + //FIXME +// try { +// ok = doSave(getBean(), +// getDataService(), +// getDataSource(), +// getLoadBinder() +// ); +// } catch (Exception e) { +// ErrorDialogUI.showError(e); +// if (log.isErrorEnabled()) { +// log.error(e); +// } +// } finally { +// if (ok) { +// afterSave(refresh); +// } +// } } //FIXME @@ -585,21 +571,22 @@ public abstract class ContentUIHandler<E extends AbstractObserveDto> { boolean ok = false; ui.stopEdit(); removeAllMessages(ui); - try { - ok = doDelete(getBean(), - getDataService(), - getDataSource(), - getDeleteExecutor()); - } catch (Exception e) { - ErrorDialogUI.showError(e); - if (log.isErrorEnabled()) { - log.error(e); - } - } finally { - if (ok) { - afterDelete(); - } - } + //FIXME +// try { +// ok = doDelete(getBean(), +// getDataService(), +// getDataSource(), +// getDeleteExecutor()); +// } catch (Exception e) { +// ErrorDialogUI.showError(e); +// if (log.isErrorEnabled()) { +// log.error(e); +// } +// } finally { +// if (ok) { +// afterDelete(); +// } +// } } //FIXME @@ -629,21 +616,22 @@ public abstract class ContentUIHandler<E extends AbstractObserveDto> { } } - public void gotoChild(TopiaEntity entity) { - if (entity == null) { - - // rien a faire - return; - } - ObserveTreeHelper treeHelper = getTreeHelper(ui); - ObserveNode parentNode = treeHelper.getSelectedNode(); - String id = entity.getTopiaId(); - ObserveNode node = treeHelper.findNode(parentNode, id); - if (log.isInfoEnabled()) { - log.info("will go to node " + node + " for " + id); - } - treeHelper.selectNode(node); - } + //FIXME +// public void gotoChild(TopiaEntity entity) { +// if (entity == null) { +// +// // rien a faire +// return; +// } +// ObserveTreeHelper treeHelper = getTreeHelper(ui); +// ObserveNode parentNode = treeHelper.getSelectedNode(); +// String id = entity.getTopiaId(); +// ObserveNode node = treeHelper.findNode(parentNode, id); +// if (log.isInfoEnabled()) { +// log.info("will go to node " + node + " for " + id); +// } +// treeHelper.selectNode(node); +// } public void addChild(Class<?> type) { ObserveTreeHelper treeHelper = getTreeHelper(ui); @@ -679,18 +667,19 @@ public abstract class ContentUIHandler<E extends AbstractObserveDto> { } } - protected E onCreate(TopiaContext tx, Object parentBean, E editBean) throws TopiaException { - return editBean; - } - - protected E onUpdate(TopiaContext tx, Object parentBean, E beanToSave) throws TopiaException { - // rien par defaut - return beanToSave; - } - - protected void onDelete(TopiaContext tx, Object parentBean, E beanToDelete) throws TopiaException { - // rien par defaut - } + //FIXME +// protected E onCreate(TopiaContext tx, Object parentBean, E editBean) throws TopiaException { +// return editBean; +// } +// +// protected E onUpdate(TopiaContext tx, Object parentBean, E beanToSave) throws TopiaException { +// // rien par defaut +// return beanToSave; +// } +// +// protected void onDelete(TopiaContext tx, Object parentBean, E beanToDelete) throws TopiaException { +// // rien par defaut +// } protected void addInfoMessage(String message) { addMessage(ui, @@ -711,35 +700,41 @@ public abstract class ContentUIHandler<E extends AbstractObserveDto> { ObserveServiceHelper.get().getValidationContext().cleanCache(); } - protected final TopiaEntityBinder<E> getLoadBinder() { - return getModel().getLoadBinder(); - } - - protected final TopiaExecutor<E> getLoadExecutor() { - return loadExecutor; - } - - protected final TopiaExecutor2<? extends TopiaEntity, E> getPreCreateExecutor() { - return preCreateExecutor; - } - - protected final TopiaExecutor2<? extends TopiaEntity, E> getCreateExecutor() { - return createExecutor; - } + //FIXME +// protected final TopiaEntityBinder<E> getLoadBinder() { +// return getModel().getLoadBinder(); +// } - protected final TopiaExecutor2<? extends TopiaEntity, E> getUpdateExecutor() { - return updateExecutor; - } + //FIXME +// protected final TopiaExecutor<E> getLoadExecutor() { +// return loadExecutor; +// } - protected final TopiaExecutor2<? extends TopiaEntity, E> getDeleteExecutor() { - return deleteExecutor; - } + //FIXME +// protected final TopiaExecutor2<? extends TopiaEntity, E> getPreCreateExecutor() { +// return preCreateExecutor; +// } +// + //FIXME +// protected final TopiaExecutor2<? extends TopiaEntity, E> getCreateExecutor() { +// return createExecutor; +// } +// + //FIXME +// protected final TopiaExecutor2<? extends TopiaEntity, E> getUpdateExecutor() { +// return updateExecutor; +// } +// + //FIXME +// protected final TopiaExecutor2<? extends TopiaEntity, E> getDeleteExecutor() { +// return deleteExecutor; +// } protected final ContentMode computeContentMode() { ContentMode mode; if (!getModel().isCanWrite()) { - if (ReferenceEntity.class.isAssignableFrom(getBeanType())) { + if (ReferentialDto.class.isAssignableFrom(getBeanType())) { addInfoMessage(t("observe.message.referentiel.no.editable")); } else { addInfoMessage(t("observe.message.can.not.write.data")); @@ -759,9 +754,10 @@ public abstract class ContentUIHandler<E extends AbstractObserveDto> { return contextName; } - protected final DataService getDataService() { - return ObserveContext.get().getDataService(); - } + //FIXME +// protected final DataService getDataService() { +// return ObserveContext.get().getDataService(); +// } protected void updateActions() { diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ContentUIInitializer.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ContentUIInitializer.java index f38141a..2e7fdae 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ContentUIInitializer.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ContentUIInitializer.java @@ -24,20 +24,18 @@ package fr.ird.observe.ui.content; import com.google.common.base.Predicate; import com.google.common.collect.Lists; -import fr.ird.observe.DataService; -import fr.ird.observe.DecoratorService; import fr.ird.observe.ObserveContext; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.DataSourceException; -import fr.ird.observe.services.dto.constants.ReferenceStatusDto; -import fr.ird.observe.services.dto.referential.ReferenceEntitiesDto; -import fr.ird.observe.services.dto.referential.ReferenceEntityDto; +import fr.ird.observe.business.DecoratorService; +import fr.ird.observe.business.db.DataSource; +import fr.ird.observe.business.db.DataSourceException; +import fr.ird.observe.business.validation.ObserveValidator; +import fr.ird.observe.services.dto.AbstractObserveDto; +import fr.ird.observe.services.dto.constants.ReferenceStatus; +import fr.ird.observe.services.dto.referential.ReferentialDto; import fr.ird.observe.ui.UIHelper; import fr.ird.observe.ui.actions.shared.AbstractUIAction; import fr.ird.observe.ui.util.BooleanEditor; import fr.ird.observe.ui.util.tripMap.ObserveMapPane; -import fr.ird.observe.util.DBHelper; -import fr.ird.observe.validation.ObserveValidator; import jaxx.runtime.JAXXValidator; import jaxx.runtime.SwingUtil; import jaxx.runtime.swing.JAXXWidgetUtil; @@ -64,29 +62,12 @@ import org.nuiton.jaxx.widgets.datetime.DateTimeEditor; import org.nuiton.jaxx.widgets.datetime.TimeEditor; import org.nuiton.jaxx.widgets.gis.absolute.CoordinatesEditor; import org.nuiton.jaxx.widgets.select.FilterableDoubleList; -import org.nuiton.topia.persistence.TopiaEntity; -import org.nuiton.topia.persistence.TopiaEntityAbstract; import org.nuiton.util.DateUtil; -import javax.swing.AbstractButton; -import javax.swing.ActionMap; -import javax.swing.JCheckBox; -import javax.swing.JComboBox; -import javax.swing.JComponent; -import javax.swing.JLabel; -import javax.swing.JList; -import javax.swing.JScrollBar; -import javax.swing.JSpinner; -import javax.swing.JTable; -import javax.swing.JTextArea; -import javax.swing.JTextField; -import javax.swing.ListCellRenderer; -import javax.swing.SwingUtilities; +import javax.swing.*; import javax.swing.border.LineBorder; import javax.swing.table.TableCellEditor; -import java.awt.Color; -import java.awt.Component; -import java.awt.Dimension; +import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.FocusAdapter; @@ -114,7 +95,7 @@ import static org.nuiton.i18n.I18n.t; * @author Tony Chemit - chemit@codelutin.com * @since 3.7 */ -public class ContentUIInitializer<E extends TopiaEntity, UI extends ObserveContentUI<E>> { +public class ContentUIInitializer<E extends AbstractObserveDto, UI extends ObserveContentUI<E>> { public static final String OBSERVE_ACTION = "observeAction"; @@ -133,10 +114,11 @@ public class ContentUIInitializer<E extends TopiaEntity, UI extends ObserveConte this.ui = ui; } - protected static void attachTopiaContext(DataSource service, - TopiaEntityAbstract entity) { - DBHelper.attachTopiaContext(service.getRootCtxt(), entity); - } + //FIXME +// protected static void attachTopiaContext(DataSource service, +// TopiaEntityAbstract entity) { +// DBHelper.attachTopiaContext(service.getRootCtxt(), entity); +// } public static TableCellEditor newFloatColumnEditor(JTable table) { @@ -220,8 +202,8 @@ public class ContentUIInitializer<E extends TopiaEntity, UI extends ObserveConte continue; } - if (o instanceof TopiaEntityAbstract) { - init(dataSource, (TopiaEntityAbstract) o); + if (o instanceof AbstractObserveDto) { + init(dataSource, (AbstractObserveDto) o); continue; } @@ -325,11 +307,11 @@ public class ContentUIInitializer<E extends TopiaEntity, UI extends ObserveConte protected void init(DataSource service) throws DataSourceException { - init(service, (TopiaEntityAbstract) getBean()); + init(service, (AbstractObserveDto) getBean()); } - protected void init(DataSource service, TopiaEntityAbstract bean) throws DataSourceException { + protected void init(DataSource service, AbstractObserveDto bean) throws DataSourceException { if (bean == null) { return; @@ -337,7 +319,8 @@ public class ContentUIInitializer<E extends TopiaEntity, UI extends ObserveConte if (log.isDebugEnabled()) { log.debug("init entity " + bean.getClass()); } - attachTopiaContext(service, bean); + //FIXME +// attachTopiaContext(service, bean); } protected void init(ActionMap actionMap, AbstractButton editor) throws DataSourceException { @@ -385,7 +368,7 @@ public class ContentUIInitializer<E extends TopiaEntity, UI extends ObserveConte @SuppressWarnings("unchecked") protected void init(DataSource dataSource, BeanComboBox beanComboBox) throws DataSourceException { - Class<ReferenceEntity> klass = (Class<ReferenceEntity>) + Class<ReferentialDto> klass = (Class<ReferentialDto>) beanComboBox.getHandler().getBeanType(); if (log.isDebugEnabled()) { log.debug("init combobox for " + klass); @@ -410,12 +393,12 @@ public class ContentUIInitializer<E extends TopiaEntity, UI extends ObserveConte Object init = jlist.getClientProperty("addDecorator"); if (init != null) { - Class<TopiaEntity> klass = (Class<TopiaEntity>) init; + Class<AbstractObserveDto> klass = (Class<AbstractObserveDto>) init; if (log.isDebugEnabled()) { log.debug("addDecorator to list " + jlist.getName()); } - Decorator<TopiaEntity> decorator = decoratorService.getDecoratorByType(klass); + Decorator<AbstractObserveDto> decorator = decoratorService.getDecoratorByType(klass); jlist.putClientProperty("decorator", decorator); } @@ -638,7 +621,7 @@ public class ContentUIInitializer<E extends TopiaEntity, UI extends ObserveConte * des entités * @since 1.5 */ - protected <E extends TopiaEntity> void prepareEntityList(DataSource storageService, + protected <E extends AbstractObserveDto> void prepareEntityList(DataSource storageService, Class<E> entityClass, FilterableDoubleList<E> list) throws DataSourceException { @@ -651,12 +634,13 @@ public class ContentUIInitializer<E extends TopiaEntity, UI extends ObserveConte } list.putClientProperty("decorator", decorator); - List<E> data; + List<E> data = null; - if (ReferenceEntity.class.isAssignableFrom(entityClass)) { + if (ReferentialDto.class.isAssignableFrom(entityClass)) { Predicate<E> predicate = (Predicate<E>) list.getClientProperty(ObserveContentUI.CLIENT_PROPERTY_LIST_PREDICATE); - data = tx.getDataService().getList(storageService, entityClass, predicate); + //FIXME +// data = tx.getDataService().getList(storageService, entityClass, predicate); } else { data = new ArrayList<E>(); @@ -680,8 +664,9 @@ public class ContentUIInitializer<E extends TopiaEntity, UI extends ObserveConte // listen on cache modification EntityDoubleListPropertyChangeListener<E> listener = new EntityDoubleListPropertyChangeListener<E>(entityClass, list); - DataService service = ObserveContext.get().getDataService(); - service.addReferentielPropertyChangeListener(entityClass, listener); + //FIXME +// DataService service = ObserveContext.get().getDataService(); +// service.addReferentielPropertyChangeListener(entityClass, listener); } /** @@ -696,9 +681,9 @@ public class ContentUIInitializer<E extends TopiaEntity, UI extends ObserveConte * des entités * @since 1.5 */ - protected <E extends TopiaEntity> void prepareEntityList(DataSource storageService, - Class<E> entityClass, - BeanListHeader<E> list) throws DataSourceException { + protected <E extends AbstractObserveDto> void prepareEntityList(DataSource storageService, + Class<E> entityClass, + BeanListHeader<E> list) throws DataSourceException { ObserveContext tx = ObserveContext.get(); @@ -709,12 +694,13 @@ public class ContentUIInitializer<E extends TopiaEntity, UI extends ObserveConte } list.putClientProperty("decorator", decorator); - List<E> data; + List<E> data = null; - if (ReferenceEntity.class.isAssignableFrom(entityClass)) { + if (ReferentialDto.class.isAssignableFrom(entityClass)) { Predicate<E> predicate = (Predicate<E>) list.getClientProperty(ObserveContentUI.CLIENT_PROPERTY_LIST_PREDICATE); - data = tx.getDataService().getList(storageService, entityClass, predicate); + //FIXME +// data = tx.getDataService().getList(storageService, entityClass, predicate); } else { data = new ArrayList<E>(); @@ -737,8 +723,9 @@ public class ContentUIInitializer<E extends TopiaEntity, UI extends ObserveConte // listen on cache modification EntityListPropertyChangeListener<E> listener = new EntityListPropertyChangeListener<E>(entityClass, list); - DataService service = ObserveContext.get().getDataService(); - service.addReferentielPropertyChangeListener(entityClass, listener); + //FIXME +// DataService service = ObserveContext.get().getDataService(); +// service.addReferentielPropertyChangeListener(entityClass, listener); } /** @@ -753,7 +740,7 @@ public class ContentUIInitializer<E extends TopiaEntity, UI extends ObserveConte * @throws DataSourceException si un pb pendant la récupération des * entités */ - protected <E extends TopiaEntity> void prepareBeanComboBox( + protected <E extends AbstractObserveDto> void prepareBeanComboBox( DataSource storageService, Class<E> entityClass, BeanComboBox<E> comboBox) throws DataSourceException { @@ -763,11 +750,12 @@ public class ContentUIInitializer<E extends TopiaEntity, UI extends ObserveConte // init combobox Decorator<E> decorator = context.getDecorator(entityClass); - DataService service = context.getDataService(); + //FIXME +// DataService service = context.getDataService(); Boolean noLoad = (Boolean) comboBox.getClientProperty(ObserveContentUI.CLIENT_PROPERTY_LIST_NO_LOAD); - List<E> data; + List<E> data = null; if (noLoad != null && noLoad) { @@ -780,16 +768,18 @@ public class ContentUIInitializer<E extends TopiaEntity, UI extends ObserveConte // get complete data list from service Predicate<E> predicate = (Predicate<E>) comboBox.getClientProperty(ObserveContentUI.CLIENT_PROPERTY_LIST_PREDICATE); - data = service.getList(storageService, entityClass, predicate); + //FIXME +// data = service.getList(storageService, entityClass, predicate); } - boolean referenceEntity = ReferenceEntity.class.isAssignableFrom(entityClass); + boolean referenceEntity = ReferentialDto.class.isAssignableFrom(entityClass); if (referenceEntity) { //TC-20100208 : on ne veut pas voir les elements du referentiel non actif - ReferenceEntities.filterReferentielListByStatus((List) data); + //FIXME +// ReferentialDtos.filterReferentielListByStatus((List) data); } @@ -843,7 +833,8 @@ public class ContentUIInitializer<E extends TopiaEntity, UI extends ObserveConte super.propertyChange(evt); } }; - service.addReferentielPropertyChangeListener(entityClass, listener); + //FIXME +// service.addReferentielPropertyChangeListener(entityClass, listener); } @@ -856,7 +847,7 @@ public class ContentUIInitializer<E extends TopiaEntity, UI extends ObserveConte * @param <E> le type des entités */ protected static class EntityListPropertyChangeListener - <E extends TopiaEntity> implements PropertyChangeListener { + <E extends AbstractObserveDto> implements PropertyChangeListener { /** le type des entités */ private Class<E> entityClass; @@ -904,7 +895,7 @@ public class ContentUIInitializer<E extends TopiaEntity, UI extends ObserveConte * @param <E> le type des entités */ protected static class EntityDoubleListPropertyChangeListener - <E extends TopiaEntity> implements PropertyChangeListener { + <E extends AbstractObserveDto> implements PropertyChangeListener { /** le type des entités */ private Class<E> entityClass; @@ -992,9 +983,9 @@ public class ContentUIInitializer<E extends TopiaEntity, UI extends ObserveConte // par defaut, on utilise la couleur normale Color col = normalColor; if (value != null && - value instanceof ReferenceEntity) { + value instanceof ReferentialDto) { - ReferenceEntity e = (ReferenceEntity) value; + ReferentialDto e = (ReferentialDto) value; ReferenceStatus status = e.getStatus(); if (status == ReferenceStatus.disabled) { @@ -1022,7 +1013,7 @@ public class ContentUIInitializer<E extends TopiaEntity, UI extends ObserveConte * @param <E> le type des entités */ protected static class BeanComboBoxPropertyChangeListener - <E extends ReferenceEntity> implements PropertyChangeListener { + <E extends ReferentialDto> implements PropertyChangeListener { /** le type des entités à écouter */ private final Class<E> entityClass; @@ -1049,7 +1040,8 @@ public class ContentUIInitializer<E extends TopiaEntity, UI extends ObserveConte "], size : " + newValue.size()); } //TC-20100208 : on ne veut pas voir les elements du referentiel non actif - ReferenceEntities.filterReferentielListByStatus(newValue); + //FIXME +// ReferenceEntities.filterReferentielListByStatus(newValue); E selectedItem = (E) comboBox.getSelectedItem(); 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 1ecbbcb..d7f6968 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 @@ -32,7 +32,6 @@ import jaxx.runtime.swing.CardLayout2; import jaxx.runtime.swing.ErrorDialogUI; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.nuiton.topia.persistence.TopiaEntity; import javax.swing.*; import java.lang.reflect.Constructor; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ContentUIModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ContentUIModel.java index 5a83741..439e079 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ContentUIModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ContentUIModel.java @@ -21,8 +21,8 @@ */ package fr.ird.observe.ui.content; -import fr.ird.observe.BinderService; -import fr.ird.observe.ObserveTechnicalException; +import fr.ird.observe.business.BinderService; +import fr.ird.observe.business.ObserveTechnicalException; import fr.ird.observe.services.dto.AbstractObserveDto; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ObserveContentUI.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ObserveContentUI.java index 460c895..456ae19 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ObserveContentUI.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ObserveContentUI.java @@ -22,8 +22,8 @@ package fr.ird.observe.ui.content; * #L% */ -import fr.ird.observe.db.DataContext; -import fr.ird.observe.db.DataSource; +import fr.ird.observe.business.db.DataContext; +import fr.ird.observe.business.db.DataSource; import fr.ird.observe.services.dto.AbstractObserveDto; import jaxx.runtime.JAXXObject; import jaxx.runtime.swing.BlockingLayerUI; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/BasketsTableModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/BasketsTableModel.java index 0ec893b..36a8779 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/BasketsTableModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/BasketsTableModel.java @@ -22,7 +22,7 @@ package fr.ird.observe.ui.content.impl.longline; * #L% */ -import fr.ird.observe.services.dto.longline.BasketDto; +import fr.ird.observe.entities.longline.SectionTemplate; import fr.ird.observe.services.dto.longline.BasketDto; /** diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/BranchlineUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/BranchlineUIHandler.java index f5c746b..e9b0abe 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/BranchlineUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/BranchlineUIHandler.java @@ -22,7 +22,9 @@ package fr.ird.observe.ui.content.impl.longline; * #L% */ -import fr.ird.observe.DataContext; +import fr.ird.observe.business.db.DataContext; +import fr.ird.observe.business.db.DataSource; +import fr.ird.observe.business.db.constants.DataContextType; import fr.ird.observe.services.dto.longline.ActivityLonglineDto; import fr.ird.observe.services.dto.longline.BranchlineDto; import fr.ird.observe.ui.UIHelper; @@ -36,7 +38,6 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.decorator.Decorator; import org.nuiton.i18n.I18n; -import org.nuiton.topia.persistence.util.TopiaEntityBinder; import org.nuiton.validator.NuitonValidatorScope; import javax.swing.*; @@ -80,7 +81,8 @@ public class BranchlineUIHandler extends ContentUIHandler<BranchlineDto> { } getModel().setBranchline(branchline); - getLoadBinder().copy(branchline, getBean()); + //FIXME +// getLoadBinder().copy(branchline, getBean()); if (branchline == null) { @@ -214,22 +216,23 @@ public class BranchlineUIHandler extends ContentUIHandler<BranchlineDto> { } - @Override - protected boolean doSave(BranchlineDto bean, - DataService dataService, - DataSource dataSource, - TopiaEntityBinder<BranchlineDto> binder) throws Exception { - - // bind back to model branchline - BranchlineDto beanToSave = getModel().getBranchline(); - binder.copy(bean, beanToSave); - - // for external models - getModel().fireSaved(); - - return true; - - } + //FIXME +// @Override +// protected boolean doSave(BranchlineDto bean, +// DataService dataService, +// DataSource dataSource, +// TopiaEntityBinder<BranchlineDto> binder) throws Exception { +// +// // bind back to model branchline +// BranchlineDto beanToSave = getModel().getBranchline(); +// binder.copy(bean, beanToSave); +// +// // for external models +// getModel().fireSaved(); +// +// return true; +// +// } @Override public void resetEditUI() { diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/BranchlineUIModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/BranchlineUIModel.java index bc23d53..4ecf7b0 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/BranchlineUIModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/BranchlineUIModel.java @@ -23,7 +23,7 @@ package fr.ird.observe.ui.content.impl.longline; */ import com.google.common.collect.ImmutableSet; -import fr.ird.observe.BinderService; +import fr.ird.observe.business.BinderService; import fr.ird.observe.services.dto.longline.BranchlineDto; import fr.ird.observe.ui.content.ContentUIModel; import org.nuiton.util.beans.BinderModelBuilder; @@ -74,7 +74,7 @@ public class BranchlineUIModel extends ContentUIModel<BranchlineDto> { private boolean hookAndBaitTabValid; - public BranchlineDtoUIModel() { + public BranchlineUIModel() { super(BranchlineDto.class); } @@ -113,11 +113,11 @@ public class BranchlineUIModel extends ContentUIModel<BranchlineDto> { } - public BranchlineDto getBranchlineDto() { - return BranchlineDto; + public BranchlineDto getBranchline() { + return branchlineDto; } - public void setBranchlineDto(BranchlineDto branchlineDto) { + public void setBranchline(BranchlineDto branchlineDto) { this.branchlineDto = branchlineDto; } 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 b3b20e5..3253d6e 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 @@ -23,18 +23,13 @@ package fr.ird.observe.ui.content.impl.longline; */ import fr.ird.observe.ObserveContext; -import fr.ird.observe.ObserveTechnicalException; -import fr.ird.observe.db.DataContext; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.DataSourceException; -import fr.ird.observe.db.constants.DataContextType; -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.dto.longline.SectionTemplateDto; -import fr.ird.observe.services.dto.longline.SectionWithTemplateDto; -import fr.ird.observe.services.dto.longline.SectionWithTemplatesDto; -import fr.ird.observe.services.dto.longline.SetLonglineDto; +import fr.ird.observe.business.ObserveTechnicalException; +import fr.ird.observe.business.db.DataContext; +import fr.ird.observe.business.db.DataSource; +import fr.ird.observe.business.db.DataSourceException; +import fr.ird.observe.business.db.constants.DataContextType; +import fr.ird.observe.entities.longline.SectionTemplate; +import fr.ird.observe.services.dto.longline.ActivityLonglineDto; import fr.ird.observe.services.dto.longline.BasketDto; import fr.ird.observe.services.dto.longline.BranchlineDto; import fr.ird.observe.services.dto.longline.SectionDto; @@ -49,10 +44,6 @@ import org.apache.commons.lang3.BooleanUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.decorator.Decorator; -import org.nuiton.topia.TopiaContext; -import org.nuiton.topia.TopiaException; -import org.nuiton.topia.persistence.TopiaDAO; -import org.nuiton.topia.persistence.util.TopiaEntityBinder; import org.nuiton.validator.NuitonValidatorScope; import javax.swing.*; @@ -64,6 +55,7 @@ import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.util.ArrayList; import java.util.Collections; +import java.util.LinkedHashSet; import java.util.List; import java.util.Map; @@ -293,7 +285,7 @@ public class LonglineDetailCompositionUIHandler extends ContentUIHandler<SetLong ContentMode contentMode; - if (dataContext.isSelectedOpen(ActivityLongline.class)) { + if (dataContext.isSelectedOpen(ActivityLonglineDto.class)) { // l'activité est ouverte, mode édition contentMode = ContentMode.UPDATE; @@ -302,7 +294,7 @@ public class LonglineDetailCompositionUIHandler extends ContentUIHandler<SetLong // l'activité n'est pas ouverte, mode lecture addMessage(getUi(), NuitonValidatorScope.INFO, - getEntityLabel(ActivityLongline.class), + getEntityLabel(ActivityLonglineDto.class), t("observe.activityLongline.message.not.open")); contentMode = ContentMode.READ; @@ -383,7 +375,8 @@ public class LonglineDetailCompositionUIHandler extends ContentUIHandler<SetLong super.openUI(); // Load binders (used to load section, basket, branchline binders...) - getLoadBinder(); + //FIXME +// getLoadBinder(); { // open brancheline detail @@ -398,17 +391,19 @@ public class LonglineDetailCompositionUIHandler extends ContentUIHandler<SetLong } ContentMode mode = computeContentMode(); - DataService dataService = getDataService(); + //FIXME +// DataService dataService = getDataService(); DataSource source = getDataSource(); // update mode - dataService.loadEditEntity(source, setId, getLoadExecutor()); + //FIXME +// dataService.loadEditEntity(source, setId, getLoadExecutor()); // utilisation du mode requis setContentMode(mode); - SetLongline bean = getBean(); + SetLonglineDto bean = getBean(); //FIXME Validate this default date if (log.isInfoEnabled()) { @@ -419,7 +414,8 @@ public class LonglineDetailCompositionUIHandler extends ContentUIHandler<SetLong // by default, can generate if there is no section in database - getModel().setCanGenerate(bean.isSectionEmpty()); + //FIXME +// getModel().setCanGenerate(bean.isSectionEmpty()); // TODO Use a cache of templates on setLongline (session scope) getSectionTemplatesTableModel().setData(Collections.<SectionTemplate>emptyList()); @@ -431,8 +427,9 @@ public class LonglineDetailCompositionUIHandler extends ContentUIHandler<SetLong try { - List<SectionWithTemplate> section = SectionWithTemplates.getSectionTemplates(bean.getSection()); - getSectionsTableModel().setData(section); + //FIXME +// List<SectionWithTemplate> section = SectionWithTemplates.getSectionTemplates(bean.getSection()); +// getSectionsTableModel().setData(section); validationHelper.setObjectValueAdjusting(true); @@ -478,178 +475,183 @@ public class LonglineDetailCompositionUIHandler extends ContentUIHandler<SetLong } - @Override - protected boolean doSave(SetLonglineDto bean, - DataService dataService, - DataSource dataSource, - TopiaEntityBinder<SetLonglineDto> binder) throws Exception { - - BranchlineUI branchlineDetailUI = getUi().getBranchlineDetailUI(); - - boolean continueSave = true; - - if (getUi().getFishingOperationTabPane().getSelectedIndex() == 2) { - - BranchlineUIHandler branchlineUIHandler = branchlineDetailUI.getHandler(); - - continueSave = branchlineUIHandler.tryToQuit(); - - } - - if (continueSave) { - - SectionsTableModel sectionsTableModel = getSectionsTableModel(); - SectionWithTemplate selectedSection = sectionsTableModel.getSelectedRow(); - if (selectedSection != null) { - - // flush selected section before save - flushSection(selectedSection); - - } - - dataService.update(dataSource, null, bean, getUpdateExecutor()); - } - - return continueSave; - } - - @Override - protected SetLonglineDto onUpdate(TopiaContext tx, Object parentBean, SetLonglineDto beanToSave) throws TopiaException { - - Map<String, SectionDto> existingSectionsByTopiaId = Entities.toIdMap(beanToSave.getSection()); - - TopiaDAO<SectionDto> sectionsDao = getDataSource().getDAO(tx, SectionDto.class); - TopiaDAO<BasketDto> basketDao = getDataSource().getDAO(tx, BasketDto.class); - TopiaDAO<BranchlineDto> branchlineDao = getDataSource().getDAO(tx, BranchlineDto.class); - - List<SectionWithTemplate> sections = getSectionsTableModel().getNotEmptyData(); - - beanToSave.clearSection(); - - for (SectionWithTemplate section : sections) { - - Section sectionToSave = persistSection(sectionsDao, - basketDao, - branchlineDao, - existingSectionsByTopiaId, - section); - beanToSave.addSection(sectionToSave); - sectionToSave.setSetLongline(beanToSave); - - } - - return beanToSave; - - } - - protected Section persistSection(TopiaDAO<Section> sectionsDao, - TopiaDAO<Basket> basketDao, - TopiaDAO<Branchline> branchlineDao, - Map<String, Section> existingSectionsByTopiaId, - Section section) throws TopiaException { - - Section sectionToSave; - - if (section.getTopiaId() == null) { - - // create - sectionToSave = sectionsDao.create( - Section.PROPERTY_SETTING_IDENTIFIER, section.getSettingIdentifier(), - Section.PROPERTY_HAULING_IDENTIFIER, section.getHaulingIdentifier()); - - } else { - - sectionToSave = existingSectionsByTopiaId.get(section.getTopiaId()); - - } - - TopiaEntityBinder<Section> sectionBinder = getModel().getSectionBinder(); - sectionBinder.copyExcluding(section, sectionToSave, Section.PROPERTY_BASKET); - - Map<String, Basket> existingBasketsByTopiaId = Entities.toIdMap(sectionToSave.getBasket()); - - List<Basket> baskets = section.getBasket(); - sectionToSave.clearBasket(); - - for (Basket basket : baskets) { - - Basket basketToSave = persistBasket(basketDao, - branchlineDao, - existingBasketsByTopiaId, - basket); - sectionToSave.addBasket(basketToSave); - - } - - return sectionToSave; - - } - - protected Basket persistBasket(TopiaDAO<Basket> basketDao, - TopiaDAO<Branchline> branchlineDao, - Map<String, Basket> existingBasketsByTopiaId, - Basket basket) throws TopiaException { - - Basket basketToSave; - - if (basket.getTopiaId() == null) { - - // create - basketToSave = basketDao.create( - Basket.PROPERTY_SETTING_IDENTIFIER, basket.getSettingIdentifier(), - Basket.PROPERTY_HAULING_IDENTIFIER, basket.getHaulingIdentifier()); - - } else { - - basketToSave = existingBasketsByTopiaId.get(basket.getTopiaId()); - - } - - TopiaEntityBinder<Basket> basketBinder = getModel().getBasketBinder(); - basketBinder.copyExcluding(basket, basketToSave, Basket.PROPERTY_BRANCHLINE); - - Map<String, Branchline> existingBranchlinesByTopiaId = Entities.toIdMap(basketToSave.getBranchline()); - - basketToSave.clearBranchline(); - - List<Branchline> branchlines = basket.getBranchline(); - - for (Branchline branchline : branchlines) { - - Branchline branchlineToSave = persistBranchline(branchlineDao, existingBranchlinesByTopiaId, branchline); - basketToSave.addBranchline(branchlineToSave); - - } - - return basketToSave; - - } - - protected Branchline persistBranchline(TopiaDAO<Branchline> branchlineDao, - Map<String, Branchline> existingBranchlinesByTopiaId, - Branchline branchline) throws TopiaException { - - Branchline branchlineToSave; - - if (branchline.getTopiaId() == null) { - - // create - branchlineToSave = branchlineDao.create( - Branchline.PROPERTY_SETTING_IDENTIFIER, branchline.getSettingIdentifier(), - Branchline.PROPERTY_HAULING_IDENTIFIER, branchline.getHaulingIdentifier()); - - } else { - - branchlineToSave = existingBranchlinesByTopiaId.get(branchline.getTopiaId()); - - } - - TopiaEntityBinder<Branchline> branchlineBinder = getModel().getBranchlineBinder(); - branchlineBinder.copy(branchline, branchlineToSave); - - return branchlineToSave; - - } + //FIXME +// @Override +// protected boolean doSave(SetLonglineDto bean, +// DataService dataService, +// DataSource dataSource, +// TopiaEntityBinder<SetLonglineDto> binder) throws Exception { +// +// BranchlineUI branchlineDetailUI = getUi().getBranchlineDetailUI(); +// +// boolean continueSave = true; +// +// if (getUi().getFishingOperationTabPane().getSelectedIndex() == 2) { +// +// BranchlineUIHandler branchlineUIHandler = branchlineDetailUI.getHandler(); +// +// continueSave = branchlineUIHandler.tryToQuit(); +// +// } +// +// if (continueSave) { +// +// SectionsTableModel sectionsTableModel = getSectionsTableModel(); +// SectionWithTemplate selectedSection = sectionsTableModel.getSelectedRow(); +// if (selectedSection != null) { +// +// // flush selected section before save +// flushSection(selectedSection); +// +// } +// +// dataService.update(dataSource, null, bean, getUpdateExecutor()); +// } +// +// return continueSave; +// } + + //FIXME +// @Override +// protected SetLonglineDto onUpdate(TopiaContext tx, Object parentBean, SetLonglineDto beanToSave) throws TopiaException { +// +// Map<String, SectionDto> existingSectionsByTopiaId = Entities.toIdMap(beanToSave.getSection()); +// +// TopiaDAO<SectionDto> sectionsDao = getDataSource().getDAO(tx, SectionDto.class); +// TopiaDAO<BasketDto> basketDao = getDataSource().getDAO(tx, BasketDto.class); +// TopiaDAO<BranchlineDto> branchlineDao = getDataSource().getDAO(tx, BranchlineDto.class); +// +// List<SectionWithTemplate> sections = getSectionsTableModel().getNotEmptyData(); +// +// beanToSave.clearSection(); +// +// for (SectionWithTemplate section : sections) { +// +// Section sectionToSave = persistSection(sectionsDao, +// basketDao, +// branchlineDao, +// existingSectionsByTopiaId, +// section); +// beanToSave.addSection(sectionToSave); +// sectionToSave.setSetLongline(beanToSave); +// +// } +// +// return beanToSave; +// +// } + + //FIXME +// protected Section persistSection(TopiaDAO<Section> sectionsDao, +// TopiaDAO<Basket> basketDao, +// TopiaDAO<Branchline> branchlineDao, +// Map<String, Section> existingSectionsByTopiaId, +// Section section) throws TopiaException { +// +// Section sectionToSave; +// +// if (section.getTopiaId() == null) { +// +// // create +// sectionToSave = sectionsDao.create( +// Section.PROPERTY_SETTING_IDENTIFIER, section.getSettingIdentifier(), +// Section.PROPERTY_HAULING_IDENTIFIER, section.getHaulingIdentifier()); +// +// } else { +// +// sectionToSave = existingSectionsByTopiaId.get(section.getTopiaId()); +// +// } +// +// TopiaEntityBinder<Section> sectionBinder = getModel().getSectionBinder(); +// sectionBinder.copyExcluding(section, sectionToSave, Section.PROPERTY_BASKET); +// +// Map<String, Basket> existingBasketsByTopiaId = Entities.toIdMap(sectionToSave.getBasket()); +// +// List<Basket> baskets = section.getBasket(); +// sectionToSave.clearBasket(); +// +// for (Basket basket : baskets) { +// +// Basket basketToSave = persistBasket(basketDao, +// branchlineDao, +// existingBasketsByTopiaId, +// basket); +// sectionToSave.addBasket(basketToSave); +// +// } +// +// return sectionToSave; +// +// } + + //FIXME +// protected Basket persistBasket(TopiaDAO<Basket> basketDao, +// TopiaDAO<Branchline> branchlineDao, +// Map<String, Basket> existingBasketsByTopiaId, +// Basket basket) throws TopiaException { +// +// Basket basketToSave; +// +// if (basket.getTopiaId() == null) { +// +// // create +// basketToSave = basketDao.create( +// Basket.PROPERTY_SETTING_IDENTIFIER, basket.getSettingIdentifier(), +// Basket.PROPERTY_HAULING_IDENTIFIER, basket.getHaulingIdentifier()); +// +// } else { +// +// basketToSave = existingBasketsByTopiaId.get(basket.getTopiaId()); +// +// } +// +// TopiaEntityBinder<Basket> basketBinder = getModel().getBasketBinder(); +// basketBinder.copyExcluding(basket, basketToSave, Basket.PROPERTY_BRANCHLINE); +// +// Map<String, Branchline> existingBranchlinesByTopiaId = Entities.toIdMap(basketToSave.getBranchline()); +// +// basketToSave.clearBranchline(); +// +// List<Branchline> branchlines = basket.getBranchline(); +// +// for (Branchline branchline : branchlines) { +// +// Branchline branchlineToSave = persistBranchline(branchlineDao, existingBranchlinesByTopiaId, branchline); +// basketToSave.addBranchline(branchlineToSave); +// +// } +// +// return basketToSave; +// +// } + + //FIXME +// protected Branchline persistBranchline(TopiaDAO<Branchline> branchlineDao, +// Map<String, Branchline> existingBranchlinesByTopiaId, +// Branchline branchline) throws TopiaException { +// +// Branchline branchlineToSave; +// +// if (branchline.getTopiaId() == null) { +// +// // create +// branchlineToSave = branchlineDao.create( +// Branchline.PROPERTY_SETTING_IDENTIFIER, branchline.getSettingIdentifier(), +// Branchline.PROPERTY_HAULING_IDENTIFIER, branchline.getHaulingIdentifier()); +// +// } else { +// +// branchlineToSave = existingBranchlinesByTopiaId.get(branchline.getTopiaId()); +// +// } +// +// TopiaEntityBinder<Branchline> branchlineBinder = getModel().getBranchlineBinder(); +// branchlineBinder.copy(branchline, branchlineToSave); +// +// return branchlineToSave; +// +// } public void generateAllSections() { @@ -657,7 +659,7 @@ public class LonglineDetailCompositionUIHandler extends ContentUIHandler<SetLong log.info("Generate all sections."); } - SetLongline bean = getBean(); + SetLonglineDto bean = getBean(); Integer nbSections = bean.getTotalSectionsCount(); Integer basketsCount = bean.getBasketsPerSectionCount(); Integer nbBranchlines = bean.getBranchlinesPerBasketCount(); @@ -665,34 +667,35 @@ public class LonglineDetailCompositionUIHandler extends ContentUIHandler<SetLong SectionTemplate template = null; SectionTemplatesTableModel sectionTemplatesTableModel = getSectionTemplatesTableModel(); - List<SectionTemplate> sectionTemplates = sectionTemplatesTableModel.getNotEmptyData(); - if (sectionTemplates.size() == 1) { - - template = sectionTemplates.get(0); - - boolean compiliantWithBasketCount = template.isCompiliantWithBasketCount(basketsCount); - if (!compiliantWithBasketCount) { - - if (log.isWarnEnabled()) { - log.warn("sectionTemplate " + template + " is not compliant with basketCount: " + basketsCount); - } - - UIHelper.displayWarning(t("observe.longlineDetailComposition.title.section.cant.use.firstTemplate"), t("observe.longlineDetailComposition.firstTemplate.template.notCompilant.basketCount", template.getFloatlineLengths(), basketsCount)); - - template = null; - - } - - } - - boolean usingTemplate = template != null; - - if (usingTemplate) { - - if (log.isInfoEnabled()) { - log.info("Will use sectionTemplate: " + template); - } - } + //FIXME +// List<SectionTemplate> sectionTemplates = sectionTemplatesTableModel.getNotEmptyData(); +// if (sectionTemplates.size() == 1) { +// +// template = sectionTemplates.get(0); +// +// boolean compiliantWithBasketCount = template.isCompiliantWithBasketCount(basketsCount); +// if (!compiliantWithBasketCount) { +// +// if (log.isWarnEnabled()) { +// log.warn("sectionTemplate " + template + " is not compliant with basketCount: " + basketsCount); +// } +// +// UIHelper.displayWarning(t("observe.longlineDetailComposition.title.section.cant.use.firstTemplate"), t("observe.longlineDetailComposition.firstTemplate.template.notCompilant.basketCount", template.getFloatlineLengths(), basketsCount)); +// +// template = null; +// +// } +// +// } +// +// boolean usingTemplate = template != null; +// +// if (usingTemplate) { +// +// if (log.isInfoEnabled()) { +// log.info("Will use sectionTemplate: " + template); +// } +// } validationHelper.setObjectValueAdjusting(true); @@ -702,43 +705,46 @@ public class LonglineDetailCompositionUIHandler extends ContentUIHandler<SetLong BasketsTableModel basketsTableModel = getBasketsTableModel(); BranchlinesTableModel branchlinesTableModel = getBranchlinesTableModel(); - List<SectionWithTemplate> sections = new ArrayList<SectionWithTemplate>(nbSections); + //FIXME +// List<SectionWithTemplate> sections = new ArrayList<SectionWithTemplate>(nbSections); for (int sectionNumber = 0; sectionNumber < nbSections; sectionNumber++) { - SectionWithTemplate section = sectionsTableModel.createNewRow(); - sections.add(section); - - for (int basketNumber = 0; basketNumber < basketsCount; basketNumber++) { - - Basket basket = basketsTableModel.createNewRow(); - section.addBasket(basket); - - for (int branchlineNumber = 0; branchlineNumber < nbBranchlines; branchlineNumber++) { - - Branchline branchline = branchlinesTableModel.createNewRow(); - basket.addBranchline(branchline); - - } - - branchlinesTableModel.rearrangeIds(basket.getBranchline()); - - } - - List<Basket> baskets = section.getBasket(); - basketsTableModel.rearrangeIds(baskets); - - if (usingTemplate) { - - section.setSectionTemplate(template); - template.applyToBaskets(baskets); - - } + //FIXME +// SectionWithTemplate section = sectionsTableModel.createNewRow(); +// sections.add(section); + +// for (int basketNumber = 0; basketNumber < basketsCount; basketNumber++) { +// +// Basket basket = basketsTableModel.createNewRow(); +// section.addBasket(basket); +// +// for (int branchlineNumber = 0; branchlineNumber < nbBranchlines; branchlineNumber++) { +// +// Branchline branchline = branchlinesTableModel.createNewRow(); +// basket.addBranchline(branchline); +// +// } +// +// branchlinesTableModel.rearrangeIds(basket.getBranchline()); +// +// } +// +// List<Basket> baskets = section.getBasket(); +// basketsTableModel.rearrangeIds(baskets); +// +// if (usingTemplate) { +// +// section.setSectionTemplate(template); +// template.applyToBaskets(baskets); +// +// } } - sectionsTableModel.rearrangeIds(sections); - sectionsTableModel.setData(sections); + //FIXME +// sectionsTableModel.rearrangeIds(sections); +// sectionsTableModel.setData(sections); getModel().setModified(true); @@ -760,13 +766,14 @@ public class LonglineDetailCompositionUIHandler extends ContentUIHandler<SetLong } boolean canDelete = true; - for (SectionWithTemplate sectionWithTemplate : getSectionsTableModel().getNotEmptyData()) { - - if (!canDeleteSection(sectionWithTemplate.getDelegate())) { - canDelete = false; - break; - } - } + //FIXME +// for (SectionWithTemplate sectionWithTemplate : getSectionsTableModel().getNotEmptyData()) { +// +// if (!canDeleteSection(sectionWithTemplate.getDelegate())) { +// canDelete = false; +// break; +// } +// } if (!canDelete) { @@ -799,7 +806,8 @@ public class LonglineDetailCompositionUIHandler extends ContentUIHandler<SetLong try { - getSectionsTableModel().setData(Collections.<SectionWithTemplate>emptyList()); + //FIXME +// getSectionsTableModel().setData(Collections.<SectionWithTemplate>emptyList()); getModel().setModified(true); } finally { @@ -853,28 +861,30 @@ public class LonglineDetailCompositionUIHandler extends ContentUIHandler<SetLong if (!selectionEmpty) { - SectionWithTemplate selectedSection = tableModel.getSelectedRow(); - - boolean canDelete = canDeleteSection(selectedSection.getDelegate()); - - if (!canDelete) { - // there is some references, can't delete - UIHelper.displayWarning(t("observe.section.cant.delete.title"), t("observe.section.cant.delete.message")); - return; - } - - boolean accept = UIHelper.confirmForEntityDelete(ui, Section.class, selectedSection); + //FIXME +// SectionWithTemplate selectedSection = tableModel.getSelectedRow(); +// +// boolean canDelete = canDeleteSection(selectedSection.getDelegate()); +// +// if (!canDelete) { +// // there is some references, can't delete +// UIHelper.displayWarning(t("observe.section.cant.delete.title"), t("observe.section.cant.delete.message")); +// return; +// } +// +// boolean accept = UIHelper.confirmForEntityDelete(ui, Section.class, selectedSection); ObserveMainUI mainUI = ObserveContext.get().getObserveMainUI(); mainUI.setBusy(false); - if (!accept) { - return; - } - - if (log.isInfoEnabled()) { - log.info("Delete section: " + sectionDecorator.toString(selectedSection)); - } + //FIXME +// if (!accept) { +// return; +// } +// +// if (log.isInfoEnabled()) { +// log.info("Delete section: " + sectionDecorator.toString(selectedSection)); +// } validationHelper.setObjectValueAdjusting(true); skipSavePreviousSelectedSection = true; @@ -939,7 +949,7 @@ public class LonglineDetailCompositionUIHandler extends ContentUIHandler<SetLong if (selectionNotEmpty) { - Basket selectedBasket = tableModel.getSelectedRow(); + BasketDto selectedBasket = tableModel.getSelectedRow(); boolean canDelete = canDeleteBasket(selectedBasket); @@ -993,13 +1003,14 @@ public class LonglineDetailCompositionUIHandler extends ContentUIHandler<SetLong BasketsTableModel tableModel = getBasketsTableModel(); tableModel.insertBeforeSelectedRow(); - Basket newBasket = tableModel.getSelectedRow(); + BasketDto newBasket = tableModel.getSelectedRow(); int selectedRowIndex = tableModel.getSelectedRowIndex(); - SectionWithTemplate selectedSection = getSectionsTableModel().getSelectedRow(); - if (selectedSection.isBasketEmpty()) { - selectedSection.setBasket(new ArrayList<Basket>()); - } - selectedSection.getBasket().add(selectedRowIndex, newBasket); + //FIXME +// SectionWithTemplate selectedSection = getSectionsTableModel().getSelectedRow(); +// if (selectedSection.isBasketEmpty()) { +// selectedSection.setBasket(new ArrayList<Basket>()); +// } +// selectedSection.getBasket().add(selectedRowIndex, newBasket); } finally { @@ -1019,12 +1030,13 @@ public class LonglineDetailCompositionUIHandler extends ContentUIHandler<SetLong BasketsTableModel tableModel = getBasketsTableModel(); tableModel.insertAfterSelectedRow(); - Basket newBasket = tableModel.getSelectedRow(); + BasketDto newBasket = tableModel.getSelectedRow(); int selectedRowIndex = tableModel.getSelectedRowIndex(); - SectionWithTemplate selectedSection = getSectionsTableModel().getSelectedRow(); - if (selectedSection.isBasketEmpty()) { - selectedSection.setBasket(new ArrayList<Basket>()); - } + //FIXME +// SectionWithTemplate selectedSection = getSectionsTableModel().getSelectedRow(); +// if (selectedSection.isBasketEmpty()) { +// selectedSection.setBasket(new ArrayList<Basket>()); +// } getSectionsTableModel().getSelectedRow().getBasket().add(selectedRowIndex, newBasket); } finally { @@ -1044,7 +1056,7 @@ public class LonglineDetailCompositionUIHandler extends ContentUIHandler<SetLong if (selectionNotEmpty) { - Branchline selectedBranchline = tableModel.getSelectedRow(); + BranchlineDto selectedBranchline = tableModel.getSelectedRow(); boolean canDelete = canDeleteBranchline(selectedBranchline); @@ -1096,11 +1108,11 @@ public class LonglineDetailCompositionUIHandler extends ContentUIHandler<SetLong BranchlinesTableModel tableModel = getBranchlinesTableModel(); tableModel.insertBeforeSelectedRow(); - Branchline newBranchline = tableModel.getSelectedRow(); + BranchlineDto newBranchline = tableModel.getSelectedRow(); int selectedRowIndex = tableModel.getSelectedRowIndex(); - Basket selectedBasket = getBasketsTableModel().getSelectedRow(); + BasketDto selectedBasket = getBasketsTableModel().getSelectedRow(); if (selectedBasket.isBranchlineEmpty()) { - selectedBasket.setBranchline(new ArrayList<Branchline>()); + selectedBasket.setBranchline(new LinkedHashSet<BranchlineDto>()); } selectedBasket.getBranchline().add(selectedRowIndex, newBranchline); @@ -1122,11 +1134,11 @@ public class LonglineDetailCompositionUIHandler extends ContentUIHandler<SetLong BranchlinesTableModel tableModel = getBranchlinesTableModel(); tableModel.insertAfterSelectedRow(); - Branchline newBranchline = tableModel.getSelectedRow(); + BranchlineDto newBranchline = tableModel.getSelectedRow(); int selectedRowIndex = tableModel.getSelectedRowIndex(); - Basket selectedBasket = getBasketsTableModel().getSelectedRow(); + BasketDto selectedBasket = getBasketsTableModel().getSelectedRow(); if (selectedBasket.isBranchlineEmpty()) { - selectedBasket.setBranchline(new ArrayList<Branchline>()); + selectedBasket.setBranchline(new LinkedHashSet<BranchlineDto>()); } selectedBasket.getBranchline().add(selectedRowIndex, newBranchline); @@ -1158,15 +1170,16 @@ public class LonglineDetailCompositionUIHandler extends ContentUIHandler<SetLong } - protected void onSectionsTableModelChanged(List<SectionWithTemplate> data) { - - if (log.isInfoEnabled()) { - log.info("Sections was changed, new size: " + data.size()); - } - - validationHelper.whenSectionChanged(); - - } + //FIXME +// protected void onSectionsTableModelChanged(List<SectionWithTemplate> data) { +// +// if (log.isInfoEnabled()) { +// log.info("Sections was changed, new size: " + data.size()); +// } +// +// validationHelper.whenSectionChanged(); +// +// } protected void onModelCanGenerateChanged(Boolean canGenerate) { @@ -1183,7 +1196,7 @@ public class LonglineDetailCompositionUIHandler extends ContentUIHandler<SetLong } - protected void onSelectedSectionChanged(Section previousSection, Section newSection) { + protected void onSelectedSectionChanged(SectionDto previousSection, SectionDto newSection) { if (log.isInfoEnabled()) { log.info("New selected section: " + sectionDecorator.toString(newSection)); @@ -1200,7 +1213,7 @@ public class LonglineDetailCompositionUIHandler extends ContentUIHandler<SetLong } - List<Basket> baskets = newSection == null ? null : newSection.getBasket(); + List<BasketDto> baskets = newSection == null ? null : newSection.getBasket(); if (baskets == null) { baskets = Collections.emptyList(); } @@ -1218,10 +1231,11 @@ public class LonglineDetailCompositionUIHandler extends ContentUIHandler<SetLong if (newTemplate != null) { - SectionWithTemplate selectedSection = getSectionsTableModel().getSelectedRow(); - if (log.isInfoEnabled()) { - log.info("Will apply template: " + newTemplate + " to section: " + sectionDecorator.toString(selectedSection)); - } + //FIXME +// SectionWithTemplate selectedSection = getSectionsTableModel().getSelectedRow(); +// if (log.isInfoEnabled()) { +// log.info("Will apply template: " + newTemplate + " to section: " + sectionDecorator.toString(selectedSection)); +// } validationHelper.setObjectValueAdjusting(true); @@ -1252,7 +1266,7 @@ public class LonglineDetailCompositionUIHandler extends ContentUIHandler<SetLong } - protected void onBasketsTableModelChanged(List<Basket> data) { + protected void onBasketsTableModelChanged(List<BasketDto> data) { if (log.isInfoEnabled()) { log.info("Baskets was changed, new size: " + data.size()); @@ -1260,7 +1274,7 @@ public class LonglineDetailCompositionUIHandler extends ContentUIHandler<SetLong } - protected void onSelectedBasketChanged(Basket previousBasket, Basket newBasket) { + protected void onSelectedBasketChanged(BasketDto previousBasket, BasketDto newBasket) { if (log.isInfoEnabled()) { log.info("New selected basket: " + basketDecorator.toString(newBasket)); @@ -1272,9 +1286,9 @@ public class LonglineDetailCompositionUIHandler extends ContentUIHandler<SetLong } - List<Branchline> branchlines = newBasket == null ? null : newBasket.getBranchline(); - if (branchlines == null) { - branchlines = Collections.emptyList(); + List<BranchlineDto> branchlines = new ArrayList<>(); + if (newBasket =! null && newBasket.getBranchline() != null) { + branchlines.addAll(newBasket.getBranchline()); } getBranchlinesTableModel().setData(branchlines); @@ -1385,9 +1399,10 @@ public class LonglineDetailCompositionUIHandler extends ContentUIHandler<SetLong if (getModel().isCanGenerate()) { // update section templates list - List<SectionTemplate> sectionTemplates = getSectionTemplatesTableModel().getNotEmptyData(); - JComboBox comboBox = (JComboBox) getUi().getSectionsTable().getClientProperty(SECTION_TEMPLATES_EDITOR); - LonglineDetailCompositionUIInitializer.prepareComboBoxData(comboBox, sectionTemplates); + //FIXME +// List<SectionTemplate> sectionTemplates = getSectionTemplatesTableModel().getNotEmptyData(); +// JComboBox comboBox = (JComboBox) getUi().getSectionsTable().getClientProperty(SECTION_TEMPLATES_EDITOR); +// LonglineDetailCompositionUIInitializer.prepareComboBoxData(comboBox, sectionTemplates); //FIXME See why templates are not well reselect in cell editor //FIXME See cell editor does not loose focus and empty selection when losing focus @@ -1398,7 +1413,7 @@ public class LonglineDetailCompositionUIHandler extends ContentUIHandler<SetLong break; case 2: - Branchline branchline = getBranchlinesTableModel().getSelectedRow(); + BranchlineDto branchline = getBranchlinesTableModel().getSelectedRow(); if (branchline != null) { @@ -1415,22 +1430,22 @@ public class LonglineDetailCompositionUIHandler extends ContentUIHandler<SetLong } - protected void flushSection(Section section) { + protected void flushSection(SectionDto section) { BasketsTableModel basketsTableModel = getBasketsTableModel(); if (!basketsTableModel.isSelectionEmpty()) { // must flush back branchlines to selected basket - Basket selectedBasket = basketsTableModel.getSelectedRow(); + BasketDto selectedBasket = basketsTableModel.getSelectedRow(); flushBasket(selectedBasket); } // flush bask baskets to the given section - List<Basket> baskets = basketsTableModel.getNotEmptyData(); - section.setBasket(baskets); + List<BasketDto> baskets = basketsTableModel.getNotEmptyData(); + section.setBasket(new LinkedHashSet<BasketDto>(baskets)); if (log.isInfoEnabled()) { log.info("Flush baskets (" + baskets.size() + ") to his section: " + sectionDecorator.toString(section)); @@ -1438,7 +1453,7 @@ public class LonglineDetailCompositionUIHandler extends ContentUIHandler<SetLong } - protected void flushBasket(Basket basket) { + protected void flushBasket(BasketDto basket) { BranchlinesTableModel branchlinesTableModel = getBranchlinesTableModel(); @@ -1451,8 +1466,8 @@ public class LonglineDetailCompositionUIHandler extends ContentUIHandler<SetLong // flush bask branchlines to the given basket - List<Branchline> branchlines = branchlinesTableModel.getNotEmptyData(); - basket.setBranchline(branchlines); + List<BranchlineDto> branchlines = branchlinesTableModel.getNotEmptyData(); + basket.setBranchline(new LinkedHashSet<BranchlineDto>(branchlines)); if (log.isInfoEnabled()) { log.info("Flush branchlines (" + branchlines.size() + ") to his basket: " + basketDecorator.toString(basket)); @@ -1460,7 +1475,7 @@ public class LonglineDetailCompositionUIHandler extends ContentUIHandler<SetLong } - protected void flushBranchline(Branchline branchline) { + protected void flushBranchline(BranchlineDto branchline) { if (log.isInfoEnabled()) { log.info("Flush branchline details: " + branchlineDecorator.toString(branchline)); @@ -1488,108 +1503,111 @@ public class LonglineDetailCompositionUIHandler extends ContentUIHandler<SetLong return getUi().getBranchlineDetailUIModel(); } - protected boolean canDeleteSection(Section section) { + protected boolean canDeleteSection(SectionDto section) { boolean canDelete = true; - if (section.getTopiaId() != null) { - try { - - EntityMap allUsages = getDataService().findAllUsages(getDataSource(), section); - allUsages.remove(SetLongline.class); - - if (!allUsages.isEmpty()) { - - canDelete = false; - - } else { - - if (!section.isBasketEmpty()) { - - for (Basket basket : section.getBasket()) { - - if (!canDeleteBasket(basket)) { - - canDelete = false; - break; - - } - - } - } - - } - - } catch (DataSourceException e) { - throw new ObserveTechnicalException("Could not find all usage of selected section", e); - } + if (section.getId() != null) { + //FIXME +// try { +// +// EntityMap allUsages = getDataService().findAllUsages(getDataSource(), section); +// allUsages.remove(SetLongline.class); +// +// if (!allUsages.isEmpty()) { +// +// canDelete = false; +// +// } else { +// +// if (!section.isBasketEmpty()) { +// +// for (Basket basket : section.getBasket()) { +// +// if (!canDeleteBasket(basket)) { +// +// canDelete = false; +// break; +// +// } +// +// } +// } +// +// } + +// } catch (DataSourceException e) { +// throw new ObserveTechnicalException("Could not find all usage of selected section", e); +// } } return canDelete; } - protected boolean canDeleteBasket(Basket basket) { + protected boolean canDeleteBasket(BasketDto basket) { boolean canDelete = true; - if (basket.getTopiaId() != null) { - try { - - EntityMap allUsages = getDataService().findAllUsages(getDataSource(), basket); - allUsages.remove(Section.class); - - if (!allUsages.isEmpty()) { - - canDelete = false; - - } else { - - if (!basket.isBranchlineEmpty()) { - - for (Branchline branchline : basket.getBranchline()) { - - if (!canDeleteBranchline(branchline)) { - - canDelete = false; - break; - - } - - } - - } - - } - - } catch (DataSourceException e) { - throw new ObserveTechnicalException("Could not find all usage of selected section", e); - } + if (basket.getId() != null) { + //FIXME +// try { +// +// EntityMap allUsages = getDataService().findAllUsages(getDataSource(), basket); +// allUsages.remove(Section.class); +// +// if (!allUsages.isEmpty()) { +// +// canDelete = false; +// +// } else { +// +// if (!basket.isBranchlineEmpty()) { +// +// for (Branchline branchline : basket.getBranchline()) { +// +// if (!canDeleteBranchline(branchline)) { +// +// canDelete = false; +// break; +// +// } +// +// } +// +// } +// +// } +// +// } catch (DataSourceException e) { +// throw new ObserveTechnicalException("Could not find all usage of selected section", e); +// } } return canDelete; } - protected boolean canDeleteBranchline(Branchline branchline) { + protected boolean canDeleteBranchline(BranchlineDto branchline) { boolean canDelete = true; - if (branchline.getTopiaId() != null) { - try { - - EntityMap allUsages = getDataService().findAllUsages(getDataSource(), branchline); - allUsages.remove(Basket.class); - - if (!allUsages.isEmpty()) { - - canDelete = false; - - } - - } catch (DataSourceException e) { - throw new ObserveTechnicalException("Could not find all usage of selected branchline", e); - } + if (branchline.getId() != null) { + //FIXME +// try { +// +// EntityMap allUsages = getDataService().findAllUsages(getDataSource(), branchline); +// allUsages.remove(Basket.class); +// +// if (!allUsages.isEmpty()) { +// +// canDelete = false; +// +// } +// +// } catch (DataSourceException e) { +// throw new ObserveTechnicalException("Could not find all usage of selected branchline", e); +// } } return canDelete; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/LonglineDetailCompositionUIInitializer.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/LonglineDetailCompositionUIInitializer.java index 7845b5f..d51418c 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/LonglineDetailCompositionUIInitializer.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/LonglineDetailCompositionUIInitializer.java @@ -22,9 +22,9 @@ package fr.ird.observe.ui.content.impl.longline; * #L% */ -import fr.ird.observe.DecoratorService; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.services.dto.longline.SectionTemplateDto; +import fr.ird.observe.business.DecoratorService; +import fr.ird.observe.business.db.DataSource; +import fr.ird.observe.entities.longline.SectionTemplate; import fr.ird.observe.services.dto.longline.SetLonglineDto; import fr.ird.observe.ui.UIHelper; import fr.ird.observe.ui.content.ContentUIInitializer; @@ -64,7 +64,8 @@ public class LonglineDetailCompositionUIInitializer extends ContentUIInitializer LonglineDetailCompositionUIModel model = ui.getModel(); // To be sure all loaders are initialized - model.getLoadBinder(); + //FIXME +// model.getLoadBinder(); { // init section templates table diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/LonglineDetailCompositionUIModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/LonglineDetailCompositionUIModel.java index 64af4c2..ebd363b 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/LonglineDetailCompositionUIModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/LonglineDetailCompositionUIModel.java @@ -22,7 +22,7 @@ package fr.ird.observe.ui.content.impl.longline; * #L% */ -import fr.ird.observe.BinderService; +import fr.ird.observe.business.BinderService; import fr.ird.observe.services.dto.longline.SetLonglineDto; import fr.ird.observe.ui.content.ContentUIModel; import org.nuiton.util.beans.BinderModelBuilder; 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 580c06c..3d6bf7e 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 @@ -25,11 +25,10 @@ package fr.ird.observe.ui.content.impl.longline; import com.google.common.base.Predicate; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; -import fr.ird.observe.DecoratorService; +import fr.ird.observe.business.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 fr.ird.observe.services.dto.longline.SectionWithTemplateDto; import fr.ird.observe.ui.util.ObserveSwingValidatorMessageTableModel; import jaxx.runtime.validator.swing.SwingValidator; import jaxx.runtime.validator.swing.SwingValidatorMessage; @@ -124,14 +123,17 @@ public class LonglineDetailCompositionUIValidationHelper { log.info("Rebuild messages, basket model changes."); } - List<SectionWithTemplate> notEmptyData = model.getSectionsTableModel().getNotEmptyData(); - List<SwingValidatorMessage> messages = validatorService.validateSections(notEmptyData); + //FIXME +// List<SectionWithTemplate> notEmptyData = model.getSectionsTableModel().getNotEmptyData(); +// List<SwingValidatorMessage> messages = validatorService.validateSections(notEmptyData); removeOldMessages(); - errorTableModel.addMessages(messages); + //FIXME +// errorTableModel.addMessages(messages); - model.setCompositionTabValid(messages.isEmpty()); + //FIXME +// model.setCompositionTabValid(messages.isEmpty()); } @@ -145,14 +147,17 @@ public class LonglineDetailCompositionUIValidationHelper { log.info("Rebuild messages, branchline model changes."); } - List<SectionWithTemplate> notEmptyData = model.getSectionsTableModel().getNotEmptyData(); - List<SwingValidatorMessage> messages = validatorService.validateSections(notEmptyData); + //FIXME +// List<SectionWithTemplate> notEmptyData = model.getSectionsTableModel().getNotEmptyData(); +// List<SwingValidatorMessage> messages = validatorService.validateSections(notEmptyData); removeOldMessages(); - errorTableModel.addMessages(messages); + //FIXME +// errorTableModel.addMessages(messages); - model.setCompositionTabValid(messages.isEmpty()); + //FIXME +// model.setCompositionTabValid(messages.isEmpty()); } 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 49c7616..d57d350 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 @@ -22,23 +22,15 @@ package fr.ird.observe.ui.content.impl.longline; * #L% */ -import fr.ird.observe.DataService; -import fr.ird.observe.db.DataContext; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.constants.DataContextType; +import fr.ird.observe.business.db.DataContext; +import fr.ird.observe.business.db.DataSource; +import fr.ird.observe.business.db.constants.DataContextType; import fr.ird.observe.services.dto.longline.ActivityLonglineDto; import fr.ird.observe.services.dto.longline.SetLonglineDto; import fr.ird.observe.ui.content.ContentMode; import fr.ird.observe.ui.content.ContentUIHandler; -import fr.ird.observe.ui.content.table.impl.longline.BaitsCompositionUI; -import fr.ird.observe.ui.content.table.impl.longline.BranchlinesCompositionUI; -import fr.ird.observe.ui.content.table.impl.longline.FloatlinesCompositionUI; -import fr.ird.observe.ui.content.table.impl.longline.HooksCompositionUI; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.nuiton.topia.TopiaContext; -import org.nuiton.topia.TopiaException; -import org.nuiton.topia.persistence.util.TopiaEntityBinder; import org.nuiton.validator.NuitonValidatorScope; import static org.nuiton.i18n.I18n.t; @@ -49,7 +41,7 @@ import static org.nuiton.i18n.I18n.t; * @author Tony Chemit - chemit@codelutin.com * @since 3.8 */ -public class LonglineGlobalCompositionUIHandler extends ContentUIHandler<SetLongline> { +public class LonglineGlobalCompositionUIHandler extends ContentUIHandler<SetLonglineDto> { /** Logger */ static private Log log = LogFactory.getLog(LonglineGlobalCompositionUIHandler.class); @@ -71,7 +63,7 @@ public class LonglineGlobalCompositionUIHandler extends ContentUIHandler<SetLong @Override protected ContentMode getContentMode(DataContext dataContext) { - if (dataContext.isSelectedOpen(ActivityLongline.class)) { + if (dataContext.isSelectedOpen(ActivityLonglineDto.class)) { // l'activité est ouverte, mode édition return ContentMode.UPDATE; @@ -80,7 +72,7 @@ public class LonglineGlobalCompositionUIHandler extends ContentUIHandler<SetLong // l'activité n'est pas ouverte, mode lecture addMessage(getUi(), NuitonValidatorScope.INFO, - getEntityLabel(ActivityLongline.class), + getEntityLabel(ActivityLonglineDto.class), t("observe.activityLongline.message.not.open")); return ContentMode.READ; } @@ -135,12 +127,14 @@ public class LonglineGlobalCompositionUIHandler extends ContentUIHandler<SetLong } ContentMode mode = computeContentMode(); - DataService dataService = getDataService(); + //FIXME +// DataService dataService = getDataService(); DataSource source = getDataSource(); // update mode - dataService.loadEditEntity(source, setId, getLoadExecutor()); + //FIXME +// dataService.loadEditEntity(source, setId, getLoadExecutor()); // utilisation du mode requis setContentMode(mode); @@ -184,31 +178,33 @@ public class LonglineGlobalCompositionUIHandler extends ContentUIHandler<SetLong model.setModified(false); } - @Override - protected boolean doSave(SetLongline bean, - DataService dataService, - DataSource dataSource, - TopiaEntityBinder<SetLongline> binder) throws Exception { - - dataService.update(dataSource, null, bean, getUpdateExecutor()); - - return true; - } - - @Override - protected SetLongline onUpdate(TopiaContext tx, Object parentBean, SetLongline beanToSave) throws TopiaException { - - beanToSave.setComment(getBean().getComment()); - beanToSave.clearMitigationType(); - beanToSave.addAllMitigationType(getBean().getMitigationType()); - - getUi().getFloatlinesCompositionUI().getHandler().onUpdate(tx, parentBean, beanToSave); - getUi().getBranchlinesCompositionUI().getHandler().onUpdate(tx, parentBean, beanToSave); - getUi().getHooksCompositionUI().getHandler().onUpdate(tx, parentBean, beanToSave); - getUi().getBaitsCompositionUI().getHandler().onUpdate(tx, parentBean, beanToSave); - - return beanToSave; - } + //FIXME +// @Override +// protected boolean doSave(SetLongline bean, +// DataService dataService, +// DataSource dataSource, +// TopiaEntityBinder<SetLongline> binder) throws Exception { +// +// dataService.update(dataSource, null, bean, getUpdateExecutor()); +// +// return true; +// } + + //FIXME +// @Override +// protected SetLongline onUpdate(TopiaContext tx, Object parentBean, SetLongline beanToSave) throws TopiaException { +// +// beanToSave.setComment(getBean().getComment()); +// beanToSave.clearMitigationType(); +// beanToSave.addAllMitigationType(getBean().getMitigationType()); +// +// getUi().getFloatlinesCompositionUI().getHandler().onUpdate(tx, parentBean, beanToSave); +// getUi().getBranchlinesCompositionUI().getHandler().onUpdate(tx, parentBean, beanToSave); +// getUi().getHooksCompositionUI().getHandler().onUpdate(tx, parentBean, beanToSave); +// getUi().getBaitsCompositionUI().getHandler().onUpdate(tx, parentBean, beanToSave); +// +// return beanToSave; +// } @Override protected void afterSave(boolean refresh) { diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/LonglineGlobalCompositionUIModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/LonglineGlobalCompositionUIModel.java index 6f81cd0..367acde 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/LonglineGlobalCompositionUIModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/LonglineGlobalCompositionUIModel.java @@ -22,7 +22,7 @@ package fr.ird.observe.ui.content.impl.longline; * #L% */ -import fr.ird.observe.BinderService; +import fr.ird.observe.business.BinderService; import fr.ird.observe.services.dto.longline.SetLonglineDto; import fr.ird.observe.ui.content.ContentUIModel; import org.nuiton.util.beans.BinderModelBuilder; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/SectionTemplatesTableModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/SectionTemplatesTableModel.java index bbd1da2..fe69c21 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/SectionTemplatesTableModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/SectionTemplatesTableModel.java @@ -37,6 +37,7 @@ import java.util.Set; * @author Tony Chemit - chemit@codelutin.com * @since 3.10 */ +//FIXME public class SectionTemplatesTableModel extends EditableTableModelSupport<SectionTemplate> { private static final long serialVersionUID = 1L; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/SectionsTableModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/SectionsTableModel.java index b3b3573..c0164cd 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/SectionsTableModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/SectionsTableModel.java @@ -22,9 +22,6 @@ package fr.ird.observe.ui.content.impl.longline; * #L% */ -import fr.ird.observe.services.dto.longline.SectionTemplateDto; -import fr.ird.observe.services.dto.longline.SectionWithTemplateDto; -import fr.ird.observe.services.dto.longline.SectionWithTemplateImplDto; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -34,6 +31,7 @@ import org.apache.commons.logging.LogFactory; * @author Tony Chemit - chemit@codelutin.com * @since 3.10 */ +//FIXME public class SectionsTableModel extends LonglineCompositionTableModelSupport<SectionWithTemplate> { public static final String TEMPLATE_PROPERTY = "template"; 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 aa0117a..0a95fb0 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 @@ -22,12 +22,9 @@ package fr.ird.observe.ui.content.impl.longline; * #L% */ -import fr.ird.observe.DataService; -import fr.ird.observe.ObserveDAOHelper; -import fr.ird.observe.db.DataContext; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.constants.DataContextType; -import fr.ird.observe.db.util.TopiaExecutor2; +import fr.ird.observe.business.db.DataContext; +import fr.ird.observe.business.db.DataSource; +import fr.ird.observe.business.db.constants.DataContextType; import fr.ird.observe.services.dto.longline.ActivityLonglineDto; import fr.ird.observe.services.dto.longline.SetLonglineDto; import fr.ird.observe.ui.content.ContentMode; @@ -44,10 +41,6 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.jaxx.widgets.gis.CoordinateFormat; import org.nuiton.jaxx.widgets.gis.absolute.CoordinatesEditorModel; -import org.nuiton.topia.TopiaContext; -import org.nuiton.topia.TopiaException; -import org.nuiton.topia.persistence.TopiaEntity; -import org.nuiton.topia.persistence.util.TopiaEntityBinder; import org.nuiton.validator.NuitonValidatorScope; import javax.swing.event.TableModelEvent; @@ -66,7 +59,7 @@ import static org.nuiton.i18n.I18n.t; * @author Tony Chemit - chemit@codelutin.com * @since 3.7 */ -public class SetLonglineUIHandler extends ContentUIHandler<SetLongline> { +public class SetLonglineUIHandler extends ContentUIHandler<SetLonglineDto> { /** Logger */ static private Log log = LogFactory.getLog(SetLonglineUIHandler.class); @@ -150,7 +143,7 @@ public class SetLonglineUIHandler extends ContentUIHandler<SetLongline> { } - if (dataContext.isSelectedOpen(ActivityLongline.class)) { + if (dataContext.isSelectedOpen(ActivityLonglineDto.class)) { // l'activité est ouverte, mode édition return ContentMode.UPDATE; @@ -160,7 +153,7 @@ public class SetLonglineUIHandler extends ContentUIHandler<SetLongline> { // l'activité n'est pas ouverte, mode lecture addMessage(getUi(), NuitonValidatorScope.INFO, - getEntityLabel(ActivityLongline.class), + getEntityLabel(ActivityLonglineDto.class), t("observe.activityLongline.message.not.open")); return ContentMode.READ; @@ -215,28 +208,30 @@ public class SetLonglineUIHandler extends ContentUIHandler<SetLongline> { } ContentMode mode = computeContentMode(); - DataService dataService = getDataService(); - - SetLongline bean = getBean(); - - TopiaEntityBinder<SetLongline> binder = getLoadBinder(); - DataSource source = getDataSource(); - if (setId == null) { - - // creation mode - dataService.preCreate(source, activityId, bean, binder, getPreCreateExecutor()); - - getUi().getFishingOperationTabPane().setSelectedIndex(0); - - } else { - - // update mode - dataService.loadEditEntity(source, setId, getLoadExecutor()); - - } - + //FIXME +// DataService dataService = getDataService(); + + SetLonglineDto bean = getBean(); + + //FIXME +// TopiaEntityBinder<SetLongline> binder = getLoadBinder(); +// DataSource source = getDataSource(); +// if (setId == null) { +// +// // creation mode +// dataService.preCreate(source, activityId, bean, binder, getPreCreateExecutor()); +// +// getUi().getFishingOperationTabPane().setSelectedIndex(0); +// +// } else { +// +// // update mode +// dataService.loadEditEntity(source, setId, getLoadExecutor()); +// +// } +// // passage en coordonnes absolues + utilisation du quadrant - bean.initCoordinates(); +// bean.initCoordinates(); // utilisation du mode requis setContentMode(mode); @@ -255,30 +250,31 @@ public class SetLonglineUIHandler extends ContentUIHandler<SetLongline> { } - @Override - protected void onLoad(TopiaContext tx, SetLongline bean) throws TopiaException { - - Float settingStartLatitude = bean.getSettingStartLatitude(); - Float settingStartLongitude = bean.getSettingStartLongitude(); - Float settingEndLatitude = bean.getSettingEndLatitude(); - Float settingEndLongitude = bean.getSettingEndLongitude(); - Float haulingStartLatitude = bean.getHaulingStartLatitude(); - Float haulingStartLongitude = bean.getHaulingStartLongitude(); - Float haulingEndLatitude = bean.getHaulingEndLatitude(); - Float haulingEndLongitude = bean.getHaulingEndLongitude(); - - super.onLoad(tx, bean); - - getBean().setSettingStartLatitude(settingStartLatitude); - getBean().setSettingStartLongitude(settingStartLongitude); - getBean().setSettingEndLatitude(settingEndLatitude); - getBean().setSettingEndLongitude(settingEndLongitude); - getBean().setHaulingStartLatitude(haulingStartLatitude); - getBean().setHaulingStartLongitude(haulingStartLongitude); - getBean().setHaulingEndLatitude(haulingEndLatitude); - getBean().setHaulingEndLongitude(haulingEndLongitude); - - } + //FIXME +// @Override +// protected void onLoad(TopiaContext tx, SetLongline bean) throws TopiaException { +// +// Float settingStartLatitude = bean.getSettingStartLatitude(); +// Float settingStartLongitude = bean.getSettingStartLongitude(); +// Float settingEndLatitude = bean.getSettingEndLatitude(); +// Float settingEndLongitude = bean.getSettingEndLongitude(); +// Float haulingStartLatitude = bean.getHaulingStartLatitude(); +// Float haulingStartLongitude = bean.getHaulingStartLongitude(); +// Float haulingEndLatitude = bean.getHaulingEndLatitude(); +// Float haulingEndLongitude = bean.getHaulingEndLongitude(); +// +// super.onLoad(tx, bean); +// +// getBean().setSettingStartLatitude(settingStartLatitude); +// getBean().setSettingStartLongitude(settingStartLongitude); +// getBean().setSettingEndLatitude(settingEndLatitude); +// getBean().setSettingEndLongitude(settingEndLongitude); +// getBean().setHaulingStartLatitude(haulingStartLatitude); +// getBean().setHaulingStartLongitude(haulingStartLongitude); +// getBean().setHaulingEndLatitude(haulingEndLatitude); +// getBean().setHaulingEndLongitude(haulingEndLongitude); +// +// } @Override protected void closeSafeUI() { @@ -293,39 +289,40 @@ public class SetLonglineUIHandler extends ContentUIHandler<SetLongline> { } - @Override - protected SetLongline onPreCreate(TopiaContext tx, - Object parent, - SetLongline bean) throws TopiaException { - - ActivityLongline parentBean = (ActivityLongline) parent; - - // on utilise la date - heure de l'activité pour initialiser les horodatages - // de l'opération de peche - Date timeStamp = parentBean.getTimeStamp(); - bean.setSettingStartTimeStamp(timeStamp); - bean.setSettingEndTimeStamp(DateUtils.addHours(timeStamp, 1)); - bean.setHaulingStartTimeStamp(DateUtils.addHours(timeStamp, 2)); - bean.setHaulingEndTimeStamp(DateUtils.addHours(timeStamp, 3)); - - // on reporte la position de l'activité pour la position de début de filage - Float latitude = parentBean.getLatitude(); - Float longitude = parentBean.getLongitude(); - - // On enregistre deux fois les coordonnées car la première fois on perd le signe à cause de l'éditeur - bean.setSettingStartLatitude(latitude); - bean.setSettingStartLongitude(longitude); - bean.setSettingStartLatitude(latitude); - bean.setSettingStartLongitude(longitude); - - return bean; - - } + //FIXME +// @Override +// protected SetLongline onPreCreate(TopiaContext tx, +// Object parent, +// SetLongline bean) throws TopiaException { +// +// ActivityLongline parentBean = (ActivityLongline) parent; +// +// // on utilise la date - heure de l'activité pour initialiser les horodatages +// // de l'opération de peche +// Date timeStamp = parentBean.getTimeStamp(); +// bean.setSettingStartTimeStamp(timeStamp); +// bean.setSettingEndTimeStamp(DateUtils.addHours(timeStamp, 1)); +// bean.setHaulingStartTimeStamp(DateUtils.addHours(timeStamp, 2)); +// bean.setHaulingEndTimeStamp(DateUtils.addHours(timeStamp, 3)); +// +// // on reporte la position de l'activité pour la position de début de filage +// Float latitude = parentBean.getLatitude(); +// Float longitude = parentBean.getLongitude(); +// +// // On enregistre deux fois les coordonnées car la première fois on perd le signe à cause de l'éditeur +// bean.setSettingStartLatitude(latitude); +// bean.setSettingStartLongitude(longitude); +// bean.setSettingStartLatitude(latitude); +// bean.setSettingStartLongitude(longitude); +// +// return bean; +// +// } @Override public void startEditUI(String... binding) { - ContentUIModel<SetLongline> model = getModel(); + ContentUIModel<SetLonglineDto> model = getModel(); boolean create = model.getMode() == ContentMode.CREATE; String contextName = getValidatorContextName(model.getMode()); getUi().getValidator().setContext(contextName); @@ -392,64 +389,67 @@ public class SetLonglineUIHandler extends ContentUIHandler<SetLongline> { } - @Override - protected boolean doSave(SetLongline bean, - DataService dataService, - DataSource dataSource, - TopiaEntityBinder<SetLongline> binder) throws Exception { - - String activityId = getSelectedParentId(); - - if (bean.getTopiaId() == null) { - - dataService.create(dataSource, activityId, bean, binder, getCreateExecutor()); - - } else { - - dataService.update(dataSource, null, bean, getUpdateExecutor()); - - } - - return true; - - } - - @Override - protected SetLongline onCreate(TopiaContext tx, Object parent, SetLongline editBean) throws TopiaException { - - ActivityLongline parentBean = (ActivityLongline) parent; - SetLongline beanToSave = ObserveDAOHelper.getSetLonglineDAO(tx).create(); - editBean.setTopiaId(beanToSave.getTopiaId()); - parentBean.setSetLongline(beanToSave); - return beanToSave; - - } - - @Override - protected SetLongline onUpdate(TopiaContext tx, - Object parentBean, - SetLongline beanToSave) throws TopiaException { - - getLoadBinder().copyExcluding(getBean(), - beanToSave, - SetLongline.PROPERTY_BAITS_COMPOSITION, - SetLongline.PROPERTY_FLOATLINES_COMPOSITION, - SetLongline.PROPERTY_HOOKS_COMPOSITION, - SetLongline.PROPERTY_BRANCHLINES_COMPOSITION, - SetLongline.PROPERTY_SECTION, - SetLongline.PROPERTY_CATCH_LONGLINE, - SetLongline.PROPERTY_MITIGATION_TYPE, - SetLongline.PROPERTY_TDR); - return beanToSave; - - } + //FIXME +// @Override +// protected boolean doSave(SetLongline bean, +// DataService dataService, +// DataSource dataSource, +// TopiaEntityBinder<SetLongline> binder) throws Exception { +// +// String activityId = getSelectedParentId(); +// +// if (bean.getTopiaId() == null) { +// +// dataService.create(dataSource, activityId, bean, binder, getCreateExecutor()); +// +// } else { +// +// dataService.update(dataSource, null, bean, getUpdateExecutor()); +// +// } +// +// return true; +// +// } + + //FIXME +// @Override +// protected SetLongline onCreate(TopiaContext tx, Object parent, SetLongline editBean) throws TopiaException { +// +// ActivityLongline parentBean = (ActivityLongline) parent; +// SetLongline beanToSave = ObserveDAOHelper.getSetLonglineDAO(tx).create(); +// editBean.setTopiaId(beanToSave.getTopiaId()); +// parentBean.setSetLongline(beanToSave); +// return beanToSave; +// +// } + + //FIXME +// @Override +// protected SetLongline onUpdate(TopiaContext tx, +// Object parentBean, +// SetLongline beanToSave) throws TopiaException { +// +// getLoadBinder().copyExcluding(getBean(), +// beanToSave, +// SetLongline.PROPERTY_BAITS_COMPOSITION, +// SetLongline.PROPERTY_FLOATLINES_COMPOSITION, +// SetLongline.PROPERTY_HOOKS_COMPOSITION, +// SetLongline.PROPERTY_BRANCHLINES_COMPOSITION, +// SetLongline.PROPERTY_SECTION, +// SetLongline.PROPERTY_CATCH_LONGLINE, +// SetLongline.PROPERTY_MITIGATION_TYPE, +// SetLongline.PROPERTY_TDR); +// return beanToSave; +// +// } @Override protected void afterSave(boolean refresh) { super.afterSave(refresh); - SetLongline bean = getBean(); + SetLonglineDto bean = getBean(); SwingValidatorUtil.setValidatorChanged(getUi(), false); @@ -479,36 +479,38 @@ public class SetLonglineUIHandler extends ContentUIHandler<SetLongline> { } - @Override - protected boolean doDelete(SetLongline bean, - DataService dataService, - DataSource dataSource, - TopiaExecutor2<? extends TopiaEntity, SetLongline> deletor) throws Exception { - - if (askToDelete(bean)) { - return false; - } - - String activityId = getSelectedParentId(); - dataService.delete(dataSource, activityId, bean, deletor); - - return true; - - } - - @Override - protected void onDelete(TopiaContext tx, Object parent, SetLongline beanToDelete) throws TopiaException { - - ActivityLongline parentBean = (ActivityLongline) parent; - - // on doit supprimer physiquement la set - // car il n'y a pas de delete-orphan sur une telle - // relation - ObserveDAOHelper.getSetLonglineDAO(tx).delete(parentBean.getSetLongline()); - // supprime la reference sur l'activity - parentBean.setSetLongline(null); - - } + //FIXME +// @Override +// protected boolean doDelete(SetLongline bean, +// DataService dataService, +// DataSource dataSource, +// TopiaExecutor2<? extends TopiaEntity, SetLongline> deletor) throws Exception { +// +// if (askToDelete(bean)) { +// return false; +// } +// +// String activityId = getSelectedParentId(); +// dataService.delete(dataSource, activityId, bean, deletor); +// +// return true; +// +// } + + //FIXME +// @Override +// protected void onDelete(TopiaContext tx, Object parent, SetLongline beanToDelete) throws TopiaException { +// +// ActivityLongline parentBean = (ActivityLongline) parent; +// +// // on doit supprimer physiquement la set +// // car il n'y a pas de delete-orphan sur une telle +// // relation +// ObserveDAOHelper.getSetLonglineDAO(tx).delete(parentBean.getSetLongline()); +// // supprime la reference sur l'activity +// parentBean.setSetLongline(null); +// +// } protected void computeTabValidState(SwingValidatorMessageTableModel errorTableModel) { diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/SetLonglineUIModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/SetLonglineUIModel.java index c2f0422..9e9b595 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/SetLonglineUIModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/SetLonglineUIModel.java @@ -23,7 +23,7 @@ package fr.ird.observe.ui.content.impl.longline; */ import com.google.common.collect.ImmutableSet; -import fr.ird.observe.BinderService; +import fr.ird.observe.business.BinderService; import fr.ird.observe.services.dto.longline.SetLonglineDto; import fr.ird.observe.ui.content.ContentUIModel; import org.nuiton.util.beans.BinderModelBuilder; @@ -105,7 +105,7 @@ public class SetLonglineUIModel extends ContentUIModel<SetLonglineDto> { protected boolean haulingTabValid; - public SetLonglineDtoUIModel() { + public SetLonglineUIModel() { super(SetLonglineDto.class); } 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 6476c6b..f66e1da 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 @@ -21,20 +21,14 @@ */ package fr.ird.observe.ui.content.impl.seine; -import fr.ird.observe.DataService; -import fr.ird.observe.db.DataContext; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.constants.DataContextType; -import fr.ird.observe.services.dto.constants.seine.SchoolTypeDto; +import fr.ird.observe.business.db.DataContext; +import fr.ird.observe.business.db.DataSource; +import fr.ird.observe.business.db.constants.DataContextType; import fr.ird.observe.services.dto.seine.ActivitySeineDto; -import fr.ird.observe.services.dto.seine.SetSeineDto; import fr.ird.observe.ui.content.ContentMode; import fr.ird.observe.ui.content.ContentUIHandler; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.nuiton.topia.TopiaContext; -import org.nuiton.topia.TopiaException; -import org.nuiton.topia.persistence.util.TopiaEntityBinder; import static org.nuiton.i18n.I18n.t; @@ -42,7 +36,7 @@ import static org.nuiton.i18n.I18n.t; * @author Tony Chemit - chemit@codelutin.com * @since 1.0 */ -public class ActivitySeineObservedSystemUIHandler extends ContentUIHandler<ActivitySeine> { +public class ActivitySeineObservedSystemUIHandler extends ContentUIHandler<ActivitySeineDto> { /** Logger */ static private Log log = LogFactory.getLog(ActivitySeineObservedSystemUIHandler.class); @@ -64,7 +58,7 @@ public class ActivitySeineObservedSystemUIHandler extends ContentUIHandler<Activ @Override protected ContentMode getContentMode(DataContext dataContext) { - if (dataContext.isSelectedOpen(ActivitySeine.class)) { + if (dataContext.isSelectedOpen(ActivitySeineDto.class)) { // l'activity courante est ouverte, on peut modifier return ContentMode.UPDATE; @@ -88,7 +82,8 @@ public class ActivitySeineObservedSystemUIHandler extends ContentUIHandler<Activ ContentMode mode = computeContentMode(); - getDataService().loadEditEntity(getDataSource(), activityId, getLoadExecutor()); + //FIXME +// getDataService().loadEditEntity(getDataSource(), activityId, getLoadExecutor()); getModel().setMode(mode); @@ -103,40 +98,42 @@ public class ActivitySeineObservedSystemUIHandler extends ContentUIHandler<Activ super.startEditUI(binding); } - @Override - protected boolean doSave(ActivitySeine bean, - DataService dataService, - DataSource dataSource, - TopiaEntityBinder<ActivitySeine> binder) throws Exception { - - // on sauvegarde l'activity (mais pas la set) - dataService.update(dataSource, null, bean, getUpdateExecutor()); - return true; - } - - @Override - protected ActivitySeine onUpdate(TopiaContext tx, Object parentBean, ActivitySeine beanToSave) throws TopiaException { - - ActivitySeine bean = getBean(); - boolean needUpdateSet = false; - SchoolType newTypeBanc = bean.getSchoolType(); - SetSeine set = bean.getSetSeine(); - if (set != null) { - // on regarde si le type de banc de la calée a changé - - SchoolType oldTypeBanc = set.getSchoolType(); - needUpdateSet = oldTypeBanc == null || newTypeBanc != oldTypeBanc; - } - - getLoadBinder().copyExcluding(getBean(), beanToSave, ActivitySeine.PROPERTY_SET_SEINE); - - if (needUpdateSet) { - - // mise à jour de la propriété schoolType dans la set - beanToSave.getSetSeine().setSchoolType(newTypeBanc); - } - - return beanToSave; - } + //FIXME +// @Override +// protected boolean doSave(ActivitySeine bean, +// DataService dataService, +// DataSource dataSource, +// TopiaEntityBinder<ActivitySeine> binder) throws Exception { +// +// // on sauvegarde l'activity (mais pas la set) +// dataService.update(dataSource, null, bean, getUpdateExecutor()); +// return true; +// } + + //FIXME +// @Override +// protected ActivitySeine onUpdate(TopiaContext tx, Object parentBean, ActivitySeine beanToSave) throws TopiaException { +// +// ActivitySeine bean = getBean(); +// boolean needUpdateSet = false; +// SchoolType newTypeBanc = bean.getSchoolType(); +// SetSeine set = bean.getSetSeine(); +// if (set != null) { +// // on regarde si le type de banc de la calée a changé +// +// SchoolType oldTypeBanc = set.getSchoolType(); +// needUpdateSet = oldTypeBanc == null || newTypeBanc != oldTypeBanc; +// } +// +// getLoadBinder().copyExcluding(getBean(), beanToSave, ActivitySeine.PROPERTY_SET_SEINE); +// +// if (needUpdateSet) { +// +// // mise à jour de la propriété schoolType dans la set +// beanToSave.getSetSeine().setSchoolType(newTypeBanc); +// } +// +// return beanToSave; +// } } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/seine/ActivitySeineObservedSystemUIModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/seine/ActivitySeineObservedSystemUIModel.java index 7147829..8309f5e 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/seine/ActivitySeineObservedSystemUIModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/seine/ActivitySeineObservedSystemUIModel.java @@ -22,7 +22,7 @@ package fr.ird.observe.ui.content.impl.seine; * #L% */ -import fr.ird.observe.BinderService; +import fr.ird.observe.business.BinderService; import fr.ird.observe.services.dto.seine.ActivitySeineDto; import fr.ird.observe.ui.content.ContentUIModel; import org.nuiton.util.beans.BinderModelBuilder; 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 62cee72..e030d08 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 @@ -21,17 +21,12 @@ */ package fr.ird.observe.ui.content.impl.seine; -import fr.ird.observe.DataService; -import fr.ird.observe.DecoratorService; -import fr.ird.observe.ObserveDAOHelper; -import fr.ird.observe.db.DataContext; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.constants.DataContextType; -import fr.ird.observe.services.dto.constants.seine.OwnershipDto; -import fr.ird.observe.services.dto.constants.seine.TypeTransmittingBuoyOperationDto; -import fr.ird.observe.services.dto.referential.CountryDto; +import fr.ird.observe.business.db.DataContext; +import fr.ird.observe.business.db.DataSource; +import fr.ird.observe.business.db.constants.DataContextType; +import fr.ird.observe.services.dto.constants.seine.Ownership; +import fr.ird.observe.services.dto.constants.seine.TypeTransmittingBuoyOperation; import fr.ird.observe.services.dto.referential.seine.TransmittingBuoyOperationDto; -import fr.ird.observe.services.dto.referential.seine.TransmittingBuoyTypeDto; import fr.ird.observe.services.dto.seine.ActivitySeineDto; import fr.ird.observe.services.dto.seine.FloatingObjectDto; import fr.ird.observe.services.dto.seine.TransmittingBuoyDto; @@ -40,19 +35,12 @@ import fr.ird.observe.ui.content.ContentMode; import fr.ird.observe.ui.content.ContentUIHandler; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.nuiton.decorator.Decorator; -import org.nuiton.topia.TopiaContext; -import org.nuiton.topia.TopiaException; -import org.nuiton.topia.persistence.TopiaDAO; -import org.nuiton.topia.persistence.util.TopiaEntityBinder; import org.nuiton.validator.NuitonValidatorScope; -import javax.swing.JPanel; -import javax.swing.SwingUtilities; -import java.awt.GridLayout; +import javax.swing.*; +import java.awt.*; import java.util.ArrayList; import java.util.List; -import java.util.Map; import static org.nuiton.i18n.I18n.t; @@ -60,7 +48,7 @@ import static org.nuiton.i18n.I18n.t; * @author Tony Chemit - chemit@codelutin.com * @since 1.0 */ -public class FloatingObjectTransmittingBuoyOperationUIHandler extends ContentUIHandler<FloatingObject> { +public class FloatingObjectTransmittingBuoyOperationUIHandler extends ContentUIHandler<FloatingObjectDto> { /** Logger */ static private Log log = LogFactory.getLog(FloatingObjectTransmittingBuoyOperationUIHandler.class); @@ -87,7 +75,7 @@ public class FloatingObjectTransmittingBuoyOperationUIHandler extends ContentUIH @Override protected ContentMode getContentMode(DataContext dataContext) { - if (dataContext.isSelectedOpen(ActivitySeine.class)) { + if (dataContext.isSelectedOpen(ActivitySeineDto.class)) { // l'activity courante est ouverte, on peut modifier return ContentMode.UPDATE; @@ -96,7 +84,7 @@ public class FloatingObjectTransmittingBuoyOperationUIHandler extends ContentUIH // activity courante non ouverte addMessage(getUi(), NuitonValidatorScope.INFO, - getEntityLabel(ActivitySeine.class), + getEntityLabel(ActivitySeineDto.class), t("observe.activitySeine.message.not.open")); return ContentMode.READ; @@ -114,7 +102,7 @@ public class FloatingObjectTransmittingBuoyOperationUIHandler extends ContentUIH log.info("dcpId = " + dcpId); } - FloatingObject bean = getBean(); + FloatingObjectDto bean = getBean(); bean.clearTransmittingBuoy(); //FIXME: What should I do now ? bean.clearOperation(); @@ -123,7 +111,8 @@ public class FloatingObjectTransmittingBuoyOperationUIHandler extends ContentUIH getModel().setEditing(false); - getDataService().loadEditEntity(getDataSource(), dcpId, getLoadExecutor()); + //FIXME +// getDataService().loadEditEntity(getDataSource(), dcpId, getLoadExecutor()); getUi().processDataBinding( FloatingObjectTransmittingBuoyOperationUI.BINDING_TYPE_OPERATION_SELECTED_ITEM); @@ -139,54 +128,55 @@ public class FloatingObjectTransmittingBuoyOperationUIHandler extends ContentUIH } } - @Override - protected void onLoad(TopiaContext tx, FloatingObject bean) throws TopiaException { - - FloatingObject editBean = getBean(); - - // chargement du bean depuis celui qui vient de la base - getLoadBinder().load(bean, editBean, true); - - editBean.clearTransmittingBuoy(); - - List<TransmittingBuoy> objets = bean.getTransmittingBuoy(); - - if (objets != null) { - DecoratorService decoratorService = getDecoratorService(); - Decorator<TransmittingBuoy> dB = decoratorService.getDecoratorByType(TransmittingBuoy.class); - Decorator<TransmittingBuoyOperation> dB2 = decoratorService.getDecoratorByType(TransmittingBuoyOperation.class); - Decorator<TransmittingBuoyType> dB3 = decoratorService.getDecoratorByType(TransmittingBuoyType.class); - Decorator<Country> dB4 = decoratorService.getDecoratorByType(Country.class); - for (TransmittingBuoy transmittingBuoy : objets) { - String s = dB.toString(transmittingBuoy); - if (log.isDebugEnabled()) { - log.debug("use balise lue : " + s); - } - TransmittingBuoyOperation objectOperation = transmittingBuoy.getTransmittingBuoyOperation(); - if (objectOperation != null) { - s = dB2.toString(objectOperation); - if (log.isDebugEnabled()) { - log.debug("use objectOperation balise : " + s); - } - } - TransmittingBuoyType type = transmittingBuoy.getTransmittingBuoyType(); - if (type != null) { - s = dB3.toString(type); - if (log.isDebugEnabled()) { - log.debug("use type balise : " + s); - } - } - Country country = transmittingBuoy.getCountry(); - if (country != null) { - s = dB4.toString(country); - if (log.isDebugEnabled()) { - log.debug("use country : " + s); - } - } - editBean.addTransmittingBuoy(transmittingBuoy); - } - } - } + //FIXME +// @Override +// protected void onLoad(TopiaContext tx, FloatingObject bean) throws TopiaException { +// +// FloatingObject editBean = getBean(); +// +// // chargement du bean depuis celui qui vient de la base +// getLoadBinder().load(bean, editBean, true); +// +// editBean.clearTransmittingBuoy(); +// +// List<TransmittingBuoy> objets = bean.getTransmittingBuoy(); +// +// if (objets != null) { +// DecoratorService decoratorService = getDecoratorService(); +// Decorator<TransmittingBuoy> dB = decoratorService.getDecoratorByType(TransmittingBuoy.class); +// Decorator<TransmittingBuoyOperation> dB2 = decoratorService.getDecoratorByType(TransmittingBuoyOperation.class); +// Decorator<TransmittingBuoyType> dB3 = decoratorService.getDecoratorByType(TransmittingBuoyType.class); +// Decorator<Country> dB4 = decoratorService.getDecoratorByType(Country.class); +// for (TransmittingBuoy transmittingBuoy : objets) { +// String s = dB.toString(transmittingBuoy); +// if (log.isDebugEnabled()) { +// log.debug("use balise lue : " + s); +// } +// TransmittingBuoyOperation objectOperation = transmittingBuoy.getTransmittingBuoyOperation(); +// if (objectOperation != null) { +// s = dB2.toString(objectOperation); +// if (log.isDebugEnabled()) { +// log.debug("use objectOperation balise : " + s); +// } +// } +// TransmittingBuoyType type = transmittingBuoy.getTransmittingBuoyType(); +// if (type != null) { +// s = dB3.toString(type); +// if (log.isDebugEnabled()) { +// log.debug("use type balise : " + s); +// } +// } +// Country country = transmittingBuoy.getCountry(); +// if (country != null) { +// s = dB4.toString(country); +// if (log.isDebugEnabled()) { +// log.debug("use country : " + s); +// } +// } +// editBean.addTransmittingBuoy(transmittingBuoy); +// } +// } +// } @Override public void startEditUI(String... binding) { @@ -208,13 +198,13 @@ public class FloatingObjectTransmittingBuoyOperationUIHandler extends ContentUIH FloatingObjectTransmittingBuoyOperationUI ui = getUi(); addInfoMessage(t("observe.message.updating.floatingObject")); - List<TransmittingBuoy> balises = getBean().getTransmittingBuoy(); + List<TransmittingBuoyDto> balises = getBean().getTransmittingBuoy(); if (balises != null && !balises.isEmpty()) { - TransmittingBuoy transmittingBuoy1 = ui.getTransmittingBuoy1(); + TransmittingBuoyDto transmittingBuoy1 = ui.getTransmittingBuoy1(); ui.getValidatorBalise1().setBean(transmittingBuoy1); if (balises.size() == 2) { - TransmittingBuoy transmittingBuoy2 = ui.getTransmittingBuoy2(); + TransmittingBuoyDto transmittingBuoy2 = ui.getTransmittingBuoy2(); ui.getValidatorBalise2().setBean(transmittingBuoy2); } } @@ -235,62 +225,64 @@ public class FloatingObjectTransmittingBuoyOperationUIHandler extends ContentUIH getModel().setModified(false); } - public boolean isBalisePose(TransmittingBuoyOperation operation) { + public boolean isBalisePose(TransmittingBuoyOperationDto operation) { return operation != null && "3".equals(operation.getCode()); } - @Override - protected boolean doSave(FloatingObject bean, - DataService dataService, - DataSource dataSource, - TopiaEntityBinder<FloatingObject> binder) throws Exception { - - dataService.update(dataSource, null, bean, getUpdateExecutor()); - //FIXME, il faut declancher un evenement dans le cache du storage pour pouvoir redessiner le noeud - return true; - } - - @Override - protected FloatingObject onUpdate(TopiaContext tx, - Object parentBean, - FloatingObject beanToSave) throws TopiaException { - - FloatingObject editBean = getBean(); - - List<TransmittingBuoy> objets = editBean.getTransmittingBuoy(); - - beanToSave.setComment(editBean.getComment()); - - beanToSave.clearTransmittingBuoy(); - - TopiaEntityBinder<TransmittingBuoy> childLoador = getModel().getChildLoador(); - - TopiaDAO<TransmittingBuoy> transmittingBuoyDAO = ObserveDAOHelper.getTransmittingBuoyDAO(tx); - - for (TransmittingBuoy transmittingBuoy : objets) { - TransmittingBuoy newBalise; - - if (transmittingBuoy.getTopiaId() == null) { - - // creation de la balise - - Map<String, Object> map = childLoador.obtainProperties(transmittingBuoy); - - newBalise = transmittingBuoyDAO.create(map); - - } else { - - // mise a jour de la balise - - newBalise = transmittingBuoyDAO.findByTopiaId(transmittingBuoy.getTopiaId()); - - childLoador.load(transmittingBuoy, newBalise, false); - } - - beanToSave.addTransmittingBuoy(newBalise); - } - return beanToSave; - } + //FIXME +// @Override +// protected boolean doSave(FloatingObject bean, +// DataService dataService, +// DataSource dataSource, +// TopiaEntityBinder<FloatingObject> binder) throws Exception { +// +// dataService.update(dataSource, null, bean, getUpdateExecutor()); +// //FIXME, il faut declancher un evenement dans le cache du storage pour pouvoir redessiner le noeud +// return true; +// } + + //FIXME +// @Override +// protected FloatingObject onUpdate(TopiaContext tx, +// Object parentBean, +// FloatingObject beanToSave) throws TopiaException { +// +// FloatingObject editBean = getBean(); +// +// List<TransmittingBuoy> objets = editBean.getTransmittingBuoy(); +// +// beanToSave.setComment(editBean.getComment()); +// +// beanToSave.clearTransmittingBuoy(); +// +// TopiaEntityBinder<TransmittingBuoy> childLoador = getModel().getChildLoador(); +// +// TopiaDAO<TransmittingBuoy> transmittingBuoyDAO = ObserveDAOHelper.getTransmittingBuoyDAO(tx); +// +// for (TransmittingBuoy transmittingBuoy : objets) { +// TransmittingBuoy newBalise; +// +// if (transmittingBuoy.getTopiaId() == null) { +// +// // creation de la balise +// +// Map<String, Object> map = childLoador.obtainProperties(transmittingBuoy); +// +// newBalise = transmittingBuoyDAO.create(map); +// +// } else { +// +// // mise a jour de la balise +// +// newBalise = transmittingBuoyDAO.findByTopiaId(transmittingBuoy.getTopiaId()); +// +// childLoador.load(transmittingBuoy, newBalise, false); +// } +// +// beanToSave.addTransmittingBuoy(newBalise); +// } +// return beanToSave; +// } @Override protected void afterSave(boolean refresh) { @@ -307,31 +299,32 @@ public class FloatingObjectTransmittingBuoyOperationUIHandler extends ContentUIH } int nbBalises = typeOperation.getNbBalises(); - FloatingObject bean = getBean(); - - boolean hasBalise = !bean.isTransmittingBuoyEmpty(); - - List<TransmittingBuoy> objets = new ArrayList<TransmittingBuoy>(); - if (!reset) { - if (hasBalise) { - objets.addAll(bean.getTransmittingBuoy()); - } - } - - if (hasBalise) { - // always reset balise lues of editBean to avoid side-effects - bean.getTransmittingBuoy().clear(); - } + FloatingObjectDto bean = getBean(); + + //FIXME +// boolean hasBalise = !bean.isTransmittingBuoyEmpty(); +// +// List<TransmittingBuoyDto> objets = new ArrayList<TransmittingBuoyDto>(); +// if (!reset) { +// if (hasBalise) { +// objets.addAll(bean.getTransmittingBuoy()); +// } +// } +// +// if (hasBalise) { +// // always reset balise lues of editBean to avoid side-effects +// bean.getTransmittingBuoy().clear(); +// } // clean container JPanel editorPanel = ui.getTransmittingBuoys(); editorPanel.removeAll(); String[] codeOperations = typeOperation.getCodeOperation(); - List<TransmittingBuoyOperation> operations = ui.getTransmittingBuoyOperation1().getData(); + List<TransmittingBuoyOperationDto> operations = ui.getTransmittingBuoyOperation1().getData(); - TransmittingBuoy transmittingBuoy; - TransmittingBuoyOperation objectOperation; + TransmittingBuoyDto transmittingBuoy; + TransmittingBuoyOperationDto objectOperation; switch (nbBalises) { case 0: // no balise @@ -345,10 +338,11 @@ public class FloatingObjectTransmittingBuoyOperationUIHandler extends ContentUIH case 1: - transmittingBuoy = reset ? null : objets.get(0); - - objectOperation = reset ? getObjectOperation(operations, codeOperations[0]) : null; - bindEditBalise(ui.getTransmittingBuoy1(), objectOperation, transmittingBuoy); + //FIXME +// transmittingBuoy = reset ? null : objets.get(0); +// +// objectOperation = reset ? getObjectOperation(operations, codeOperations[0]) : null; +// bindEditBalise(ui.getTransmittingBuoy1(), objectOperation, transmittingBuoy); editorPanel.setLayout(new GridLayout(1, 0)); editorPanel.add(ui.getTransmittingBuoy1Editor()); @@ -359,13 +353,14 @@ public class FloatingObjectTransmittingBuoyOperationUIHandler extends ContentUIH break; case 2: - transmittingBuoy = reset ? null : objets.get(0); - objectOperation = reset ? getObjectOperation(operations, codeOperations[0]) : null; - bindEditBalise(ui.getTransmittingBuoy1(), objectOperation, transmittingBuoy); - - transmittingBuoy = reset ? null : objets.get(1); - objectOperation = reset ? getObjectOperation(operations, codeOperations[1]) : null; - bindEditBalise(ui.getTransmittingBuoy2(), objectOperation, transmittingBuoy); + //FIXME +// transmittingBuoy = reset ? null : objets.get(0); +// objectOperation = reset ? getObjectOperation(operations, codeOperations[0]) : null; +// bindEditBalise(ui.getTransmittingBuoy1(), objectOperation, transmittingBuoy); +// +// transmittingBuoy = reset ? null : objets.get(1); +// objectOperation = reset ? getObjectOperation(operations, codeOperations[1]) : null; +// bindEditBalise(ui.getTransmittingBuoy2(), objectOperation, transmittingBuoy); editorPanel.setLayout(new GridLayout(2, 0)); editorPanel.add(ui.getTransmittingBuoy1Editor()); @@ -388,11 +383,12 @@ public class FloatingObjectTransmittingBuoyOperationUIHandler extends ContentUIH } - protected void bindEditBalise(TransmittingBuoy editBean, - TransmittingBuoyOperation transmittingBuoyOperation, - TransmittingBuoy transmittingBuoy) { + protected void bindEditBalise(TransmittingBuoyDto editBean, + TransmittingBuoyOperationDto transmittingBuoyOperation, + TransmittingBuoyDto transmittingBuoy) { - getModel().getChildLoador().load(transmittingBuoy, editBean, false); + //FIXME +// getModel().getChildLoador().load(transmittingBuoy, editBean, false); if (transmittingBuoy == null) { @@ -411,18 +407,18 @@ public class FloatingObjectTransmittingBuoyOperationUIHandler extends ContentUIH } } - FloatingObject bean = getBean(); + FloatingObjectDto bean = getBean(); - if (bean.getTransmittingBuoy() == null) { - bean.setTransmittingBuoy(new ArrayList<TransmittingBuoy>()); - } - bean.getTransmittingBuoy().add(editBean); +// if (bean.getTransmittingBuoy() == null) { +// bean.setTransmittingBuoy(new ArrayList<TransmittingBuoy>()); +// } +// bean.getTransmittingBuoy().add(editBean); } - protected TransmittingBuoyOperation getObjectOperation(List<TransmittingBuoyOperation> objectOperations, - String codeOperation) { - TransmittingBuoyOperation objectOperation = null; - for (TransmittingBuoyOperation op : objectOperations) { + protected TransmittingBuoyOperationDto getObjectOperation(List<TransmittingBuoyOperationDto> objectOperations, + String codeOperation) { + TransmittingBuoyOperationDto objectOperation = null; + for (TransmittingBuoyOperationDto op : objectOperations) { if (codeOperation.equals(op.getCode())) { objectOperation = op; break; @@ -431,7 +427,7 @@ public class FloatingObjectTransmittingBuoyOperationUIHandler extends ContentUIH if (objectOperation == null) { throw new IllegalArgumentException( "could not find a " + - TransmittingBuoyOperation.class + " with code " + codeOperation); + TransmittingBuoyOperationDto.class + " with code " + codeOperation); } return objectOperation; } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/seine/FloatingObjectTransmittingBuoyOperationUIModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/seine/FloatingObjectTransmittingBuoyOperationUIModel.java index 75ee3bf..70dab24 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/seine/FloatingObjectTransmittingBuoyOperationUIModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/seine/FloatingObjectTransmittingBuoyOperationUIModel.java @@ -22,7 +22,7 @@ package fr.ird.observe.ui.content.impl.seine; * #L% */ -import fr.ird.observe.BinderService; +import fr.ird.observe.business.BinderService; import fr.ird.observe.services.dto.seine.FloatingObjectDto; import fr.ird.observe.ui.content.ContentUIModel; import org.nuiton.util.beans.BinderModelBuilder; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/seine/FloatingObjectUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/seine/FloatingObjectUIHandler.java index 31c327b..165703c 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/seine/FloatingObjectUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/seine/FloatingObjectUIHandler.java @@ -21,15 +21,11 @@ */ package fr.ird.observe.ui.content.impl.seine; -import fr.ird.observe.DataService; -import fr.ird.observe.ObserveDAOHelper; -import fr.ird.observe.db.DataContext; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.constants.DataContextType; -import fr.ird.observe.db.util.TopiaExecutor2; +import fr.ird.observe.business.db.DataContext; +import fr.ird.observe.business.db.DataSource; +import fr.ird.observe.business.db.constants.DataContextType; import fr.ird.observe.services.dto.seine.ActivitySeineDto; import fr.ird.observe.services.dto.seine.FloatingObjectDto; -import fr.ird.observe.services.dto.seine.FloatingObjectDAODto; import fr.ird.observe.ui.content.ContentMode; import fr.ird.observe.ui.content.ContentUIHandler; import fr.ird.observe.ui.content.ContentUIModel; @@ -37,10 +33,6 @@ import fr.ird.observe.ui.tree.ObserveNode; import fr.ird.observe.ui.tree.ObserveTreeHelper; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.nuiton.topia.TopiaContext; -import org.nuiton.topia.TopiaException; -import org.nuiton.topia.persistence.TopiaEntity; -import org.nuiton.topia.persistence.util.TopiaEntityBinder; import org.nuiton.validator.NuitonValidatorScope; import static org.nuiton.i18n.I18n.t; @@ -49,7 +41,7 @@ import static org.nuiton.i18n.I18n.t; * @author Tony Chemit - chemit@codelutin.com * @since 1.0 */ -public class FloatingObjectUIHandler extends ContentUIHandler<FloatingObject> { +public class FloatingObjectUIHandler extends ContentUIHandler<FloatingObjectDto> { /** Logger */ static private Log log = LogFactory.getLog(FloatingObjectUIHandler.class); @@ -81,7 +73,7 @@ public class FloatingObjectUIHandler extends ContentUIHandler<FloatingObject> { // dcp existant - if (dataContext.isSelectedOpen(ActivitySeine.class)) { + if (dataContext.isSelectedOpen(ActivitySeineDto.class)) { // mode mise a jour return ContentMode.UPDATE; @@ -91,7 +83,7 @@ public class FloatingObjectUIHandler extends ContentUIHandler<FloatingObject> { addMessage( getUi(), NuitonValidatorScope.INFO, - getEntityLabel(ActivitySeine.class), + getEntityLabel(ActivitySeineDto.class), t("observe.activitySeine.message.not.open")); return ContentMode.READ; @@ -111,20 +103,21 @@ public class FloatingObjectUIHandler extends ContentUIHandler<FloatingObject> { ContentMode mode = computeContentMode(); - FloatingObject bean = getBean(); - - DataService dataService = getDataService(); - if (dcpId == null) { - - // creation mode - - dataService.preCreate(getDataSource(), activityId, bean, getLoadBinder(), getPreCreateExecutor()); - } else { - - // update mode - - dataService.loadEditEntity(getDataSource(), dcpId, getLoadExecutor()); - } + FloatingObjectDto bean = getBean(); + + //FIXME +// DataService dataService = getDataService(); +// if (dcpId == null) { +// +// // creation mode +// +// dataService.preCreate(getDataSource(), activityId, bean, getLoadBinder(), getPreCreateExecutor()); +// } else { +// +// // update mode +// +// dataService.loadEditEntity(getDataSource(), dcpId, getLoadExecutor()); +// } // utilisation du mode requis setContentMode(mode); @@ -136,19 +129,19 @@ public class FloatingObjectUIHandler extends ContentUIHandler<FloatingObject> { @Override public void startEditUI(String... binding) { - ContentUIModel<FloatingObject> contentUIModel = getModel(); + ContentUIModel<FloatingObjectDto> contentUIModel = getModel(); boolean create = contentUIModel.getMode() == ContentMode.CREATE; String contextName = getValidatorContextName(contentUIModel.getMode()); getUi().getValidator().setContext(contextName); if (create) { addMessage(getUi(), NuitonValidatorScope.INFO, - getEntityLabel(FloatingObject.class), + getEntityLabel(FloatingObjectDto.class), t("observe.floatingObject.message.creating")); } else { addMessage(getUi(), NuitonValidatorScope.INFO, - getEntityLabel(FloatingObject.class), + getEntityLabel(FloatingObjectDto.class), t("observe.floatingObject.message.updating")); } super.startEditUI(FloatingObjectUI.BINDING_DAYS_AT_SEA_COUNT_MODEL, @@ -159,46 +152,49 @@ public class FloatingObjectUIHandler extends ContentUIHandler<FloatingObject> { contentUIModel.setModified(create); } - @Override - protected boolean doSave(FloatingObject bean, - DataService dataService, - DataSource dataSource, - TopiaEntityBinder<FloatingObject> binder) throws Exception { - - String activityId = getSelectedParentId(); - - if (bean.getTopiaId() == null) { - - dataService.create(dataSource, activityId, bean, binder, getCreateExecutor()); - } else { - - dataService.update(dataSource, null, bean, getUpdateExecutor()); - } - return true; - } - - @Override - protected FloatingObject onCreate(TopiaContext tx, Object parent, FloatingObject editBean) throws TopiaException { - ActivitySeine parentBean = (ActivitySeine) parent; - FloatingObjectDAO dao = ObserveDAOHelper.getFloatingObjectDAO(tx); - FloatingObject beanToSave = dao.create(); - editBean.setTopiaId(beanToSave.getTopiaId()); - parentBean.addFloatingObject(beanToSave); - return beanToSave; - } - - @Override - protected FloatingObject onUpdate(TopiaContext tx, Object parentBean, FloatingObject beanToSave) throws TopiaException { - - getLoadBinder().copy(getBean(), beanToSave); - - return beanToSave; - } + //FIXME +// @Override +// protected boolean doSave(FloatingObject bean, +// DataService dataService, +// DataSource dataSource, +// TopiaEntityBinder<FloatingObject> binder) throws Exception { +// +// String activityId = getSelectedParentId(); +// +// if (bean.getTopiaId() == null) { +// +// dataService.create(dataSource, activityId, bean, binder, getCreateExecutor()); +// } else { +// +// dataService.update(dataSource, null, bean, getUpdateExecutor()); +// } +// return true; +// } + + //FIXME +// @Override +// protected FloatingObject onCreate(TopiaContext tx, Object parent, FloatingObject editBean) throws TopiaException { +// ActivitySeine parentBean = (ActivitySeine) parent; +// FloatingObjectDAO dao = ObserveDAOHelper.getFloatingObjectDAO(tx); +// FloatingObject beanToSave = dao.create(); +// editBean.setTopiaId(beanToSave.getTopiaId()); +// parentBean.addFloatingObject(beanToSave); +// return beanToSave; +// } + + //FIXME +// @Override +// protected FloatingObject onUpdate(TopiaContext tx, Object parentBean, FloatingObject beanToSave) throws TopiaException { +// +// getLoadBinder().copy(getBean(), beanToSave); +// +// return beanToSave; +// } @Override protected void afterSave(boolean refresh) { super.afterSave(refresh); - FloatingObject bean = getBean(); + FloatingObjectDto bean = getBean(); ObserveTreeHelper treeHelper = getTreeHelper(getUi()); @@ -224,28 +220,30 @@ public class FloatingObjectUIHandler extends ContentUIHandler<FloatingObject> { } } - @Override - protected boolean doDelete(FloatingObject bean, - DataService dataService, - DataSource dataSource, - TopiaExecutor2<? extends TopiaEntity, FloatingObject> deletor) throws Exception { - - if (askToDelete(bean)) { - return false; - } - - if (bean.getTopiaId() != null) { - - String activityId = getSelectedParentId(); - dataService.delete(dataSource, activityId, bean, deletor); - } - return true; - } - - @Override - protected void onDelete(TopiaContext tx, Object parent, FloatingObject beanToDelete) { - ActivitySeine parentBean = (ActivitySeine) parent; - parentBean.removeFloatingObject(beanToDelete); - } + //FIXME +// @Override +// protected boolean doDelete(FloatingObject bean, +// DataService dataService, +// DataSource dataSource, +// TopiaExecutor2<? extends TopiaEntity, FloatingObject> deletor) throws Exception { +// +// if (askToDelete(bean)) { +// return false; +// } +// +// if (bean.getTopiaId() != null) { +// +// String activityId = getSelectedParentId(); +// dataService.delete(dataSource, activityId, bean, deletor); +// } +// return true; +// } + + //FIXME +// @Override +// protected void onDelete(TopiaContext tx, Object parent, FloatingObject beanToDelete) { +// ActivitySeine parentBean = (ActivitySeine) parent; +// parentBean.removeFloatingObject(beanToDelete); +// } } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/seine/FloatingObjectUIModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/seine/FloatingObjectUIModel.java index ff03301..fa3589a 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/seine/FloatingObjectUIModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/seine/FloatingObjectUIModel.java @@ -22,7 +22,7 @@ package fr.ird.observe.ui.content.impl.seine; * #L% */ -import fr.ird.observe.BinderService; +import fr.ird.observe.business.BinderService; import fr.ird.observe.services.dto.seine.FloatingObjectDto; import fr.ird.observe.ui.content.ContentUIModel; import org.nuiton.util.beans.BinderModelBuilder; 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 73772e0..e999bfd 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 @@ -23,17 +23,16 @@ package fr.ird.observe.ui.content.impl.seine; import fr.ird.observe.DataService; import fr.ird.observe.ObserveDAOHelper; -import fr.ird.observe.db.DataContext; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.DataSourceException; -import fr.ird.observe.db.constants.DataContextType; -import fr.ird.observe.db.util.TopiaExecutor2; +import fr.ird.observe.business.db.DataContext; +import fr.ird.observe.business.db.DataSource; +import fr.ird.observe.business.db.DataSourceException; +import fr.ird.observe.business.db.constants.DataContextType; +import fr.ird.observe.business.util.TopiaExecutor2; +import fr.ird.observe.services.dto.constants.seine.SchoolType; import fr.ird.observe.services.dto.constants.seine.SchoolTypeDto; import fr.ird.observe.services.dto.seine.ActivitySeineDto; -import fr.ird.observe.services.dto.seine.NonTargetSampleDto; import fr.ird.observe.services.dto.seine.RouteDto; import fr.ird.observe.services.dto.seine.SetSeineDto; -import fr.ird.observe.services.dto.seine.TargetSampleDto; import fr.ird.observe.ui.UIHelper; import fr.ird.observe.ui.content.ContentMode; import fr.ird.observe.ui.content.ContentUIHandler; @@ -67,7 +66,7 @@ import static org.nuiton.i18n.I18n.t; * @author Tony Chemit - chemit@codelutin.com * @since 1.0 */ -public class SetSeineUIHandler extends ContentUIHandler<SetSeine> { +public class SetSeineUIHandler extends ContentUIHandler<SetSeineDto> { /** Logger */ static private Log log = LogFactory.getLog(SetSeineUIHandler.class); @@ -104,10 +103,12 @@ public class SetSeineUIHandler extends ContentUIHandler<SetSeine> { } public String updateTypeValue(SchoolType schoolType) { - if (schoolType == null) { + //FIXME +// if (schoolType == null) { return t("observe.setSeine.schoolType.not.fill"); - } - return t(schoolType.getI18nKey()); +// } + //FIXME +// return t(schoolType.getI18nKey()); } @Override @@ -126,7 +127,7 @@ public class SetSeineUIHandler extends ContentUIHandler<SetSeine> { return ContentMode.CREATE; } - if (dataContext.isSelectedOpen(ActivitySeine.class)) { + if (dataContext.isSelectedOpen(ActivitySeineDto.class)) { // l'activity est ouverte, mode édition return ContentMode.UPDATE; @@ -135,7 +136,7 @@ public class SetSeineUIHandler extends ContentUIHandler<SetSeine> { // l'activity n'est pas ouverte, mode lecture addMessage(getUi(), NuitonValidatorScope.INFO, - getEntityLabel(ActivitySeine.class), + getEntityLabel(ActivitySeineDto.class), t("observe.activitySeine.message.not.open")); return ContentMode.READ; } @@ -169,32 +170,35 @@ public class SetSeineUIHandler extends ContentUIHandler<SetSeine> { } ContentMode mode = computeContentMode(); - DataService dataService = getDataService(); - - SetSeine bean = getBean(); - - TopiaEntityBinder<SetSeine> binder = getLoadBinder(); - DataSource source = getDataSource(); - if (setId == null) { - - // creation mode - dataService.preCreate(source, activityId, bean, binder, getPreCreateExecutor()); - - } else { - - // update mode - dataService.loadEditEntity(source, setId, getLoadExecutor()); - } - - Route route = (Route) getDataService().loadEntity(source, getDataContext().getSelectedRouteId(), false); - - Date time = bean.getStartTime(); - - Date date = route.getDate(); - - Date dateAndTime = DateUtil.getDateAndTime(date, time, false, false); - - getUi().getStartTime().setDate(dateAndTime); + //FIXME +// DataService dataService = getDataService(); + + SetSeineDto bean = getBean(); + + //FIXME +// TopiaEntityBinder<SetSeine> binder = getLoadBinder(); +// DataSource source = getDataSource(); +// if (setId == null) { +// +// // creation mode +// dataService.preCreate(source, activityId, bean, binder, getPreCreateExecutor()); +// +// } else { +// +// // update mode +// dataService.loadEditEntity(source, setId, getLoadExecutor()); +// } + + //FIXME +// RouteDto route = (RouteDto) getDataService().loadEntity(source, getDataContext().getSelectedRouteId(), false); +// +// Date time = bean.getStartTime(); +// +// Date date = route.getDate(); +// +// Date dateAndTime = DateUtil.getDateAndTime(date, time, false, false); +// +// getUi().getStartTime().setDate(dateAndTime); // utilisation du mode requis setContentMode(mode); @@ -207,62 +211,62 @@ public class SetSeineUIHandler extends ContentUIHandler<SetSeine> { } } - @Override - protected SetSeine onPreCreate(TopiaContext tx, Object parent, SetSeine bean) throws TopiaException { - - ActivitySeine parentBean = (ActivitySeine) parent; - - // on utilise l'heure de l'activité comme début de calée - Date date = DateUtil.getTime(parentBean.getTime(), false, false); - - bean.setStartTime(date); - - try { - - // pour les dates de fin on utilise la date de la route - Route route = (Route) getDataService().loadEntity( - getDataSource(), getDataContext().getSelectedRouteId(), false); - - bean.setEndSetTimeStamp(date); - bean.setEndPursingTimeStamp(date); - - bean.setEndSetDate(route.getDate()); - bean.setEndPursingDate(route.getDate()); - - } catch (DataSourceException e) { - throw new TopiaException("Could not obtain route", e); - } - - // recuperation du type de set a partir de l'activity - SchoolType schoolType = parentBean.getSchoolType(); - bean.setSchoolType(schoolType); - return bean; - } - - @Override - protected void onLoad(TopiaContext tx, SetSeine bean) throws TopiaException { - super.onLoad(tx, bean); - SetSeine editBean = getBean(); - getDataContext().getOpenRouteId(); - if (!editBean.isTargetSampleEmpty()) { - for (TargetSample e : editBean.getTargetSample()) { - e.isTargetLengthEmpty(); - } - } - if (!editBean.isNonTargetSampleEmpty()) { - for (NonTargetSample e : editBean.getNonTargetSample()) { - e.isNonTargetLengthEmpty(); - } - } - - UIHelper.processDataBinding(getUi(), - SetSeineUI.BINDING_END_SET_TIME_STAMP_DATE, - SetSeineUI.BINDING_END_PURSING_TIME_STAMP_DATE); - } +// @Override +// protected SetSeine onPreCreate(TopiaContext tx, Object parent, SetSeine bean) throws TopiaException { +// +// ActivitySeine parentBean = (ActivitySeine) parent; +// +// // on utilise l'heure de l'activité comme début de calée +// Date date = DateUtil.getTime(parentBean.getTime(), false, false); +// +// bean.setStartTime(date); +// +// try { +// +// // pour les dates de fin on utilise la date de la route +// Route route = (Route) getDataService().loadEntity( +// getDataSource(), getDataContext().getSelectedRouteId(), false); +// +// bean.setEndSetTimeStamp(date); +// bean.setEndPursingTimeStamp(date); +// +// bean.setEndSetDate(route.getDate()); +// bean.setEndPursingDate(route.getDate()); +// +// } catch (DataSourceException e) { +// throw new TopiaException("Could not obtain route", e); +// } +// +// // recuperation du type de set a partir de l'activity +// SchoolType schoolType = parentBean.getSchoolType(); +// bean.setSchoolType(schoolType); +// return bean; +// } + +// @Override +// protected void onLoad(TopiaContext tx, SetSeine bean) throws TopiaException { +// super.onLoad(tx, bean); +// SetSeine editBean = getBean(); +// getDataContext().getOpenRouteId(); +// if (!editBean.isTargetSampleEmpty()) { +// for (TargetSample e : editBean.getTargetSample()) { +// e.isTargetLengthEmpty(); +// } +// } +// if (!editBean.isNonTargetSampleEmpty()) { +// for (NonTargetSample e : editBean.getNonTargetSample()) { +// e.isNonTargetLengthEmpty(); +// } +// } +// +// UIHelper.processDataBinding(getUi(), +// SetSeineUI.BINDING_END_SET_TIME_STAMP_DATE, +// SetSeineUI.BINDING_END_PURSING_TIME_STAMP_DATE); +// } @Override public void startEditUI(String... binding) { - ContentUIModel<SetSeine> model = getModel(); + ContentUIModel<SetSeineDto> model = getModel(); boolean create = model.getMode() == ContentMode.CREATE; String contextName = getValidatorContextName(model.getMode()); getUi().getValidator().setContext(contextName); @@ -293,49 +297,52 @@ public class SetSeineUIHandler extends ContentUIHandler<SetSeine> { model.setModified(create); } - @Override - protected boolean doSave(SetSeine bean, - DataService dataService, - DataSource dataSource, - TopiaEntityBinder<SetSeine> binder) throws Exception { - - String activityId = getSelectedParentId(); - - if (bean.getTopiaId() == null) { - - dataService.create(dataSource, activityId, bean, binder, getCreateExecutor()); - } else { - - dataService.update(dataSource, null, bean, getUpdateExecutor()); - - } - return true; - } - - @Override - protected SetSeine onCreate(TopiaContext tx, Object parent, SetSeine editBean) throws TopiaException { - ActivitySeine parentBean = (ActivitySeine) parent; - SetSeine beanToSave = ObserveDAOHelper.getSetSeineDAO(tx).create(); - editBean.setTopiaId(beanToSave.getTopiaId()); - parentBean.setSetSeine(beanToSave); - return beanToSave; - } - - @Override - protected SetSeine onUpdate(TopiaContext tx, Object parentBean, SetSeine beanToSave) throws TopiaException { - - getLoadBinder().copyExcluding(getBean(), beanToSave, - SetSeine.PROPERTY_TARGET_SAMPLE, - SetSeine.PROPERTY_NON_TARGET_SAMPLE); - return beanToSave; - } + //FIXME +// @Override +// protected boolean doSave(SetSeine bean, +// DataService dataService, +// DataSource dataSource, +// TopiaEntityBinder<SetSeine> binder) throws Exception { +// +// String activityId = getSelectedParentId(); +// +// if (bean.getTopiaId() == null) { +// +// dataService.create(dataSource, activityId, bean, binder, getCreateExecutor()); +// } else { +// +// dataService.update(dataSource, null, bean, getUpdateExecutor()); +// +// } +// return true; +// } + + //FIXME +// @Override +// protected SetSeine onCreate(TopiaContext tx, Object parent, SetSeine editBean) throws TopiaException { +// ActivitySeine parentBean = (ActivitySeine) parent; +// SetSeine beanToSave = ObserveDAOHelper.getSetSeineDAO(tx).create(); +// editBean.setTopiaId(beanToSave.getTopiaId()); +// parentBean.setSetSeine(beanToSave); +// return beanToSave; +// } + + //FIXME +// @Override +// protected SetSeine onUpdate(TopiaContext tx, Object parentBean, SetSeine beanToSave) throws TopiaException { +// +// getLoadBinder().copyExcluding(getBean(), beanToSave, +// SetSeine.PROPERTY_TARGET_SAMPLE, +// SetSeine.PROPERTY_NON_TARGET_SAMPLE); +// return beanToSave; +// } @Override protected void afterSave(boolean refresh) { super.afterSave(refresh); - SetSeine bean = getBean(); + SetSeineDto bean = getBean(); SwingValidatorUtil.setValidatorChanged(getUi(), false); @@ -360,32 +367,34 @@ public class SetSeineUIHandler extends ContentUIHandler<SetSeine> { } } - @Override - protected boolean doDelete(SetSeine bean, - DataService dataService, - DataSource dataSource, - TopiaExecutor2<? extends TopiaEntity, SetSeine> deletor) throws Exception { - - if (askToDelete(bean)) { - return false; - } - - String activityId = getSelectedParentId(); - dataService.delete(dataSource, activityId, bean, deletor); - return true; - } - - @Override - protected void onDelete(TopiaContext tx, Object parent, SetSeine beanToDelete) throws TopiaException { - ActivitySeine parentBean = (ActivitySeine) parent; - - // on doit supprimer physiquement la set - // car il n'y a pas de delete-orphan sur une telle - // relation - ObserveDAOHelper.getSetSeineDAO(tx).delete(parentBean.getSetSeine()); - // supprime la reference sur l'activity - parentBean.setSetSeine(null); - } + //FIXME +// @Override +// protected boolean doDelete(SetSeine bean, +// DataService dataService, +// DataSource dataSource, +// TopiaExecutor2<? extends TopiaEntity, SetSeine> deletor) throws Exception { +// +// if (askToDelete(bean)) { +// return false; +// } +// +// String activityId = getSelectedParentId(); +// dataService.delete(dataSource, activityId, bean, deletor); +// return true; +// } + + //FIXME +// @Override +// protected void onDelete(TopiaContext tx, Object parent, SetSeine beanToDelete) throws TopiaException { +// ActivitySeine parentBean = (ActivitySeine) parent; +// +// // on doit supprimer physiquement la set +// // car il n'y a pas de delete-orphan sur une telle +// // relation +// ObserveDAOHelper.getSetSeineDAO(tx).delete(parentBean.getSetSeine()); +// // supprime la reference sur l'activity +// parentBean.setSetSeine(null); +// } protected void computeTabValidState(SwingValidatorMessageTableModel errorTableModel) { diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/seine/SetSeineUIModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/seine/SetSeineUIModel.java index e072654..73fe431 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/seine/SetSeineUIModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/seine/SetSeineUIModel.java @@ -23,7 +23,7 @@ package fr.ird.observe.ui.content.impl.seine; */ import com.google.common.collect.ImmutableSet; -import fr.ird.observe.BinderService; +import fr.ird.observe.business.BinderService; import fr.ird.observe.services.dto.seine.SetSeineDto; import fr.ird.observe.ui.content.ContentUIModel; import org.nuiton.util.beans.BinderModelBuilder; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/ContentListUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/ContentListUIHandler.java index 46fa00a..b568778 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/ContentListUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/ContentListUIHandler.java @@ -21,9 +21,9 @@ */ package fr.ird.observe.ui.content.list; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.DataSourceException; -import fr.ird.observe.db.constants.DataContextType; +import fr.ird.observe.business.db.DataSource; +import fr.ird.observe.business.db.DataSourceException; +import fr.ird.observe.business.db.constants.DataContextType; import fr.ird.observe.ui.actions.shared.SelectNodeUIAction; import fr.ird.observe.ui.content.ContentMode; import fr.ird.observe.ui.content.ContentUIHandler; 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 1e58026..661d644 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 @@ -23,12 +23,10 @@ package fr.ird.observe.ui.content.list.impl.longline; */ import fr.ird.observe.DataService; -import fr.ird.observe.db.DataContext; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.DataSourceException; -import fr.ird.observe.db.constants.DataContextType; -import fr.ird.observe.services.dto.longline.ActivityLonglineDto; -import fr.ird.observe.services.dto.longline.TripLonglineDto; +import fr.ird.observe.business.db.DataContext; +import fr.ird.observe.business.db.DataSource; +import fr.ird.observe.business.db.DataSourceException; +import fr.ird.observe.business.db.constants.DataContextType; import fr.ird.observe.ui.content.ContentMode; import fr.ird.observe.ui.content.list.ContentListUIHandler; import org.apache.commons.logging.Log; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/longline/ActivityLonglinesUIModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/longline/ActivityLonglinesUIModel.java index 0080710..1218f27 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/longline/ActivityLonglinesUIModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/longline/ActivityLonglinesUIModel.java @@ -22,7 +22,7 @@ package fr.ird.observe.ui.content.list.impl.longline; * #L% */ -import fr.ird.observe.BinderService; +import fr.ird.observe.business.BinderService; import fr.ird.observe.services.dto.longline.ActivityLonglineDto; import fr.ird.observe.services.dto.longline.TripLonglineDto; import fr.ird.observe.ui.content.list.ContentListUIModel; 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 674cbfb..b0599d1 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 @@ -23,12 +23,10 @@ package fr.ird.observe.ui.content.list.impl.longline; */ import fr.ird.observe.DataService; -import fr.ird.observe.db.DataContext; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.DataSourceException; -import fr.ird.observe.db.constants.DataContextType; -import fr.ird.observe.services.dto.longline.TripLonglineDto; -import fr.ird.observe.services.dto.referential.ProgramDto; +import fr.ird.observe.business.db.DataContext; +import fr.ird.observe.business.db.DataSource; +import fr.ird.observe.business.db.DataSourceException; +import fr.ird.observe.business.db.constants.DataContextType; import fr.ird.observe.ui.content.ContentMode; import fr.ird.observe.ui.content.list.ContentListUIHandler; import org.apache.commons.logging.Log; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/longline/TripLonglinesUIModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/longline/TripLonglinesUIModel.java index ee571c7..ac1a57c 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/longline/TripLonglinesUIModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/longline/TripLonglinesUIModel.java @@ -22,7 +22,7 @@ package fr.ird.observe.ui.content.list.impl.longline; * #L% */ -import fr.ird.observe.BinderService; +import fr.ird.observe.business.BinderService; import fr.ird.observe.services.dto.longline.TripLonglineDto; import fr.ird.observe.services.dto.referential.ProgramDto; import fr.ird.observe.ui.content.list.ContentListUIModel; 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 28fa457..7616c14 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 @@ -22,12 +22,10 @@ package fr.ird.observe.ui.content.list.impl.seine; import fr.ird.observe.DataService; -import fr.ird.observe.db.DataContext; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.DataSourceException; -import fr.ird.observe.db.constants.DataContextType; -import fr.ird.observe.services.dto.seine.ActivitySeineDto; -import fr.ird.observe.services.dto.seine.RouteDto; +import fr.ird.observe.business.db.DataContext; +import fr.ird.observe.business.db.DataSource; +import fr.ird.observe.business.db.DataSourceException; +import fr.ird.observe.business.db.constants.DataContextType; import fr.ird.observe.ui.content.ContentMode; import fr.ird.observe.ui.content.list.ContentListUIHandler; import org.apache.commons.logging.Log; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/ActivitySeinesUIModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/ActivitySeinesUIModel.java index a6cd5ba..156690f 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/ActivitySeinesUIModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/ActivitySeinesUIModel.java @@ -22,7 +22,7 @@ package fr.ird.observe.ui.content.list.impl.seine; * #L% */ -import fr.ird.observe.BinderService; +import fr.ird.observe.business.BinderService; import fr.ird.observe.services.dto.seine.ActivitySeineDto; import fr.ird.observe.services.dto.seine.RouteDto; import fr.ird.observe.ui.content.list.ContentListUIModel; 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 dc8300f..5f1ff0b 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 @@ -22,12 +22,10 @@ package fr.ird.observe.ui.content.list.impl.seine; import fr.ird.observe.DataService; -import fr.ird.observe.db.DataContext; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.DataSourceException; -import fr.ird.observe.db.constants.DataContextType; -import fr.ird.observe.services.dto.seine.RouteDto; -import fr.ird.observe.services.dto.seine.TripSeineDto; +import fr.ird.observe.business.db.DataContext; +import fr.ird.observe.business.db.DataSource; +import fr.ird.observe.business.db.DataSourceException; +import fr.ird.observe.business.db.constants.DataContextType; import fr.ird.observe.ui.content.ContentMode; import fr.ird.observe.ui.content.list.ContentListUIHandler; import org.apache.commons.logging.Log; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/RoutesUIModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/RoutesUIModel.java index 548454b..e6bd247 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/RoutesUIModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/RoutesUIModel.java @@ -22,7 +22,7 @@ package fr.ird.observe.ui.content.list.impl.seine; * #L% */ -import fr.ird.observe.BinderService; +import fr.ird.observe.business.BinderService; import fr.ird.observe.services.dto.seine.RouteDto; import fr.ird.observe.services.dto.seine.TripSeineDto; import fr.ird.observe.ui.content.list.ContentListUIModel; 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 197838e..fa75ef0 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 @@ -22,12 +22,10 @@ package fr.ird.observe.ui.content.list.impl.seine; import fr.ird.observe.DataService; -import fr.ird.observe.db.DataContext; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.DataSourceException; -import fr.ird.observe.db.constants.DataContextType; -import fr.ird.observe.services.dto.referential.ProgramDto; -import fr.ird.observe.services.dto.seine.TripSeineDto; +import fr.ird.observe.business.db.DataContext; +import fr.ird.observe.business.db.DataSource; +import fr.ird.observe.business.db.DataSourceException; +import fr.ird.observe.business.db.constants.DataContextType; import fr.ird.observe.ui.content.ContentMode; import fr.ird.observe.ui.content.list.ContentListUIHandler; import org.apache.commons.logging.Log; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/TripSeinesUIModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/TripSeinesUIModel.java index a9ee14d..1e71743 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/TripSeinesUIModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/TripSeinesUIModel.java @@ -22,7 +22,7 @@ package fr.ird.observe.ui.content.list.impl.seine; * #L% */ -import fr.ird.observe.BinderService; +import fr.ird.observe.business.BinderService; import fr.ird.observe.services.dto.referential.ProgramDto; import fr.ird.observe.services.dto.seine.TripSeineDto; import fr.ird.observe.ui.content.list.ContentListUIModel; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/ContentOpenableUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/ContentOpenableUIHandler.java index 91a6aa5..6b9e413 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/ContentOpenableUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/ContentOpenableUIHandler.java @@ -21,13 +21,10 @@ */ package fr.ird.observe.ui.content.open; -import fr.ird.observe.DataService; -import fr.ird.observe.ObserveServiceHelper; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.DataSourceException; -import fr.ird.observe.db.constants.DataContextType; -import fr.ird.observe.services.dto.OpenableEntityDto; -import fr.ird.observe.services.dto.TripDto; +import fr.ird.observe.business.ObserveServiceHelper; +import fr.ird.observe.business.db.DataSource; +import fr.ird.observe.business.db.constants.DataContextType; +import fr.ird.observe.services.dto.OpenableDto; import fr.ird.observe.ui.content.ContentMode; import fr.ird.observe.ui.content.ContentUIHandler; import fr.ird.observe.ui.tree.ObserveNode; @@ -35,7 +32,6 @@ import fr.ird.observe.ui.tree.ObserveTreeHelper; import jaxx.runtime.swing.ErrorDialogUI; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.nuiton.topia.persistence.TopiaEntity; import org.nuiton.validator.NuitonValidatorScope; import static org.nuiton.i18n.I18n.t; @@ -44,7 +40,7 @@ import static org.nuiton.i18n.I18n.t; * @author Tony Chemit - chemit@codelutin.com * @since 1.0 */ -public abstract class ContentOpenableUIHandler<E extends TopiaEntity & OpenableEntity> extends ContentUIHandler<E> { +public abstract class ContentOpenableUIHandler<E extends OpenableDto> extends ContentUIHandler<E> { protected static final String POSITION_OPENABLE = "positionOpenable"; @@ -97,8 +93,9 @@ public abstract class ContentOpenableUIHandler<E extends TopiaEntity & OpenableE } public final void doOpenData() throws Exception { - String id = getBean().getTopiaId(); - getDataService().updateOpenProperty(getDataSource(), id, true); + String id = getBean().getId(); + //FIXME +// getDataService().updateOpenProperty(getDataSource(), id, true); } public final void afterOpenData() { @@ -137,11 +134,12 @@ public abstract class ContentOpenableUIHandler<E extends TopiaEntity & OpenableE public boolean doCloseData() throws Exception { - return doCloseData(getBean().getTopiaId()); + return doCloseData(getBean().getId()); } public final boolean doCloseData(String id) throws Exception { - getDataService().updateOpenProperty(getDataSource(), id, false); + //FIXME +// getDataService().updateOpenProperty(getDataSource(), id, false); return true; } @@ -168,7 +166,8 @@ public abstract class ContentOpenableUIHandler<E extends TopiaEntity & OpenableE // selectedNode = selectedNode.getParent(); // } // treeHelper.refreshNode(selectedNode, true); - treeHelper.reloadSelectedNode(bean instanceof Trip, true); + //FIXME +// treeHelper.reloadSelectedNode(bean instanceof Trip, true); updateActions(); } @@ -275,23 +274,24 @@ public abstract class ContentOpenableUIHandler<E extends TopiaEntity & OpenableE treeHelper.addUnsavedNode(parentNode, getBeanType()); } - protected final void obtainChildPosition(E bean, - DataService dataService, - DataSource dataSource) throws DataSourceException { - - String containerId = getSelectedParentId(); - - int position = dataService.getOpenablePosition(dataSource, - containerId, - bean.getTopiaId() - ); - - if (log.isDebugEnabled()) { - log.debug("Position of child : " + position); - } - - getUi().setContextValue(position, POSITION_OPENABLE); - } + //FIXME +// protected final void obtainChildPosition(E bean, +// DataService dataService, +// DataSource dataSource) throws DataSourceException { +// +// String containerId = getSelectedParentId(); +// +// int position = dataService.getOpenablePosition(dataSource, +// containerId, +// bean.getTopiaId() +// ); +// +// if (log.isDebugEnabled()) { +// log.debug("Position of child : " + position); +// } +// +// getUi().setContextValue(position, POSITION_OPENABLE); +// } protected final void finalizeOpenUI(ContentMode mode, boolean create) { @@ -304,15 +304,16 @@ public abstract class ContentOpenableUIHandler<E extends TopiaEntity & OpenableE if (!create) { - Trip currentTrip = ObserveServiceHelper.getValidationContext().getCurrentTrip(); - - if (currentTrip != null && currentTrip.isHistoricalData()) { - - if (log.isInfoEnabled()) { - log.info(prefix + "Using a historical fish trip " + currentTrip.getTopiaId()); - } - historicalData = true; - } + //FIXME +// Trip currentTrip = ObserveServiceHelper.getValidationContext().getCurrentTrip(); +// +// if (currentTrip != null && currentTrip.isHistoricalData()) { +// +// if (log.isInfoEnabled()) { +// log.info(prefix + "Using a historical fish trip " + currentTrip.getTopiaId()); +// } +// historicalData = true; +// } } 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 5396708..6e39265 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 @@ -22,14 +22,11 @@ package fr.ird.observe.ui.content.open.impl.longline; * #L% */ -import fr.ird.observe.DataService; -import fr.ird.observe.ObserveDAOHelper; -import fr.ird.observe.ObserveTechnicalException; -import fr.ird.observe.db.DataContext; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.DataSourceException; -import fr.ird.observe.db.constants.DataContextType; -import fr.ird.observe.db.util.TopiaExecutor2; +import fr.ird.observe.business.ObserveTechnicalException; +import fr.ird.observe.business.db.DataContext; +import fr.ird.observe.business.db.DataSource; +import fr.ird.observe.business.db.DataSourceException; +import fr.ird.observe.business.db.constants.DataContextType; import fr.ird.observe.services.dto.longline.ActivityLonglineDto; import fr.ird.observe.services.dto.longline.TripLonglineDto; import fr.ird.observe.ui.content.ContentMode; @@ -39,11 +36,6 @@ import fr.ird.observe.ui.tree.ObserveNode; import fr.ird.observe.ui.tree.ObserveTreeHelper; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.nuiton.topia.TopiaContext; -import org.nuiton.topia.TopiaException; -import org.nuiton.topia.persistence.TopiaEntity; -import org.nuiton.topia.persistence.util.Loador; -import org.nuiton.topia.persistence.util.TopiaEntityBinder; import org.nuiton.validator.NuitonValidatorScope; import java.util.Calendar; @@ -58,7 +50,7 @@ import static org.nuiton.i18n.I18n.t; * @author Tony Chemit - chemit@codelutin.com * @since 3.7 */ -public class ActivityLonglineUIHandler extends ContentOpenableUIHandler<ActivityLongline> { +public class ActivityLonglineUIHandler extends ContentOpenableUIHandler<ActivityLonglineDto> { /** Logger */ static private Log log = LogFactory.getLog(ActivityLonglineUIHandler.class); @@ -101,7 +93,7 @@ public class ActivityLonglineUIHandler extends ContentOpenableUIHandler<Activity } // l'activity existe en base - if (dataContext.isSelectedOpen(ActivityLongline.class)) { + if (dataContext.isSelectedOpen(ActivityLonglineDto.class)) { // l'activity est ouverte, donc modifiable return ContentMode.UPDATE; @@ -110,12 +102,12 @@ public class ActivityLonglineUIHandler extends ContentOpenableUIHandler<Activity ActivityLonglineUI ui = getUi(); // l'activity n'est pas ouverte, donc pas éditable - if (!dataContext.isSelectedOpen(TripLongline.class)) { + if (!dataContext.isSelectedOpen(TripLonglineDto.class)) { // la marée n'est pas ouverte addMessage(ui, NuitonValidatorScope.INFO, - getEntityLabel(TripLongline.class), + getEntityLabel(TripLonglineDto.class), t("observe.tripLongline.message.not.open")); if (getModel().isHistoricalData()) { @@ -159,28 +151,31 @@ public class ActivityLonglineUIHandler extends ContentOpenableUIHandler<Activity if (log.isInfoEnabled()) { log.info(prefix + "content mode " + mode); } - ActivityLongline bean = getBean(); + ActivityLonglineDto bean = getBean(); - DataService dataService = getDataService(); + //FIXME +// DataService dataService = getDataService(); boolean create = activityId == null; - Loador<ActivityLongline> binder = getLoadBinder(); + //FIXME +// Loador<ActivityLongline> binder = getLoadBinder(); DataSource source = getDataSource(); - if (create) { - - // create mode - dataService.preCreate(source, tripId, bean, binder, getPreCreateExecutor()); - - } else { - - // update mode - dataService.loadEditEntity(source, activityId, getLoadExecutor()); - - } + //FIXME +// if (create) { +// +// // create mode +// dataService.preCreate(source, tripId, bean, binder, getPreCreateExecutor()); +// +// } else { +// +// // update mode +// dataService.loadEditEntity(source, activityId, getLoadExecutor()); +// +// } if (log.isDebugEnabled()) { log.debug(" long - lat = " + bean.getLongitude() + @@ -199,54 +194,55 @@ public class ActivityLonglineUIHandler extends ContentOpenableUIHandler<Activity getModel().setModified(create); } - @Override - protected ActivityLongline onPreCreate(TopiaContext tx, Object parent, ActivityLongline bean) throws TopiaException { - TripLongline parentBean = (TripLongline) parent; - - bean.setOpen(true); - bean.setLatitude(null); - bean.setLongitude(null); - - Date timestamp; - - ActivityLongline lastActivityLongline = parentBean.getLastActivity(); - if (lastActivityLongline == null) { - - // première activité, on utilise la date de début de marée (voir http://forge.codelutin.com/issues/6777) - Calendar calendar = Calendar.getInstance(); - calendar.setTime(parentBean.getStartDate()); - timestamp = calendar.getTime(); - - } else { - - // passage en coordonnées absolue + quadrant - lastActivityLongline.initCoordinates(); - - // on recupère le quadrant de cette activity - // et on l'affecte à la nouvelle activity - Integer quadrant = lastActivityLongline.getQuadrant(); - if (log.isDebugEnabled()) { - log.debug("use quadrant of previous activity [" + quadrant + "]"); - } - bean.setQuadrant(quadrant); - - // on reprend la date et l'heure de la dernière activité - timestamp = lastActivityLongline.getTimeStamp(); - } - - bean.setTimeStamp(timestamp); - - if (log.isDebugEnabled()) { - log.debug("has pre-created : " + bean); - } - return bean; - } + //FIXME +// @Override +// protected ActivityLongline onPreCreate(TopiaContext tx, Object parent, ActivityLongline bean) throws TopiaException { +// TripLongline parentBean = (TripLongline) parent; +// +// bean.setOpen(true); +// bean.setLatitude(null); +// bean.setLongitude(null); +// +// Date timestamp; +// +// ActivityLongline lastActivityLongline = parentBean.getLastActivity(); +// if (lastActivityLongline == null) { +// +// // première activité, on utilise la date de début de marée (voir http://forge.codelutin.com/issues/6777) +// Calendar calendar = Calendar.getInstance(); +// calendar.setTime(parentBean.getStartDate()); +// timestamp = calendar.getTime(); +// +// } else { +// +// // passage en coordonnées absolue + quadrant +// lastActivityLongline.initCoordinates(); +// +// // on recupère le quadrant de cette activity +// // et on l'affecte à la nouvelle activity +// Integer quadrant = lastActivityLongline.getQuadrant(); +// if (log.isDebugEnabled()) { +// log.debug("use quadrant of previous activity [" + quadrant + "]"); +// } +// bean.setQuadrant(quadrant); +// +// // on reprend la date et l'heure de la dernière activité +// timestamp = lastActivityLongline.getTimeStamp(); +// } +// +// bean.setTimeStamp(timestamp); +// +// if (log.isDebugEnabled()) { +// log.debug("has pre-created : " + bean); +// } +// return bean; +// } @Override public void startEditUI(String... binding) { ActivityLonglineUI ui = getUi(); - ContentUIModel<ActivityLongline> model = getModel(); + ContentUIModel<ActivityLonglineDto> model = getModel(); boolean create = model.getMode() == ContentMode.CREATE; String contextName = getValidatorContextName(model.getMode()); @@ -254,12 +250,12 @@ public class ActivityLonglineUIHandler extends ContentOpenableUIHandler<Activity if (create) { addMessage(ui, NuitonValidatorScope.INFO, - getEntityLabel(ActivityLongline.class), + getEntityLabel(ActivityLonglineDto.class), t("observe.activityLongline.message.creating")); } else { addMessage(ui, NuitonValidatorScope.INFO, - getEntityLabel(ActivityLongline.class), + getEntityLabel(ActivityLonglineDto.class), t("observe.activityLongline.message.updating")); } @@ -274,94 +270,98 @@ public class ActivityLonglineUIHandler extends ContentOpenableUIHandler<Activity model.setModified(create); } - @Override - protected boolean doSave(ActivityLongline bean, - DataService dataService, - DataSource dataSource, - TopiaEntityBinder<ActivityLongline> binder) throws Exception { - - if (log.isDebugEnabled()) { - log.debug(" long - lat = " + bean.getLongitude() + " - " + bean.getLatitude()); - } - boolean create = bean.getTopiaId() == null; - - String tripId = getSelectedParentId(); - - bean.setOpen(true); - - if (create) { - bean = dataService.create(dataSource, tripId, bean, binder, getCreateExecutor()); - - } else { - - dataService.update(dataSource, tripId, bean, getUpdateExecutor()); - } - - updateTripEndDate(tripId); - - obtainChildPosition(bean, dataService, dataSource); - - return true; - } - - @Override - protected ActivityLongline onCreate(TopiaContext tx, Object parent, ActivityLongline editBean) throws TopiaException { - TripLongline parentBean = (TripLongline) parent; - ActivityLongline beanToSave = ObserveDAOHelper.getActivityLonglineDAO(tx).create(); - editBean.setTopiaId(beanToSave.getTopiaId()); - parentBean.addActivityLongline(beanToSave); - return beanToSave; - } - - @Override - protected ActivityLongline onUpdate(TopiaContext tx, Object parentBean, ActivityLongline beanToSave) throws TopiaException { - - ActivityLongline editBean = getBean(); - - if (log.isInfoEnabled()) { - log.info("Final time to use : " + editBean.getTimeStamp()); - } - - getLoadBinder().copyExcluding(editBean, beanToSave, - ActivityLongline.PROPERTY_ENCOUNTER, - ActivityLongline.PROPERTY_SENSOR_USED); - - if (log.isInfoEnabled()) { - log.info("Is activity open ? : " + beanToSave.isOpen()); - } - return beanToSave; - } - - @Override - protected boolean doDelete(ActivityLongline bean, - DataService dataService, - DataSource dataSource, - TopiaExecutor2<? extends TopiaEntity, ActivityLongline> deletor) throws Exception { - - if (askToDelete(bean)) { - return false; - } - if (log.isInfoEnabled()) { - log.info("Will delete Activity " + bean.getTopiaId()); - } - - String tripId = getSelectedParentId(); - dataService.delete(dataSource, tripId, bean, deletor); - if (log.isInfoEnabled()) { - log.info("Delete done for Activity " + bean.getTopiaId()); - } + //FIXME +// @Override +// protected boolean doSave(ActivityLongline bean, +// DataService dataService, +// DataSource dataSource, +// TopiaEntityBinder<ActivityLongline> binder) throws Exception { +// +// if (log.isDebugEnabled()) { +// log.debug(" long - lat = " + bean.getLongitude() + " - " + bean.getLatitude()); +// } +// boolean create = bean.getTopiaId() == null; +// +// String tripId = getSelectedParentId(); +// +// bean.setOpen(true); +// +// if (create) { +// bean = dataService.create(dataSource, tripId, bean, binder, getCreateExecutor()); +// +// } else { +// +// dataService.update(dataSource, tripId, bean, getUpdateExecutor()); +// } +// +// updateTripEndDate(tripId); +// +// obtainChildPosition(bean, dataService, dataSource); +// +// return true; +// } - updateTripEndDate(tripId); - return true; + //FIXME +// @Override +// protected ActivityLongline onCreate(TopiaContext tx, Object parent, ActivityLongline editBean) throws TopiaException { +// TripLongline parentBean = (TripLongline) parent; +// ActivityLongline beanToSave = ObserveDAOHelper.getActivityLonglineDAO(tx).create(); +// editBean.setTopiaId(beanToSave.getTopiaId()); +// parentBean.addActivityLongline(beanToSave); +// return beanToSave; +// } - } + //FIXME +// @Override +// protected ActivityLongline onUpdate(TopiaContext tx, Object parentBean, ActivityLongline beanToSave) throws TopiaException { +// +// ActivityLongline editBean = getBean(); +// +// if (log.isInfoEnabled()) { +// log.info("Final time to use : " + editBean.getTimeStamp()); +// } +// +// getLoadBinder().copyExcluding(editBean, beanToSave, +// ActivityLongline.PROPERTY_ENCOUNTER, +// ActivityLongline.PROPERTY_SENSOR_USED); +// +// if (log.isInfoEnabled()) { +// log.info("Is activity open ? : " + beanToSave.isOpen()); +// } +// return beanToSave; +// } + //FIXME +// @Override +// protected boolean doDelete(ActivityLongline bean, +// DataService dataService, +// DataSource dataSource, +// TopiaExecutor2<? extends TopiaEntity, ActivityLongline> deletor) throws Exception { +// +// if (askToDelete(bean)) { +// return false; +// } +// if (log.isInfoEnabled()) { +// log.info("Will delete Activity " + bean.getTopiaId()); +// } +// +// String tripId = getSelectedParentId(); +// dataService.delete(dataSource, tripId, bean, deletor); +// if (log.isInfoEnabled()) { +// log.info("Delete done for Activity " + bean.getTopiaId()); +// } +// +// updateTripEndDate(tripId); +// return true; +// +// } - @Override - protected void onDelete(TopiaContext tx, Object parent, ActivityLongline beanToDelete) { - TripLongline parentBean = (TripLongline) parent; - parentBean.removeActivityLongline(beanToDelete); - } + //FIXME +// @Override +// protected void onDelete(TopiaContext tx, Object parent, ActivityLongline beanToDelete) { +// TripLongline parentBean = (TripLongline) parent; +// parentBean.removeActivityLongline(beanToDelete); +// } @Override protected void afterSave(boolean refresh) { @@ -384,37 +384,38 @@ public class ActivityLonglineUIHandler extends ContentOpenableUIHandler<Activity // - pas d'activity d'ouverte // - la maree courante est ouverte boolean canReopen = !create && - dataContext.isSelectedOpen(TripLongline.class) && + dataContext.isSelectedOpen(TripLonglineDto.class) && !dataContext.isOpenActivity(); return canReopen; } public static final String UPDATE_MAREE_NODE = "updateTripNode"; - protected void updateTripEndDate(String tripId) { - - boolean wasUpdated; - - // on met a jour si necessaire la date de fin de la maree - try { - wasUpdated = getDataService().updateEndDate(getDataSource(), tripId); - - } catch (DataSourceException e) { - throw new ObserveTechnicalException("Could not update end date", e); - } - - if (wasUpdated) { - - // la date de fin a ete modifiee, il faut : redessiner le noeud de la maree le repositionner - getUi().setContextValue(Boolean.TRUE, UPDATE_MAREE_NODE); - - } else { - - getUi().removeContextValue(Boolean.class, UPDATE_MAREE_NODE); - - } - - } + //FIXME +// protected void updateTripEndDate(String tripId) { +// +// boolean wasUpdated; +// +// // on met a jour si necessaire la date de fin de la maree +// try { +// wasUpdated = getDataService().updateEndDate(getDataSource(), tripId); +// +// } catch (DataSourceException e) { +// throw new ObserveTechnicalException("Could not update end date", e); +// } +// +// if (wasUpdated) { +// +// // la date de fin a ete modifiee, il faut : redessiner le noeud de la maree le repositionner +// getUi().setContextValue(Boolean.TRUE, UPDATE_MAREE_NODE); +// +// } else { +// +// getUi().removeContextValue(Boolean.class, UPDATE_MAREE_NODE); +// +// } +// +// } protected void repaintTripNode() { diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/longline/ActivityLonglineUIModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/longline/ActivityLonglineUIModel.java index be56f54..c7b3b84 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/longline/ActivityLonglineUIModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/longline/ActivityLonglineUIModel.java @@ -22,7 +22,7 @@ package fr.ird.observe.ui.content.open.impl.longline; * #L% */ -import fr.ird.observe.BinderService; +import fr.ird.observe.business.BinderService; import fr.ird.observe.services.dto.longline.ActivityLonglineDto; import fr.ird.observe.ui.content.open.ContentOpenableUIModel; import org.nuiton.util.beans.BinderModelBuilder; 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 d8713d9..dcda386 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 @@ -22,27 +22,18 @@ package fr.ird.observe.ui.content.open.impl.longline; * #L% */ -import fr.ird.observe.DataService; import fr.ird.observe.ObserveConfig; -import fr.ird.observe.ObserveDAOHelper; -import fr.ird.observe.db.DataContext; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.constants.DataContextType; -import fr.ird.observe.db.util.TopiaExecutor2; -import fr.ird.observe.services.dto.longline.ActivityLonglinesDto; +import fr.ird.observe.business.db.DataContext; +import fr.ird.observe.business.db.DataSource; +import fr.ird.observe.business.db.constants.DataContextType; +import fr.ird.observe.services.dto.longline.ActivityLonglineDtos; import fr.ird.observe.services.dto.longline.TripLonglineDto; -import fr.ird.observe.services.dto.referential.ProgramDto; import fr.ird.observe.ui.content.ContentMode; import fr.ird.observe.ui.content.open.ContentOpenableUIHandler; import fr.ird.observe.ui.content.open.ContentOpenableUIModel; import fr.ird.observe.ui.util.tripMap.TripMapUI; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.nuiton.topia.TopiaContext; -import org.nuiton.topia.TopiaException; -import org.nuiton.topia.persistence.TopiaDAO; -import org.nuiton.topia.persistence.TopiaEntity; -import org.nuiton.topia.persistence.util.TopiaEntityBinder; import org.nuiton.util.DateUtil; import javax.swing.JTabbedPane; @@ -60,7 +51,7 @@ import static org.nuiton.i18n.I18n.t; * @author Tony Chemit - chemit@codelutin.com * @since 3.7 */ -public class TripLonglineUIHandler extends ContentOpenableUIHandler<TripLongline> { +public class TripLonglineUIHandler extends ContentOpenableUIHandler<TripLonglineDto> { /** Logger */ static private final Log log = LogFactory.getLog(TripLonglineUIHandler.class); @@ -90,7 +81,7 @@ public class TripLonglineUIHandler extends ContentOpenableUIHandler<TripLongline return ContentMode.CREATE; } - if (dataContext.isSelectedOpen(TripLongline.class)) { + if (dataContext.isSelectedOpen(TripLonglineDto.class)) { // maree ouverte return ContentMode.UPDATE; @@ -156,9 +147,10 @@ public class TripLonglineUIHandler extends ContentOpenableUIHandler<TripLongline log.info(prefix + "mode = " + mode); } - DataService dataService = getDataService(); + //FIXME +// DataService dataService = getDataService(); - TripLongline bean = getBean(); + TripLonglineDto bean = getBean(); DataSource source = getDataSource(); boolean create = tripId == null; @@ -169,7 +161,8 @@ public class TripLonglineUIHandler extends ContentOpenableUIHandler<TripLongline if (log.isInfoEnabled()) { log.info(prefix + "create a new trip"); } - dataService.preCreate(source, programId, bean, getLoadBinder(), getPreCreateExecutor()); + //FIXME +// dataService.preCreate(source, programId, bean, getLoadBinder(), getPreCreateExecutor()); } else { @@ -177,12 +170,14 @@ public class TripLonglineUIHandler extends ContentOpenableUIHandler<TripLongline if (log.isInfoEnabled()) { log.info(prefix + "using existing trip " + tripId); } - dataService.loadEditEntity(source, tripId, getLoadExecutor()); + //FIXME +// dataService.loadEditEntity(source, tripId, getLoadExecutor()); if (!bean.isActivityLonglineEmpty()) { // on force le trie des routes - ActivityLonglines.sort(bean.getActivityLongline()); + //FIXME +// ActivityLonglineDtos.sort(bean.getActivityLongline()); } } @@ -193,27 +188,28 @@ public class TripLonglineUIHandler extends ContentOpenableUIHandler<TripLongline finalizeOpenUI(mode, create); } - @Override - protected TripLongline onPreCreate(TopiaContext tx, Object parent, TripLongline bean) throws TopiaException { - - Program parentBean = (Program) parent; - Date date = DateUtil.getDay(new Date()); - bean.setStartDate(date); - bean.setEndDate(date); - if (log.isDebugEnabled()) { - log.debug("start date : " + date); - log.debug("program : " + parentBean); - } - bean.setProgram(parentBean); - return bean; - } + //FIXME +// @Override +// protected TripLongline onPreCreate(TopiaContext tx, Object parent, TripLongline bean) throws TopiaException { +// +// Program parentBean = (Program) parent; +// Date date = DateUtil.getDay(new Date()); +// bean.setStartDate(date); +// bean.setEndDate(date); +// if (log.isDebugEnabled()) { +// log.debug("start date : " + date); +// log.debug("program : " + parentBean); +// } +// bean.setProgram(parentBean); +// return bean; +// } @Override public void startEditUI(String... binding) { TripLonglineUI ui = getUi(); - ContentOpenableUIModel<TripLongline> model = getModel(); + ContentOpenableUIModel<TripLonglineDto> model = getModel(); ContentMode mode = model.getMode(); @@ -258,88 +254,91 @@ public class TripLonglineUIHandler extends ContentOpenableUIHandler<TripLongline model.setModified(create); } - @Override - protected boolean doSave(TripLongline bean, - DataService dataService, - DataSource dataSource, - TopiaEntityBinder<TripLongline> binder) throws Exception { - - String programId = getDataContext().getSelectedProgramId(); - - // on force toujours la date a etre sans heure, minute,... - Date startDate = DateUtil.getDay(bean.getStartDate()); - if (log.isDebugEnabled()) { - log.debug("startDate = " + startDate); - } - bean.setStartDate(startDate); - - Date endDate = bean.getEndDate(); - if (log.isDebugEnabled()) { - log.debug("endDate = " + endDate); - } - - bean.setOpen(true); - - if (bean.getTopiaId() == null) { - - dataService.create(dataSource, programId, bean, binder, getCreateExecutor()); - - } else { - - dataService.update(dataSource, null, bean, getUpdateExecutor()); - - } - - // mise a jour de la date de fin - dataService.updateEndDate(dataSource, bean.getTopiaId()); - - // recuperation de la position de la maree dans le program - obtainChildPosition(bean, dataService, dataSource); - - return true; - } - - @Override - protected TripLongline onCreate(TopiaContext tx, Object parent, TripLongline editBean) throws TopiaException { - TripLongline beanToSave = ObserveDAOHelper.getTripLonglineDAO(tx).create(); - editBean.setTopiaId(beanToSave.getTopiaId()); - return beanToSave; - } - - @Override - protected TripLongline onUpdate(TopiaContext tx, Object parentBean, TripLongline beanToSave) throws TopiaException { - - getLoadBinder().copyExcluding(getBean(), beanToSave, TripLongline.PROPERTY_ACTIVITY_LONGLINE); - - return beanToSave; - } - - @Override - protected boolean doDelete(TripLongline bean, - DataService dataService, - DataSource dataSource, - TopiaExecutor2<? extends TopiaEntity, TripLongline> deletor) throws Exception { - - if (askToDelete(bean)) { - return false; - } - if (log.isInfoEnabled()) { - log.info("Will delete Trip " + bean.getTopiaId()); - } - - dataService.delete(dataSource, null, bean, deletor); - if (log.isInfoEnabled()) { - log.info("Delete done for Trip " + bean.getTopiaId()); - } - return true; - } - - @Override - protected void onDelete(TopiaContext tx, Object parentBean, TripLongline beanToDelete) throws TopiaException { - - TopiaDAO<TripLongline> dao = getDataSource().getDAO(tx, TripLongline.class); - dao.delete(beanToDelete); - } +// @Override +// protected boolean doSave(TripLongline bean, +// DataService dataService, +// DataSource dataSource, +// TopiaEntityBinder<TripLongline> binder) throws Exception { +// +// String programId = getDataContext().getSelectedProgramId(); +// +// // on force toujours la date a etre sans heure, minute,... +// Date startDate = DateUtil.getDay(bean.getStartDate()); +// if (log.isDebugEnabled()) { +// log.debug("startDate = " + startDate); +// } +// bean.setStartDate(startDate); +// +// Date endDate = bean.getEndDate(); +// if (log.isDebugEnabled()) { +// log.debug("endDate = " + endDate); +// } +// +// bean.setOpen(true); +// +// if (bean.getTopiaId() == null) { +// +// dataService.create(dataSource, programId, bean, binder, getCreateExecutor()); +// +// } else { +// +// dataService.update(dataSource, null, bean, getUpdateExecutor()); +// +// } +// +// // mise a jour de la date de fin +// dataService.updateEndDate(dataSource, bean.getTopiaId()); +// +// // recuperation de la position de la maree dans le program +// obtainChildPosition(bean, dataService, dataSource); +// +// return true; +// } + +// @Override +// protected TripLongline onCreate(TopiaContext tx, Object parent, TripLongline editBean) throws TopiaException { +// TripLongline beanToSave = ObserveDAOHelper.getTripLonglineDAO(tx).create(); +// editBean.setTopiaId(beanToSave.getTopiaId()); +// return beanToSave; +// } + + //FIXME +// @Override +// protected TripLongline onUpdate(TopiaContext tx, Object parentBean, TripLongline beanToSave) throws TopiaException { +// +// getLoadBinder().copyExcluding(getBean(), beanToSave, TripLongline.PROPERTY_ACTIVITY_LONGLINE); +// +// return beanToSave; +// } + + //FIXME +// @Override +// protected boolean doDelete(TripLongline bean, +// DataService dataService, +// DataSource dataSource, +// TopiaExecutor2<? extends TopiaEntity, TripLongline> deletor) throws Exception { +// +// if (askToDelete(bean)) { +// return false; +// } +// if (log.isInfoEnabled()) { +// log.info("Will delete Trip " + bean.getTopiaId()); +// } +// +// dataService.delete(dataSource, null, bean, deletor); +// if (log.isInfoEnabled()) { +// log.info("Delete done for Trip " + bean.getTopiaId()); +// } +// return true; +// } + + //FIXME +// @Override +// protected void onDelete(TopiaContext tx, Object parentBean, TripLongline beanToDelete) throws TopiaException { +// +// TopiaDAO<TripLongline> dao = getDataSource().getDAO(tx, TripLongline.class); +// dao.delete(beanToDelete); +// } @Override protected boolean obtainCanReopen(boolean create) { diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/longline/TripLonglineUIModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/longline/TripLonglineUIModel.java index 0b83302..420be55 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/longline/TripLonglineUIModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/longline/TripLonglineUIModel.java @@ -22,7 +22,7 @@ package fr.ird.observe.ui.content.open.impl.longline; * #L% */ -import fr.ird.observe.BinderService; +import fr.ird.observe.business.BinderService; import fr.ird.observe.services.dto.longline.TripLonglineDto; import fr.ird.observe.ui.content.open.ContentOpenableUIModel; import org.nuiton.util.beans.BinderModelBuilder; 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 1d91adb..6a11a9e 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 @@ -21,17 +21,11 @@ */ package fr.ird.observe.ui.content.open.impl.seine; -import fr.ird.observe.DataService; -import fr.ird.observe.ObserveDAOHelper; -import fr.ird.observe.db.DataContext; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.DataSourceException; -import fr.ird.observe.db.constants.DataContextType; -import fr.ird.observe.db.util.TopiaExecutor2; -import fr.ird.observe.services.dto.referential.FpaZoneDto; -import fr.ird.observe.services.dto.referential.seine.VesselActivitySeineDto; +import fr.ird.observe.business.db.DataContext; +import fr.ird.observe.business.db.DataSource; +import fr.ird.observe.business.db.DataSourceException; +import fr.ird.observe.business.db.constants.DataContextType; import fr.ird.observe.services.dto.seine.ActivitySeineDto; -import fr.ird.observe.services.dto.seine.ActivitySeineImplDto; import fr.ird.observe.services.dto.seine.RouteDto; import fr.ird.observe.services.dto.seine.TripSeineDto; import fr.ird.observe.ui.content.ContentMode; @@ -42,11 +36,6 @@ import jaxx.runtime.validator.swing.SwingValidatorMessage; import jaxx.runtime.validator.swing.SwingValidatorMessageTableModel; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.nuiton.topia.TopiaContext; -import org.nuiton.topia.TopiaException; -import org.nuiton.topia.persistence.TopiaEntity; -import org.nuiton.topia.persistence.util.Loador; -import org.nuiton.topia.persistence.util.TopiaEntityBinder; import org.nuiton.util.DateUtil; import org.nuiton.validator.NuitonValidatorScope; @@ -64,7 +53,7 @@ import static org.nuiton.i18n.I18n.t; * @author Tony Chemit - chemit@codelutin.com * @since 1.0 */ -public class ActivitySeineUIHandler extends ContentOpenableUIHandler<ActivitySeine> { +public class ActivitySeineUIHandler extends ContentOpenableUIHandler<ActivitySeineDto> { /** Logger */ static private Log log = LogFactory.getLog(ActivitySeineUIHandler.class); @@ -113,7 +102,7 @@ public class ActivitySeineUIHandler extends ContentOpenableUIHandler<ActivitySei } // l'activity existe en base - if (dataContext.isSelectedOpen(ActivitySeine.class)) { + if (dataContext.isSelectedOpen(ActivitySeineDto.class)) { // l'activity est ouverte, donc modifiable return ContentMode.UPDATE; @@ -122,20 +111,20 @@ public class ActivitySeineUIHandler extends ContentOpenableUIHandler<ActivitySei ActivitySeineUI ui = getUi(); // l'activity n'est pas ouverte, donc pas éditable - if (!dataContext.isSelectedOpen(Route.class)) { + if (!dataContext.isSelectedOpen(RouteDto.class)) { // la route n'est pas ouverte addMessage(ui, NuitonValidatorScope.INFO, - getEntityLabel(Route.class), + getEntityLabel(RouteDto.class), t("observe.route.message.not.open")); - } else if (!dataContext.isSelectedOpen(TripSeine.class)) { + } else if (!dataContext.isSelectedOpen(TripSeineDto.class)) { // la marée n'est past ouverte addMessage(ui, NuitonValidatorScope.INFO, - getEntityLabel(TripSeine.class), + getEntityLabel(TripSeineDto.class), t("observe.tripSeine.message.not.open")); if (getModel().isHistoricalData()) { @@ -186,27 +175,30 @@ public class ActivitySeineUIHandler extends ContentOpenableUIHandler<ActivitySei if (log.isInfoEnabled()) { log.info(prefix + "content mode " + mode); } - ActivitySeine bean = getBean(); + ActivitySeineDto bean = getBean(); - DataService dataService = getDataService(); + //FIXME +// DataService dataService = getDataService(); boolean create = activityId == null; - Loador<ActivitySeine> binder = getLoadBinder(); + //FIXME +// Loador<ActivitySeine> binder = getLoadBinder(); DataSource source = getDataSource(); - if (create) { - - // create mode - dataService.preCreate(source, routeId, bean, binder, getPreCreateExecutor()); - - } else { - - // update mode - dataService.loadEditEntity(source, activityId, getLoadExecutor()); - - } + //FIXME +// if (create) { +// +// // create mode +// dataService.preCreate(source, routeId, bean, binder, getPreCreateExecutor()); +// +// } else { +// +// // update mode +// dataService.loadEditEntity(source, activityId, getLoadExecutor()); +// +// } if (log.isDebugEnabled()) { log.debug(prefix + "long - lat = " + bean.getLongitude() + " - " + bean.getLatitude()); @@ -228,67 +220,68 @@ public class ActivitySeineUIHandler extends ContentOpenableUIHandler<ActivitySei getModel().setModified(create); } - @Override - protected ActivitySeine onPreCreate(TopiaContext tx, - Object parent, - ActivitySeine bean) throws TopiaException { - Route parentBean = (Route) parent; - - bean.setOpen(true); - bean.setLatitude(null); - bean.setLongitude(null); - - Date time; - - FpaZone currentFpaZone = null; - - ActivitySeine lastActivitySeine = parentBean.getLastActivity(); - if (lastActivitySeine == null) { - - // première activité, on utilise l'heure courante - time = new Date(); - - } else { - - // passage en coordonnées absolue + quadrant - lastActivitySeine.initCoordinates(); - - // on recupère le quadrant de cette activity - // et on l'affecte à la nouvelle activity - Integer quadrant = lastActivitySeine.getQuadrant(); - if (quadrant != null) { - - if (log.isDebugEnabled()) { - log.debug("use quadrant of previous activity [" + quadrant + "]"); - } - bean.setQuadrant(quadrant); - } - - // on reprend l'heure de la dernière activité - time = lastActivitySeine.getTime(); - - // utilisation des zones fpa de la dernière activité - currentFpaZone = lastActivitySeine.getNextFpaZone(); - if (currentFpaZone == null) { - currentFpaZone = lastActivitySeine.getCurrentFpaZone(); - } - - } - - bean.setTime(DateUtil.getTime(time, false, false)); - bean.setCurrentFpaZone(currentFpaZone); - - if (log.isDebugEnabled()) { - log.debug("has pre-created : " + bean); - } - return bean; - } + //FIXME +// @Override +// protected ActivitySeine onPreCreate(TopiaContext tx, +// Object parent, +// ActivitySeine bean) throws TopiaException { +// Route parentBean = (Route) parent; +// +// bean.setOpen(true); +// bean.setLatitude(null); +// bean.setLongitude(null); +// +// Date time; +// +// FpaZone currentFpaZone = null; +// +// ActivitySeine lastActivitySeine = parentBean.getLastActivity(); +// if (lastActivitySeine == null) { +// +// // première activité, on utilise l'heure courante +// time = new Date(); +// +// } else { +// +// // passage en coordonnées absolue + quadrant +// lastActivitySeine.initCoordinates(); +// +// // on recupère le quadrant de cette activity +// // et on l'affecte à la nouvelle activity +// Integer quadrant = lastActivitySeine.getQuadrant(); +// if (quadrant != null) { +// +// if (log.isDebugEnabled()) { +// log.debug("use quadrant of previous activity [" + quadrant + "]"); +// } +// bean.setQuadrant(quadrant); +// } +// +// // on reprend l'heure de la dernière activité +// time = lastActivitySeine.getTime(); +// +// // utilisation des zones fpa de la dernière activité +// currentFpaZone = lastActivitySeine.getNextFpaZone(); +// if (currentFpaZone == null) { +// currentFpaZone = lastActivitySeine.getCurrentFpaZone(); +// } +// +// } +// +// bean.setTime(DateUtil.getTime(time, false, false)); +// bean.setCurrentFpaZone(currentFpaZone); +// +// if (log.isDebugEnabled()) { +// log.debug("has pre-created : " + bean); +// } +// return bean; +// } @Override public void startEditUI(String... binding) { ActivitySeineUI ui = getUi(); - ContentUIModel<ActivitySeine> model = getModel(); + ContentUIModel<ActivitySeineDto> model = getModel(); boolean create = model.getMode() == ContentMode.CREATE; String contextName = getValidatorContextName(model.getMode()); @@ -296,12 +289,12 @@ public class ActivitySeineUIHandler extends ContentOpenableUIHandler<ActivitySei if (create) { addMessage(ui, NuitonValidatorScope.INFO, - getEntityLabel(ActivitySeine.class), + getEntityLabel(ActivitySeineDto.class), t("observe.activitySeine.message.creating")); } else { addMessage(ui, NuitonValidatorScope.INFO, - getEntityLabel(ActivitySeine.class), + getEntityLabel(ActivitySeineDto.class), t("observe.activitySeine.message.updating")); } @@ -320,94 +313,99 @@ public class ActivitySeineUIHandler extends ContentOpenableUIHandler<ActivitySei model.setModified(create); } - @Override - protected boolean doSave(ActivitySeine bean, - DataService dataService, - DataSource dataSource, - TopiaEntityBinder<ActivitySeine> binder) throws Exception { - - if (log.isDebugEnabled()) { - log.debug(" long - lat = " + bean.getLongitude() + " - " + bean.getLatitude()); - } - boolean create = bean.getTopiaId() == null; - - String routeId = getSelectedParentId(); - - bean.setOpen(true); - - if (create) { - bean = dataService.create(dataSource, routeId, bean, binder, getCreateExecutor()); - - } else { - - dataService.update(dataSource, routeId, bean, getUpdateExecutor()); - } - - obtainChildPosition(bean, dataService, dataSource); - - return true; - } - - @Override - protected ActivitySeine onCreate(TopiaContext tx, Object parent, ActivitySeine editBean) throws TopiaException { - Route parentBean = (Route) parent; - ActivitySeine beanToSave = ObserveDAOHelper.getActivitySeineDAO(tx).create(); - editBean.setTopiaId(beanToSave.getTopiaId()); - parentBean.addActivitySeine(beanToSave); - return beanToSave; - } - - @Override - protected ActivitySeine onUpdate(TopiaContext tx, Object parentBean, ActivitySeine beanToSave) throws TopiaException { - - ActivitySeine editBean = getBean(); - - Route route = (Route) parentBean; - - Date d = DateUtil.getDateAndTime(route.getDate(), editBean.getTime(), false, false); - editBean.setTime(d); - - if (log.isInfoEnabled()) { - log.info("Final time to use : " + d); - } - - getLoadBinder().copyExcluding(editBean, beanToSave, - ActivitySeine.PROPERTY_FLOATING_OBJECT, - ActivitySeine.PROPERTY_OBSERVED_SYSTEM); - - if (log.isInfoEnabled()) { - log.info("Is activity open ? : " + beanToSave.isOpen()); - } - return beanToSave; - } - - @Override - protected boolean doDelete(ActivitySeine bean, - DataService dataService, - DataSource dataSource, - TopiaExecutor2<? extends TopiaEntity, ActivitySeine> deletor) throws Exception { - - if (askToDelete(bean)) { - return false; - } - if (log.isInfoEnabled()) { - log.info("Will delete Activity " + bean.getTopiaId()); - } - - String routeId = getSelectedParentId(); - dataService.delete(dataSource, routeId, bean, deletor); - if (log.isInfoEnabled()) { - log.info("Delete done for Activity " + bean.getTopiaId()); - } - return true; - } - - - @Override - protected void onDelete(TopiaContext tx, Object parent, ActivitySeine beanToDelete) { - Route parentBean = (Route) parent; - parentBean.removeActivitySeine(beanToDelete); - } + //FIXME +// @Override +// protected boolean doSave(ActivitySeine bean, +// DataService dataService, +// DataSource dataSource, +// TopiaEntityBinder<ActivitySeine> binder) throws Exception { +// +// if (log.isDebugEnabled()) { +// log.debug(" long - lat = " + bean.getLongitude() + " - " + bean.getLatitude()); +// } +// boolean create = bean.getTopiaId() == null; +// +// String routeId = getSelectedParentId(); +// +// bean.setOpen(true); +// +// if (create) { +// bean = dataService.create(dataSource, routeId, bean, binder, getCreateExecutor()); +// +// } else { +// +// dataService.update(dataSource, routeId, bean, getUpdateExecutor()); +// } +// +// obtainChildPosition(bean, dataService, dataSource); +// +// return true; +// } + + //FIXME +// @Override +// protected ActivitySeine onCreate(TopiaContext tx, Object parent, ActivitySeine editBean) throws TopiaException { +// Route parentBean = (Route) parent; +// ActivitySeine beanToSave = ObserveDAOHelper.getActivitySeineDAO(tx).create(); +// editBean.setTopiaId(beanToSave.getTopiaId()); +// parentBean.addActivitySeine(beanToSave); +// return beanToSave; +// } + + //FIXME +// @Override +// protected ActivitySeine onUpdate(TopiaContext tx, Object parentBean, ActivitySeine beanToSave) throws TopiaException { +// +// ActivitySeine editBean = getBean(); +// +// Route route = (Route) parentBean; +// +// Date d = DateUtil.getDateAndTime(route.getDate(), editBean.getTime(), false, false); +// editBean.setTime(d); +// +// if (log.isInfoEnabled()) { +// log.info("Final time to use : " + d); +// } +// +// getLoadBinder().copyExcluding(editBean, beanToSave, +// ActivitySeine.PROPERTY_FLOATING_OBJECT, +// ActivitySeine.PROPERTY_OBSERVED_SYSTEM); +// +// if (log.isInfoEnabled()) { +// log.info("Is activity open ? : " + beanToSave.isOpen()); +// } +// return beanToSave; +// } + + //FIXME +// @Override +// protected boolean doDelete(ActivitySeine bean, +// DataService dataService, +// DataSource dataSource, +// TopiaExecutor2<? extends TopiaEntity, ActivitySeine> deletor) throws Exception { +// +// if (askToDelete(bean)) { +// return false; +// } +// if (log.isInfoEnabled()) { +// log.info("Will delete Activity " + bean.getTopiaId()); +// } +// +// String routeId = getSelectedParentId(); +// dataService.delete(dataSource, routeId, bean, deletor); +// if (log.isInfoEnabled()) { +// log.info("Delete done for Activity " + bean.getTopiaId()); +// } +// return true; +// } + + + //FIXME +// @Override +// protected void onDelete(TopiaContext tx, Object parent, ActivitySeine beanToDelete) { +// Route parentBean = (Route) parent; +// parentBean.removeActivitySeine(beanToDelete); +// } @Override protected boolean obtainCanReopen(boolean create) { @@ -418,24 +416,25 @@ public class ActivitySeineUIHandler extends ContentOpenableUIHandler<ActivitySei // - pas d'activity d'ouverte // - la route courante est ouverte boolean canReopen = !create && - dataContext.isSelectedOpen(Route.class) && + dataContext.isSelectedOpen(RouteDto.class) && !dataContext.isOpenActivity(); return canReopen; } public String getActivity6Label() { - try { - List<VesselActivitySeine> activitys = getDataService().getList(getDataSource(), VesselActivitySeine.class); - for (VesselActivitySeine a : activitys) { - if (ActivitySeineImpl.ACTIVITY_FIN_DE_PECHE.equals(a.getCode())) { - String label = getDecoratorService().decorate(a); - return label; - } - } - } catch (DataSourceException ex) { - ErrorDialogUI.showError(ex); - } + //FIXME +// try { +// List<VesselActivitySeine> activitys = getDataService().getList(getDataSource(), VesselActivitySeine.class); +// for (VesselActivitySeine a : activitys) { +// if (ActivitySeineImpl.ACTIVITY_FIN_DE_PECHE.equals(a.getCode())) { +// String label = getDecoratorService().decorate(a); +// return label; +// } +// } +// } catch (DataSourceException ex) { +// ErrorDialogUI.showError(ex); +// } throw new IllegalStateException(t("observe.error.no.activity.6")); } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/ActivitySeineUIModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/ActivitySeineUIModel.java index 2f2a11c..df26c8c 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/ActivitySeineUIModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/ActivitySeineUIModel.java @@ -23,7 +23,7 @@ package fr.ird.observe.ui.content.open.impl.seine; */ import com.google.common.collect.ImmutableSet; -import fr.ird.observe.BinderService; +import fr.ird.observe.business.BinderService; import fr.ird.observe.services.dto.seine.ActivitySeineDto; import fr.ird.observe.ui.content.open.ContentOpenableUIModel; import org.nuiton.util.beans.BinderModelBuilder; 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 2afc7c0..f320700 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 @@ -21,19 +21,14 @@ */ package fr.ird.observe.ui.content.open.impl.seine; -import fr.ird.observe.DataService; import fr.ird.observe.ObserveContext; -import fr.ird.observe.ObserveDAOHelper; -import fr.ird.observe.ObserveTechnicalException; -import fr.ird.observe.db.DataContext; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.DataSourceException; -import fr.ird.observe.db.constants.DataContextType; -import fr.ird.observe.db.util.TopiaExecutor2; +import fr.ird.observe.business.ObserveTechnicalException; +import fr.ird.observe.business.db.DataContext; +import fr.ird.observe.business.db.DataSource; +import fr.ird.observe.business.db.DataSourceException; +import fr.ird.observe.business.db.constants.DataContextType; import fr.ird.observe.services.dto.referential.seine.VesselActivitySeineDto; import fr.ird.observe.services.dto.seine.ActivitySeineDto; -import fr.ird.observe.services.dto.seine.ActivitySeineImplDto; -import fr.ird.observe.services.dto.seine.ActivitySeinesDto; import fr.ird.observe.services.dto.seine.RouteDto; import fr.ird.observe.services.dto.seine.TripSeineDto; import fr.ird.observe.ui.UIHelper; @@ -44,10 +39,6 @@ import fr.ird.observe.ui.tree.ObserveTreeHelper; import org.apache.commons.lang3.time.DateUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.nuiton.topia.TopiaContext; -import org.nuiton.topia.TopiaException; -import org.nuiton.topia.persistence.TopiaEntity; -import org.nuiton.topia.persistence.util.TopiaEntityBinder; import org.nuiton.util.DateUtil; import org.nuiton.validator.NuitonValidatorScope; @@ -61,7 +52,7 @@ import static org.nuiton.i18n.I18n.t; * @author Tony Chemit - chemit@codelutin.com * @since 1.0 */ -public class RouteUIHandler extends ContentOpenableUIHandler<Route> { +public class RouteUIHandler extends ContentOpenableUIHandler<RouteDto> { public static final String UPDATE_MAREE_NODE = "updateTripNode"; @@ -92,7 +83,7 @@ public class RouteUIHandler extends ContentOpenableUIHandler<Route> { } // route deja existante - if (dataContext.isSelectedOpen(Route.class)) { + if (dataContext.isSelectedOpen(RouteDto.class)) { // la route est ouverte return ContentMode.UPDATE; @@ -101,17 +92,17 @@ public class RouteUIHandler extends ContentOpenableUIHandler<Route> { RouteUI ui = getUi(); // route non ouverte - if (!dataContext.isSelectedOpen(TripSeine.class)) { + if (!dataContext.isSelectedOpen(TripSeineDto.class)) { addMessage(ui, NuitonValidatorScope.INFO, - getEntityLabel(TripSeine.class), + getEntityLabel(TripSeineDto.class), t("observe.tripSeine.message.not.open")); } else { // la maree courante est ouverte addMessage(ui, NuitonValidatorScope.INFO, - getEntityLabel(Route.class), + getEntityLabel(RouteDto.class), t(closeMessage)); } return ContentMode.READ; @@ -136,63 +127,65 @@ public class RouteUIHandler extends ContentOpenableUIHandler<Route> { log.info(prefix + "content mode = " + mode); } - DataService dataService = getDataService(); + //FIXME +// DataService dataService = getDataService(); - Route editBean = getBean(); + RouteDto editBean = getBean(); boolean create = routeId == null; - if (create) { - - // create mode - dataService.preCreate(getDataSource(), tripId, editBean, getLoadBinder(), getPreCreateExecutor()); - - } else { - - // update mode - dataService.loadEditEntity(getDataSource(), routeId, getLoadExecutor()); - - if (!editBean.isActivitySeineEmpty()) { - - // on force le trie des activitys - ActivitySeines.sort(editBean.getActivitySeine()); - } - } + //FIXME +// if (create) { +// +// // create mode +// dataService.preCreate(getDataSource(), tripId, editBean, getLoadBinder(), getPreCreateExecutor()); +// +// } else { +// +// // update mode +// dataService.loadEditEntity(getDataSource(), routeId, getLoadExecutor()); +// +// if (!editBean.isActivitySeineEmpty()) { +// +// // on force le trie des activitys +// ActivitySeines.sort(editBean.getActivitySeine()); +// } +// } finalizeOpenUI(mode, create); } - @Override - protected Route onPreCreate(TopiaContext tx, Object parent, Route bean) throws TopiaException { - - TripSeine parentBean = (TripSeine) parent; - Route lastRoute = parentBean.getLastRoute(); - - Date date; - if (lastRoute == null) { - - // aucune route defini, on utilise la date courante - date = new Date(); - - } else { - - // une route precedente est definie sur la maree - // le jour d'observation est le jour suivant celui de la - // derniere route - date = DateUtils.addDays(lastRoute.getDate(), 1); - - // le loch du matin est le loch du soir de la derniere route - bean.setStartLogValue(lastRoute.getEndLogValue()); - } - - bean.setDate(DateUtil.getDay(date)); - - if (log.isInfoEnabled()) { - log.info("Will use date : " + bean.getDate()); - log.info("Will loch matin ast last loch soir : " + bean.getStartLogValue()); - } - return bean; - } +// @Override +// protected Route onPreCreate(TopiaContext tx, Object parent, Route bean) throws TopiaException { +// +// TripSeine parentBean = (TripSeine) parent; +// Route lastRoute = parentBean.getLastRoute(); +// +// Date date; +// if (lastRoute == null) { +// +// // aucune route defini, on utilise la date courante +// date = new Date(); +// +// } else { +// +// // une route precedente est definie sur la maree +// // le jour d'observation est le jour suivant celui de la +// // derniere route +// date = DateUtils.addDays(lastRoute.getDate(), 1); +// +// // le loch du matin est le loch du soir de la derniere route +// bean.setStartLogValue(lastRoute.getEndLogValue()); +// } +// +// bean.setDate(DateUtil.getDay(date)); +// +// if (log.isInfoEnabled()) { +// log.info("Will use date : " + bean.getDate()); +// log.info("Will loch matin ast last loch soir : " + bean.getStartLogValue()); +// } +// return bean; +// } @Override public void startEditUI(String... binding) { @@ -207,12 +200,12 @@ public class RouteUIHandler extends ContentOpenableUIHandler<Route> { if (create) { addMessage(ui, NuitonValidatorScope.INFO, - getEntityLabel(Route.class), + getEntityLabel(RouteDto.class), t("observe.route.message.creating")); } else { addMessage(ui, NuitonValidatorScope.INFO, - getEntityLabel(Route.class), + getEntityLabel(RouteDto.class), t("observe.route.message.updating")); if (getModel().isHistoricalData()) { @@ -232,43 +225,43 @@ public class RouteUIHandler extends ContentOpenableUIHandler<Route> { getModel().setModified(create); } - @Override - protected boolean doSave(Route bean, - DataService dataService, - DataSource dataSource, - TopiaEntityBinder<Route> binder) throws Exception { - - String tripId = getSelectedParentId(); - - if (log.isInfoEnabled()) { - log.info("will save route " + bean.getTopiaId()); - } - - // on sauvegarde toujours en debut de jour - Date date = DateUtil.getDay(bean.getDate()); - bean.setDate(date); - bean.setOpen(true); - - if (bean.getTopiaId() == null) { - - dataService.create(dataSource, tripId, bean, binder, getCreateExecutor()); - } else { - - dataService.update(dataSource, tripId, bean, getUpdateExecutor()); - - if( dateHasChanged) { - - dataService.updateDayDate(dataSource, bean.getTopiaId()); - - } - } - - updateTripEndDate(tripId); - - obtainChildPosition(bean, dataService, dataSource); - - return true; - } +// @Override +// protected boolean doSave(Route bean, +// DataService dataService, +// DataSource dataSource, +// TopiaEntityBinder<Route> binder) throws Exception { +// +// String tripId = getSelectedParentId(); +// +// if (log.isInfoEnabled()) { +// log.info("will save route " + bean.getTopiaId()); +// } +// +// // on sauvegarde toujours en debut de jour +// Date date = DateUtil.getDay(bean.getDate()); +// bean.setDate(date); +// bean.setOpen(true); +// +// if (bean.getTopiaId() == null) { +// +// dataService.create(dataSource, tripId, bean, binder, getCreateExecutor()); +// } else { +// +// dataService.update(dataSource, tripId, bean, getUpdateExecutor()); +// +// if( dateHasChanged) { +// +// dataService.updateDayDate(dataSource, bean.getTopiaId()); +// +// } +// } +// +// updateTripEndDate(tripId); +// +// obtainChildPosition(bean, dataService, dataSource); +// +// return true; +// } @Override protected void afterSave(boolean refresh) { @@ -283,83 +276,84 @@ public class RouteUIHandler extends ContentOpenableUIHandler<Route> { } @Override - protected Route onCreate(TopiaContext tx, Object parent, Route editBean) throws TopiaException { - - TripSeine parentBean = (TripSeine) parent; - - // creation de la route - Route beanToSave = ObserveDAOHelper.getRouteDAO(tx).create(); - editBean.setTopiaId(beanToSave.getTopiaId()); - - // ajout de la route dans la amree - parentBean.addRoute(beanToSave); - - // on renseigne le jour d'observation car on en a besoin pour - // mettre la date de fin de la maree - beanToSave.setDate(editBean.getDate()); - - return beanToSave; - } +// protected Route onCreate(TopiaContext tx, Object parent, Route editBean) throws TopiaException { +// +// TripSeine parentBean = (TripSeine) parent; +// +// // creation de la route +// Route beanToSave = ObserveDAOHelper.getRouteDAO(tx).create(); +// editBean.setTopiaId(beanToSave.getTopiaId()); +// +// // ajout de la route dans la amree +// parentBean.addRoute(beanToSave); +// +// // on renseigne le jour d'observation car on en a besoin pour +// // mettre la date de fin de la maree +// beanToSave.setDate(editBean.getDate()); +// +// return beanToSave; +// } boolean dateHasChanged; - @Override - protected Route onUpdate(TopiaContext tx, Object parent, Route beanToSave) throws TopiaException { - - Route editBean = getBean(); - - // on conserve l'ancienne date d'observation - Date oldDate = DateUtil.getDay(beanToSave.getDate()); - - // recopie des propriétés vers le bean a sauver - getLoadBinder().copyExcluding(editBean, beanToSave, Route.PROPERTY_ACTIVITY_SEINE); - - // si le jour a change, il faut mettre à jour les dates des activitéset des sets - dateHasChanged = !oldDate.equals(editBean.getDate()); - - return beanToSave; - } - - @Override - protected boolean doDelete(Route bean, - DataService dataService, - DataSource dataSource, - TopiaExecutor2<? extends TopiaEntity, Route> deletor) throws Exception { - - if (askToDelete(bean)) { - return false; - } - if (log.isInfoEnabled()) { - log.info("Will delete Route " + bean.getTopiaId()); - } - - String tripId = getSelectedParentId(); - dataService.delete(dataSource, tripId, bean, deletor); - if (log.isInfoEnabled()) { - log.info("Delete done for Route " + bean.getTopiaId()); - } - updateTripEndDate(tripId); - - return true; - } - - @Override - protected void onDelete(TopiaContext tx, Object parent, Route beanToDelete) { - TripSeine parentBean = (TripSeine) parent; - - // suppression de la route - parentBean.removeRoute(beanToDelete); - - } +// @Override +// protected Route onUpdate(TopiaContext tx, Object parent, Route beanToSave) throws TopiaException { +// +// Route editBean = getBean(); +// +// // on conserve l'ancienne date d'observation +// Date oldDate = DateUtil.getDay(beanToSave.getDate()); +// +// // recopie des propriétés vers le bean a sauver +// getLoadBinder().copyExcluding(editBean, beanToSave, Route.PROPERTY_ACTIVITY_SEINE); +// +// // si le jour a change, il faut mettre à jour les dates des activitéset des sets +// dateHasChanged = !oldDate.equals(editBean.getDate()); +// +// return beanToSave; +// } + +// @Override +// protected boolean doDelete(Route bean, +// DataService dataService, +// DataSource dataSource, +// TopiaExecutor2<? extends TopiaEntity, Route> deletor) throws Exception { +// +// if (askToDelete(bean)) { +// return false; +// } +// if (log.isInfoEnabled()) { +// log.info("Will delete Route " + bean.getTopiaId()); +// } +// +// String tripId = getSelectedParentId(); +// dataService.delete(dataSource, tripId, bean, deletor); +// if (log.isInfoEnabled()) { +// log.info("Delete done for Route " + bean.getTopiaId()); +// } +// updateTripEndDate(tripId); +// +// return true; +// } + +// @Override +// protected void onDelete(TopiaContext tx, Object parent, Route beanToDelete) { +// TripSeine parentBean = (TripSeine) parent; +// +// // suppression de la route +// parentBean.removeRoute(beanToDelete); +// +// } @Override public boolean doCloseData() throws Exception { - Route route = getBean(); + RouteDto route = getBean(); // on doit vérifier qu'il existe une activité de fin // de veille (type activity vessel == 16) - boolean mustAddFinVeille = !route.isActivityFindDeVeilleFound(); + //FIXME +// boolean mustAddFinVeille = !route.isActivityFindDeVeilleFound(); boolean createActivityFinDeVeille = false; boolean closeActivityFinDeVeille = false; @@ -368,7 +362,8 @@ public class RouteUIHandler extends ContentOpenableUIHandler<Route> { ObserveTreeHelper treeHelper = getTreeHelper(getUi()); ObserveNode routeNode = treeHelper.getSelectedNode(); - if (mustAddFinVeille) { + //FIXME +// if (mustAddFinVeille) { // on indique à l'observer qu'il doit créer une activité de type // 16 @@ -417,7 +412,8 @@ public class RouteUIHandler extends ContentOpenableUIHandler<Route> { gotoActivityFinDeVeille = true; break; } - } + //FIXME +// } if (createActivityFinDeVeille) { @@ -458,21 +454,21 @@ public class RouteUIHandler extends ContentOpenableUIHandler<Route> { if (log.isDebugEnabled()) { log.debug("PARENT NODE = " + parentNode); } - treeHelper.addUnsavedNode(parentNode, ActivitySeine.class); + treeHelper.addUnsavedNode(parentNode, ActivitySeineDto.class); // on recupère l'écran d'édition ActivitySeineUI selectedUI = (ActivitySeineUI) ObserveContext.get().getSelectedContentUI(); // on recupère l'activity de fin de veille - VesselActivitySeine vesselActivitySeine = null; + VesselActivitySeineDto vesselActivitySeine = null; for (Object o : selectedUI.getVesselActivitySeine().getData()) { - VesselActivitySeine a = (VesselActivitySeine) o; - if (ActivitySeineImpl.ACTIVITY_FIN_DE_VEILLE.equals(a.getCode())) { - vesselActivitySeine = a; - break; - } + VesselActivitySeineDto a = (VesselActivitySeine) o; +// if (ActivitySeineImpl.ACTIVITY_FIN_DE_VEILLE.equals(a.getCode())) { +// vesselActivitySeine = a; +// break; +// } } // on la positionne sur le bean d'édition @@ -501,7 +497,7 @@ public class RouteUIHandler extends ContentOpenableUIHandler<Route> { // - pas de route ouverte // - la maree courante est ouverte boolean canReopen = !create && - dataContext.isSelectedOpen(TripSeine.class) && + dataContext.isSelectedOpen(TripSeineDto.class) && !dataContext.isOpenRoute(); return canReopen; } @@ -527,15 +523,18 @@ public class RouteUIHandler extends ContentOpenableUIHandler<Route> { protected void updateTripEndDate(String tripId) { - boolean wasUpdated; + //FIXME +// boolean wasUpdated; + boolean wasUpdated = false; // on met a jour si necessaire la date de fin de la maree - try { - wasUpdated = getDataService().updateEndDate(getDataSource(), tripId); - - } catch (DataSourceException e) { - throw new ObserveTechnicalException("Could not update end date",e); - } + //FIXME +// try { +// wasUpdated = getDataService().updateEndDate(getDataSource(), tripId); +// +// } catch (DataSourceException e) { +// throw new ObserveTechnicalException("Could not update end date",e); +// } if (wasUpdated) { diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/RouteUIModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/RouteUIModel.java index 12dccbb..fcca4bb 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/RouteUIModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/RouteUIModel.java @@ -22,7 +22,7 @@ package fr.ird.observe.ui.content.open.impl.seine; * #L% */ -import fr.ird.observe.BinderService; +import fr.ird.observe.business.BinderService; import fr.ird.observe.services.dto.seine.ActivitySeineDto; import fr.ird.observe.services.dto.seine.RouteDto; import fr.ird.observe.ui.content.open.ContentOpenableUIModel; 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 66ca931..09e0311 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 @@ -21,27 +21,16 @@ */ package fr.ird.observe.ui.content.open.impl.seine; -import fr.ird.observe.DataService; import fr.ird.observe.ObserveConfig; -import fr.ird.observe.ObserveDAOHelper; -import fr.ird.observe.db.DataContext; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.constants.DataContextType; -import fr.ird.observe.db.util.TopiaExecutor2; -import fr.ird.observe.services.dto.referential.ProgramDto; -import fr.ird.observe.services.dto.seine.RoutesDto; +import fr.ird.observe.business.db.DataContext; +import fr.ird.observe.business.db.DataSource; +import fr.ird.observe.business.db.constants.DataContextType; import fr.ird.observe.services.dto.seine.TripSeineDto; import fr.ird.observe.ui.content.ContentMode; import fr.ird.observe.ui.content.open.ContentOpenableUIHandler; import fr.ird.observe.ui.content.open.ContentOpenableUIModel; -import fr.ird.observe.ui.util.tripMap.TripMapUI; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.nuiton.topia.TopiaContext; -import org.nuiton.topia.TopiaException; -import org.nuiton.topia.persistence.TopiaDAO; -import org.nuiton.topia.persistence.TopiaEntity; -import org.nuiton.topia.persistence.util.TopiaEntityBinder; import org.nuiton.util.DateUtil; import javax.swing.JTabbedPane; @@ -57,7 +46,7 @@ import static org.nuiton.i18n.I18n.t; * @author Tony Chemit - chemit@codelutin.com * @since 1.0 */ -public class TripSeineUIHandler extends ContentOpenableUIHandler<TripSeine> { +public class TripSeineUIHandler extends ContentOpenableUIHandler<TripSeineDto> { /** Logger */ static private final Log log = LogFactory.getLog(TripSeineUIHandler.class); @@ -89,7 +78,7 @@ public class TripSeineUIHandler extends ContentOpenableUIHandler<TripSeine> { return ContentMode.CREATE; } - if (dataContext.isSelectedOpen(TripSeine.class)) { + if (dataContext.isSelectedOpen(TripSeineDto.class)) { // maree ouverte return ContentMode.UPDATE; @@ -156,35 +145,37 @@ public class TripSeineUIHandler extends ContentOpenableUIHandler<TripSeine> { log.info(prefix + "mode = " + mode); } - DataService dataService = getDataService(); + //FIXME +// DataService dataService = getDataService(); - TripSeine bean = getBean(); + TripSeineDto bean = getBean(); DataSource source = getDataSource(); boolean create = tripId == null; - if (create) { - - // create mode - - if (log.isInfoEnabled()) { - log.info(prefix + "create a new trip"); - } - dataService.preCreate(source, programId, bean, getLoadBinder(), getPreCreateExecutor()); - } else { - - // update mode - if (log.isInfoEnabled()) { - log.info(prefix + "using existing trip " + tripId); - } - dataService.loadEditEntity(source, tripId, getLoadExecutor()); - - if (!bean.isRouteEmpty()) { - - // on force le trie des routes - Routes.sort(bean.getRoute()); - } - - } + //FIXME +// if (create) { +// +// // create mode +// +// if (log.isInfoEnabled()) { +// log.info(prefix + "create a new trip"); +// } +// dataService.preCreate(source, programId, bean, getLoadBinder(), getPreCreateExecutor()); +// } else { +// +// // update mode +// if (log.isInfoEnabled()) { +// log.info(prefix + "using existing trip " + tripId); +// } +// dataService.loadEditEntity(source, tripId, getLoadExecutor()); +// +// if (!bean.isRouteEmpty()) { +// +// // on force le trie des routes +// Routes.sort(bean.getRoute()); +// } +// +// } getUi().getTripSeineTabPane().setSelectedIndex(0); getUi().getTripMap().getHandler().doCloseMap(); @@ -193,27 +184,28 @@ public class TripSeineUIHandler extends ContentOpenableUIHandler<TripSeine> { finalizeOpenUI(mode, create); } - @Override - protected TripSeine onPreCreate(TopiaContext tx, Object parent, TripSeine bean) throws TopiaException { - - Program parentBean = (Program) parent; - Date date = DateUtil.getDay(new Date()); - bean.setStartDate(date); - bean.setEndDate(date); - if (log.isDebugEnabled()) { - log.debug("start date : " + date); - log.debug("program : " + parentBean); - } - bean.setProgram(parentBean); - return bean; - } + //FIXME +// @Override +// protected TripSeine onPreCreate(TopiaContext tx, Object parent, TripSeine bean) throws TopiaException { +// +// Program parentBean = (Program) parent; +// Date date = DateUtil.getDay(new Date()); +// bean.setStartDate(date); +// bean.setEndDate(date); +// if (log.isDebugEnabled()) { +// log.debug("start date : " + date); +// log.debug("program : " + parentBean); +// } +// bean.setProgram(parentBean); +// return bean; +// } @Override public void startEditUI(String... binding) { TripSeineUI ui = getUi(); - ContentOpenableUIModel<TripSeine> model = getModel(); + ContentOpenableUIModel<TripSeineDto> model = getModel(); ContentMode mode = model.getMode(); @@ -258,88 +250,93 @@ public class TripSeineUIHandler extends ContentOpenableUIHandler<TripSeine> { model.setModified(create); } - @Override - protected boolean doSave(TripSeine bean, - DataService dataService, - DataSource dataSource, - TopiaEntityBinder<TripSeine> binder) throws Exception { - - String programId = getDataContext().getSelectedProgramId(); - - // on force toujours la date a etre sans heure, minute,... - Date startDate = DateUtil.getDay(bean.getStartDate()); - if (log.isDebugEnabled()) { - log.debug("startDate = " + startDate); - } - bean.setStartDate(startDate); - - Date endDate = bean.getEndDate(); - if (log.isDebugEnabled()) { - log.debug("endDate = " + endDate); - } - - bean.setOpen(true); - - if (bean.getTopiaId() == null) { - - dataService.create(dataSource, programId, bean, binder, getCreateExecutor()); - - } else { - - dataService.update(dataSource, null, bean, getUpdateExecutor()); - - } - - // mise a jour de la date de fin - dataService.updateEndDate(dataSource, bean.getTopiaId()); - - // recuperation de la position de la maree dans le program - obtainChildPosition(bean, dataService, dataSource); - - return true; - } - - @Override - protected TripSeine onCreate(TopiaContext tx, Object parent, TripSeine editBean) throws TopiaException { - TripSeine beanToSave = ObserveDAOHelper.getTripSeineDAO(tx).create(); - editBean.setTopiaId(beanToSave.getTopiaId()); - return beanToSave; - } - - @Override - protected TripSeine onUpdate(TopiaContext tx, Object parentBean, TripSeine beanToSave) throws TopiaException { - - getLoadBinder().copyExcluding(getBean(), beanToSave, TripSeine.PROPERTY_ROUTE, TripSeine.PROPERTY_GEAR_USE_FEATURES_SEINE); - - return beanToSave; - } - - @Override - protected boolean doDelete(TripSeine bean, - DataService dataService, - DataSource dataSource, - TopiaExecutor2<? extends TopiaEntity, TripSeine> deletor) throws Exception { - - if (askToDelete(bean)) { - return false; - } - if (log.isInfoEnabled()) { - log.info("Will delete Trip " + bean.getTopiaId()); - } - - dataService.delete(dataSource, null, bean, deletor); - if (log.isInfoEnabled()) { - log.info("Delete done for Trip " + bean.getTopiaId()); - } - return true; - } - - @Override - protected void onDelete(TopiaContext tx, Object parentBean, TripSeine beanToDelete) throws TopiaException { - - TopiaDAO<TripSeine> dao = getDataSource().getDAO(tx, TripSeine.class); - dao.delete(beanToDelete); - } + //FIXME +// @Override +// protected boolean doSave(TripSeine bean, +// DataService dataService, +// DataSource dataSource, +// TopiaEntityBinder<TripSeine> binder) throws Exception { +// +// String programId = getDataContext().getSelectedProgramId(); +// +// // on force toujours la date a etre sans heure, minute,... +// Date startDate = DateUtil.getDay(bean.getStartDate()); +// if (log.isDebugEnabled()) { +// log.debug("startDate = " + startDate); +// } +// bean.setStartDate(startDate); +// +// Date endDate = bean.getEndDate(); +// if (log.isDebugEnabled()) { +// log.debug("endDate = " + endDate); +// } +// +// bean.setOpen(true); +// +// if (bean.getTopiaId() == null) { +// +// dataService.create(dataSource, programId, bean, binder, getCreateExecutor()); +// +// } else { +// +// dataService.update(dataSource, null, bean, getUpdateExecutor()); +// +// } +// +// // mise a jour de la date de fin +// dataService.updateEndDate(dataSource, bean.getTopiaId()); +// +// // recuperation de la position de la maree dans le program +// obtainChildPosition(bean, dataService, dataSource); +// +// return true; +// } + + //FIXME +// @Override +// protected TripSeine onCreate(TopiaContext tx, Object parent, TripSeine editBean) throws TopiaException { +// TripSeine beanToSave = ObserveDAOHelper.getTripSeineDAO(tx).create(); +// editBean.setTopiaId(beanToSave.getTopiaId()); +// return beanToSave; +// } + + //FIXME +// @Override +// protected TripSeine onUpdate(TopiaContext tx, Object parentBean, TripSeine beanToSave) throws TopiaException { +// +// getLoadBinder().copyExcluding(getBean(), beanToSave, TripSeine.PROPERTY_ROUTE, TripSeine.PROPERTY_GEAR_USE_FEATURES_SEINE); +// +// return beanToSave; +// } + + //FIXME +// @Override +// protected boolean doDelete(TripSeine bean, +// DataService dataService, +// DataSource dataSource, +// TopiaExecutor2<? extends TopiaEntity, TripSeine> deletor) throws Exception { +// +// if (askToDelete(bean)) { +// return false; +// } +// if (log.isInfoEnabled()) { +// log.info("Will delete Trip " + bean.getTopiaId()); +// } +// +// dataService.delete(dataSource, null, bean, deletor); +// if (log.isInfoEnabled()) { +// log.info("Delete done for Trip " + bean.getTopiaId()); +// } +// return true; +// } + + //FIXME +// @Override +// protected void onDelete(TopiaContext tx, Object parentBean, TripSeine beanToDelete) throws TopiaException { +// +// TopiaDAO<TripSeine> dao = getDataSource().getDAO(tx, TripSeine.class); +// dao.delete(beanToDelete); +// } @Override protected boolean obtainCanReopen(boolean create) { diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/TripSeineUIModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/TripSeineUIModel.java index 845d616..aa9fa89 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/TripSeineUIModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/TripSeineUIModel.java @@ -22,7 +22,7 @@ package fr.ird.observe.ui.content.open.impl.seine; * #L% */ -import fr.ird.observe.BinderService; +import fr.ird.observe.business.BinderService; import fr.ird.observe.services.dto.seine.TripSeineDto; import fr.ird.observe.ui.content.open.ContentOpenableUIModel; import org.nuiton.util.beans.BinderModelBuilder; 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 7a78214..5f83a08 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 @@ -21,18 +21,18 @@ */ package fr.ird.observe.ui.content.ref; -import fr.ird.observe.DecoratorService; +import fr.ird.observe.business.DecoratorService; import fr.ird.observe.ObserveContext; -import fr.ird.observe.db.DataContext; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.DataSourceException; +import fr.ird.observe.business.db.DataContext; +import fr.ird.observe.business.db.DataSource; +import fr.ird.observe.business.db.DataSourceException; import fr.ird.observe.services.dto.referential.ReferentialDto; import fr.ird.observe.ui.UIHelper; import fr.ird.observe.ui.content.ContentMode; import fr.ird.observe.ui.content.ContentUIHandler; import fr.ird.observe.ui.tree.ObserveTreeHelper; import fr.ird.observe.ui.util.SpringUtilities; -import fr.ird.observe.validation.ValidationContext; +import fr.ird.observe.business.validation.ValidationContext; import jaxx.runtime.JAXXContext; import jaxx.runtime.swing.CardLayout2Ext; import jaxx.runtime.swing.ErrorDialogUI; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ref/ContentReferenceUIModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ref/ContentReferenceUIModel.java index 168f553..d80fc31 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ref/ContentReferenceUIModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ref/ContentReferenceUIModel.java @@ -21,7 +21,7 @@ */ package fr.ird.observe.ui.content.ref; -import fr.ird.observe.BinderService; +import fr.ird.observe.business.BinderService; import fr.ird.observe.services.dto.referential.I18nReferentialDto; import fr.ird.observe.services.dto.referential.LengthWeightParameterDto; import fr.ird.observe.services.dto.referential.ReferentialDto; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ref/ReferenceHomeUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ref/ReferenceHomeUIHandler.java index 65bdcb0..897877d 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ref/ReferenceHomeUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ref/ReferenceHomeUIHandler.java @@ -22,9 +22,8 @@ package fr.ird.observe.ui.content.ref; * #L% */ -import fr.ird.observe.db.DataContext; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.services.dto.referential.ProgramDto; +import fr.ird.observe.business.db.DataContext; +import fr.ird.observe.business.db.DataSource; import fr.ird.observe.ui.content.ContentMode; import fr.ird.observe.ui.content.ContentUIHandler; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ref/ReferenceHomeUIModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ref/ReferenceHomeUIModel.java index 0e90168..047580c 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ref/ReferenceHomeUIModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ref/ReferenceHomeUIModel.java @@ -22,7 +22,7 @@ package fr.ird.observe.ui.content.ref; * #L% */ -import fr.ird.observe.BinderService; +import fr.ird.observe.business.BinderService; import fr.ird.observe.services.dto.referential.ProgramDto; import fr.ird.observe.ui.content.ContentUIModel; import org.nuiton.util.beans.BinderModelBuilder; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ref/ReferentialContentUIInitializer.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ref/ReferentialContentUIInitializer.java index 9e4f0c6..a8d8bad 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ref/ReferentialContentUIInitializer.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ref/ReferentialContentUIInitializer.java @@ -23,10 +23,10 @@ package fr.ird.observe.ui.content.ref; */ import com.google.common.base.Predicate; -import fr.ird.observe.DecoratorService; +import fr.ird.observe.business.DecoratorService; import fr.ird.observe.ObserveContext; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.DataSourceException; +import fr.ird.observe.business.db.DataSource; +import fr.ird.observe.business.db.DataSourceException; import fr.ird.observe.services.dto.referential.ReferentialDto; import fr.ird.observe.ui.content.ContentUIInitializer; import fr.ird.observe.ui.content.ObserveContentUI; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ref/UniqueKeyTableModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ref/UniqueKeyTableModel.java index aabff16..53349e0 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ref/UniqueKeyTableModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ref/UniqueKeyTableModel.java @@ -21,7 +21,7 @@ */ package fr.ird.observe.ui.content.ref; -import fr.ird.observe.DecoratorService; +import fr.ird.observe.business.DecoratorService; import fr.ird.observe.ObserveContext; import javax.swing.table.AbstractTableModel; 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 dfc2b43..3463f60 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 @@ -24,10 +24,10 @@ package fr.ird.observe.ui.content.table; import fr.ird.observe.DataService; import fr.ird.observe.ObserveContext; import fr.ird.observe.ObserveDAOHelper; -import fr.ird.observe.db.DataContext; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.DataSourceException; -import fr.ird.observe.db.constants.DataContextType; +import fr.ird.observe.business.db.DataContext; +import fr.ird.observe.business.db.DataSource; +import fr.ird.observe.business.db.DataSourceException; +import fr.ird.observe.business.db.constants.DataContextType; import fr.ird.observe.services.dto.AbstractObserveDto; import fr.ird.observe.services.dto.referential.Species2Dto; import fr.ird.observe.ui.UIHelper; @@ -42,7 +42,6 @@ import org.apache.commons.logging.LogFactory; import org.nuiton.topia.TopiaContext; import org.nuiton.topia.TopiaException; import org.nuiton.topia.persistence.TopiaDAO; -import org.nuiton.topia.persistence.TopiaEntity; import org.nuiton.topia.persistence.util.EntityListUpdator; import org.nuiton.topia.persistence.util.Loador; import org.nuiton.topia.persistence.util.TopiaEntityBinder; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/ContentTableUIInitializer.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/ContentTableUIInitializer.java index f510997..5a77e5b 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/ContentTableUIInitializer.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/ContentTableUIInitializer.java @@ -22,8 +22,8 @@ package fr.ird.observe.ui.content.table; * #L% */ -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.DataSourceException; +import fr.ird.observe.business.db.DataSource; +import fr.ird.observe.business.db.DataSourceException; import fr.ird.observe.ui.content.ContentUIInitializer; import fr.ird.observe.ui.util.BooleanEditor; import jaxx.runtime.SwingUtil; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/ContentTableUIModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/ContentTableUIModel.java index d864f6e..d658465 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/ContentTableUIModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/ContentTableUIModel.java @@ -21,8 +21,8 @@ */ package fr.ird.observe.ui.content.table; -import fr.ird.observe.BinderService; -import fr.ird.observe.ObserveTechnicalException; +import fr.ird.observe.business.BinderService; +import fr.ird.observe.business.ObserveTechnicalException; import fr.ird.observe.services.dto.AbstractObserveDto; import fr.ird.observe.ui.content.ContentUIModel; import org.apache.commons.lang3.reflect.ConstructorUtils; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/BaitsCompositionUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/BaitsCompositionUIHandler.java index 5cc790d..a491312 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/BaitsCompositionUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/BaitsCompositionUIHandler.java @@ -23,13 +23,9 @@ package fr.ird.observe.ui.content.table.impl.longline; */ import fr.ird.observe.DataService; -import fr.ird.observe.db.DataContext; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.constants.DataContextType; -import fr.ird.observe.services.dto.longline.BaitsCompositionDto; -import fr.ird.observe.services.dto.longline.SetLonglineDto; -import fr.ird.observe.services.dto.referential.longline.BaitSettingStatusDto; -import fr.ird.observe.services.dto.referential.longline.BaitTypeDto; +import fr.ird.observe.business.db.DataContext; +import fr.ird.observe.business.db.DataSource; +import fr.ird.observe.business.db.constants.DataContextType; import fr.ird.observe.ui.UIHelper; import fr.ird.observe.ui.content.table.ContentTableUIHandler; import org.apache.commons.logging.Log; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/BranchlinesCompositionUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/BranchlinesCompositionUIHandler.java index fcd23fc..a23f23c 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/BranchlinesCompositionUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/BranchlinesCompositionUIHandler.java @@ -23,13 +23,9 @@ package fr.ird.observe.ui.content.table.impl.longline; */ import fr.ird.observe.DataService; -import fr.ird.observe.db.DataContext; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.constants.DataContextType; -import fr.ird.observe.services.dto.longline.BranchlinesCompositionDto; -import fr.ird.observe.services.dto.longline.SetLonglineDto; -import fr.ird.observe.services.dto.referential.longline.HookSizeDto; -import fr.ird.observe.services.dto.referential.longline.HookTypeDto; +import fr.ird.observe.business.db.DataContext; +import fr.ird.observe.business.db.DataSource; +import fr.ird.observe.business.db.constants.DataContextType; import fr.ird.observe.ui.UIHelper; import fr.ird.observe.ui.content.table.ContentTableUIHandler; import org.apache.commons.logging.Log; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/CatchLonglineContentTableUIInitializer.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/CatchLonglineContentTableUIInitializer.java index 5026fd9..579f6aa 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/CatchLonglineContentTableUIInitializer.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/CatchLonglineContentTableUIInitializer.java @@ -22,9 +22,7 @@ package fr.ird.observe.ui.content.table.impl.longline; * #L% */ -import fr.ird.observe.db.DataSourceException; -import fr.ird.observe.services.dto.longline.CatchLonglineDto; -import fr.ird.observe.services.dto.longline.SetLonglineDto; +import fr.ird.observe.business.db.DataSourceException; import fr.ird.observe.ui.content.table.ContentTableUIInitializer; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; 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 b5a7a73..c817dcc 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 @@ -23,31 +23,19 @@ package fr.ird.observe.ui.content.table.impl.longline; */ import fr.ird.observe.DataService; -import fr.ird.observe.DecoratorService; +import fr.ird.observe.business.DecoratorService; import fr.ird.observe.ObserveConfig; import fr.ird.observe.ObserveContext; import fr.ird.observe.ObserveDAOHelper; -import fr.ird.observe.ObserveTechnicalException; -import fr.ird.observe.db.DataContext; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.DataSourceException; -import fr.ird.observe.db.constants.DataContextType; -import fr.ird.observe.db.util.TopiaExecutor; -import fr.ird.observe.db.util.TopiaExecutor2; -import fr.ird.observe.services.dto.longline.BasketDto; -import fr.ird.observe.services.dto.longline.BranchlineDto; -import fr.ird.observe.services.dto.longline.CatchLonglineDto; -import fr.ird.observe.services.dto.longline.SectionDto; -import fr.ird.observe.services.dto.longline.SetLonglineDto; -import fr.ird.observe.services.dto.longline.SizeMeasureDto; +import fr.ird.observe.business.ObserveTechnicalException; +import fr.ird.observe.business.db.DataContext; +import fr.ird.observe.business.db.DataSource; +import fr.ird.observe.business.db.DataSourceException; +import fr.ird.observe.business.db.constants.DataContextType; +import fr.ird.observe.business.util.TopiaExecutor; +import fr.ird.observe.business.util.TopiaExecutor2; import fr.ird.observe.services.dto.longline.SizeMeasureDAODto; -import fr.ird.observe.services.dto.longline.WeightMeasureDto; import fr.ird.observe.services.dto.longline.WeightMeasureDAODto; -import fr.ird.observe.services.dto.referential.SpeciesDto; -import fr.ird.observe.services.dto.referential.longline.CatchFateLonglineDto; -import fr.ird.observe.services.dto.referential.longline.HealthnessDto; -import fr.ird.observe.services.dto.referential.longline.SizeMeasureTypeDto; -import fr.ird.observe.services.dto.referential.longline.WeightMeasureTypeDto; import fr.ird.observe.ui.UIHelper; import fr.ird.observe.ui.content.ContentMode; import fr.ird.observe.ui.content.ContentUIInitializer; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/CatchLonglineUIModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/CatchLonglineUIModel.java index f872dea..5bcf8e8 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/CatchLonglineUIModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/CatchLonglineUIModel.java @@ -24,7 +24,7 @@ package fr.ird.observe.ui.content.table.impl.longline; import com.google.common.collect.ImmutableSet; import com.google.common.collect.Lists; -import fr.ird.observe.BinderService; +import fr.ird.observe.business.BinderService; import fr.ird.observe.services.dto.longline.BranchlineDto; import fr.ird.observe.services.dto.longline.CatchLonglineDto; import fr.ird.observe.services.dto.longline.SetLonglineDto; 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 cefdaf3..502bff4 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 @@ -24,13 +24,9 @@ package fr.ird.observe.ui.content.table.impl.longline; import fr.ird.observe.DataService; import fr.ird.observe.ObserveConfig; -import fr.ird.observe.db.DataContext; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.constants.DataContextType; -import fr.ird.observe.services.dto.longline.ActivityLonglineDto; -import fr.ird.observe.services.dto.longline.EncounterDto; -import fr.ird.observe.services.dto.referential.SpeciesDto; -import fr.ird.observe.services.dto.referential.longline.EncounterTypeDto; +import fr.ird.observe.business.db.DataContext; +import fr.ird.observe.business.db.DataSource; +import fr.ird.observe.business.db.constants.DataContextType; import fr.ird.observe.ui.UIHelper; import fr.ird.observe.ui.content.table.ContentTableUIHandler; import org.apache.commons.logging.Log; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/FloatlinesCompositionUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/FloatlinesCompositionUIHandler.java index 2624131..3e6cf7c 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/FloatlinesCompositionUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/FloatlinesCompositionUIHandler.java @@ -23,12 +23,9 @@ package fr.ird.observe.ui.content.table.impl.longline; */ import fr.ird.observe.DataService; -import fr.ird.observe.db.DataContext; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.constants.DataContextType; -import fr.ird.observe.services.dto.longline.FloatlinesCompositionDto; -import fr.ird.observe.services.dto.longline.SetLonglineDto; -import fr.ird.observe.services.dto.referential.longline.LineTypeDto; +import fr.ird.observe.business.db.DataContext; +import fr.ird.observe.business.db.DataSource; +import fr.ird.observe.business.db.constants.DataContextType; import fr.ird.observe.ui.UIHelper; import fr.ird.observe.ui.content.table.ContentTableUIHandler; import org.apache.commons.logging.Log; 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 e862ff9..6b1e490 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 @@ -25,17 +25,12 @@ package fr.ird.observe.ui.content.table.impl.longline; import fr.ird.observe.DataService; import fr.ird.observe.ObserveContext; import fr.ird.observe.ObserveDAOHelper; -import fr.ird.observe.ObserveTechnicalException; -import fr.ird.observe.db.DataContext; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.DataSourceException; -import fr.ird.observe.db.constants.DataContextType; -import fr.ird.observe.services.dto.referential.GearDto; -import fr.ird.observe.services.dto.referential.GearCaracteristicDto; -import fr.ird.observe.services.dto.longline.GearUseFeaturesMeasurementLonglineDto; +import fr.ird.observe.business.ObserveTechnicalException; +import fr.ird.observe.business.db.DataContext; +import fr.ird.observe.business.db.DataSource; +import fr.ird.observe.business.db.DataSourceException; +import fr.ird.observe.business.db.constants.DataContextType; import fr.ird.observe.services.dto.longline.GearUseFeaturesMeasurementLonglineDAODto; -import fr.ird.observe.services.dto.longline.GearUseFeaturesLonglineDto; -import fr.ird.observe.services.dto.longline.TripLonglineDto; import fr.ird.observe.ui.ObserveMainUI; import fr.ird.observe.ui.UIHelper; import fr.ird.observe.ui.content.ContentMode; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/GearUseFeaturesLonglineUIModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/GearUseFeaturesLonglineUIModel.java index 5e2808d..0593604 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/GearUseFeaturesLonglineUIModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/GearUseFeaturesLonglineUIModel.java @@ -24,20 +24,14 @@ package fr.ird.observe.ui.content.table.impl.longline; import com.google.common.collect.ImmutableSet; import com.google.common.collect.Lists; -import fr.ird.observe.BinderService; import fr.ird.observe.ObserveServiceHelper; -import fr.ird.observe.services.dto.longline.GearUseFeaturesMeasurementLonglineDto; import fr.ird.observe.services.dto.longline.GearUseFeaturesLonglineDto; import fr.ird.observe.services.dto.longline.TripLonglineDto; import fr.ird.observe.ui.content.table.ContentTableMeta; import fr.ird.observe.ui.content.table.ContentTableModel; import fr.ird.observe.ui.content.table.ContentTableUIModel; import fr.ird.observe.ui.content.table.ObserveContentTableUI; -import fr.ird.observe.ui.content.table.impl.longline.GearUseFeaturesMeasurementLonglinesTableModel; -import fr.ird.observe.ui.content.table.impl.longline.GearUseFeaturesLonglineTableModel; import fr.ird.observe.ui.content.table.impl.longline.GearUseFeaturesLonglineUI; -import org.nuiton.topia.persistence.util.TopiaEntityBinder; -import org.nuiton.util.beans.BinderModelBuilder; import java.util.List; import java.util.Set; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/HooksCompositionUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/HooksCompositionUIHandler.java index db19994..23ea26d 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/HooksCompositionUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/HooksCompositionUIHandler.java @@ -23,13 +23,9 @@ package fr.ird.observe.ui.content.table.impl.longline; */ import fr.ird.observe.DataService; -import fr.ird.observe.db.DataContext; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.constants.DataContextType; -import fr.ird.observe.services.dto.longline.HooksCompositionDto; -import fr.ird.observe.services.dto.longline.SetLonglineDto; -import fr.ird.observe.services.dto.referential.longline.HookSizeDto; -import fr.ird.observe.services.dto.referential.longline.HookTypeDto; +import fr.ird.observe.business.db.DataContext; +import fr.ird.observe.business.db.DataSource; +import fr.ird.observe.business.db.constants.DataContextType; import fr.ird.observe.ui.UIHelper; import fr.ird.observe.ui.content.table.ContentTableUIHandler; import org.apache.commons.logging.Log; 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 9cfc7cb..8c35c05 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 @@ -27,16 +27,11 @@ import com.google.common.io.FileWriteMode; import com.google.common.io.Files; import fr.ird.observe.DataService; import fr.ird.observe.ObserveContext; -import fr.ird.observe.ObserveTechnicalException; -import fr.ird.observe.db.DataContext; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.DataSourceException; -import fr.ird.observe.db.constants.DataContextType; -import fr.ird.observe.services.dto.longline.ActivityLonglineDto; -import fr.ird.observe.services.dto.longline.SensorUsedDto; -import fr.ird.observe.services.dto.referential.longline.SensorBrandDto; -import fr.ird.observe.services.dto.referential.longline.SensorDataFormatDto; -import fr.ird.observe.services.dto.referential.longline.SensorTypeDto; +import fr.ird.observe.business.ObserveTechnicalException; +import fr.ird.observe.business.db.DataContext; +import fr.ird.observe.business.db.DataSource; +import fr.ird.observe.business.db.DataSourceException; +import fr.ird.observe.business.db.constants.DataContextType; import fr.ird.observe.ui.ObserveMainUI; import fr.ird.observe.ui.UIHelper; import fr.ird.observe.ui.content.table.ContentTableUIHandler; 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 a3158d8..1366299 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 @@ -28,15 +28,11 @@ import com.google.common.io.Files; import fr.ird.observe.DataService; import fr.ird.observe.ObserveConfig; import fr.ird.observe.ObserveContext; -import fr.ird.observe.ObserveTechnicalException; -import fr.ird.observe.db.DataContext; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.DataSourceException; -import fr.ird.observe.db.constants.DataContextType; -import fr.ird.observe.services.dto.longline.SectionDto; -import fr.ird.observe.services.dto.longline.SetLonglineDto; -import fr.ird.observe.services.dto.longline.TdrDto; -import fr.ird.observe.services.dto.referential.longline.SensorBrandDto; +import fr.ird.observe.business.ObserveTechnicalException; +import fr.ird.observe.business.db.DataContext; +import fr.ird.observe.business.db.DataSource; +import fr.ird.observe.business.db.DataSourceException; +import fr.ird.observe.business.db.constants.DataContextType; import fr.ird.observe.ui.ObserveMainUI; import fr.ird.observe.ui.UIHelper; import fr.ird.observe.ui.content.ContentMode; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/TdrUIModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/TdrUIModel.java index 8c1ebe3..6b561ca 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/TdrUIModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/TdrUIModel.java @@ -24,7 +24,7 @@ package fr.ird.observe.ui.content.table.impl.longline; import com.google.common.collect.ImmutableSet; import com.google.common.collect.Lists; -import fr.ird.observe.BinderService; +import fr.ird.observe.business.BinderService; import fr.ird.observe.services.dto.longline.SetLonglineDto; import fr.ird.observe.services.dto.longline.TdrDto; import fr.ird.observe.ui.content.table.ContentTableMeta; 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 84993ab..8c2218c 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 @@ -25,17 +25,12 @@ package fr.ird.observe.ui.content.table.impl.seine; import fr.ird.observe.DataService; import fr.ird.observe.ObserveContext; import fr.ird.observe.ObserveDAOHelper; -import fr.ird.observe.ObserveTechnicalException; -import fr.ird.observe.db.DataContext; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.DataSourceException; -import fr.ird.observe.db.constants.DataContextType; -import fr.ird.observe.services.dto.referential.GearDto; -import fr.ird.observe.services.dto.referential.GearCaracteristicDto; -import fr.ird.observe.services.dto.seine.GearUseFeaturesMeasurementSeineDto; +import fr.ird.observe.business.ObserveTechnicalException; +import fr.ird.observe.business.db.DataContext; +import fr.ird.observe.business.db.DataSource; +import fr.ird.observe.business.db.DataSourceException; +import fr.ird.observe.business.db.constants.DataContextType; import fr.ird.observe.services.dto.seine.GearUseFeaturesMeasurementSeineDAODto; -import fr.ird.observe.services.dto.seine.GearUseFeaturesSeineDto; -import fr.ird.observe.services.dto.seine.TripSeineDto; import fr.ird.observe.ui.ObserveMainUI; import fr.ird.observe.ui.UIHelper; import fr.ird.observe.ui.content.ContentMode; 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 c43ce92..2a15648 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 @@ -23,21 +23,13 @@ package fr.ird.observe.ui.content.table.impl.seine; import fr.ird.observe.DataService; import fr.ird.observe.ObserveConfig; -import fr.ird.observe.db.DataContext; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.DataSourceException; -import fr.ird.observe.db.constants.DataContextType; +import fr.ird.observe.business.db.DataContext; +import fr.ird.observe.business.db.DataSource; +import fr.ird.observe.business.db.DataSourceException; +import fr.ird.observe.business.db.constants.DataContextType; import fr.ird.observe.services.dto.constants.seine.NonTargetCatchComputedValueSourceDto; -import fr.ird.observe.services.dto.referential.OceanDto; import fr.ird.observe.services.dto.referential.ReferenceEntitiesDto; -import fr.ird.observe.services.dto.referential.SpeciesDto; import fr.ird.observe.services.dto.referential.Species2Dto; -import fr.ird.observe.services.dto.referential.seine.ReasonForDiscardDto; -import fr.ird.observe.services.dto.referential.seine.SpeciesFateDto; -import fr.ird.observe.services.dto.seine.NonTargetCatchDto; -import fr.ird.observe.services.dto.seine.NonTargetLengthDto; -import fr.ird.observe.services.dto.seine.NonTargetSampleDto; -import fr.ird.observe.services.dto.seine.SetSeineDto; import fr.ird.observe.ui.UIHelper; import fr.ird.observe.ui.content.ContentMode; import fr.ird.observe.ui.content.table.ContentTableModel; 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 1347ab2..165dbbe 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 @@ -23,15 +23,10 @@ package fr.ird.observe.ui.content.table.impl.seine; import fr.ird.observe.DataService; import fr.ird.observe.ObserveDAOHelper; -import fr.ird.observe.db.DataContext; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.DataSourceException; -import fr.ird.observe.db.constants.DataContextType; -import fr.ird.observe.services.dto.referential.SexDto; -import fr.ird.observe.services.dto.referential.SpeciesDto; -import fr.ird.observe.services.dto.seine.NonTargetLengthDto; -import fr.ird.observe.services.dto.seine.NonTargetSampleDto; -import fr.ird.observe.services.dto.seine.SetSeineDto; +import fr.ird.observe.business.db.DataContext; +import fr.ird.observe.business.db.DataSource; +import fr.ird.observe.business.db.DataSourceException; +import fr.ird.observe.business.db.constants.DataContextType; import fr.ird.observe.ui.UIHelper; import fr.ird.observe.ui.content.ContentMode; import fr.ird.observe.ui.content.table.ContentTableModel; 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 7c29a64..7351740 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 @@ -23,13 +23,9 @@ package fr.ird.observe.ui.content.table.impl.seine; import fr.ird.observe.DataService; import fr.ird.observe.ObserveConfig; -import fr.ird.observe.db.DataContext; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.constants.DataContextType; -import fr.ird.observe.services.dto.referential.SpeciesDto; -import fr.ird.observe.services.dto.referential.seine.SpeciesStatusDto; -import fr.ird.observe.services.dto.seine.FloatingObjectDto; -import fr.ird.observe.services.dto.seine.ObjectObservedSpeciesDto; +import fr.ird.observe.business.db.DataContext; +import fr.ird.observe.business.db.DataSource; +import fr.ird.observe.business.db.constants.DataContextType; import fr.ird.observe.ui.UIHelper; import fr.ird.observe.ui.content.table.ContentTableUIHandler; import org.apache.commons.logging.Log; 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 4ed0e08..97b0979 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 @@ -23,12 +23,9 @@ package fr.ird.observe.ui.content.table.impl.seine; import fr.ird.observe.DataService; import fr.ird.observe.ObserveConfig; -import fr.ird.observe.db.DataContext; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.constants.DataContextType; -import fr.ird.observe.services.dto.referential.SpeciesDto; -import fr.ird.observe.services.dto.seine.FloatingObjectDto; -import fr.ird.observe.services.dto.seine.ObjectSchoolEstimateDto; +import fr.ird.observe.business.db.DataContext; +import fr.ird.observe.business.db.DataSource; +import fr.ird.observe.business.db.constants.DataContextType; import fr.ird.observe.ui.UIHelper; import fr.ird.observe.ui.content.table.ContentTableUIHandler; import org.apache.commons.logging.Log; 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 781fd62..844a269 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 @@ -23,16 +23,12 @@ package fr.ird.observe.ui.content.table.impl.seine; import fr.ird.observe.DataService; import fr.ird.observe.ObserveConfig; -import fr.ird.observe.db.DataContext; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.DataSourceException; -import fr.ird.observe.db.constants.DataContextType; -import fr.ird.observe.services.dto.referential.OceanDto; +import fr.ird.observe.business.db.DataContext; +import fr.ird.observe.business.db.DataSource; +import fr.ird.observe.business.db.DataSourceException; +import fr.ird.observe.business.db.constants.DataContextType; import fr.ird.observe.services.dto.referential.ReferenceEntitiesDto; -import fr.ird.observe.services.dto.referential.SpeciesDto; import fr.ird.observe.services.dto.referential.Species2Dto; -import fr.ird.observe.services.dto.seine.SchoolEstimateDto; -import fr.ird.observe.services.dto.seine.SetSeineDto; import fr.ird.observe.ui.UIHelper; import fr.ird.observe.ui.content.ContentMode; import fr.ird.observe.ui.content.table.ContentTableModel; 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 011a2b3..cf8ea4e 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 @@ -22,22 +22,15 @@ package fr.ird.observe.ui.content.table.impl.seine; import fr.ird.observe.DataService; -import fr.ird.observe.DecoratorService; +import fr.ird.observe.business.DecoratorService; import fr.ird.observe.ObserveConfig; -import fr.ird.observe.db.DataContext; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.DataSourceException; -import fr.ird.observe.db.constants.DataContextType; -import fr.ird.observe.db.util.TopiaExecutor; -import fr.ird.observe.services.dto.referential.OceanDto; +import fr.ird.observe.business.db.DataContext; +import fr.ird.observe.business.db.DataSource; +import fr.ird.observe.business.db.DataSourceException; +import fr.ird.observe.business.db.constants.DataContextType; +import fr.ird.observe.business.util.TopiaExecutor; import fr.ird.observe.services.dto.referential.ReferenceEntitiesDto; -import fr.ird.observe.services.dto.referential.SpeciesDto; import fr.ird.observe.services.dto.referential.Species2Dto; -import fr.ird.observe.services.dto.referential.seine.WeightCategoryDto; -import fr.ird.observe.services.dto.seine.SetSeineDto; -import fr.ird.observe.services.dto.seine.TargetCatchDto; -import fr.ird.observe.services.dto.seine.TargetLengthDto; -import fr.ird.observe.services.dto.seine.TargetSampleDto; import fr.ird.observe.ui.UIHelper; import fr.ird.observe.ui.content.ContentMode; import fr.ird.observe.ui.content.table.ContentTableModel; 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 a2955f1..c5068b1 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 @@ -22,23 +22,15 @@ package fr.ird.observe.ui.content.table.impl.seine; import fr.ird.observe.DataService; -import fr.ird.observe.DecoratorService; +import fr.ird.observe.business.DecoratorService; import fr.ird.observe.ObserveConfig; -import fr.ird.observe.db.DataContext; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.DataSourceException; -import fr.ird.observe.db.constants.DataContextType; -import fr.ird.observe.db.util.TopiaExecutor; -import fr.ird.observe.services.dto.referential.OceanDto; +import fr.ird.observe.business.db.DataContext; +import fr.ird.observe.business.db.DataSource; +import fr.ird.observe.business.db.DataSourceException; +import fr.ird.observe.business.db.constants.DataContextType; +import fr.ird.observe.business.util.TopiaExecutor; import fr.ird.observe.services.dto.referential.ReferenceEntitiesDto; -import fr.ird.observe.services.dto.referential.SpeciesDto; import fr.ird.observe.services.dto.referential.Species2Dto; -import fr.ird.observe.services.dto.referential.seine.ReasonForDiscardDto; -import fr.ird.observe.services.dto.referential.seine.WeightCategoryDto; -import fr.ird.observe.services.dto.seine.SetSeineDto; -import fr.ird.observe.services.dto.seine.TargetCatchDto; -import fr.ird.observe.services.dto.seine.TargetLengthDto; -import fr.ird.observe.services.dto.seine.TargetSampleDto; import fr.ird.observe.ui.UIHelper; import fr.ird.observe.ui.content.ContentMode; import fr.ird.observe.ui.content.table.ContentTableModel; 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 7b816ac..7da40e9 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 @@ -23,14 +23,10 @@ package fr.ird.observe.ui.content.table.impl.seine; import fr.ird.observe.DataService; import fr.ird.observe.ObserveDAOHelper; -import fr.ird.observe.db.DataContext; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.DataSourceException; -import fr.ird.observe.db.constants.DataContextType; -import fr.ird.observe.services.dto.referential.SpeciesDto; -import fr.ird.observe.services.dto.seine.SetSeineDto; -import fr.ird.observe.services.dto.seine.TargetLengthDto; -import fr.ird.observe.services.dto.seine.TargetSampleDto; +import fr.ird.observe.business.db.DataContext; +import fr.ird.observe.business.db.DataSource; +import fr.ird.observe.business.db.DataSourceException; +import fr.ird.observe.business.db.constants.DataContextType; import fr.ird.observe.ui.UIHelper; import fr.ird.observe.ui.content.ContentMode; import fr.ird.observe.ui.content.table.ContentTableModel; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/RemoteUILauncher.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/RemoteUILauncher.java index 252fa2e..c6dc554 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/RemoteUILauncher.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/RemoteUILauncher.java @@ -21,9 +21,8 @@ */ package fr.ird.observe.ui.storage; -import fr.ird.observe.ObserveContext; -import fr.ird.observe.db.constants.DbMode; -import fr.ird.observe.db.util.SecurityModel; +import fr.ird.observe.business.db.constants.DbMode; +import fr.ird.observe.business.util.SecurityModel; import jaxx.runtime.JAXXContext; import jaxx.runtime.swing.ErrorDialogUI; import org.apache.commons.logging.Log; 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 e2a7cfd..639f893 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 @@ -23,10 +23,10 @@ package fr.ird.observe.ui.storage; import fr.ird.observe.ObserveContext; import fr.ird.observe.DataService; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.constants.DbMode; -import fr.ird.observe.db.impl.H2DataSource; -import fr.ird.observe.db.model.DataSelectionModel; +import fr.ird.observe.business.db.DataSource; +import fr.ird.observe.business.db.constants.DbMode; +import fr.ird.observe.business.db.impl.H2DataSource; +import fr.ird.observe.business.db.model.DataSelectionModel; import jaxx.runtime.JAXXContext; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -97,15 +97,17 @@ public class StorageBackupUILauncher extends StorageUILauncher { DataSource service = getStorage(); StorageUIModel storageModel = ui.getModel(); File backupFile = storageModel.getBackupFile(); - DataSelectionModel dataModel = storageModel.getSelectDataModel(); + //FIXME +// DataSelectionModel dataModel = storageModel.getSelectDataModel(); Set<String> marees = null; - if (dataModel != null && !dataModel.isDataFull()) { - // on renseigne les marees a exporter uniquement si - // on en a selectionner, de plus si on a selectionne - // toutes les marees, on le les passe pas : car c un dump - // complet de la base. - marees = dataModel.getSelectedData(); - } + //FIXME +// if (dataModel != null && !dataModel.isDataFull()) { +// // on renseigne les marees a exporter uniquement si +// // on en a selectionner, de plus si on a selectionne +// // toutes les marees, on le les passe pas : car c un dump +// // complet de la base. +// marees = dataModel.getSelectedData(); +// } handler.backupLocalDatabase(service, backupFile, marees); } @@ -114,7 +116,8 @@ public class StorageBackupUILauncher extends StorageUILauncher { return source; } - protected DataService getDataService() { - return ObserveContext.get().getDataService(); - } + //FIXME +// protected DataService getDataService() { +// return ObserveContext.get().getDataService(); +// } } 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 3ef78d4..ad035dd 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 @@ -22,29 +22,27 @@ package fr.ird.observe.ui.storage; import com.google.common.base.Preconditions; -import fr.ird.observe.DecoratorService; +import fr.ird.observe.business.DecoratorService; import fr.ird.observe.ObserveActionExecutor; import fr.ird.observe.ObserveConfig; import fr.ird.observe.ObserveContext; import fr.ird.observe.ObserveRunner; import fr.ird.observe.ObserveServiceHelper; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.DataSourceConfig; -import fr.ird.observe.db.DataSourceException; -import fr.ird.observe.db.DataSourceFactory; -import fr.ird.observe.db.ReplicationService; -import fr.ird.observe.db.constants.CreationMode; -import fr.ird.observe.db.constants.DbMode; -import fr.ird.observe.db.event.DataSourceEvent; -import fr.ird.observe.db.event.DataSourceListenerAdapter; -import fr.ird.observe.db.impl.H2DataSource; -import fr.ird.observe.db.impl.H2DataSourceConfig; -import fr.ird.observe.db.impl.PGDataSource; -import fr.ird.observe.db.impl.PGDataSourceConfig; -import fr.ird.observe.db.model.DataSelectionModel; -import fr.ird.observe.db.util.SecurityModel; -import fr.ird.observe.services.dto.referential.ProgramDto; -import fr.ird.observe.services.dto.seine.TripSeineDto; +import fr.ird.observe.business.db.DataSource; +import fr.ird.observe.business.db.DataSourceConfig; +import fr.ird.observe.business.db.DataSourceException; +import fr.ird.observe.business.db.DataSourceFactory; +import fr.ird.observe.business.db.ReplicationService; +import fr.ird.observe.business.db.constants.CreationMode; +import fr.ird.observe.business.db.constants.DbMode; +import fr.ird.observe.business.db.event.DataSourceEvent; +import fr.ird.observe.business.db.event.DataSourceListenerAdapter; +import fr.ird.observe.business.db.impl.H2DataSource; +import fr.ird.observe.business.db.impl.H2DataSourceConfig; +import fr.ird.observe.business.db.impl.PGDataSource; +import fr.ird.observe.business.db.impl.PGDataSourceConfig; +import fr.ird.observe.business.db.model.DataSelectionModel; +import fr.ird.observe.business.util.SecurityModel; import fr.ird.observe.ui.ObserveMainUI; import fr.ird.observe.ui.UIHelper; import fr.ird.observe.ui.storage.tabs.RolesTableModel; @@ -97,8 +95,9 @@ public class StorageUIHandler { * <p/> * Note: le service est sans état et donc peut rester en état du handler. */ - protected ReplicationService replicationService = - ObserveServiceHelper.newReplicationService(); + //FIXME +// protected ReplicationService replicationService = +// ObserveServiceHelper.newReplicationService(); /** * Prépare une service de persistance à partir d'un modèle. @@ -121,46 +120,47 @@ public class StorageUIHandler { DataSource mainStorage = null; - switch (model.getDbMode()) { - case CREATE_LOCAL: - case USE_LOCAL: - H2DataSourceConfig h2Config = model.toH2StorageConfig(localLabel); - if (model.getDbMode() == DbMode.USE_LOCAL) { - h2Config.setCreationMode(null); - } - H2DataSource h2Service = - DataSourceFactory.newService(h2Config); - h2Service.addDataSourceListener( - new DataSourceListenerAdapter() { - - @Override - public void onOpened(DataSourceEvent event) { - H2DataSource s = (H2DataSource) - event.getSource(); - - ObserveContext context = ObserveContext.get(); - // la base locale existe desormais - context.getContextValue(ObserveConfig.class). - setLocalStorageExist(true); - - // le service est en mode normal - s.getConfig().setCreationMode(null); - } - }); - - mainStorage = h2Service; - - break; - case USE_REMOTE: - - PGDataSourceConfig pgConfig = - model.toPostgresStorageConfig(remoteLabel); - PGDataSource pgservice = - DataSourceFactory.newService(pgConfig); - mainStorage = pgservice; - break; - } - + //FIXME +// switch (model.getDbMode()) { +// case CREATE_LOCAL: +// case USE_LOCAL: +// H2DataSourceConfig h2Config = model.toH2StorageConfig(localLabel); +// if (model.getDbMode() == DbMode.USE_LOCAL) { +// h2Config.setCreationMode(null); +// } +// H2DataSource h2Service = +// DataSourceFactory.newService(h2Config); +// h2Service.addDataSourceListener( +// new DataSourceListenerAdapter() { +// +// @Override +// public void onOpened(DataSourceEvent event) { +// H2DataSource s = (H2DataSource) +// event.getSource(); +// +// ObserveContext context = ObserveContext.get(); +// // la base locale existe desormais +// context.getContextValue(ObserveConfig.class). +// setLocalStorageExist(true); +// +// // le service est en mode normal +// s.getConfig().setCreationMode(null); +// } +// }); +// +// mainStorage = h2Service; +// +// break; +// case USE_REMOTE: +// +// PGDataSourceConfig pgConfig = +// model.toPostgresStorageConfig(remoteLabel); +// PGDataSource pgservice = +// DataSourceFactory.newService(pgConfig); +// mainStorage = pgservice; +// break; +// } +// if (isMain) { // preparation du storage principal ObserveContext.get().prepareMainStorage(mainStorage); @@ -374,207 +374,208 @@ public class StorageUIHandler { */ public void doChangeStorage(JAXXContext context, StorageUIModel model) { - ObserveConfig config = context.getContextValue(ObserveConfig.class); - // faut-il detruire la base locale ? - boolean destroyLocalBase = - config.isLocalStorageExist() && - model.getDbMode() == DbMode.CREATE_LOCAL; - - if (log.isDebugEnabled()) { - log.debug(">>> should destroy local db ? " + destroyLocalBase); - } - - DataSource mainStorage = ObserveContext.get().getDataSource(); - - H2DataSource localStorage = null; - if (mainStorage instanceof H2DataSource) { - localStorage = (H2DataSource) mainStorage; - } - H2DataSourceConfig localConfig; - - boolean localDbIsSane = true; - if (destroyLocalBase || model.isDoBackup()) { - if (localStorage == null) { - try { - localConfig = config.toH2StorageConfig( - n("observe.storage.label.local")); - - // la base ne doit pas etre mise a jour dans ce cas - localConfig.setCanMigrate(false); - - // on charge un storage sur la base locale - localStorage = DataSourceFactory.newService( - localConfig); - localStorage.doOpen(); - } catch (Exception e) { - // on a pas reussi à ouvrir la base locale - // cela ne doit pas empécher de continuer - // il faut juste supprimer physiquement le repertoire - // de la base - Exception e2 = new Exception(t("observe.error.storage.could.not.load.local.db", e.getMessage()), e); - ErrorDialogUI.showError(e2); - if (log.isErrorEnabled()) { - log.error(e2.getMessage(), e2); - } - - // on conserve l'état - localDbIsSane = false; - - // pour la suite on fait comme si il n'y a pas de local storage - localStorage = null; - } - } - } - - if (model.isDoBackup()) { - if (!localDbIsSane) { - - // la base locale n'est pas saine, on doit arrêter l'objectOperation - // de changement de base sous peine de perdre la base. - Exception e = new Exception(t("observe.error.storage.could.not.backup.unsane.local.db")); - ErrorDialogUI.showError(e); - return; - } - // effectue la backup de la base locale existante - File f = model.getBackupFile(); - if (log.isDebugEnabled()) { - log.debug(">>> do backup with " + localStorage + " in " + f); - } - try { - backupLocalDatabase(localStorage, f); - } catch (Exception e) { - ErrorDialogUI.showError(e); - if (log.isErrorEnabled()) { - log.error(e.getMessage(), e); - } - return; - } - } - - if (destroyLocalBase) { - if (log.isDebugEnabled()) { - log.debug(">>> destroy local db " + localStorage); - } - if (!localDbIsSane) { - // la base locale n'est pas saine, on va supprimer directement - // le dossier de la base - File localDBDirectory = config.getLocalDBDirectory(); - if (log.isInfoEnabled()) { - log.info(">>> destroy local db directory " + localDBDirectory); - } - try { - FileUtils.deleteDirectory(localDBDirectory); - } catch (IOException e) { - ErrorDialogUI.showError(e); - if (log.isErrorEnabled()) { - log.error(e.getMessage(), e); - } - } - } else { - try { - localStorage.doClose(true); - } catch (Exception e) { - ErrorDialogUI.showError(e); - if (log.isErrorEnabled()) { - log.error(e.getMessage(), e); - } - return; - } - } - } - - // suppression du storage precedent - if (mainStorage != null && mainStorage.isOpen()) { - try { - if (log.isDebugEnabled()) { - log.debug(">>> close main storage " + mainStorage); - } - // on doit fermer le storage en cours d'utilisation - mainStorage.doClose(false); - - } catch (DataSourceException ex) { - ErrorDialogUI.showError(ex); - } - } - - // suppression du storage local - if (localStorage != null && localStorage.isOpen()) { - // ce cas peut arriver lorsque l'on fait juste une backup - // sans vouloir supprimer la base locale - try { - if (log.isDebugEnabled()) { - log.debug(">>> close local storage " + localStorage); - } - // on doit fermer le storage local ouvert - localStorage.doClose(false); - - } catch (DataSourceException ex) { - ErrorDialogUI.showError(ex); - } - } - - localStorage = null; - - if (log.isDebugEnabled()) { - log.debug("Will create new storage..."); - } - - // preparation du nouveau storage - - try { - - mainStorage = newServiceFromModel( - model, - true, - "observe.storage.label.local", - "observe.storage.label.remote" - ); - - // ouverture du nouveau storage - mainStorage.doOpen(); - - if (log.isInfoEnabled()) { - log.info(">>> main storage opened " + mainStorage.getLabel()); - } - - if (model.isStoreRemoteConfig()) { - storeRemoteConfig(context, model); - } - if (model.getDbMode() == DbMode.CREATE_LOCAL && - model.getCreationMode() == - CreationMode.IMPORT_REMOTE_STORAGE) { - // si on a creer la base locale a partir d'un import d'une base - // distante, on sauvegarde la base locale comme dump initial - // il s'agit d'un dump du référentiel - File f = config.getInitialDbDump(); - if (f.exists()) { - // on supprime le dump sql de la base embarquée - if (!f.delete()) { - throw new IllegalStateException("could not delete " + - f); - } - } - if (log.isInfoEnabled()) { - log.info(">>> create initial dump with " + localStorage + - " in " + f); - } - try { - backupLocalDatabase(mainStorage, f); - config.setInitialDumpExist(true); - } catch (Exception e) { - ErrorDialogUI.showError(e); - if (log.isErrorEnabled()) { - log.error(e.getMessage(), e); - } - } - } - } catch (Exception ex) { - ErrorDialogUI.showError(ex); - if (log.isErrorEnabled()) { - log.error(ex.getMessage(), ex); - } - throw new RuntimeException(ex); - } + //FIXME +// ObserveConfig config = context.getContextValue(ObserveConfig.class); +// // faut-il detruire la base locale ? +// boolean destroyLocalBase = +// config.isLocalStorageExist() && +// model.getDbMode() == DbMode.CREATE_LOCAL; +// +// if (log.isDebugEnabled()) { +// log.debug(">>> should destroy local db ? " + destroyLocalBase); +// } +// +// DataSource mainStorage = ObserveContext.get().getDataSource(); +// +// H2DataSource localStorage = null; +// if (mainStorage instanceof H2DataSource) { +// localStorage = (H2DataSource) mainStorage; +// } +// H2DataSourceConfig localConfig; +// +// boolean localDbIsSane = true; +// if (destroyLocalBase || model.isDoBackup()) { +// if (localStorage == null) { +// try { +// localConfig = config.toH2StorageConfig( +// n("observe.storage.label.local")); +// +// // la base ne doit pas etre mise a jour dans ce cas +// localConfig.setCanMigrate(false); +// +// // on charge un storage sur la base locale +// localStorage = DataSourceFactory.newService( +// localConfig); +// localStorage.doOpen(); +// } catch (Exception e) { +// // on a pas reussi à ouvrir la base locale +// // cela ne doit pas empécher de continuer +// // il faut juste supprimer physiquement le repertoire +// // de la base +// Exception e2 = new Exception(t("observe.error.storage.could.not.load.local.db", e.getMessage()), e); +// ErrorDialogUI.showError(e2); +// if (log.isErrorEnabled()) { +// log.error(e2.getMessage(), e2); +// } +// +// // on conserve l'état +// localDbIsSane = false; +// +// // pour la suite on fait comme si il n'y a pas de local storage +// localStorage = null; +// } +// } +// } +// +// if (model.isDoBackup()) { +// if (!localDbIsSane) { +// +// // la base locale n'est pas saine, on doit arrêter l'objectOperation +// // de changement de base sous peine de perdre la base. +// Exception e = new Exception(t("observe.error.storage.could.not.backup.unsane.local.db")); +// ErrorDialogUI.showError(e); +// return; +// } +// // effectue la backup de la base locale existante +// File f = model.getBackupFile(); +// if (log.isDebugEnabled()) { +// log.debug(">>> do backup with " + localStorage + " in " + f); +// } +// try { +// backupLocalDatabase(localStorage, f); +// } catch (Exception e) { +// ErrorDialogUI.showError(e); +// if (log.isErrorEnabled()) { +// log.error(e.getMessage(), e); +// } +// return; +// } +// } +// +// if (destroyLocalBase) { +// if (log.isDebugEnabled()) { +// log.debug(">>> destroy local db " + localStorage); +// } +// if (!localDbIsSane) { +// // la base locale n'est pas saine, on va supprimer directement +// // le dossier de la base +// File localDBDirectory = config.getLocalDBDirectory(); +// if (log.isInfoEnabled()) { +// log.info(">>> destroy local db directory " + localDBDirectory); +// } +// try { +// FileUtils.deleteDirectory(localDBDirectory); +// } catch (IOException e) { +// ErrorDialogUI.showError(e); +// if (log.isErrorEnabled()) { +// log.error(e.getMessage(), e); +// } +// } +// } else { +// try { +// localStorage.doClose(true); +// } catch (Exception e) { +// ErrorDialogUI.showError(e); +// if (log.isErrorEnabled()) { +// log.error(e.getMessage(), e); +// } +// return; +// } +// } +// } +// +// // suppression du storage precedent +// if (mainStorage != null && mainStorage.isOpen()) { +// try { +// if (log.isDebugEnabled()) { +// log.debug(">>> close main storage " + mainStorage); +// } +// // on doit fermer le storage en cours d'utilisation +// mainStorage.doClose(false); +// +// } catch (DataSourceException ex) { +// ErrorDialogUI.showError(ex); +// } +// } +// +// // suppression du storage local +// if (localStorage != null && localStorage.isOpen()) { +// // ce cas peut arriver lorsque l'on fait juste une backup +// // sans vouloir supprimer la base locale +// try { +// if (log.isDebugEnabled()) { +// log.debug(">>> close local storage " + localStorage); +// } +// // on doit fermer le storage local ouvert +// localStorage.doClose(false); +// +// } catch (DataSourceException ex) { +// ErrorDialogUI.showError(ex); +// } +// } +// +// localStorage = null; +// +// if (log.isDebugEnabled()) { +// log.debug("Will create new storage..."); +// } +// +// // preparation du nouveau storage +// +// try { +// +// mainStorage = newServiceFromModel( +// model, +// true, +// "observe.storage.label.local", +// "observe.storage.label.remote" +// ); +// +// // ouverture du nouveau storage +// mainStorage.doOpen(); +// +// if (log.isInfoEnabled()) { +// log.info(">>> main storage opened " + mainStorage.getLabel()); +// } +// +// if (model.isStoreRemoteConfig()) { +// storeRemoteConfig(context, model); +// } +// if (model.getDbMode() == DbMode.CREATE_LOCAL && +// model.getCreationMode() == +// CreationMode.IMPORT_REMOTE_STORAGE) { +// // si on a creer la base locale a partir d'un import d'une base +// // distante, on sauvegarde la base locale comme dump initial +// // il s'agit d'un dump du référentiel +// File f = config.getInitialDbDump(); +// if (f.exists()) { +// // on supprime le dump sql de la base embarquée +// if (!f.delete()) { +// throw new IllegalStateException("could not delete " + +// f); +// } +// } +// if (log.isInfoEnabled()) { +// log.info(">>> create initial dump with " + localStorage + +// " in " + f); +// } +// try { +// backupLocalDatabase(mainStorage, f); +// config.setInitialDumpExist(true); +// } catch (Exception e) { +// ErrorDialogUI.showError(e); +// if (log.isErrorEnabled()) { +// log.error(e.getMessage(), e); +// } +// } +// } +// } catch (Exception ex) { +// ErrorDialogUI.showError(ex); +// if (log.isErrorEnabled()) { +// log.error(ex.getMessage(), ex); +// } +// throw new RuntimeException(ex); +// } } /** @@ -589,8 +590,9 @@ public class StorageUIHandler { // on sauvegarde dans le parametrage dans la configuration de // l'application - PGDataSourceConfig remoteConfig = model.toPostgresStorageConfig(""); - config.fromStorageConfig(remoteConfig); + //FIXME +// PGDataSourceConfig remoteConfig = model.toPostgresStorageConfig(""); +// config.fromStorageConfig(remoteConfig); } /** @@ -616,50 +618,51 @@ public class StorageUIHandler { if (log.isDebugEnabled()) { log.debug(dst); } - if (service instanceof H2DataSource) { - // le service offre le service - try { - service.storeDB(dst); - } catch (DataSourceException ex) { - ErrorDialogUI.showError(ex); - } - } else { - // on doit dumper la base distante dans une base h2 et en faire - // la sauvegarde - ObserveConfig config = ObserveContext.get().getConfig(); - - DataSource tempStorage = null; - try { - tempStorage = ObserveServiceHelper.newEmptyTempStorage( - config, - t("observe.storage.label.backup"), - "tmpBackup_" + dst.getName() - ); - - tempStorage.doOpen(); - replicationService.replicateReferentiel(service, tempStorage); - replicationService.replicateAllData(service, tempStorage); - - tempStorage.storeDB(dst); - - } catch (Exception e) { - ErrorDialogUI.showError(e); - if (log.isErrorEnabled()) { - log.error(e); - } - } finally { - if (tempStorage != null) { - try { - tempStorage.doClose(true); - } catch (DataSourceException e) { - ErrorDialogUI.showError(e); - if (log.isErrorEnabled()) { - log.error(e); - } - } - } - } - } + //FIXME +// if (service instanceof H2DataSource) { +// // le service offre le service +// try { +// service.storeDB(dst); +// } catch (DataSourceException ex) { +// ErrorDialogUI.showError(ex); +// } +// } else { +// // on doit dumper la base distante dans une base h2 et en faire +// // la sauvegarde +// ObserveConfig config = ObserveContext.get().getConfig(); +// +// DataSource tempStorage = null; +// try { +// tempStorage = ObserveServiceHelper.newEmptyTempStorage( +// config, +// t("observe.storage.label.backup"), +// "tmpBackup_" + dst.getName() +// ); +// +// tempStorage.doOpen(); +// replicationService.replicateReferentiel(service, tempStorage); +// replicationService.replicateAllData(service, tempStorage); +// +// tempStorage.storeDB(dst); + +// } catch (Exception e) { +// ErrorDialogUI.showError(e); +// if (log.isErrorEnabled()) { +// log.error(e); +// } +// } finally { +// if (tempStorage != null) { +// try { +// tempStorage.doClose(true); +// } catch (DataSourceException e) { +// ErrorDialogUI.showError(e); +// if (log.isErrorEnabled()) { +// log.error(e); +// } +// } +// } +// } +// } } /** @@ -709,16 +712,17 @@ public class StorageUIHandler { DataSource tempStorage = null; try { - tempStorage = ObserveServiceHelper.newEmptyTempStorage( - config, - t("observe.storage.label.backup"), - "tmpBackup_" + dst.getName() - ); - - tempStorage.doOpen(); - - replicationService.replicateReferentiel(service, tempStorage); - replicationService.replicateData(service, tempStorage, mareeIds); + //FIXME +// tempStorage = ObserveServiceHelper.newEmptyTempStorage( +// config, +// t("observe.storage.label.backup"), +// "tmpBackup_" + dst.getName() +// ); +// +// tempStorage.doOpen(); +// +// replicationService.replicateReferentiel(service, tempStorage); +// replicationService.replicateData(service, tempStorage, mareeIds); tempStorage.storeDB(dst); @@ -848,7 +852,8 @@ public class StorageUIHandler { case IMPORT_REMOTE_STORAGE: addTag("h3", sb, t("observe.storage.report.action.import.remote.referentiel")); - addTag("pre", sb, model.getPgConfig().toString()); + //FIXME +// addTag("pre", sb, model.getPgConfig().toString()); break; case EMPTY: break; @@ -868,8 +873,9 @@ public class StorageUIHandler { addTag("h3", sb, t("observe.storage.report.selected.localStorageFile")); addOpenTag("ul", sb); - addTag("li", sb, - model.getH2Config().getDataDirectory().getAbsolutePath() + //FIXME +// addTag("li", sb, +// model.getH2Config().getDataDirectory().getAbsolutePath() ); addCloseTag("ul", sb); @@ -886,7 +892,8 @@ public class StorageUIHandler { addTag("hr", sb, ""); addTag("h3", sb, t("observe.storage.report.selected.remoteStorage")); - addTag("pre", sb, model.getPgConfig().toString()); + //FIXME +// addTag("pre", sb, model.getPgConfig().toString()); computeCanMigrateAction(model, sb); } else { @@ -894,7 +901,8 @@ public class StorageUIHandler { addTag("hr", sb, ""); addTag("h3", sb, t("observe.storage.report.selected.remoteStorage")); - addTag("pre", sb, model.getPgConfig().toString()); + //FIXME +// addTag("pre", sb, model.getPgConfig().toString()); if (ObstunaAdminAction.CREATE == action) { @@ -912,7 +920,8 @@ public class StorageUIHandler { case IMPORT_REMOTE_STORAGE: addTag("h3", sb, t("observe.storage.report.action.import.remote.referentiel")); - addTag("pre", sb, model.getCentralSourceModel().getPgConfig().toString()); + //FIXME +// addTag("pre", sb, model.getCentralSourceModel().getPgConfig().toString()); break; } @@ -938,7 +947,8 @@ public class StorageUIHandler { case IMPORT_REMOTE_STORAGE: addTag("h3", sb, t("observe.storage.report.action.import.remote.data")); - addTag("pre", sb, model.getDataSourceModel().getPgConfig().toString()); + //FIXME +// addTag("pre", sb, model.getDataSourceModel().getPgConfig().toString()); break; } @@ -984,68 +994,71 @@ public class StorageUIHandler { return; } - DataSelectionModel dataModel = model.getSelectDataModel(); - Set<String> selectedData = dataModel.getSelectedData(); + //FIXME +// DataSelectionModel dataModel = model.getSelectDataModel(); +// Set<String> selectedData = dataModel.getSelectedData(); addTag("h3", sb, t("observe.storage.report.selected.data.to.export") ); addOpenTag("ul", sb); - if (dataModel.isDataEmpty()) { - addTag("li", sb, - t("observe.storage.report.selected.no.data")); - } else { - if (dataModel.isDataFull()) { - addTag("li", sb, - t("observe.storage.report.selected.all.data", selectedData.size()) - ); - } else { - addOpenTag("li", sb); - sb.append(t("observe.storage.report.selected.data", selectedData.size())); - addOpenTag("ul", sb); - Decorator<Program> pDecorator = - getDecoratorService().getDecoratorByType(Program.class); - Decorator<TripSeine> mDecorator = - getDecoratorService().getDecoratorByType(TripSeine.class); - DataSelectionTreeCellRenderer renderer = - (DataSelectionTreeCellRenderer) stepUI.getSelectTree().getCellRenderer(); - DataSource source = renderer.getDataProvider().getDataSource(); - Map<String, List<String>> dataByProgram = - dataModel.getSelectedDataByProgram(); - - Preconditions.checkState(source != null && source.isOpen(), "La source de données doit être ouverte!"); - - for (Map.Entry<String, List<String>> entry : dataByProgram.entrySet()) { - String pId = entry.getKey(); - List<String> mareeIds = entry.getValue(); - addOpenTag("li", sb); - try { - sb.append(source.decorateEntity(null, pId, pDecorator)); - } catch (Exception e) { - if (log.isErrorEnabled()) { - log.error("Could not decorate entity " + pId, e); - } - addTag("li", sb, pId); - } - addOpenTag("ul", sb); - for (String mareeId : mareeIds) { - try { - addTag("li", sb, source.decorateEntity(null, mareeId, mDecorator)); - } catch (Exception e) { - if (log.isErrorEnabled()) { - log.error("Could not decorate entity " + mareeId, e); - } - addTag("li", sb, mareeId); - } - } - addCloseTag("ul", sb); - addCloseTag("li", sb); - } - addCloseTag("li", sb); - addCloseTag("ul", sb); - } - } + //FIXME +// if (dataModel.isDataEmpty()) { +// addTag("li", sb, +// t("observe.storage.report.selected.no.data")); +// } else { +// if (dataModel.isDataFull()) { +// addTag("li", sb, +// t("observe.storage.report.selected.all.data", selectedData.size()) +// ); +// } else { +// addOpenTag("li", sb); +// sb.append(t("observe.storage.report.selected.data", selectedData.size())); +// addOpenTag("ul", sb); +// Decorator<Program> pDecorator = +// getDecoratorService().getDecoratorByType(Program.class); +// Decorator<TripSeine> mDecorator = +// getDecoratorService().getDecoratorByType(TripSeine.class); +// DataSelectionTreeCellRenderer renderer = +// (DataSelectionTreeCellRenderer) stepUI.getSelectTree().getCellRenderer(); +// DataSource source = renderer.getDataProvider().getDataSource(); +// Map<String, List<String>> dataByProgram = +// dataModel.getSelectedDataByProgram(); +// +// Preconditions.checkState(source != null && source.isOpen(), "La source de données doit être ouverte!"); +// +// for (Map.Entry<String, List<String>> entry : dataByProgram.entrySet()) { +// String pId = entry.getKey(); +// List<String> mareeIds = entry.getValue(); +// addOpenTag("li", sb); +// try { +// sb.append(source.decorateEntity(null, pId, pDecorator)); +// } catch (Exception e) { +// if (log.isErrorEnabled()) { +// log.error("Could not decorate entity " + pId, e); +// } +// addTag("li", sb, pId); +// } +// addOpenTag("ul", sb); +// for (String mareeId : mareeIds) { +// try { +// addTag("li", sb, source.decorateEntity(null, mareeId, mDecorator)); +// } catch (Exception e) { +// if (log.isErrorEnabled()) { +// log.error("Could not decorate entity " + mareeId, e); +// } +// addTag("li", sb, mareeId); +// } +// } +// addCloseTag("ul", sb); +// addCloseTag("li", sb); +// } +// +// addCloseTag("li", sb); +// addCloseTag("ul", sb); +// } +// } addTag("li", sb, t("observe.storage.report.selected.data.referentiel") @@ -1055,78 +1068,81 @@ public class StorageUIHandler { protected void computeImportDataReport(StorageUIModel model, StringBuilder sb) throws DataSourceException { - DataSelectionModel dataModel = model.getSelectDataModel(); + //FIXME +// DataSelectionModel dataModel = model.getSelectDataModel(); addTag("h3", sb, t("observe.storage.report.selected.data.to.import") ); addOpenTag("ul", sb); - if (dataModel.isDataEmpty()) { - addTag("li", sb, - t("observe.storage.report.selected.no.data.to.import")); - } else { - Set<String> selectedData = dataModel.getSelectedData(); - - if (dataModel.isDataFull()) { - addTag("li", sb, - t("observe.storage.report.selected.all.data.to.import", selectedData.size()) - ); - } else { - addOpenTag("li", sb); - sb.append(t("observe.storage.report.selected.data.for.import", selectedData.size())); - addOpenTag("ul", sb); - - DataSourceConfig dataSourceConfig = model.toImportDataSourceConfig(); - - DataSource source = DataSourceFactory.newService(dataSourceConfig); - - try { - source.doOpen(); - - Decorator<Program> pDecorator = - getDecoratorService().getDecoratorByType(Program.class); - Decorator<TripSeine> mDecorator = - getDecoratorService().getDecoratorByType(TripSeine.class); - - Map<String, List<String>> dataByProgram = dataModel.getSelectedDataByProgram(); - - for (Map.Entry<String, List<String>> entry : dataByProgram.entrySet()) { - String pId = entry.getKey(); - List<String> mareeIds = entry.getValue(); - addOpenTag("li", sb); - try { - sb.append(source.decorateEntity(null, pId, pDecorator)); - } catch (Exception e) { - if (log.isErrorEnabled()) { - log.error("Could not decorate entity " + pId, e); - } - addTag("li", sb, pId); - } - addOpenTag("ul", sb); - for (String mareeId : mareeIds) { - try { - addTag("li", sb, source.decorateEntity(null, mareeId, mDecorator)); - } catch (Exception e) { - if (log.isErrorEnabled()) { - log.error("Could not decorate entity " + mareeId, e); - } - addTag("li", sb, mareeId); - } - } - addCloseTag("ul", sb); - addCloseTag("li", sb); - } - - } finally { - source.doClose(false); - } - - - addCloseTag("li", sb); - addCloseTag("ul", sb); - } - } + //FIXME +// if (dataModel.isDataEmpty()) { +// addTag("li", sb, +// t("observe.storage.report.selected.no.data.to.import")); +// } else { +// +// Set<String> selectedData = dataModel.getSelectedData(); +// +// if (dataModel.isDataFull()) { +// addTag("li", sb, +// t("observe.storage.report.selected.all.data.to.import", selectedData.size()) +// ); +// } else { +// addOpenTag("li", sb); +// sb.append(t("observe.storage.report.selected.data.for.import", selectedData.size())); +// addOpenTag("ul", sb); +// +// DataSourceConfig dataSourceConfig = model.toImportDataSourceConfig(); +// +// DataSource source = DataSourceFactory.newService(dataSourceConfig); +// +// try { +// source.doOpen(); +// +// Decorator<Program> pDecorator = +// getDecoratorService().getDecoratorByType(Program.class); +// Decorator<TripSeine> mDecorator = +// getDecoratorService().getDecoratorByType(TripSeine.class); +// +// Map<String, List<String>> dataByProgram = dataModel.getSelectedDataByProgram(); +// +// for (Map.Entry<String, List<String>> entry : dataByProgram.entrySet()) { +// String pId = entry.getKey(); +// List<String> mareeIds = entry.getValue(); +// addOpenTag("li", sb); +// try { +// sb.append(source.decorateEntity(null, pId, pDecorator)); +// } catch (Exception e) { +// if (log.isErrorEnabled()) { +// log.error("Could not decorate entity " + pId, e); +// } +// addTag("li", sb, pId); +// } +// addOpenTag("ul", sb); +// for (String mareeId : mareeIds) { +// try { +// addTag("li", sb, source.decorateEntity(null, mareeId, mDecorator)); +// } catch (Exception e) { +// if (log.isErrorEnabled()) { +// log.error("Could not decorate entity " + mareeId, e); +// } +// addTag("li", sb, mareeId); +// } +// } +// addCloseTag("ul", sb); +// addCloseTag("li", sb); +// } +// +// } finally { +// source.doClose(false); +// } +// +// +// addCloseTag("li", sb); +// addCloseTag("ul", sb); +// } +// } addCloseTag("ul", sb); } @@ -1182,22 +1198,23 @@ public class StorageUIHandler { Preconditions.checkState(source != null, "Can't select data on a null dataSource"); - DataSelectionModel dataModel = new DataSelectionModel(); - dataModel.setUseData(true); - dataModel.setUseOpenData(true); - dataModel.setUseReferentiel(false); - - DataSelectionModel.populate(dataModel, ObserveContext.get().getDataService(), source); - - if (selectAll) { - - dataModel.addAllSelectedData(); - - } - + //FIXME +// DataSelectionModel dataModel = new DataSelectionModel(); +// dataModel.setUseData(true); +// dataModel.setUseOpenData(true); +// dataModel.setUseReferentiel(false); +// +// DataSelectionModel.populate(dataModel, ObserveContext.get().getDataService(), source); +// +// if (selectAll) { +// +// dataModel.addAllSelectedData(); +// +// } +// // positionnement du model de selection de données // dans le model du wizard - model.setSelectDataModel(dataModel); +// model.setSelectDataModel(dataModel); // initialisation de l'ui dedié ui.getSELECT_DATA().initTree(source); @@ -1233,19 +1250,20 @@ public class StorageUIHandler { DataSourceConfig dataSourceConfig = model.toImportDataSourceConfig(); Preconditions.checkState(dataSourceConfig != null, "Can't select data on a null dataSource"); - DataSource source = DataSourceFactory.newService(dataSourceConfig); - - try { - - source.doOpen(); - - model.checkImportDbVersion(source); - - initSelectData(ui, source, false); - - } finally { - source.doClose(false); - } + //FIXME +// DataSource source = DataSourceFactory.newService(dataSourceConfig); +// +// try { +// +// source.doOpen(); +// +// model.checkImportDbVersion(source); +// +// initSelectData(ui, source, false); +// +// } finally { +// source.doClose(false); +// } } catch (Exception e) { if (log.isErrorEnabled()) { @@ -1257,30 +1275,31 @@ public class StorageUIHandler { protected void updateSecurity(StorageUIModel model, RolesTableModel roleModel) { SecurityModel security = model.getSecurityModel(); - PGInstall pgInstall = model.getPgInstall(); - PGDataSourceConfig config = model.getPgConfig(); - pgInstall.init(config, security); - security.setAdministrateur(config.getLogin()); - try { - Set<String> roles = pgInstall.getRoles(); - - String ownerRole = security.getAdministrateur(); - if (!roles.contains(ownerRole)) { - if (log.isWarnEnabled()) { - log.warn("Could not find owner role : " + ownerRole); - } - } else { - roles.remove(ownerRole); - } - if (log.isInfoEnabled()) { - log.info("Db roles : " + roles); - } - security.init(roles); - roleModel.init(security); - - } catch (SQLException e) { - throw new RuntimeException("Could not obtain db roles", e); - } + //FIXME +// PGInstall pgInstall = model.getPgInstall(); +// PGDataSourceConfig config = model.getPgConfig(); +// pgInstall.init(config, security); +// security.setAdministrateur(config.getLogin()); +// try { +// Set<String> roles = pgInstall.getRoles(); +// +// String ownerRole = security.getAdministrateur(); +// if (!roles.contains(ownerRole)) { +// if (log.isWarnEnabled()) { +// log.warn("Could not find owner role : " + ownerRole); +// } +// } else { +// roles.remove(ownerRole); +// } +// if (log.isInfoEnabled()) { +// log.info("Db roles : " + roles); +// } +// security.init(roles); +// roleModel.init(security); +// +// } catch (SQLException e) { +// throw new RuntimeException("Could not obtain db roles", e); +// } } 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 01ae44e..b8dd96f 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 @@ -23,7 +23,7 @@ package fr.ird.observe.ui.storage; import fr.ird.observe.ObserveConfig; import fr.ird.observe.ObserveContext; -import fr.ird.observe.db.constants.DbMode; +import fr.ird.observe.business.db.constants.DbMode; import fr.ird.observe.ui.ObserveMainUIHandler; import fr.ird.observe.ui.UIHelper; import jaxx.runtime.JAXXContext; 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 f9419bd..bcfc154 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 @@ -23,22 +23,19 @@ package fr.ird.observe.ui.storage; import fr.ird.observe.ObserveConfig; import fr.ird.observe.ObserveContext; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.DataSourceConfig; -import fr.ird.observe.db.DataSourceException; -import fr.ird.observe.db.DataSourceFactory; -import fr.ird.observe.db.constants.ConnexionStatus; -import fr.ird.observe.db.constants.CreationMode; -import fr.ird.observe.db.constants.DbMode; -import fr.ird.observe.db.model.DataSelectionModel; -import fr.ird.observe.db.util.SecurityModel; +import fr.ird.observe.business.db.DataSource; +import fr.ird.observe.business.db.DataSourceConfig; +import fr.ird.observe.business.db.DataSourceException; +import fr.ird.observe.business.db.constants.ConnexionStatus; +import fr.ird.observe.business.db.constants.CreationMode; +import fr.ird.observe.business.db.constants.DbMode; +import fr.ird.observe.business.util.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.logging.Log; import org.apache.commons.logging.LogFactory; -import org.nuiton.i18n.I18n; import org.nuiton.util.FileUtil; import org.nuiton.util.version.Version; @@ -151,7 +148,8 @@ public class StorageUIModel extends WizardModel<StorageStep> { protected boolean canUseRemoteService = true; /** le modèle de sélection de données (utilisé pour les exports) */ - protected DataSelectionModel selectDataModel; + //FIXME +// protected DataSelectionModel selectDataModel; /** le modèle de sécurité (utilisé pour la mise à jour sécurité sur base distante) */ protected SecurityModel securityModel; @@ -239,8 +237,9 @@ public class StorageUIModel extends WizardModel<StorageStep> { StorageUIHandler storageUIHandler = context.getContextValue(StorageUIHandler.class); - DataSelectionModel dataModel = - context.getContextValue(DataSelectionModel.class); + //FIXME +// DataSelectionModel dataModel = +// context.getContextValue(DataSelectionModel.class); // ajout paramétrage depuis la configuration @@ -313,9 +312,10 @@ public class StorageUIModel extends WizardModel<StorageStep> { // fromStorageConfig((PGDataSourceConfig) previousConfig); // } - if (dataModel != null) { - setSelectDataModel(dataModel); - } + //FIXME +// if (dataModel != null) { +// setSelectDataModel(dataModel); +// } return; } @@ -936,7 +936,8 @@ public class StorageUIModel extends WizardModel<StorageStep> { break; case SELECT_DATA: // chemit 20100525 : aucune contrainte dans ce cas - validate = selectDataModel != null; + //FIXME +// validate = selectDataModel != null; break; case ROLES: @@ -1129,7 +1130,8 @@ public class StorageUIModel extends WizardModel<StorageStep> { if (oldValue != dataImportMode) { // reset selected data to import - setSelectDataModel(null); + //FIXME +// setSelectDataModel(null); updateUniverse(); } @@ -1277,7 +1279,7 @@ public class StorageUIModel extends WizardModel<StorageStep> { public boolean isUseSsl() { //FIXME // return pgConfig.isUseSsl(); - return null; + return false; } public ConnexionStatus getConnexionStatus() { @@ -1412,13 +1414,14 @@ public class StorageUIModel extends WizardModel<StorageStep> { // return result; // } - public DataSelectionModel getSelectDataModel() { - return selectDataModel; - } +// public DataSelectionModel getSelectDataModel() { +// return selectDataModel; +// } - public void setSelectDataModel(DataSelectionModel selectDataModel) { - this.selectDataModel = selectDataModel; - } + // FIXME +// public void setSelectDataModel(DataSelectionModel selectDataModel) { +// this.selectDataModel = selectDataModel; +// } protected void copyTo(StorageUIModel dst) { dst.setLocalStorageExist(isLocalStorageExist()); @@ -1435,7 +1438,8 @@ public class StorageUIModel extends WizardModel<StorageStep> { // pgConfig.copyTo(dst.pgConfig); //FIXME // h2Config.copyTo(dst.h2Config); - dst.setSelectDataModel(getSelectDataModel()); + //FIXME +// dst.setSelectDataModel(getSelectDataModel()); dst.setSecurityModel(getSecurityModel()); //FIXME // dst.setPgInstall(getPgInstall()); @@ -1516,7 +1520,8 @@ public class StorageUIModel extends WizardModel<StorageStep> { } public void setConnexionStatus(ConnexionStatus connexionStatus) { - pgConfig.setConnexionStatus(connexionStatus); + //FIXME +// pgConfig.setConnexionStatus(connexionStatus); firePgConfigChanged(CONNEXION_STATUS_PROPERTY_NAME, null, connexionStatus); } @@ -1632,7 +1637,9 @@ public class StorageUIModel extends WizardModel<StorageStep> { } - return dataSourceConfig; + //FIXME +// return dataSourceConfig; + return null; } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/tabs/RolesTableModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/tabs/RolesTableModel.java index d01ca4c..9272a74 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/tabs/RolesTableModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/tabs/RolesTableModel.java @@ -21,7 +21,7 @@ */ package fr.ird.observe.ui.storage.tabs; -import fr.ird.observe.db.util.SecurityModel; +import fr.ird.observe.business.util.SecurityModel; import javax.swing.table.AbstractTableModel; import java.util.ArrayList; 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 8c58a17..5cc617a 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,14 +23,11 @@ package fr.ird.observe.ui.storage.tabs; import com.google.common.base.Preconditions; import fr.ird.observe.ObserveConfig; -import fr.ird.observe.ObserveContext; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.DataSourceConfig; -import fr.ird.observe.db.constants.ConnexionStatus; -import fr.ird.observe.db.constants.CreationMode; -import fr.ird.observe.db.constants.DbMode; -import fr.ird.observe.db.impl.PGDataSourceConfig; -import fr.ird.observe.db.model.DataSelectionModel; +import fr.ird.observe.business.db.DataSource; +import fr.ird.observe.business.db.DataSourceConfig; +import fr.ird.observe.business.db.constants.ConnexionStatus; +import fr.ird.observe.business.db.constants.CreationMode; +import fr.ird.observe.business.db.constants.DbMode; import fr.ird.observe.ui.UIHelper; import fr.ird.observe.ui.storage.StorageStep; import fr.ird.observe.ui.storage.StorageUIHandler; @@ -418,16 +415,19 @@ public class StorageTabUIHandler { StorageUIModel model = ui.getModel(); if (model.isUseSelectData()) { - DataSelectionModel dataModel = model.getSelectDataModel(); + //FIXME +// DataSelectionModel dataModel = model.getSelectDataModel(); ObserveTreeHelper helper = new ObserveTreeHelper(); JTree tree = ui.selectTree; helper.setUI(tree, false, null); - tree.setModel(helper.createModel(ui, dataModel, source)); + //FIXME +// tree.setModel(helper.createModel(ui, dataModel, source)); DataSelectionTreeSelectionModel selectionModel = ui.getSelectionModel(); selectionModel.initUI(tree); - selectionModel.setDataModel(dataModel); + //FIXME +// selectionModel.setDataModel(dataModel); } } @@ -458,8 +458,9 @@ public class StorageTabUIHandler { ); // on recopie la configuration de la source d'import - PGDataSourceConfig config = sourceModel.toPostgresStorageConfig("Import référentiel"); - ui.getModel().getPgConfig().setImportConfig(config); + //FIXME +// PGDataSourceConfig config = sourceModel.toPostgresStorageConfig("Import référentiel"); +// ui.getModel().getPgConfig().setImportConfig(config); sourceModel.validate(StorageStep.CONFIG); @@ -505,12 +506,14 @@ public class StorageTabUIHandler { return t("observe.common.storage.not.valid"); } - DataSourceConfig config; - if (sourceModel.getDbMode() == DbMode.USE_REMOTE) { - config = sourceModel.getPgConfig(); - } else { - config = sourceModel.getH2Config(); - } - return config.getPolicyLabel(); + //FIXME +// DataSourceConfig config; +// if (sourceModel.getDbMode() == DbMode.USE_REMOTE) { +// config = sourceModel.getPgConfig(); +// } else { +// config = sourceModel.getH2Config(); +// } +// return config.getPolicyLabel(); + return null; } } 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 0673721..28c638f 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 @@ -22,11 +22,12 @@ package fr.ird.observe.ui.tree; import com.google.common.base.Preconditions; -import fr.ird.observe.DecoratorService; import fr.ird.observe.ObserveContext; -import fr.ird.observe.db.DataContext; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.services.dto.OpenableEntityDto; +import fr.ird.observe.business.DecoratorService; +import fr.ird.observe.business.db.DataContext; +import fr.ird.observe.business.db.DataSource; +import fr.ird.observe.services.dto.IdDto; +import fr.ird.observe.services.dto.OpenableDto; import fr.ird.observe.services.dto.longline.ActivityLonglineDto; import fr.ird.observe.services.dto.longline.TripLonglineDto; import fr.ird.observe.services.dto.referential.ProgramDto; @@ -46,10 +47,9 @@ import org.apache.commons.logging.LogFactory; import org.nuiton.decorator.Decorator; import org.nuiton.topia.persistence.TopiaEntity; -import javax.swing.Icon; -import javax.swing.UIManager; +import javax.swing.*; import javax.swing.tree.DefaultTreeModel; -import java.awt.Color; +import java.awt.*; import java.util.Arrays; import java.util.Collections; import java.util.List; @@ -206,15 +206,15 @@ public abstract class AbstractObserveTreeCellRenderer extends AbstractNavTreeCel Class<?> containerClass = containerNode.getInternalClass(); String path; - if (TripSeine.class.equals(containerClass)) { + if (TripSeineDto.class.equals(containerClass)) { // remonte sur une maree : donc routes - path = Route.class.getName(); - } else if (TripLongline.class.equals(containerClass)) { + path = RouteDto.class.getName(); + } else if (TripLonglineDto.class.equals(containerClass)) { // remonte sur une maree : donc activités - path = ActivityLongline.class.getName(); - } else if (Route.class.equals(containerClass)) { + path = ActivityLonglineDto.class.getName(); + } else if (RouteDto.class.equals(containerClass)) { // remonte sur une route : donc activitys - path = ActivitySeine.class.getName(); + path = ActivitySeineDto.class.getName(); } // else if (ActivitySeine.class.equals(containerClass)) { // // remonte sur une activity : donc observedSystem @@ -288,10 +288,10 @@ public abstract class AbstractObserveTreeCellRenderer extends AbstractNavTreeCel return text; } - if (node instanceof EntityNodeSupport) { - EntityNodeSupport entityNodeSupport = (EntityNodeSupport) node; + if (node instanceof DtoNodeSupport) { + DtoNodeSupport entityNodeSupport = (DtoNodeSupport) node; - TopiaEntity entity = entityNodeSupport.getEntity(); + IdDto entity = entityNodeSupport.getEntity(); Preconditions.checkNotNull(entity, "L'entité doit être chargée dans le noeud: " + node); @@ -328,7 +328,7 @@ public abstract class AbstractObserveTreeCellRenderer extends AbstractNavTreeCel DataContext dataContext = ObserveContext.get().getDataContext(); String nodeId = node.getId(); - if (Program.class.equals(contentClass)) { + if (ProgramDto.class.equals(contentClass)) { // on grise le program si aucune marée ouverte sur ce programme String p = dataContext.getOpenProgramId(); @@ -399,11 +399,11 @@ public abstract class AbstractObserveTreeCellRenderer extends AbstractNavTreeCel public ObserveNode getFirstOpenableNode(ObserveNode node) { - if (OpenableEntity.class.isAssignableFrom(node.getInternalClass())) { + if (OpenableDto.class.isAssignableFrom(node.getInternalClass())) { return node; } - if (Program.class.isAssignableFrom(node.getInternalClass())) { + if (ProgramDto.class.isAssignableFrom(node.getInternalClass())) { return node; } 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 68732e5..1acd85c 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 @@ -22,9 +22,6 @@ package fr.ird.observe.ui.tree; * #L% */ -import fr.ird.observe.DataService; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.DataSourceException; import fr.ird.observe.services.dto.longline.ActivityLonglineDto; import fr.ird.observe.ui.tree.loadors.ActivityLonglineNodeChildLoador; @@ -34,17 +31,18 @@ import fr.ird.observe.ui.tree.loadors.ActivityLonglineNodeChildLoador; * @author Tony Chemit - chemit@codelutin.com * @since 4.0 */ -public class ActivityLonglineNode extends EntityNodeSupport<ActivityLongline> { +public class ActivityLonglineNode extends DtoNodeSupport<ActivityLonglineDto> { private static final long serialVersionUID = 1L; - public ActivityLonglineNode(ActivityLongline entity) { - super(ActivityLongline.class, entity, ObserveTreeHelper.getChildLoador(ActivityLonglineNodeChildLoador.class)); + public ActivityLonglineNode(ActivityLonglineDto entity) { + super(ActivityLonglineDto.class, entity, ObserveTreeHelper.getChildLoador(ActivityLonglineNodeChildLoador.class)); } - @Override - protected ActivityLongline getEntity(DataService dataService, DataSource source) throws DataSourceException { - return dataService.getActivityLonglineStub(source, id); - } + //FIXME +// @Override +// protected ActivityLonglineDto getEntity(DataService dataService, DataSource source) throws DataSourceException { +// return dataService.getActivityLonglineStub(source, id); +// } } 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 7772654..8b25e44 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 @@ -22,9 +22,6 @@ package fr.ird.observe.ui.tree; * #L% */ -import fr.ird.observe.DataService; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.DataSourceException; import fr.ird.observe.services.dto.seine.ActivitySeineDto; import fr.ird.observe.ui.tree.loadors.ActivitySeineNodeChildLoador; @@ -34,17 +31,17 @@ import fr.ird.observe.ui.tree.loadors.ActivitySeineNodeChildLoador; * @author Tony Chemit - chemit@codelutin.com * @since 4.0 */ -public class ActivitySeineNode extends EntityNodeSupport<ActivitySeine> { +public class ActivitySeineNode extends DtoNodeSupport<ActivitySeineDto> { private static final long serialVersionUID = 1L; - public ActivitySeineNode(ActivitySeine entity) { - super(ActivitySeine.class, entity, ObserveTreeHelper.getChildLoador(ActivitySeineNodeChildLoador.class)); + public ActivitySeineNode(ActivitySeineDto entity) { + super(ActivitySeineDto.class, entity, ObserveTreeHelper.getChildLoador(ActivitySeineNodeChildLoador.class)); } - @Override - protected ActivitySeine getEntity(DataService dataService, DataSource source) throws DataSourceException { - return dataService.getActivitySeineStub(source, id); - } +// @Override +// protected ActivitySeine getEntity(DataService dataService, DataSource source) throws DataSourceException { +// return dataService.getActivitySeineStub(source, id); +// } } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/DataSelectionTreeCellRenderer.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/DataSelectionTreeCellRenderer.java index 70b0922..763b6fa 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/DataSelectionTreeCellRenderer.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/DataSelectionTreeCellRenderer.java @@ -108,7 +108,7 @@ public class DataSelectionTreeCellRenderer extends AbstractObserveTreeCellRender boolean exist = false; - if (TripSeine.class.equals(node.getInternalClass())) { + if (TripSeineDto.class.equals(node.getInternalClass())) { if (existingTripIds != null) { 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 76b93c0..ba2333e 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 @@ -21,7 +21,6 @@ */ package fr.ird.observe.ui.tree; -import fr.ird.observe.db.model.DataSelectionModel; import fr.ird.observe.services.dto.referential.ProgramDto; import fr.ird.observe.services.dto.seine.TripSeineDto; import org.apache.commons.logging.Log; @@ -57,7 +56,6 @@ import java.util.Set; * Un program est sélectionné uniquement si toutes ses marées le sont. * * @author Tony Chemit - chemit@codelutin.com - * @see DataSelectionModel * @since 1.2 */ public class DataSelectionTreeSelectionModel implements TreeSelectionModel, PropertyChangeListener, Serializable { @@ -68,7 +66,8 @@ public class DataSelectionTreeSelectionModel implements TreeSelectionModel, Prop private static final long serialVersionUID = -1L; - protected DataSelectionModel dataModel; + //FIXME +// protected DataSelectionModel dataModel; /** * Paths that are currently selected. Will be null if nothing is currently @@ -127,20 +126,21 @@ public class DataSelectionTreeSelectionModel implements TreeSelectionModel, Prop } } - public void setDataModel(DataSelectionModel dataModel) { - DataSelectionModel oldModel = this.dataModel; - if (oldModel != null) { - oldModel.removePropertyChangeListener(this); - oldModel.destroy(); - //TODO Should destroy all other listeners ? - //TODO this means model is dead... - } - this.dataModel = dataModel; - if (dataModel != null) { - this.dataModel.addPropertyChangeListener(this); - } - updateModel(); - } + //FIXME +// public void setDataModel(DataSelectionModel dataModel) { +// DataSelectionModel oldModel = this.dataModel; +// if (oldModel != null) { +// oldModel.removePropertyChangeListener(this); +// oldModel.destroy(); +// //TODO Should destroy all other listeners ? +// //TODO this means model is dead... +// } +// this.dataModel = dataModel; +// if (dataModel != null) { +// this.dataModel.addPropertyChangeListener(this); +// } +// updateModel(); +// } @Override public void setSelectionMode(int mode) { @@ -154,9 +154,10 @@ public class DataSelectionTreeSelectionModel implements TreeSelectionModel, Prop @Override public void setSelectionPath(TreePath path) { - if (dataModel == null) { - return; - } + //FIXME +// if (dataModel == null) { +// return; +// } Object o = path.getLastPathComponent(); ObserveNode node = AbstractObserveTreeCellRenderer.getNode(o); if (node == null) { @@ -173,7 +174,7 @@ public class DataSelectionTreeSelectionModel implements TreeSelectionModel, Prop log.debug("add new path to universe " + path.getLastPathComponent()); } - if (!referentiel && Program.class.equals(internalClass)) { + if (!referentiel && ProgramDto.class.equals(internalClass)) { if (log.isDebugEnabled()) { log.debug("Adding program childs path (" + node.getChildCount() + ")"); @@ -191,7 +192,7 @@ public class DataSelectionTreeSelectionModel implements TreeSelectionModel, Prop } } } - if (TripSeine.class.equals(internalClass)) { + if (TripSeineDto.class.equals(internalClass)) { TreePath parentPath = path.getParentPath(); if (!universe.contains(parentPath)) { @@ -228,12 +229,14 @@ public class DataSelectionTreeSelectionModel implements TreeSelectionModel, Prop if (log.isDebugEnabled()) { log.debug("Will remove all referentiels"); } - dataModel.removeAllSelectedReferentiel(); + //FIXME +// dataModel.removeAllSelectedReferentiel(); } else { if (log.isDebugEnabled()) { log.debug("Will add all referentiels"); } - dataModel.addAllSelectedReferentiel(); + //FIXME +// dataModel.addAllSelectedReferentiel(); } return; } @@ -244,12 +247,14 @@ public class DataSelectionTreeSelectionModel implements TreeSelectionModel, Prop if (log.isDebugEnabled()) { log.debug("Will remove referentiel " + internalClass + " to model"); } - dataModel.removeSelectedReferentiel(internalClass); + //FIXME +// dataModel.removeSelectedReferentiel(internalClass); } else { if (log.isDebugEnabled()) { log.debug("Will add referentiel " + internalClass + " to model"); } - dataModel.addSelectedReferentiel(internalClass); + //FIXME +// dataModel.addSelectedReferentiel(internalClass); } return; } @@ -313,16 +318,19 @@ public class DataSelectionTreeSelectionModel implements TreeSelectionModel, Prop @Override public boolean isPathSelected(TreePath path) { - if (dataModel == null) { - return false; - } + //FIXME +// if (dataModel == null) { +// return false; +// } Object o = path.getLastPathComponent(); ObserveNode node = AbstractObserveTreeCellRenderer.getNode(o); if (node != null) { Class<?> internalClass = node.getInternalClass(); if (node.isReferentielNode() && node.isStringNode()) { - boolean result = dataModel.isReferentielFull(); + //FIXME +// boolean result = dataModel.isReferentielFull(); + boolean result = false; if (log.isTraceEnabled()) { log.trace("selectModel use full referentiel " + internalClass + " ? " + result); @@ -330,7 +338,9 @@ public class DataSelectionTreeSelectionModel implements TreeSelectionModel, Prop return result; } if (node.isReferentielNode()) { - boolean result = dataModel.isSelectedReferentiel(internalClass); + //FIXME +// boolean result = dataModel.isSelectedReferentiel(internalClass); + boolean result = false; if (log.isTraceEnabled()) { log.trace("selectModel use referentiel " + internalClass + " ? " + result); @@ -342,7 +352,9 @@ public class DataSelectionTreeSelectionModel implements TreeSelectionModel, Prop log.trace("begin data node " + node); } - boolean result = dataModel.isSelectedData(node.getId()); + //FIXME +// boolean result = dataModel.isSelectedData(node.getId()); + boolean result = false; if (log.isTraceEnabled()) { log.trace("selectModel contains the program ? " + result); } @@ -359,11 +371,13 @@ public class DataSelectionTreeSelectionModel implements TreeSelectionModel, Prop @Override public void clearSelection() { - if (dataModel == null) { - return; - } + //FIXME +// if (dataModel == null) { +// return; +// } selection = null; - dataModel.removeAll(); + //FIXME +// dataModel.removeAll(); } @Override @@ -588,7 +602,8 @@ public class DataSelectionTreeSelectionModel implements TreeSelectionModel, Prop if (log.isTraceEnabled()) { log.trace("selectModel add " + id); } - dataModel.addSelectedData(id); + //FIXME +// dataModel.addSelectedData(id); } @@ -596,20 +611,22 @@ public class DataSelectionTreeSelectionModel implements TreeSelectionModel, Prop if (log.isTraceEnabled()) { log.trace("selectModel remove " + id); } - dataModel.removeSelectedData(id); + //FIXME +// dataModel.removeSelectedData(id); } @Override public void propertyChange(PropertyChangeEvent evt) { String propertyName = evt.getPropertyName(); - if (DataSelectionModel.PROPERTY_SELECTED_DATA.equals(propertyName) || - DataSelectionModel.PROPERTY_SELECTED_REFERENTIEL.equals(propertyName)) { - // la selection a changee - Object value = evt.getNewValue(); - if (log.isDebugEnabled()) { - log.debug("selection data changed " + value); - } - } + //FIXME +// if (DataSelectionModel.PROPERTY_SELECTED_DATA.equals(propertyName) || +// DataSelectionModel.PROPERTY_SELECTED_REFERENTIEL.equals(propertyName)) { +// // la selection a changee +// Object value = evt.getNewValue(); +// if (log.isDebugEnabled()) { +// log.debug("selection data changed " + value); +// } +// } updateModel(); } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/EntityNodeSupport.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/DtoNodeSupport.java similarity index 67% rename from observe-application-swing/src/main/java/fr/ird/observe/ui/tree/EntityNodeSupport.java rename to observe-application-swing/src/main/java/fr/ird/observe/ui/tree/DtoNodeSupport.java index b100223..cc65020 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/EntityNodeSupport.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/DtoNodeSupport.java @@ -22,17 +22,13 @@ package fr.ird.observe.ui.tree; * #L% */ -import fr.ird.observe.DataService; -import fr.ird.observe.ObserveContext; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.DataSourceException; -import fr.ird.observe.services.dto.OpenableEntityDto; +import fr.ird.observe.services.dto.IdDto; +import fr.ird.observe.services.dto.OpenableDto; import fr.ird.observe.ui.tree.loadors.AbstractNodeChildLoador; import jaxx.runtime.swing.nav.NavBridge; import jaxx.runtime.swing.nav.NavDataProvider; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.nuiton.topia.persistence.TopiaEntity; import javax.swing.tree.DefaultTreeModel; @@ -42,10 +38,10 @@ import javax.swing.tree.DefaultTreeModel; * @author Tony Chemit - chemit@codelutin.com * @since 4.0 */ -public abstract class EntityNodeSupport<E extends TopiaEntity> extends ObserveNode { +public abstract class DtoNodeSupport<E extends IdDto> extends ObserveNode { /** Logger. */ - private static final Log log = LogFactory.getLog(EntityNodeSupport.class); + private static final Log log = LogFactory.getLog(DtoNodeSupport.class); private static final long serialVersionUID = 1L; @@ -57,22 +53,24 @@ public abstract class EntityNodeSupport<E extends TopiaEntity> extends ObserveNo */ protected transient E entity; - protected transient DataService dataService; + //FIXME +// protected transient DataService dataService; private boolean reloadEntity; - protected abstract E getEntity(DataService dataService, DataSource source) throws DataSourceException; + //FIXME +// protected abstract E getEntity(DataService dataService, DataSource source) throws DataSourceException; - protected EntityNodeSupport(Class<E> internalClass, E entity) { + protected DtoNodeSupport(Class<E> internalClass, E entity) { this(internalClass, entity, null); } - protected EntityNodeSupport(Class<E> type, E entity, AbstractNodeChildLoador<?> childLoador) { + protected DtoNodeSupport(Class<E> type, E entity, AbstractNodeChildLoador<?> childLoador) { this(type, entity, null, childLoador); } - protected EntityNodeSupport(Class<E> type, E entity, String context, AbstractNodeChildLoador<?> childLoador) { - super(type, entity.getTopiaId(), context, childLoador, false); + protected DtoNodeSupport(Class<E> type, E entity, String context, AbstractNodeChildLoador<?> childLoador) { + super(type, entity.getId(), context, childLoador, false); setEntity(entity); } @@ -96,8 +94,8 @@ public abstract class EntityNodeSupport<E extends TopiaEntity> extends ObserveNo } - if (OpenableEntity.class.isAssignableFrom(entity.getClass())) { - open = ((OpenableEntity) entity).isOpen(); + if (OpenableDto.class.isAssignableFrom(entity.getClass())) { + open = ((OpenableDto) entity).isOpen(); if (log.isDebugEnabled()) { log.debug("Set open: " + open + " for entity: " + id); @@ -135,7 +133,8 @@ public abstract class EntityNodeSupport<E extends TopiaEntity> extends ObserveNo if (log.isDebugEnabled()) { log.debug("try to get entity from selectionModel " + internalClass + " : " + id); } - entity = (E) oProvider.getSelectionModel().getEntityCache(id); + //FIXME +// entity = (E) oProvider.getSelectionModel().getEntityCache(id); } if (entity == null) { @@ -144,22 +143,24 @@ public abstract class EntityNodeSupport<E extends TopiaEntity> extends ObserveNo log.info("will load entity " + internalClass.getSimpleName() + " : " + id); } - try { - entity = getEntity(getDataService(), oProvider.getDataSource()); - } catch (DataSourceException e) { - throw new RuntimeException(e); - } + //FIXME +// try { +// entity = getEntity(getDataService(), oProvider.getDataSource()); +// } catch (DataSourceException e) { +// throw new RuntimeException(e); +// } } } - private DataService getDataService() { - if (dataService == null) { - dataService = ObserveContext.get().getDataService(); - } - return dataService; - } + //FIXME +// private DataService getDataService() { +// if (dataService == null) { +// dataService = ObserveContext.get().getDataService(); +// } +// return dataService; +// } public void setReloadEntity(boolean reloadEntity) { this.reloadEntity = reloadEntity; 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 4717229..500c008 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 @@ -22,9 +22,6 @@ package fr.ird.observe.ui.tree; * #L% */ -import fr.ird.observe.DataService; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.DataSourceException; import fr.ird.observe.services.dto.seine.FloatingObjectDto; import fr.ird.observe.ui.tree.loadors.FloatingObjectNodeChildLoador; @@ -34,17 +31,18 @@ import fr.ird.observe.ui.tree.loadors.FloatingObjectNodeChildLoador; * @author Tony Chemit - chemit@codelutin.com * @since 4.0 */ -public class FloatingObjectSeineNode extends EntityNodeSupport<FloatingObject> { +public class FloatingObjectSeineNode extends DtoNodeSupport<FloatingObjectDto> { private static final long serialVersionUID = 1L; - public FloatingObjectSeineNode(FloatingObject entity) { - super(FloatingObject.class, entity, ObserveTreeHelper.getChildLoador(FloatingObjectNodeChildLoador.class)); + public FloatingObjectSeineNode(FloatingObjectDto entity) { + super(FloatingObjectDto.class, entity, ObserveTreeHelper.getChildLoador(FloatingObjectNodeChildLoador.class)); } - @Override - protected FloatingObject getEntity(DataService dataService, DataSource source) throws DataSourceException { - return dataService.getFloatinObjectStub(source, id); - } + //FIXME +// @Override +// protected FloatingObjectDto getEntity(DataService dataService, DataSource source) throws DataSourceException { +// return dataService.getFloatinObjectStub(source, id); +// } } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/ObserveDataProvider.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/ObserveDataProvider.java index 0df4adf..9313336 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/ObserveDataProvider.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/ObserveDataProvider.java @@ -21,10 +21,7 @@ */ package fr.ird.observe.ui.tree; -import fr.ird.observe.ObserveServiceHelper; -import fr.ird.observe.DataService; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.model.DataSelectionModel; +import fr.ird.observe.business.db.DataSource; import jaxx.runtime.swing.nav.NavDataProvider; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -42,9 +39,11 @@ public class ObserveDataProvider implements NavDataProvider { protected DataSource dataSource; - protected DataService dataService; + //FIXME +// protected DataService dataService; - protected DataSelectionModel selectionModel; + //FIXME +// protected DataSelectionModel selectionModel; private boolean creating; @@ -56,32 +55,36 @@ public class ObserveDataProvider implements NavDataProvider { this.dataSource = dataSource; } - public void setSelectionModel(DataSelectionModel selectionModel) { - if (log.isDebugEnabled()) { - log.debug("Set selection model : " + selectionModel); - } - this.selectionModel = selectionModel; - } + //FIXME +// public void setSelectionModel(DataSelectionModel selectionModel) { +// if (log.isDebugEnabled()) { +// log.debug("Set selection model : " + selectionModel); +// } +// this.selectionModel = selectionModel; +// } @Override public boolean isEnabled() { - return dataSource != null && dataSource.isOpen() || selectionModel != null; + //FIXME + return dataSource != null && dataSource.isOpen();// || selectionModel != null; } public DataSource getDataSource() { return dataSource; } - public DataSelectionModel getSelectionModel() { - return selectionModel; - } - - protected DataService getDataService() { - if (dataService == null) { - dataService = ObserveServiceHelper.getDataService(); - } - return dataService; - } + //FIXME +// public DataSelectionModel getSelectionModel() { +// return selectionModel; +// } + + //FIXME +// protected DataService getDataService() { +// if (dataService == null) { +// dataService = ObserveServiceHelper.getDataService(); +// } +// return dataService; +// } public boolean isCreating() { return creating; 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 cff22db..036d4fd 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 @@ -23,26 +23,14 @@ package fr.ird.observe.ui.tree; */ import com.google.common.base.Preconditions; -import fr.ird.observe.DataService; -import fr.ird.observe.ObserveTechnicalException; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.DataSourceException; +import fr.ird.observe.business.db.DataSource; import fr.ird.observe.services.dto.referential.ProgramDto; -import fr.ird.observe.services.dto.referential.ProgramsDto; -import fr.ird.observe.ui.tree.actions.ChangeTripProgramActionListener; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.nuiton.decorator.Decorator; - -import javax.swing.JMenuItem; -import javax.swing.JPopupMenu; -import javax.swing.JScrollPane; -import javax.swing.JTree; -import javax.swing.MenuElement; -import javax.swing.SwingUtilities; + +import javax.swing.*; import javax.swing.tree.TreePath; -import java.awt.Point; -import java.awt.Rectangle; +import java.awt.*; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.awt.event.MouseAdapter; @@ -213,44 +201,45 @@ public class ObserveNavigationTreeShowPopupAction { moveTripPopup.removeAll(); - DataService dataService = treeHelper.getDataService(); +// DataService dataService = treeHelper.getDataService(); DataSource dataSource = treeHelper.getDataProvider().getDataSource(); String tripId = selectedNode.getId(); - List<Program> programs; - - try { - - programs = dataService.getPossibleProgramsForTrip(dataSource, tripId); - Programs.sort(programs); - - } catch (DataSourceException e) { - throw new ObserveTechnicalException("Can't get possible programs for trip " + tripId, e); - } - - String openProgramId = dataService.getDataContext().getOpenProgramId(); - - Decorator<Program> programDecorator = dataService.getDecoratorService().getDecoratorByType(Program.class); - for (Program program : programs) { - - String programId = program.getTopiaId(); - - if (!programId.equals(openProgramId)) { - - JMenuItem item = new JMenuItem(programDecorator.toString(program)); - item.setName(programId); - item.addActionListener(new ChangeTripProgramActionListener(treeHelper, - dataService, - dataSource, - tripId, - programId)); - - moveTripPopup.add(item); - - } - - } + List<ProgramDto> programs; + + //FIXME +// try { +// +// programs = dataService.getPossibleProgramsForTrip(dataSource, tripId); +// ProgramDtos.sort(programs); +// +// } catch (DataSourceException e) { +// throw new ObserveTechnicalException("Can't get possible programs for trip " + tripId, e); +// } +// +// String openProgramId = dataService.getDataContext().getOpenProgramId(); +// +// Decorator<Program> programDecorator = dataService.getDecoratorService().getDecoratorByType(Program.class); +// for (Program program : programs) { +// +// String programId = program.getTopiaId(); +// +// if (!programId.equals(openProgramId)) { +// +// JMenuItem item = new JMenuItem(programDecorator.toString(program)); +// item.setName(programId); +// item.addActionListener(new ChangeTripProgramActionListener(treeHelper, +// dataService, +// dataSource, +// tripId, +// programId)); +// +// moveTripPopup.add(item); +// +// } +// +// } } else { diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/ObserveNode.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/ObserveNode.java index 2c22ba2..990fdee 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/ObserveNode.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/ObserveNode.java @@ -21,8 +21,9 @@ */ package fr.ird.observe.ui.tree; -import fr.ird.observe.services.dto.OpenableEntityDto; -import fr.ird.observe.services.dto.TripDto; +import fr.ird.observe.services.dto.OpenableDto; +import fr.ird.observe.services.dto.longline.TripLonglineDto; +import fr.ird.observe.services.dto.seine.TripSeineDto; import jaxx.runtime.swing.nav.tree.NavTreeNode; import jaxx.runtime.swing.nav.tree.NavTreeNodeChildLoador; import org.apache.commons.logging.Log; @@ -49,7 +50,7 @@ public class ObserveNode extends NavTreeNode<ObserveNode> { /** * Un etat pour savoir si l'objet (de donnee) encapsule est ouvert. * <p/> - * <b>Note:</b> Il faut que l'objet soit de type {@link OpenableEntity}. + * <b>Note:</b> Il faut que l'objet soit de type {@link OpenableDto}. */ protected Boolean open; @@ -96,7 +97,9 @@ public class ObserveNode extends NavTreeNode<ObserveNode> { } public boolean isTripNode() { - return isDataNode() && Trip.class.isAssignableFrom(internalClass); + return isDataNode() && + (TripSeineDto.class.isAssignableFrom(internalClass) + || TripLonglineDto.class.isAssignableFrom(internalClass)); } } 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 746a7cb..1d46107 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 @@ -22,24 +22,20 @@ package fr.ird.observe.ui.tree; import com.google.common.base.Preconditions; -import fr.ird.observe.DataService; -import fr.ird.observe.DecoratorService; +import fr.ird.observe.business.DecoratorService; import fr.ird.observe.ObserveContext; -import fr.ird.observe.db.DataContext; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.model.DataSelectionModel; -import fr.ird.observe.services.dto.OpenableEntityDto; +import fr.ird.observe.business.db.DataContext; +import fr.ird.observe.business.db.DataSource; +import fr.ird.observe.services.dto.OpenableDto; import fr.ird.observe.services.dto.longline.ActivityLonglineDto; import fr.ird.observe.services.dto.longline.SetLonglineDto; import fr.ird.observe.services.dto.longline.TripLonglineDto; import fr.ird.observe.services.dto.referential.ProgramDto; -import fr.ird.observe.services.dto.referential.ProgramsDto; import fr.ird.observe.services.dto.seine.ActivitySeineDto; import fr.ird.observe.services.dto.seine.FloatingObjectDto; import fr.ird.observe.services.dto.seine.RouteDto; import fr.ird.observe.services.dto.seine.SetSeineDto; import fr.ird.observe.services.dto.seine.TripSeineDto; -import fr.ird.observe.ui.ObserveMainUI; import fr.ird.observe.ui.tree.loadors.AbstractNodeChildLoador; import fr.ird.observe.ui.tree.loadors.ActivityLonglineNodeChildLoador; import fr.ird.observe.ui.tree.loadors.ActivityLonglinesNodeChildLoador; @@ -82,7 +78,8 @@ public class ObserveTreeHelper extends NavTreeHelper<ObserveNode> { static private final Log log = LogFactory.getLog(ObserveTreeHelper.class); /** le service de récupération de données. */ - protected DataService dataService; + //FIXME +// protected DataService dataService; private boolean createUnsaved; @@ -111,12 +108,13 @@ public class ObserveTreeHelper extends NavTreeHelper<ObserveNode> { } - protected DataService getDataService() { - if (dataService == null) { - dataService = ObserveContext.get().getDataService(); - } - return dataService; - } + //FIXME +// protected DataService getDataService() { +// if (dataService == null) { +// dataService = ObserveContext.get().getDataService(); +// } +// return dataService; +// } @Override protected ObserveDataProvider getDataProvider() { @@ -182,7 +180,9 @@ public class ObserveTreeHelper extends NavTreeHelper<ObserveNode> { } public DefaultTreeModel createModel(JAXXContext context, - DataSelectionModel dataModel, + //FIXME +// DataSelectionModel dataModel, + Object dataModel, DataSource source) { setDataSource(source); @@ -193,14 +193,16 @@ public class ObserveTreeHelper extends NavTreeHelper<ObserveNode> { } ObserveDataProvider provider = getDataProvider(); - provider.setSelectionModel(dataModel); + //FIXME +// provider.setSelectionModel(dataModel); provider.setCreating(true); try { RootNodeChildLoador loador = getChildLoador(RootNodeChildLoador.class); - loador.setAddData(dataModel.isUseData()); - loador.setAddReferentiel(dataModel.isUseReferentiel()); + //FIXME +// loador.setAddData(dataModel.isUseData()); +// loador.setAddReferentiel(dataModel.isUseReferentiel()); ObserveNode node = new ObserveNode(String.class, "Root node", loador, false); DefaultTreeModel model = createModel(node); @@ -411,22 +413,22 @@ public class ObserveTreeHelper extends NavTreeHelper<ObserveNode> { return result; } - public ObserveNode addOpenable(ObserveNode parentNode, OpenableEntity bean) { - if (bean instanceof TripSeine) { - return addTrip(parentNode, (TripSeine) bean); - } else if (bean instanceof TripLongline) { - return addTrip(parentNode, (TripLongline) bean); - } else if (bean instanceof Route) { - return addRoute(parentNode, (Route) bean); - } else if (bean instanceof ActivitySeine) { - return addActivity(parentNode, (ActivitySeine) bean); - } else if (bean instanceof ActivityLongline) { - return addActivity(parentNode, (ActivityLongline) bean); + public ObserveNode addOpenable(ObserveNode parentNode, OpenableDto bean) { + if (bean instanceof TripSeineDto) { + return addTrip(parentNode, (TripSeineDto) bean); + } else if (bean instanceof TripLonglineDto) { + return addTrip(parentNode, (TripLonglineDto) bean); + } else if (bean instanceof RouteDto) { + return addRoute(parentNode, (RouteDto) bean); + } else if (bean instanceof ActivitySeineDto) { + return addActivity(parentNode, (ActivitySeineDto) bean); + } else if (bean instanceof ActivityLonglineDto) { + return addActivity(parentNode, (ActivityLonglineDto) bean); } throw new IllegalStateException("Can not come here!"); } - public ObserveNode addTrip(ObserveNode parentNode, TripSeine bean) { + public ObserveNode addTrip(ObserveNode parentNode, TripSeineDto bean) { ProgramSeineNodeChildLoador loador = getChildLoador(ProgramSeineNodeChildLoador.class); ObserveNode result = loador.createNode(bean, dataProvider); @@ -434,7 +436,7 @@ public class ObserveTreeHelper extends NavTreeHelper<ObserveNode> { return result; } - public ObserveNode addTrip(ObserveNode parentNode, TripLongline bean) { + public ObserveNode addTrip(ObserveNode parentNode, TripLonglineDto bean) { ProgramLonglineNodeChildLoador loador = getChildLoador(ProgramLonglineNodeChildLoador.class); ObserveNode result = loador.createNode(bean, dataProvider); @@ -442,7 +444,7 @@ public class ObserveTreeHelper extends NavTreeHelper<ObserveNode> { return result; } - public ObserveNode addRoute(ObserveNode parentNode, Route bean) { + public ObserveNode addRoute(ObserveNode parentNode, RouteDto bean) { RoutesNodeChildLoador loador = getChildLoador(RoutesNodeChildLoador.class); ObserveNode result = loador.createNode(bean, dataProvider); @@ -450,7 +452,7 @@ public class ObserveTreeHelper extends NavTreeHelper<ObserveNode> { return result; } - public ObserveNode addActivity(ObserveNode parentNode, ActivitySeine bean) { + public ObserveNode addActivity(ObserveNode parentNode, ActivitySeineDto bean) { ActivitySeinesNodeChildLoador loador = getChildLoador(ActivitySeinesNodeChildLoador.class); ObserveNode result = loador.createNode(bean, dataProvider); @@ -458,7 +460,7 @@ public class ObserveTreeHelper extends NavTreeHelper<ObserveNode> { return result; } - public ObserveNode addActivity(ObserveNode parentNode, ActivityLongline bean) { + public ObserveNode addActivity(ObserveNode parentNode, ActivityLonglineDto bean) { ActivityLonglinesNodeChildLoador loador = getChildLoador(ActivityLonglinesNodeChildLoador.class); ObserveNode result = loador.createNode(bean, dataProvider); @@ -466,7 +468,7 @@ public class ObserveTreeHelper extends NavTreeHelper<ObserveNode> { return result; } - public ObserveNode addFloatingObject(ObserveNode parentNode, FloatingObject bean) { + public ObserveNode addFloatingObject(ObserveNode parentNode, FloatingObjectDto bean) { ActivitySeineNodeChildLoador loador = getChildLoador(ActivitySeineNodeChildLoador.class); ObserveNode result = loador.createNode(bean, dataProvider); @@ -474,7 +476,7 @@ public class ObserveTreeHelper extends NavTreeHelper<ObserveNode> { return result; } - public ObserveNode addSet(ObserveNode parentNode, SetSeine bean) { + public ObserveNode addSet(ObserveNode parentNode, SetSeineDto bean) { ActivitySeineNodeChildLoador loador = getChildLoador(ActivitySeineNodeChildLoador.class); ObserveNode result = loador.createSetNode(bean); @@ -482,7 +484,7 @@ public class ObserveTreeHelper extends NavTreeHelper<ObserveNode> { return result; } - public ObserveNode addSet(ObserveNode parentNode, SetLongline bean) { + public ObserveNode addSet(ObserveNode parentNode, SetLonglineDto bean) { ActivityLonglineNodeChildLoador loador = getChildLoador(ActivityLonglineNodeChildLoador.class); ObserveNode result = loador.createSetNode(bean); @@ -490,15 +492,17 @@ public class ObserveTreeHelper extends NavTreeHelper<ObserveNode> { return result; } - public ObserveNode addProgram(Program bean) throws Exception { + public ObserveNode addProgram(ProgramDto bean) throws Exception { - List<Program> data = getDataService().getList( - getDataProvider().getDataSource(), Program.class); + //FIXME +// List<ProgramDto> data = getDataService().getList( +// getDataProvider().getDataSource(), Program.class); int newIndex = 0; - if (CollectionUtils.isNotEmpty(data)) { - Programs.sort(data); - newIndex = data.indexOf(bean); - } + //FIXME +// if (CollectionUtils.isNotEmpty(data)) { +// Programs.sort(data); +// newIndex = data.indexOf(bean); +// } RootNodeChildLoador loador = getChildLoador(RootNodeChildLoador.class); ObserveNode result = loador.createNode(bean, dataProvider); insertNode(getRootNode(), result, newIndex); @@ -512,17 +516,17 @@ public class ObserveTreeHelper extends NavTreeHelper<ObserveNode> { removeNode(result); } - public void updateProgram(Program bean) { + public void updateProgram(ProgramDto bean) { ObserveNode rootNode = getRootNode(); - ObserveNode result = rootNode.getChild(bean.getTopiaId(), getBridge(), dataProvider); - Preconditions.checkNotNull(result, "Could not find program node with id: " + bean.getTopiaId()); + ObserveNode result = rootNode.getChild(bean.getId(), getBridge(), dataProvider); + Preconditions.checkNotNull(result, "Could not find program node with id: " + bean.getId()); reloadNode(result, false); // refreshNode(result, false); } public void reloadSelectedNode(boolean refreshFromParent, boolean refreshChilds) { ObserveNode node = getSelectedNode(); - ((EntityNodeSupport) node).setReloadEntity(true); + ((DtoNodeSupport) node).setReloadEntity(true); if (refreshFromParent) { node = node.getParent(); @@ -531,7 +535,7 @@ public class ObserveTreeHelper extends NavTreeHelper<ObserveNode> { } public void reloadNode(ObserveNode node, boolean refreshChilds) { - ((EntityNodeSupport) node).setReloadEntity(true); + ((DtoNodeSupport) node).setReloadEntity(true); refreshNode(node, refreshChilds); } 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 7544d6c..28ae6ca 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 @@ -22,9 +22,6 @@ package fr.ird.observe.ui.tree; * #L% */ -import fr.ird.observe.DataService; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.DataSourceException; import fr.ird.observe.services.dto.referential.ProgramDto; import fr.ird.observe.ui.tree.loadors.ProgramLonglineNodeChildLoador; @@ -34,18 +31,19 @@ import fr.ird.observe.ui.tree.loadors.ProgramLonglineNodeChildLoador; * @author Tony Chemit - chemit@codelutin.com * @since 4.0 */ -public class ProgramLonglineNode extends EntityNodeSupport<Program> { +public class ProgramLonglineNode extends DtoNodeSupport<ProgramDto> { private static final long serialVersionUID = 1L; - public ProgramLonglineNode(Program entity) { - super(Program.class, entity, entity.getGearType().name(), ObserveTreeHelper.getChildLoador(ProgramLonglineNodeChildLoador.class)); + public ProgramLonglineNode(ProgramDto entity) { + super(ProgramDto.class, entity, entity.getGearType().name(), ObserveTreeHelper.getChildLoador(ProgramLonglineNodeChildLoador.class)); setEntity(entity); } - @Override - protected Program getEntity(DataService dataService, DataSource source) throws DataSourceException { - return dataService.getProgramStub(source, id); - } + //FIXME +// @Override +// protected Program getEntity(DataService dataService, DataSource source) throws DataSourceException { +// return dataService.getProgramStub(source, id); +// } } 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 8e35230..d3c2a83 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 @@ -22,9 +22,6 @@ package fr.ird.observe.ui.tree; * #L% */ -import fr.ird.observe.DataService; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.DataSourceException; import fr.ird.observe.services.dto.referential.ProgramDto; import fr.ird.observe.ui.tree.loadors.ProgramSeineNodeChildLoador; @@ -34,17 +31,18 @@ import fr.ird.observe.ui.tree.loadors.ProgramSeineNodeChildLoador; * @author Tony Chemit - chemit@codelutin.com * @since 4.0 */ -public class ProgramSeineNode extends EntityNodeSupport<Program> { +public class ProgramSeineNode extends DtoNodeSupport<ProgramDto> { private static final long serialVersionUID = 1L; - public ProgramSeineNode(Program entity) { - super(Program.class, entity, entity.getGearType().name(), ObserveTreeHelper.getChildLoador(ProgramSeineNodeChildLoador.class)); + public ProgramSeineNode(ProgramDto entity) { + super(ProgramDto.class, entity, entity.getGearType().name(), ObserveTreeHelper.getChildLoador(ProgramSeineNodeChildLoador.class)); } - @Override - protected Program getEntity(DataService dataService, DataSource source) throws DataSourceException { - return dataService.getProgramStub(source, id); - } + //FIXME +// @Override +// protected Program getEntity(DataService dataService, DataSource source) throws DataSourceException { +// return dataService.getProgramStub(source, id); +// } } 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 6c52947..a68a5cf 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 @@ -22,9 +22,6 @@ package fr.ird.observe.ui.tree; * #L% */ -import fr.ird.observe.DataService; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.DataSourceException; import fr.ird.observe.services.dto.seine.RouteDto; /** @@ -33,17 +30,17 @@ import fr.ird.observe.services.dto.seine.RouteDto; * @author Tony Chemit - chemit@codelutin.com * @since 4.0 */ -public class RouteSeineNode extends EntityNodeSupport<Route> { +public class RouteSeineNode extends DtoNodeSupport<RouteDto> { private static final long serialVersionUID = 1L; - public RouteSeineNode(Route entity) { - super(Route.class, entity); + public RouteSeineNode(RouteDto entity) { + super(RouteDto.class, entity); } - @Override - protected Route getEntity(DataService dataService, DataSource source) throws DataSourceException { - return dataService.getRouteStub(source, id); - } +// @Override +// protected Route getEntity(DataService dataService, DataSource source) throws DataSourceException { +// return dataService.getRouteStub(source, id); +// } } 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 dfd4c8b..fd240cd 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 @@ -22,9 +22,6 @@ package fr.ird.observe.ui.tree; * #L% */ -import fr.ird.observe.DataService; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.DataSourceException; import fr.ird.observe.services.dto.longline.SetLonglineDto; import fr.ird.observe.ui.tree.loadors.SetLonglineNodeChildLoador; @@ -34,17 +31,18 @@ import fr.ird.observe.ui.tree.loadors.SetLonglineNodeChildLoador; * @author Tony Chemit - chemit@codelutin.com * @since 4.0 */ -public class SetLonglineNode extends EntityNodeSupport<SetLongline> { +public class SetLonglineNode extends DtoNodeSupport<SetLonglineDto> { private static final long serialVersionUID = 1L; - public SetLonglineNode(SetLongline entity) { - super(SetLongline.class, entity, ObserveTreeHelper.getChildLoador(SetLonglineNodeChildLoador.class)); + public SetLonglineNode(SetLonglineDto entity) { + super(SetLonglineDto.class, entity, ObserveTreeHelper.getChildLoador(SetLonglineNodeChildLoador.class)); } - @Override - protected SetLongline getEntity(DataService dataService, DataSource source) throws DataSourceException { - return (SetLongline) dataService.loadEntity(source, id, true); - } + //FIXME +// @Override +// protected SetLongline getEntity(DataService dataService, DataSource source) throws DataSourceException { +// return (SetLongline) dataService.loadEntity(source, id, true); +// } } 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 279956b..8929d48 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 @@ -22,9 +22,6 @@ package fr.ird.observe.ui.tree; * #L% */ -import fr.ird.observe.DataService; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.DataSourceException; import fr.ird.observe.services.dto.seine.SetSeineDto; import fr.ird.observe.ui.tree.loadors.SetSeineNodeChildLoador; @@ -34,17 +31,18 @@ import fr.ird.observe.ui.tree.loadors.SetSeineNodeChildLoador; * @author Tony Chemit - chemit@codelutin.com * @since 4.0 */ -public class SetSeineNode extends EntityNodeSupport<SetSeine> { +public class SetSeineNode extends DtoNodeSupport<SetSeineDto> { private static final long serialVersionUID = 1L; - public SetSeineNode(SetSeine entity) { - super(SetSeine.class, entity, ObserveTreeHelper.getChildLoador(SetSeineNodeChildLoador.class)); + public SetSeineNode(SetSeineDto entity) { + super(SetSeineDto.class, entity, ObserveTreeHelper.getChildLoador(SetSeineNodeChildLoador.class)); } - @Override - protected SetSeine getEntity(DataService dataService, DataSource source) throws DataSourceException { - return (SetSeine) dataService.loadEntity(source, id, true); - } + //FIXME +// @Override +// protected SetSeine getEntity(DataService dataService, DataSource source) throws DataSourceException { +// return (SetSeine) dataService.loadEntity(source, id, true); +// } } 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 3e689c1..0b1bdfd 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 @@ -22,9 +22,6 @@ package fr.ird.observe.ui.tree; * #L% */ -import fr.ird.observe.DataService; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.DataSourceException; import fr.ird.observe.services.dto.longline.TripLonglineDto; /** @@ -33,17 +30,18 @@ import fr.ird.observe.services.dto.longline.TripLonglineDto; * @author Tony Chemit - chemit@codelutin.com * @since 4.0 */ -public class TripLonglineNode extends EntityNodeSupport<TripLongline> { +public class TripLonglineNode extends DtoNodeSupport<TripLonglineDto> { private static final long serialVersionUID = 1L; - public TripLonglineNode(TripLongline entity) { - super(TripLongline.class, entity); + public TripLonglineNode(TripLonglineDto entity) { + super(TripLonglineDto.class, entity); } - @Override - protected TripLongline getEntity(DataService dataService, DataSource source) throws DataSourceException { - return dataService.getTripLonglineStub(source, id); - } + //FIXME +// @Override +// protected TripLongline getEntity(DataService dataService, DataSource source) throws DataSourceException { +// return dataService.getTripLonglineStub(source, id); +// } } 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 7fb4ff3..1b359cb 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 @@ -22,9 +22,6 @@ package fr.ird.observe.ui.tree; * #L% */ -import fr.ird.observe.DataService; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.DataSourceException; import fr.ird.observe.services.dto.seine.TripSeineDto; /** @@ -33,17 +30,17 @@ import fr.ird.observe.services.dto.seine.TripSeineDto; * @author Tony Chemit - chemit@codelutin.com * @since 4.0 */ -public class TripSeineNode extends EntityNodeSupport<TripSeine> { +public class TripSeineNode extends DtoNodeSupport<TripSeineDto> { private static final long serialVersionUID = 1L; - public TripSeineNode(TripSeine entity) { - super(TripSeine.class, entity); + public TripSeineNode(TripSeineDto entity) { + super(TripSeineDto.class, entity); } - @Override - protected TripSeine getEntity(DataService dataService, DataSource source) throws DataSourceException { - return dataService.getTripSeineStub(source, id); - } +// @Override +// protected TripSeine getEntity(DataService dataService, DataSource source) throws DataSourceException { +// return dataService.getTripSeineStub(source, id); +// } } 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 766e3d3..7ac148c 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 @@ -22,10 +22,7 @@ package fr.ird.observe.ui.tree.actions; * #L% */ -import fr.ird.observe.DataService; -import fr.ird.observe.ObserveTechnicalException; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.DataSourceException; +import fr.ird.observe.business.db.DataSource; import fr.ird.observe.ui.tree.ObserveNode; import fr.ird.observe.ui.tree.ObserveTreeHelper; import org.apache.commons.logging.Log; @@ -51,19 +48,23 @@ public class ChangeTripProgramActionListener implements ActionListener { private final ObserveTreeHelper treeHelper; - private final DataService dataService; + //FIXME +// private final DataService dataService; private final DataSource dataSource; public ChangeTripProgramActionListener(ObserveTreeHelper treeHelper, - DataService dataService, + //FIXME +// DataService dataService, + Object dataService, DataSource dataSource, String tripId, String programId) { this.tripId = tripId; this.programId = programId; this.treeHelper = treeHelper; - this.dataService = dataService; + //FIXME +// this.dataService = dataService; this.dataSource = dataSource; } @@ -75,19 +76,23 @@ public class ChangeTripProgramActionListener implements ActionListener { ObserveNode newProgramNode = treeHelper.getChild(rootNode, programId); ObserveNode oldProgramNode = treeHelper.getChild(rootNode, tripNode.getParent().getId()); - try { - dataService.moveTripToProgram(dataSource, tripId, programId); - } catch (DataSourceException e) { - throw new ObserveTechnicalException("Can't change trip " + tripId + " to program " + programId, e); - } - - int position; - - try { - position = dataService.getOpenablePosition(dataSource, programId, tripId); - } catch (DataSourceException e) { - throw new ObserveTechnicalException("Can't get trip " + tripId + " position for program " + programId, e); - } + //FIXME +// try { +// dataService.moveTripToProgram(dataSource, tripId, programId); +// } catch (DataSourceException e) { +// throw new ObserveTechnicalException("Can't change trip " + tripId + " to program " + programId, e); +// } + + //FIXME +// int position; + int position = -1; + + //FIXME +// try { +// position = dataService.getOpenablePosition(dataSource, programId, tripId); +// } catch (DataSourceException e) { +// throw new ObserveTechnicalException("Can't get trip " + tripId + " position for program " + programId, e); +// } treeHelper.removeNode(tripNode); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/loadors/AbstractNodeChildLoador.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/loadors/AbstractNodeChildLoador.java index acece19..682ab02 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/loadors/AbstractNodeChildLoador.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/loadors/AbstractNodeChildLoador.java @@ -21,11 +21,7 @@ */ package fr.ird.observe.ui.tree.loadors; -import fr.ird.observe.DecoratorService; -import fr.ird.observe.ObserveContext; -import fr.ird.observe.DataService; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.model.DataSelectionModel; +import fr.ird.observe.business.db.DataSource; import fr.ird.observe.ui.tree.ObserveDataProvider; import fr.ird.observe.ui.tree.ObserveNode; import jaxx.runtime.swing.nav.NavDataProvider; @@ -41,7 +37,8 @@ public abstract class AbstractNodeChildLoador<O> extends NavTreeNodeChildLoador< private static final long serialVersionUID = 1L; - protected transient DataService dataService; + //FIXME +// protected transient DataService dataService; protected AbstractNodeChildLoador(Class<O> beanType) { super(beanType); @@ -53,21 +50,24 @@ public abstract class AbstractNodeChildLoador<O> extends NavTreeNodeChildLoador< return result; } - protected DataSelectionModel getSelectionModel(NavDataProvider dataProvider) { - ObserveDataProvider provider = (ObserveDataProvider) dataProvider; - DataSelectionModel result = provider.getSelectionModel(); - return result; - } + //FIXME +// protected DataSelectionModel getSelectionModel(NavDataProvider dataProvider) { +// ObserveDataProvider provider = (ObserveDataProvider) dataProvider; +// DataSelectionModel result = provider.getSelectionModel(); +// return result; +// } - protected DataService getDataService() { - if (dataService == null) { - dataService = ObserveContext.get().getDataService(); - } - return dataService; - } + //FIXME +// protected DataService getDataService() { +// if (dataService == null) { +// dataService = ObserveContext.get().getDataService(); +// } +// return dataService; +// } - protected DecoratorService getDecoratorService() { - return getDataService().getDecoratorService(); - } + //FIXME +// protected DecoratorService getDecoratorService() { +// return getDataService().getDecoratorService(); +// } } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ActivityLonglineNodeChildLoador.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ActivityLonglineNodeChildLoador.java index 3b0a74c..14568cc 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ActivityLonglineNodeChildLoador.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ActivityLonglineNodeChildLoador.java @@ -22,10 +22,10 @@ package fr.ird.observe.ui.tree.loadors; * #L% */ -import fr.ird.observe.db.DataSourceException; -import fr.ird.observe.services.dto.longline.ActivityLonglineDto; +import fr.ird.observe.business.db.DataSourceException; +import fr.ird.observe.services.dto.longline.ActivityLonglineEncouterDto; +import fr.ird.observe.services.dto.longline.ActivityLonglineSensorUsedDto; import fr.ird.observe.services.dto.longline.SetLonglineDto; -import fr.ird.observe.ui.tree.ActivityLonglineNode; import fr.ird.observe.ui.tree.ObserveNode; import fr.ird.observe.ui.tree.ObserveTreeHelper; import fr.ird.observe.ui.tree.SetLonglineNode; @@ -70,16 +70,17 @@ public class ActivityLonglineNodeChildLoador extends AbstractNodeChildLoador<Str { - ActivityLongline activity = ((ActivityLonglineNode) parentNode).getEntity(); - - SetLongline setLongline = activity.getSetLongline(); - if (setLongline != null) { - - // si set present, ajout d'un noeud - ObserveNode child = createSetNode(setLongline); - parentNode.add(child); - - } + //FIXME +// ActivityLongline activity = ((ActivityLonglineNode) parentNode).getEntity(); +// +// SetLongline setLongline = activity.getSetLongline(); +// if (setLongline != null) { +// +// // si set present, ajout d'un noeud +// ObserveNode child = createSetNode(setLongline); +// parentNode.add(child); +// +// } } // ajout des autres fils avant la calée @@ -93,8 +94,8 @@ public class ActivityLonglineNodeChildLoador extends AbstractNodeChildLoador<Str NavDataProvider dataService) throws DataSourceException { List<String> result = new ArrayList<String>(); - result.add(ActivityLongline.PROPERTY_ENCOUNTER); - result.add(ActivityLongline.PROPERTY_SENSOR_USED); + result.add(ActivityLonglineEncouterDto.PROPERTY_ENCOUNTER); + result.add(ActivityLonglineSensorUsedDto.PROPERTY_SENSOR_USED); return result; } @@ -107,7 +108,7 @@ public class ActivityLonglineNodeChildLoador extends AbstractNodeChildLoador<Str } - public ObserveNode createSetNode(SetLongline data) { + public ObserveNode createSetNode(SetLonglineDto data) { if (data == null) { throw new NullPointerException("Ne peut pas ajouter un objet null"); } 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 c6c8ba3..484ab92 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 @@ -22,7 +22,7 @@ package fr.ird.observe.ui.tree.loadors; * #L% */ -import fr.ird.observe.db.DataSource; +import fr.ird.observe.business.db.DataSource; import fr.ird.observe.services.dto.longline.ActivityLonglineDto; import fr.ird.observe.ui.tree.ActivityLonglineNode; import fr.ird.observe.ui.tree.ObserveDataProvider; @@ -37,27 +37,30 @@ import java.util.List; * @author Tony Chemit - chemit@codelutin.com * @since 3.7 */ -public class ActivityLonglinesNodeChildLoador extends AbstractNodeChildLoador<ActivityLongline> { +public class ActivityLonglinesNodeChildLoador extends AbstractNodeChildLoador<ActivityLonglineDto> { private static final long serialVersionUID = 1L; public ActivityLonglinesNodeChildLoador() { - super(ActivityLongline.class); + super(ActivityLonglineDto.class); } @Override - public List<ActivityLongline> getData(Class<?> parentClass, + public List<ActivityLonglineDto> getData(Class<?> parentClass, String parentId, NavDataProvider dataProvider) throws Exception { DataSource dataSource = ((ObserveDataProvider) dataProvider).getDataSource(); - List<ActivityLongline> data = getDataService().getActivityLonglineStubByTrip(dataSource, parentId); - return data; + //FIXME +// List<ActivityLonglineDto> data = getDataService().getActivityLonglineStubByTrip(dataSource, parentId); +// return data; + + return null; } @Override - public ObserveNode createNode(ActivityLongline data, NavDataProvider dataProvider) { + public ObserveNode createNode(ActivityLonglineDto data, NavDataProvider dataProvider) { if (data == null) { throw new NullPointerException("Ne peut pas ajouter un objet null"); } 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 f2c6dab..0f96c12 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 @@ -21,8 +21,9 @@ */ package fr.ird.observe.ui.tree.loadors; -import fr.ird.observe.db.DataSource; +import fr.ird.observe.business.db.DataSource; import fr.ird.observe.services.dto.seine.ActivitySeineDto; +import fr.ird.observe.services.dto.seine.ActivitySeineObservedSystemDto; import fr.ird.observe.services.dto.seine.FloatingObjectDto; import fr.ird.observe.services.dto.seine.SetSeineDto; import fr.ird.observe.ui.tree.ActivitySeineNode; @@ -44,7 +45,7 @@ import static org.nuiton.i18n.I18n.n; * @author Tony Chemit - chemit@codelutin.com * @since 1.4 */ -public class ActivitySeineNodeChildLoador extends AbstractNodeChildLoador<FloatingObject> { +public class ActivitySeineNodeChildLoador extends AbstractNodeChildLoador<FloatingObjectDto> { private static final long serialVersionUID = 1L; @@ -54,7 +55,7 @@ public class ActivitySeineNodeChildLoador extends AbstractNodeChildLoador<Floati } public ActivitySeineNodeChildLoador() { - super(FloatingObject.class); + super(FloatingObjectDto.class); } @Override @@ -70,25 +71,25 @@ public class ActivitySeineNodeChildLoador extends AbstractNodeChildLoador<Floati } // Creation d'un node systeme observe - ObserveNode child = ObserveTreeHelper.createStringNode(ActivitySeine.PROPERTY_OBSERVED_SYSTEM); + ObserveNode child = ObserveTreeHelper.createStringNode(ActivitySeineObservedSystemDto.PROPERTY_OBSERVED_SYSTEM); parentNode.add(child); - ActivitySeine activitySeine = ((ActivitySeineNode) parentNode).getEntity(); + ActivitySeineDto activitySeine = ((ActivitySeineNode) parentNode).getEntity(); - SetSeine set = activitySeine.getSetSeine(); - if (set != null) { - - // si set present, ajout d'un noeud - child = createSetNode(set); - parentNode.add(child); - } +// SetSeine set = activitySeine.getSetSeine(); +// if (set != null) { +// +// // si set present, ajout d'un noeud +// child = createSetNode(set); +// parentNode.add(child); +// } // ajout des objets flottants super.loadChilds(model, parentNode, dataProvider); } - public ObserveNode createSetNode(SetSeine data) { + public ObserveNode createSetNode(SetSeineDto data) { if (data == null) { throw new NullPointerException("Ne peut pas ajouter un objet null"); } @@ -99,7 +100,7 @@ public class ActivitySeineNodeChildLoador extends AbstractNodeChildLoador<Floati } @Override - public ObserveNode createNode(FloatingObject data, NavDataProvider dataProvider) { + public ObserveNode createNode(FloatingObjectDto data, NavDataProvider dataProvider) { if (data == null) { throw new NullPointerException("Ne peut pas ajouter un objet null"); } @@ -110,13 +111,15 @@ public class ActivitySeineNodeChildLoador extends AbstractNodeChildLoador<Floati } @Override - public List<FloatingObject> getData(Class<?> parentClass, + public List<FloatingObjectDto> getData(Class<?> parentClass, String parentId, NavDataProvider dataProvider) throws Exception { DataSource dataSource = ((ObserveDataProvider) dataProvider).getDataSource(); - List<FloatingObject> data = getDataService().getFloatinObjectStubByActivitySeine(dataSource, parentId); - return data; + //FIXME +// List<FloatingObject> data = getDataService().getFloatinObjectStubByActivitySeine(dataSource, parentId); +// return data; + return null; } 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 989c124..94a1d93 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 @@ -21,7 +21,7 @@ */ package fr.ird.observe.ui.tree.loadors; -import fr.ird.observe.db.DataSource; +import fr.ird.observe.business.db.DataSource; import fr.ird.observe.services.dto.seine.ActivitySeineDto; import fr.ird.observe.ui.tree.ActivitySeineNode; import fr.ird.observe.ui.tree.ObserveDataProvider; @@ -36,27 +36,29 @@ import java.util.List; * @author Tony Chemit - chemit@codelutin.com * @since 1.4 */ -public class ActivitySeinesNodeChildLoador extends AbstractNodeChildLoador<ActivitySeine> { +public class ActivitySeinesNodeChildLoador extends AbstractNodeChildLoador<ActivitySeineDto> { private static final long serialVersionUID = 1L; public ActivitySeinesNodeChildLoador() { - super(ActivitySeine.class); + super(ActivitySeineDto.class); } @Override - public List<ActivitySeine> getData(Class<?> parentClass, + public List<ActivitySeineDto> getData(Class<?> parentClass, String parentId, NavDataProvider dataProvider) throws Exception { DataSource dataSource = ((ObserveDataProvider) dataProvider).getDataSource(); - List<ActivitySeine> data = getDataService().getActivitySeineStubByRoute(dataSource, parentId); - return data; + //FIXME +// List<ActivitySeineDto> data = getDataService().getActivitySeineStubByRoute(dataSource, parentId); +// return data; + return null; } @Override - public ObserveNode createNode(ActivitySeine data, NavDataProvider dataProvider) { + public ObserveNode createNode(ActivitySeineDto data, NavDataProvider dataProvider) { if (data == null) { throw new NullPointerException("Ne peut pas ajouter un objet null"); } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/loadors/FloatingObjectNodeChildLoador.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/loadors/FloatingObjectNodeChildLoador.java index d2366ba..c15c5c0 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/loadors/FloatingObjectNodeChildLoador.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/loadors/FloatingObjectNodeChildLoador.java @@ -21,8 +21,10 @@ */ package fr.ird.observe.ui.tree.loadors; -import fr.ird.observe.db.DataSourceException; +import fr.ird.observe.business.db.DataSourceException; import fr.ird.observe.services.dto.seine.FloatingObjectDto; +import fr.ird.observe.services.dto.seine.FloatingObjectObservedSpeciesDto; +import fr.ird.observe.services.dto.seine.FloatingObjectSchoolEstimateDto; import fr.ird.observe.ui.tree.ObserveNode; import fr.ird.observe.ui.tree.ObserveTreeHelper; import jaxx.runtime.swing.nav.NavDataProvider; @@ -58,9 +60,9 @@ public class FloatingObjectNodeChildLoador extends AbstractNodeChildLoador<Strin NavDataProvider dataService) throws DataSourceException { List<String> result = new ArrayList<String>(); - result.add(FloatingObject.PROPERTY_OBJECT_OPERATION); - result.add(FloatingObject.PROPERTY_OBJECT_SCHOOL_ESTIMATE); - result.add(FloatingObject.PROPERTY_OBJECT_OBSERVED_SPECIES); + result.add(FloatingObjectDto.PROPERTY_OBJECT_OPERATION); + result.add(FloatingObjectSchoolEstimateDto.PROPERTY_OBJECT_SCHOOL_ESTIMATE); + result.add(FloatingObjectObservedSpeciesDto.PROPERTY_OBJECT_OBSERVED_SPECIES); return result; } 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 2ffdf23..9a88f0a 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 @@ -22,18 +22,13 @@ package fr.ird.observe.ui.tree.loadors; * #L% */ -import fr.ird.observe.DataService; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.model.DataSelectionModel; +import fr.ird.observe.business.db.DataSource; import fr.ird.observe.services.dto.longline.TripLonglineDto; import fr.ird.observe.ui.tree.ObserveNode; -import fr.ird.observe.ui.tree.ObserveTreeHelper; import fr.ird.observe.ui.tree.TripLonglineNode; import jaxx.runtime.swing.nav.NavDataProvider; import jaxx.runtime.swing.nav.tree.NavTreeBridge; -import org.apache.commons.collections.CollectionUtils; -import java.util.ArrayList; import java.util.List; import static org.nuiton.i18n.I18n.n; @@ -44,7 +39,7 @@ import static org.nuiton.i18n.I18n.n; * @author Tony Chemit - chemit@codelutin.com * @since 3.7 */ -public class ProgramLonglineNodeChildLoador extends AbstractNodeChildLoador<TripLongline> { +public class ProgramLonglineNodeChildLoador extends AbstractNodeChildLoador<TripLonglineDto> { private static final long serialVersionUID = 1L; @@ -54,7 +49,7 @@ public class ProgramLonglineNodeChildLoador extends AbstractNodeChildLoador<Trip } public ProgramLonglineNodeChildLoador() { - super(TripLongline.class); + super(TripLonglineDto.class); } protected boolean addChilds; @@ -64,8 +59,9 @@ public class ProgramLonglineNodeChildLoador extends AbstractNodeChildLoador<Trip ObserveNode parentNode, NavDataProvider dataProvider) throws Exception { - DataSelectionModel selectionModel = getSelectionModel(dataProvider); - addChilds = selectionModel == null; + //FIXME +// DataSelectionModel selectionModel = getSelectionModel(dataProvider); +// addChilds = selectionModel == null; try { super.loadChilds(model, parentNode, dataProvider); @@ -76,38 +72,42 @@ public class ProgramLonglineNodeChildLoador extends AbstractNodeChildLoador<Trip } @Override - public List<TripLongline> getData(Class<?> parentClass, + public List<TripLonglineDto> getData(Class<?> parentClass, String parentId, NavDataProvider dataProvider) throws Exception { DataSource dataSource = getDataSource(dataProvider); - DataService service = getDataService(); - DataSelectionModel selectionModel = getSelectionModel(dataProvider); - - List<TripLongline> result; - - if (selectionModel != null) { - - result = new ArrayList<TripLongline>(); - List<String> tripIds = selectionModel.getDatas().get(parentId); - if (!CollectionUtils.isEmpty(tripIds)) { - for (String tripId : tripIds) { - result.add((TripLongline) selectionModel.getEntityCache(tripId)); - } - } - - } else { - - result = service.getTripLonglineStubByProgram(dataSource, parentId); - - } - - return result; + //FIXME +// DataService service = getDataService(); +// DataSelectionModel selectionModel = getSelectionModel(dataProvider); + + List<TripLonglineDto> result; + + //FIXME +// if (selectionModel != null) { +// +// result = new ArrayList<TripLongline>(); +// List<String> tripIds = selectionModel.getDatas().get(parentId); +// if (!CollectionUtils.isEmpty(tripIds)) { +// for (String tripId : tripIds) { +// result.add((TripLongline) selectionModel.getEntityCache(tripId)); +// } +// } +// +// } else { +// +// result = service.getTripLonglineStubByProgram(dataSource, parentId); +// +// } + + //FIXME +// return result; + return null; } @Override - public ObserveNode createNode(TripLongline data, NavDataProvider dataProvider) { + public ObserveNode createNode(TripLonglineDto data, NavDataProvider dataProvider) { if (data == null) { throw new NullPointerException("Ne peut pas ajouter un objet null"); @@ -119,15 +119,17 @@ public class ProgramLonglineNodeChildLoador extends AbstractNodeChildLoador<Trip { // Add gears - ObserveNode child = ObserveTreeHelper.createStringNode(TripLongline.PROPERTY_GEAR_USE_FEATURES_LONGLINE); - result.add(child); + //FIXME +// ObserveNode child = ObserveTreeHelper.createStringNode(TripLongline.PROPERTY_GEAR_USE_FEATURES_LONGLINE); +// result.add(child); } { // Add activities - ObserveNode child = ObserveTreeHelper.createStringNode( - TripLongline.PROPERTY_ACTIVITY_LONGLINE, ActivityLonglinesNodeChildLoador.class); - result.add(child); + //FIXME +// ObserveNode child = ObserveTreeHelper.createStringNode( +// TripLongline.PROPERTY_ACTIVITY_LONGLINE, ActivityLonglinesNodeChildLoador.class); +// result.add(child); } } 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 4de564f..d7d6dfc 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 @@ -21,18 +21,13 @@ */ package fr.ird.observe.ui.tree.loadors; -import fr.ird.observe.DataService; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.model.DataSelectionModel; +import fr.ird.observe.business.db.DataSource; import fr.ird.observe.services.dto.seine.TripSeineDto; import fr.ird.observe.ui.tree.ObserveNode; -import fr.ird.observe.ui.tree.ObserveTreeHelper; import fr.ird.observe.ui.tree.TripSeineNode; import jaxx.runtime.swing.nav.NavDataProvider; import jaxx.runtime.swing.nav.tree.NavTreeBridge; -import org.apache.commons.collections.CollectionUtils; -import java.util.ArrayList; import java.util.List; import static org.nuiton.i18n.I18n.n; @@ -43,7 +38,7 @@ import static org.nuiton.i18n.I18n.n; * @author Tony Chemit - chemit@codelutin.com * @since 1.4 */ -public class ProgramSeineNodeChildLoador extends AbstractNodeChildLoador<TripSeine> { +public class ProgramSeineNodeChildLoador extends AbstractNodeChildLoador<TripSeineDto> { private static final long serialVersionUID = 1L; @@ -53,7 +48,7 @@ public class ProgramSeineNodeChildLoador extends AbstractNodeChildLoador<TripSei } public ProgramSeineNodeChildLoador() { - super(TripSeine.class); + super(TripSeineDto.class); } protected boolean addChilds; @@ -62,8 +57,9 @@ public class ProgramSeineNodeChildLoador extends AbstractNodeChildLoador<TripSei public void loadChilds(NavTreeBridge<ObserveNode> model, ObserveNode parentNode, NavDataProvider dataProvider) throws Exception { - DataSelectionModel selectionModel = getSelectionModel(dataProvider); - addChilds = selectionModel == null; + //FIXME +// DataSelectionModel selectionModel = getSelectionModel(dataProvider); +// addChilds = selectionModel == null; try { super.loadChilds(model, parentNode, dataProvider); @@ -73,35 +69,39 @@ public class ProgramSeineNodeChildLoador extends AbstractNodeChildLoador<TripSei } @Override - public List<TripSeine> getData(Class<?> parentClass, + public List<TripSeineDto> getData(Class<?> parentClass, String parentId, NavDataProvider dataProvider) throws Exception { DataSource dataSource = getDataSource(dataProvider); - DataService service = getDataService(); - DataSelectionModel selectionModel = getSelectionModel(dataProvider); - - List<TripSeine> result; - - if (selectionModel != null) { - result = new ArrayList<TripSeine>(); - List<String> tripIds = selectionModel.getDatas().get(parentId); - if (!CollectionUtils.isEmpty(tripIds)) { - for (String tripId : tripIds) { - result.add((TripSeine) selectionModel.getEntityCache(tripId)); - } - } - } else { - - result = service.getTripSeineStubByProgram(dataSource, parentId); - - } - return result; + //FIXME +// DataService service = getDataService(); +// DataSelectionModel selectionModel = getSelectionModel(dataProvider); + + List<TripSeineDto> result; + + //FIXME +// if (selectionModel != null) { +// result = new ArrayList<TripSeine>(); +// List<String> tripIds = selectionModel.getDatas().get(parentId); +// if (!CollectionUtils.isEmpty(tripIds)) { +// for (String tripId : tripIds) { +// result.add((TripSeine) selectionModel.getEntityCache(tripId)); +// } +// } +// } else { +// +// result = service.getTripSeineStubByProgram(dataSource, parentId); +// +// } +// return result; + + return null; } @Override - public ObserveNode createNode(TripSeine data, NavDataProvider dataProvider) { + public ObserveNode createNode(TripSeineDto data, NavDataProvider dataProvider) { if (data == null) { throw new NullPointerException("Ne peut pas ajouter un objet null"); @@ -113,14 +113,16 @@ public class ProgramSeineNodeChildLoador extends AbstractNodeChildLoador<TripSei { // Add gears - ObserveNode child = ObserveTreeHelper.createStringNode(TripSeine.PROPERTY_GEAR_USE_FEATURES_SEINE); - result.add(child); + //FIXME +// ObserveNode child = ObserveTreeHelper.createStringNode(TripSeine.PROPERTY_GEAR_USE_FEATURES_SEINE); +// result.add(child); } { // Add routes - ObserveNode child = ObserveTreeHelper.createStringNode(TripSeine.PROPERTY_ROUTE, RoutesNodeChildLoador.class); - result.add(child); + //FIXME +// ObserveNode child = ObserveTreeHelper.createStringNode(TripSeine.PROPERTY_ROUTE, RoutesNodeChildLoador.class); +// result.add(child); } } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ReferenceCommonNodeChildLoador.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ReferenceCommonNodeChildLoador.java index 1572af7..a9cff4b 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ReferenceCommonNodeChildLoador.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ReferenceCommonNodeChildLoador.java @@ -21,9 +21,7 @@ */ package fr.ird.observe.ui.tree.loadors; -import fr.ird.observe.services.dto.EntitiesDto; -import fr.ird.observe.ObserveEntityEnum; -import fr.ird.observe.db.DataSourceException; +import fr.ird.observe.business.db.DataSourceException; import fr.ird.observe.ui.UIHelper; import fr.ird.observe.ui.tree.ObserveNode; import jaxx.runtime.swing.nav.NavDataProvider; @@ -76,9 +74,10 @@ public class ReferenceCommonNodeChildLoador extends AbstractNodeChildLoador<Clas NavDataProvider dataProvider) throws DataSourceException { List<Class> result = new ArrayList<Class>(); - for (ObserveEntityEnum anEnum : Entities.REFERENCE_COMMON_ENTITIES_LIST) { - result.add(anEnum.getContract()); - } + //FIXME +// for (ObserveEntityEnum anEnum : Entities.REFERENCE_COMMON_ENTITIES_LIST) { +// result.add(anEnum.getContract()); +// } UIHelper.sortReferentiel(result); return result; } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ReferenceLonglineNodeChildLoador.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ReferenceLonglineNodeChildLoador.java index 5bb9555..118c239 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ReferenceLonglineNodeChildLoador.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ReferenceLonglineNodeChildLoador.java @@ -21,9 +21,7 @@ */ package fr.ird.observe.ui.tree.loadors; -import fr.ird.observe.ObserveEntityEnum; -import fr.ird.observe.db.DataSourceException; -import fr.ird.observe.services.dto.EntitiesDto; +import fr.ird.observe.business.db.DataSourceException; import fr.ird.observe.ui.UIHelper; import fr.ird.observe.ui.tree.ObserveNode; import jaxx.runtime.swing.nav.NavDataProvider; @@ -82,9 +80,10 @@ public class ReferenceLonglineNodeChildLoador extends AbstractNodeChildLoador<Cl NavDataProvider dataProvider) throws DataSourceException { List<Class> result = new ArrayList<Class>(); - for (ObserveEntityEnum anEnum : Entities.REFERENCE_LONGLINE_ENTITIES_LIST) { - result.add(anEnum.getContract()); - } + //FIXME +// for (ObserveEntityEnum anEnum : Entities.REFERENCE_LONGLINE_ENTITIES_LIST) { +// result.add(anEnum.getContract()); +// } UIHelper.sortReferentiel(result); return result; } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ReferenceSeineNodeChildLoador.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ReferenceSeineNodeChildLoador.java index 37ffa75..8a74ef5 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ReferenceSeineNodeChildLoador.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ReferenceSeineNodeChildLoador.java @@ -21,9 +21,7 @@ */ package fr.ird.observe.ui.tree.loadors; -import fr.ird.observe.ObserveEntityEnum; -import fr.ird.observe.db.DataSourceException; -import fr.ird.observe.services.dto.EntitiesDto; +import fr.ird.observe.business.db.DataSourceException; import fr.ird.observe.ui.UIHelper; import fr.ird.observe.ui.tree.ObserveNode; import jaxx.runtime.swing.nav.NavDataProvider; @@ -74,9 +72,10 @@ public class ReferenceSeineNodeChildLoador extends AbstractNodeChildLoador<Class NavDataProvider dataProvider) throws DataSourceException { List<Class> result = new ArrayList<Class>(); - for (ObserveEntityEnum anEnum : Entities.REFERENCE_SEINE_ENTITIES_LIST) { - result.add(anEnum.getContract()); - } + //FIXME +// for (ObserveEntityEnum anEnum : Entities.REFERENCE_SEINE_ENTITIES_LIST) { +// result.add(anEnum.getContract()); +// } UIHelper.sortReferentiel(result); return result; } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/loadors/RootNodeChildLoador.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/loadors/RootNodeChildLoador.java index 9c5925c..cd29821 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/loadors/RootNodeChildLoador.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/loadors/RootNodeChildLoador.java @@ -21,10 +21,8 @@ */ package fr.ird.observe.ui.tree.loadors; -import fr.ird.observe.DataService; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.model.DataSelectionModel; -import fr.ird.observe.services.dto.constants.GearTypeDto; +import fr.ird.observe.business.db.DataSource; +import fr.ird.observe.services.dto.constants.GearType; import fr.ird.observe.services.dto.referential.ProgramDto; import fr.ird.observe.ui.tree.ObserveNode; import fr.ird.observe.ui.tree.ObserveTreeHelper; @@ -32,8 +30,6 @@ import fr.ird.observe.ui.tree.ProgramLonglineNode; import fr.ird.observe.ui.tree.ProgramSeineNode; import jaxx.runtime.swing.nav.NavDataProvider; -import java.util.ArrayList; -import java.util.Collections; import java.util.List; import static org.nuiton.i18n.I18n.n; @@ -44,7 +40,7 @@ import static org.nuiton.i18n.I18n.n; * @author Tony Chemit - chemit@codelutin.com * @since 1.4 */ -public class RootNodeChildLoador extends AbstractNodeChildLoador<Program> { +public class RootNodeChildLoador extends AbstractNodeChildLoador<ProgramDto> { private static final long serialVersionUID = 1L; @@ -53,7 +49,7 @@ public class RootNodeChildLoador extends AbstractNodeChildLoador<Program> { protected boolean addReferentiel; public RootNodeChildLoador() { - super(Program.class); + super(ProgramDto.class); } public RootNodeChildLoador(boolean addData, boolean addReferentiel) { @@ -71,38 +67,42 @@ public class RootNodeChildLoador extends AbstractNodeChildLoador<Program> { } @Override - public List<Program> getData(Class<?> parentClass, + public List<ProgramDto> getData(Class<?> parentClass, String parentId, NavDataProvider dataProvider) throws Exception { DataSource dataSource = getDataSource(dataProvider); - DataService service = getDataService(); - DataSelectionModel selectionModel = getSelectionModel(dataProvider); - - List<Program> data; - if (addData) { - - if (selectionModel != null) { - data = new ArrayList<Program>(); - for (String programId : selectionModel.getDatas().keySet()) { - data.add((Program) selectionModel.getEntityCache(programId)); - } - } else { - data = service.getAllProgramStub(dataSource); - } - - } else { - - data = Collections.emptyList(); - - } - - return data; + //FIXME +// DataService service = getDataService(); +// DataSelectionModel selectionModel = getSelectionModel(dataProvider); + + List<ProgramDto> data; + //FIXME +// if (addData) { +// +// if (selectionModel != null) { +// data = new ArrayList<Program>(); +// for (String programId : selectionModel.getDatas().keySet()) { +// data.add((Program) selectionModel.getEntityCache(programId)); +// } +// } else { +// data = service.getAllProgramStub(dataSource); +// } +// +// } else { +// +// data = Collections.emptyList(); +// +// } +// +// return data; + + return null; } @Override - public void addChildNodes(ObserveNode parentNode, List<Program> datas, NavDataProvider dataProvider) { + public void addChildNodes(ObserveNode parentNode, List<ProgramDto> datas, NavDataProvider dataProvider) { super.addChildNodes(parentNode, datas, dataProvider); if (addReferentiel) { @@ -138,7 +138,7 @@ public class RootNodeChildLoador extends AbstractNodeChildLoador<Program> { } @Override - public ObserveNode createNode(Program data, NavDataProvider dataProvider) { + public ObserveNode createNode(ProgramDto data, NavDataProvider dataProvider) { GearType gearType = data.getGearType(); 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 64f544d..f5995f6 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 @@ -21,7 +21,7 @@ */ package fr.ird.observe.ui.tree.loadors; -import fr.ird.observe.db.DataSource; +import fr.ird.observe.business.db.DataSource; import fr.ird.observe.services.dto.seine.RouteDto; import fr.ird.observe.ui.tree.ObserveDataProvider; import fr.ird.observe.ui.tree.ObserveNode; @@ -39,7 +39,7 @@ import static org.nuiton.i18n.I18n.n; * @author Tony Chemit - chemit@codelutin.com * @since 1.4 */ -public class RoutesNodeChildLoador extends AbstractNodeChildLoador<Route> { +public class RoutesNodeChildLoador extends AbstractNodeChildLoador<RouteDto> { private static final long serialVersionUID = 1L; @@ -48,22 +48,23 @@ public class RoutesNodeChildLoador extends AbstractNodeChildLoador<Route> { } public RoutesNodeChildLoador() { - super(Route.class); + super(RouteDto.class); } @Override - public List<Route> getData(Class<?> parentClass, + public List<RouteDto> getData(Class<?> parentClass, String parentId, NavDataProvider dataProvider) throws Exception { DataSource dataSource = ((ObserveDataProvider) dataProvider).getDataSource(); - List<Route> data = getDataService().getRouteStubByTrip(dataSource, parentId); + //FIXME +// List<RouteDto> data = getDataService().getRouteStubByTrip(dataSource, parentId); return data; } @Override - public ObserveNode createNode(Route data, NavDataProvider dataProvider) { + public ObserveNode createNode(RouteDto data, NavDataProvider dataProvider) { if (data == null) { throw new NullPointerException("Ne peut pas ajouter un objet null"); @@ -72,8 +73,9 @@ public class RoutesNodeChildLoador extends AbstractNodeChildLoador<Route> { ObserveNode result = new RouteSeineNode(data); // Creation d'un node activites - ObserveNode child = ObserveTreeHelper.createStringNode(Route.PROPERTY_ACTIVITY_SEINE, ActivitySeinesNodeChildLoador.class); - result.add(child); + //FIXME +// ObserveNode child = ObserveTreeHelper.createStringNode(Route.PROPERTY_ACTIVITY_SEINE, ActivitySeinesNodeChildLoador.class); +// result.add(child); return result; } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/loadors/SetLonglineNodeChildLoador.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/loadors/SetLonglineNodeChildLoador.java index 4b0974c..bfb500c 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/loadors/SetLonglineNodeChildLoador.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/loadors/SetLonglineNodeChildLoador.java @@ -22,8 +22,9 @@ package fr.ird.observe.ui.tree.loadors; * #L% */ -import fr.ird.observe.db.DataSourceException; -import fr.ird.observe.services.dto.longline.SetLonglineDto; +import fr.ird.observe.business.db.DataSourceException; +import fr.ird.observe.services.dto.longline.SetLonglineCatchDto; +import fr.ird.observe.services.dto.longline.SetLonglineTdrDto; import fr.ird.observe.ui.tree.ObserveNode; import fr.ird.observe.ui.tree.ObserveTreeHelper; import jaxx.runtime.swing.nav.NavDataProvider; @@ -62,8 +63,8 @@ public class SetLonglineNodeChildLoador extends AbstractNodeChildLoador<String> List<String> result = new ArrayList<String>(); result.add("longlineGlobalComposition"); result.add("longlineDetailComposition"); - result.add(SetLongline.PROPERTY_CATCH_LONGLINE); - result.add(SetLongline.PROPERTY_TDR); + result.add(SetLonglineCatchDto.PROPERTY_CATCH_LONGLINE); + result.add(SetLonglineTdrDto.PROPERTY_TDR); return result; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/loadors/SetSeineNodeChildLoador.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/loadors/SetSeineNodeChildLoador.java index 11adee4..fe7f5ab 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/loadors/SetSeineNodeChildLoador.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/loadors/SetSeineNodeChildLoador.java @@ -21,8 +21,11 @@ */ package fr.ird.observe.ui.tree.loadors; -import fr.ird.observe.db.DataSourceException; +import fr.ird.observe.business.db.DataSourceException; import fr.ird.observe.services.dto.seine.SetSeineDto; +import fr.ird.observe.services.dto.seine.SetSeineNonTargetCatchDto; +import fr.ird.observe.services.dto.seine.SetSeineSchoolEstimateDto; +import fr.ird.observe.services.dto.seine.SetSeineTargetCatchDto; import fr.ird.observe.ui.tree.ObserveNode; import fr.ird.observe.ui.tree.ObserveTreeHelper; import jaxx.runtime.swing.nav.NavDataProvider; @@ -62,13 +65,15 @@ public class SetSeineNodeChildLoador extends AbstractNodeChildLoador<String> { NavDataProvider dataProvider) throws DataSourceException { List<String> result = new ArrayList<String>(); - result.add(SetSeine.PROPERTY_SCHOOL_ESTIMATE); - result.add(SetSeine.PROPERTY_TARGET_CATCH); - result.add(SetSeine.PROPERTY_TARGET_DISCARDED); - result.add(SetSeine.PROPERTY_TARGET_SAMPLE); - result.add(SetSeine.PROPERTY_TARGET_SAMPLE_CAPTURE); - result.add(SetSeine.PROPERTY_NON_TARGET_CATCH); - result.add(SetSeine.PROPERTY_NON_TARGET_SAMPLE); + result.add(SetSeineSchoolEstimateDto.PROPERTY_SCHOOL_ESTIMATE); + result.add(SetSeineTargetCatchDto.PROPERTY_TARGET_CATCH); + result.add(SetSeineDto.PROPERTY_TARGET_DISCARDED); + //FIXME +// result.add(SetSeine.PROPERTY_TARGET_SAMPLE); +// result.add(SetSeine.PROPERTY_TARGET_SAMPLE_CAPTURE); + result.add(SetSeineNonTargetCatchDto.PROPERTY_NON_TARGET_CATCH); + //FIXME +// result.add(SetSeine.PROPERTY_NON_TARGET_SAMPLE); return result; } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/usage/UsagesUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/usage/UsagesUIHandler.java index b271893..2ea7dd8 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/usage/UsagesUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/usage/UsagesUIHandler.java @@ -21,9 +21,9 @@ */ package fr.ird.observe.ui.usage; -import fr.ird.observe.DecoratorService; +import fr.ird.observe.business.DecoratorService; import fr.ird.observe.ObserveContext; -import fr.ird.observe.services.dto.referential.ReferenceEntityDto; +import fr.ird.observe.services.dto.referential.ReferentialDto; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.decorator.Decorator; @@ -114,7 +114,7 @@ public class UsagesUIHandler { // pane.setMaximumSize(new Dimension(300, 100)); String typetitle; int size = entitites.size(); - if (ReferenceEntity.class.isAssignableFrom(type)) { + if (ReferentialDto.class.isAssignableFrom(type)) { typetitle = n("observe.label.usage.referentiel.title"); } else { typetitle = n("observe.label.usage.data.title"); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/util/ObserveSimpleValidatorMessageTableRenderer.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/util/ObserveSimpleValidatorMessageTableRenderer.java index 002ee33..1e38bc2 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/util/ObserveSimpleValidatorMessageTableRenderer.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/util/ObserveSimpleValidatorMessageTableRenderer.java @@ -22,7 +22,7 @@ package fr.ird.observe.ui.util; * #L% */ -import fr.ird.observe.DecoratorService; +import fr.ird.observe.business.DecoratorService; import fr.ird.observe.ObserveContext; import jaxx.runtime.validator.swing.SimpleBeanValidatorMessageTableModel; import jaxx.runtime.validator.swing.SimpleBeanValidatorMessageTableRenderer; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/util/ObserveValidatorMessageTableRenderer.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/util/ObserveValidatorMessageTableRenderer.java index c1d18af..93ffa04 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/util/ObserveValidatorMessageTableRenderer.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/util/ObserveValidatorMessageTableRenderer.java @@ -22,7 +22,7 @@ package fr.ird.observe.ui.util; * #L% */ -import fr.ird.observe.DecoratorService; +import fr.ird.observe.business.DecoratorService; import fr.ird.observe.ObserveContext; import jaxx.runtime.validator.swing.SwingValidatorMessage; import jaxx.runtime.validator.swing.SwingValidatorMessageTableModel; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/util/tripMap/TripMapContentBuilder.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/util/tripMap/TripMapContentBuilder.java index c859c8d..a2f47a0 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/util/tripMap/TripMapContentBuilder.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/util/tripMap/TripMapContentBuilder.java @@ -33,9 +33,8 @@ import com.vividsolutions.jts.geom.GeometryFactory; import com.vividsolutions.jts.geom.LineString; import com.vividsolutions.jts.geom.Point; import com.vividsolutions.jts.geom.Polygon; -import fr.ird.observe.ObserveTechnicalException; -import fr.ird.observe.tripMap.TripMapPoint; -import fr.ird.observe.tripMap.TripMapPointType; +import fr.ird.observe.business.ObserveTechnicalException; +import fr.ird.observe.entities.tripMap.*; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.time.DateUtils; import org.geotools.data.FileDataStore; 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 e9e5e70..c899950 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 @@ -22,13 +22,12 @@ package fr.ird.observe.ui.util.tripMap; * #L% */ -import fr.ird.observe.DataService; import fr.ird.observe.ObserveConfig; import fr.ird.observe.ObserveContext; -import fr.ird.observe.ObserveTechnicalException; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.services.dto.EntitiesDto; -import fr.ird.observe.tripMap.TripMapPoint; +import fr.ird.observe.business.ObserveTechnicalException; +import fr.ird.observe.business.db.DataSource; +import fr.ird.observe.entities.tripMap.TripMapPoint; +import fr.ird.observe.services.dto.IdDtos; import fr.ird.observe.ui.UIHelper; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -39,9 +38,8 @@ import org.geotools.swing.event.MapPaneEvent; import org.geotools.swing.event.MapPaneListener; import javax.imageio.ImageIO; -import javax.swing.JOptionPane; -import java.awt.CardLayout; -import java.awt.Point; +import javax.swing.*; +import java.awt.*; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.awt.event.MouseMotionListener; @@ -107,7 +105,9 @@ public class TripMapUIHandler { return view.getObserveMapPane(); } - public void doOpenMap(DataSource dataSource, DataService dataService, String tripId) { + //FIXME +// public void doOpenMap(DataSource dataSource, DataService dataService, String tripId) { + public void doOpenMap(DataSource dataSource, Object dataService, String tripId) { try { ((CardLayout) view.getLayout()).first(view); @@ -120,7 +120,9 @@ public class TripMapUIHandler { mapPane.getMapContent().dispose(); } - List<TripMapPoint> tripMapPoints = dataService.loadTripMapActivityPoints(dataSource, tripId); + //FIXME +// List<TripMapPoint> tripMapPoints = dataService.loadTripMapActivityPoints(dataSource, tripId); + List<TripMapPoint> tripMapPoints = null; TripMapContentBuilder mapContentBuilder = new TripMapContentBuilder(); @@ -130,11 +132,11 @@ public class TripMapUIHandler { mapContentBuilder.addLayer(layerFile); } - if (Entities.isSeineId(tripId)) { + if (IdDtos.isSeineId(tripId)) { mapContentBuilder.addTripLine(tripMapPoints); - } else if (Entities.isLonglineId(tripId)) { + } else if (IdDtos.isLonglineId(tripId)) { mapContentBuilder.addLonglineFishingZone(tripMapPoints); mapContentBuilder.addLonglineLine(tripMapPoints); 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 deleted file mode 100644 index 47b4842..0000000 --- a/observe-application-swing/src/main/java/fr/ird/observe/validation/ValidationContext.java +++ /dev/null @@ -1,301 +0,0 @@ -/* - * #%L - * ObServe :: Business - * %% - * Copyright (C) 2008 - 2010 IRD, Codelutin, Tony Chemit - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ -package fr.ird.observe.validation; - -import fr.ird.observe.db.DataContext; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.DataSourceException; -import fr.ird.observe.services.dto.ActivityDto; -import fr.ird.observe.services.dto.SetDto; -import fr.ird.observe.services.dto.TripDto; -import fr.ird.observe.services.dto.longline.ActivityLonglineDto; -import fr.ird.observe.services.dto.longline.SetLonglineDto; -import fr.ird.observe.services.dto.longline.TripLonglineDto; -import fr.ird.observe.services.dto.seine.ActivitySeineDto; -import fr.ird.observe.services.dto.seine.FloatingObjectDto; -import fr.ird.observe.services.dto.seine.RouteDto; -import fr.ird.observe.services.dto.seine.SetSeineDto; -import fr.ird.observe.services.dto.seine.TripSeineDto; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.nuiton.topia.TopiaContext; -import org.nuiton.topia.persistence.TopiaDAO; -import org.nuiton.topia.persistence.TopiaEntity; - -import java.util.List; -import java.util.Map; -import java.util.TreeMap; - -/** - * Contient les objets en cours de validation. - * - * @author Tony Chemit - chemit@codelutin.com - * @since 1.4 - */ -public class ValidationContext { - - /** Logger */ - static private final Log log = LogFactory.getLog(ValidationContext.class); - - public static final String VALIDATION_TRANSACTION_NAME = "validation"; - - protected DataSource dataSource; - - protected TopiaContext tx; - - protected DataContext dataContext; - - protected Map<String, Object> cache; - - private List<?> referentielList; - - public Map<String, Object> getCache() { - if (cache == null) { - cache = new TreeMap<String, Object>(); - } - return cache; - } - - public void cleanCache() { - getCache().clear(); - referentielList = null; - cleanTransaction(); - } - - public DataSource getDataSource() { - return dataSource; - } - - public void close() { - closeDataSource(); - dataContext = null; - } - - @Override - protected void finalize() throws Throwable { - super.finalize(); - close(); - } - - public void closeDataSource() { - closeTransaction(); - dataSource = null; - } - - protected void closeTransaction() { - if (tx != null) { - if (log.isDebugEnabled()) { - log.debug("close 'validation' transaction"); - } - try { - dataSource.closeTransaction(tx, VALIDATION_TRANSACTION_NAME); - } catch (DataSourceException e) { - if (log.isErrorEnabled()) { - log.error("Could not close transaction", e); - } - } finally { - tx = null; - } - } - } - - protected void cleanTransaction() { - if (tx != null) { - if (log.isDebugEnabled()) { - log.debug("clean 'validation' transaction"); - } - try { - dataSource.rollbackTransaction(tx, VALIDATION_TRANSACTION_NAME); - } catch (DataSourceException e) { - if (log.isErrorEnabled()) { - log.error("Could not clean transaction", e); - } - } - } - } - - public DataContext getDataContext() { - return dataContext; - } - - public void setDataSource(DataSource dataSource) { - if (this.dataSource != null) { - closeDataSource(); - } - if (log.isDebugEnabled()) { - log.debug("Attach data source " + (dataSource == null ? "null" : dataSource.getShortLabel())); - } - this.dataSource = dataSource; - } - - public void setDataContext(DataContext dataContext) { - if (log.isInfoEnabled()) { - log.info("Attach data context " + dataContext); - } - this.dataContext = dataContext; - ObserveValidator.reloadDataContext(this, false); - } - - public Trip getCurrentTrip() { - - Trip result = null; - - String selectedTripId = dataContext.getSelectedTripId(); - if (selectedTripId != null) { - if (selectedTripId.contains("Seine")) { - result = getCurrentTripSeine(); - } else { - result = getCurrentTripLongline(); - } - } - return result; - - } - - public TripSeine getCurrentTripSeine() { - TripSeine result = getEntity(TripSeine.class, dataContext.getSelectedTripId()); - return result; - } - - public TripLongline getCurrentTripLongline() { - TripLongline result = getEntity(TripLongline.class, dataContext.getSelectedTripId()); - return result; - } - - public Route getCurrentRoute() { - Route result = getEntity(Route.class, dataContext.getSelectedRouteId()); - return result; - } - - public Activity getCurrentActivity() { - - Activity result = null; - - String selectedActivityId = dataContext.getSelectedActivityId(); - if (selectedActivityId != null) { - if (selectedActivityId.contains("Seine")) { - result = getCurrentActivitySeine(); - } else { - result = getCurrentActivityLongline(); - } - } - return result; - - } - - public ActivitySeine getCurrentActivitySeine() { - ActivitySeine result = getEntity(ActivitySeine.class, dataContext.getSelectedActivityId()); - return result; - } - - public ActivityLongline getCurrentActivityLongline() { - ActivityLongline result = getEntity(ActivityLongline.class, dataContext.getSelectedActivityId()); - return result; - } - - public Set getCurrentSet() { - - Set result = null; - - String selectedSetId = dataContext.getSelectedSetId(); - if (selectedSetId != null) { - if (selectedSetId.contains("Seine")) { - result = getCurrentSetSeine(); - } else { - result = getCurrentSetLongline(); - } - } - return result; - - } - - public SetSeine getCurrentSetSeine() { - SetSeine result = getEntity(SetSeine.class, dataContext.getSelectedSetId()); - return result; - } - - public SetLongline getCurrentSetLongline() { - SetLongline result = getEntity(SetLongline.class, dataContext.getSelectedSetId()); - return result; - } - - public FloatingObject getCurrentFloatingObject() { - FloatingObject result = getEntity(FloatingObject.class, dataContext.getSelectedFloatingObjectId()); - return result; - } - - public List<?> getEditingReferentielList() { - return referentielList; - } - - public void setEditingReferentielList(List<?> referentielList) { - if (log.isDebugEnabled()) { - log.debug("Add referentielList (size : " + (referentielList == null ? 0 : referentielList.size()) + ")"); - } - this.referentielList = referentielList; - } - - public TopiaContext getTx() throws DataSourceException { - if (tx == null) { - if (dataSource != null) { - if (log.isInfoEnabled()) { - log.info("Open a new transaction " + tx); - } - tx = dataSource.beginTransaction(VALIDATION_TRANSACTION_NAME); - } - } - return tx; - } - - public <E extends TopiaEntity> E getEntity(Class<E> klass, String id) { - - if (dataSource == null || dataContext == null || !dataSource.isOpen() || id == null) { - return null; - } - Object o = getCache().get(id); - if (o != null) { - if (log.isDebugEnabled()) { - log.debug("Use cached entity : " + id); - } - // found in cache - return (E) o; - } - try { - TopiaContext tx = getTx(); - if (tx == null) { - return null; - } - TopiaDAO<E> dao = dataSource.getDAO(tx, klass); - E result = dao.findByTopiaId(id); - if (log.isInfoEnabled()) { - log.info("Put entity into cache : " + id); - } - getCache().put(id, result); - return result; - } catch (Exception e) { - if (log.isErrorEnabled()) { - log.error("Could not obtain " + id, e); - } - return null; - } - } -} 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 a02d7c5..8970fb9 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,16 +22,13 @@ package fr.ird.observe.ui.content.impl.longline; * #L% */ -import fr.ird.observe.DecoratorService; -import fr.ird.observe.ObserveApplicationContext; +import fr.ird.observe.business.DecoratorService; +import fr.ird.observe.business.ObserveApplicationContext; import fr.ird.observe.ObserveServiceHelper; import fr.ird.observe.services.dto.constants.ReferenceLocaleDto; -import fr.ird.observe.services.dto.longline.BasketDto; import fr.ird.observe.services.dto.longline.BasketImplDto; -import fr.ird.observe.services.dto.longline.BranchlineDto; -import fr.ird.observe.services.dto.longline.SectionDto; import fr.ird.observe.services.dto.longline.SectionImplDto; -import fr.ird.observe.validation.ObserveValidator; +import fr.ird.observe.business.validation.ObserveValidator; import jaxx.runtime.validator.swing.SwingValidator; import jaxx.runtime.validator.swing.SwingValidatorMessage; import org.apache.commons.logging.Log; diff --git a/observe-business/src/main/java/fr/ird/observe/DecoratorService.java b/observe-business/src/main/java/fr/ird/observe/DecoratorService.java index 883457c..5979b6f 100644 --- a/observe-business/src/main/java/fr/ird/observe/DecoratorService.java +++ b/observe-business/src/main/java/fr/ird/observe/DecoratorService.java @@ -105,8 +105,8 @@ import fr.ird.observe.entities.seine.SetSeine; import fr.ird.observe.entities.seine.TargetCatch; import fr.ird.observe.entities.seine.TargetLength; import fr.ird.observe.entities.seine.TransmittingBuoy; -import fr.ird.observe.gps.GPSPoint; -import fr.ird.observe.gps.GPSPointInterval; +import fr.ird.observe.business.gps.GPSPoint; +import fr.ird.observe.business.gps.GPSPointInterval; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.decorator.Decorator; diff --git a/observe-business/src/main/java/fr/ird/observe/ObserveApplicationContext.java b/observe-business/src/main/java/fr/ird/observe/ObserveApplicationContext.java index ee0f6de..a921cec 100644 --- a/observe-business/src/main/java/fr/ird/observe/ObserveApplicationContext.java +++ b/observe-business/src/main/java/fr/ird/observe/ObserveApplicationContext.java @@ -25,9 +25,9 @@ import fr.ird.observe.db.DataContext; import fr.ird.observe.db.DataSource; import fr.ird.observe.db.DataSourceFactory; import fr.ird.observe.entities.constants.ReferenceLocale; -import fr.ird.observe.gps.GPSService; -import fr.ird.observe.validation.ObserveValidator; -import fr.ird.observe.validation.ValidationContext; +import fr.ird.observe.business.gps.GPSService; +import fr.ird.observe.business.validation.ObserveValidator; +import fr.ird.observe.business.validation.ValidationContext; import jaxx.runtime.JAXXUtil; import jaxx.runtime.context.DefaultApplicationContext; import jaxx.runtime.context.JAXXContextEntryDef; diff --git a/observe-business/src/main/java/fr/ird/observe/ObserveServiceHelper.java b/observe-business/src/main/java/fr/ird/observe/ObserveServiceHelper.java index a904bc1..e2b57d5 100644 --- a/observe-business/src/main/java/fr/ird/observe/ObserveServiceHelper.java +++ b/observe-business/src/main/java/fr/ird/observe/ObserveServiceHelper.java @@ -29,9 +29,9 @@ import fr.ird.observe.db.ReplicationService; import fr.ird.observe.db.impl.H2DataSource; import fr.ird.observe.db.impl.H2DataSourceConfig; import fr.ird.observe.entities.migration.AbstractDataSourceMigration; -import fr.ird.observe.gps.GPSService; -import fr.ird.observe.validation.ValidationContext; -import fr.ird.observe.validation.ValidationService; +import fr.ird.observe.business.gps.GPSService; +import fr.ird.observe.business.validation.ValidationContext; +import fr.ird.observe.business.validation.ValidationService; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.config.ApplicationConfig; diff --git a/observe-business/src/main/java/fr/ird/observe/gps/GPSFileReader.java b/observe-business/src/main/java/fr/ird/observe/gps/GPSFileReader.java index 7f78c43..525791a 100644 --- a/observe-business/src/main/java/fr/ird/observe/gps/GPSFileReader.java +++ b/observe-business/src/main/java/fr/ird/observe/gps/GPSFileReader.java @@ -19,7 +19,7 @@ * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ -package fr.ird.observe.gps; +package fr.ird.observe.business.gps; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.logging.Log; diff --git a/observe-business/src/main/java/fr/ird/observe/gps/GPSService.java b/observe-business/src/main/java/fr/ird/observe/gps/GPSService.java index 139323b..b33ae29 100644 --- a/observe-business/src/main/java/fr/ird/observe/gps/GPSService.java +++ b/observe-business/src/main/java/fr/ird/observe/gps/GPSService.java @@ -19,7 +19,7 @@ * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ -package fr.ird.observe.gps; +package fr.ird.observe.business.gps; import java.io.File; diff --git a/observe-business/src/main/java/fr/ird/observe/validation/ObserveValidator.java b/observe-business/src/main/java/fr/ird/observe/validation/ObserveValidator.java index ae6b33e..b684753 100644 --- a/observe-business/src/main/java/fr/ird/observe/validation/ObserveValidator.java +++ b/observe-business/src/main/java/fr/ird/observe/validation/ObserveValidator.java @@ -19,7 +19,7 @@ * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ -package fr.ird.observe.validation; +package fr.ird.observe.business.validation; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.util.ValueStack; diff --git a/observe-business/src/main/java/fr/ird/observe/validation/ValidationContext.java b/observe-business/src/main/java/fr/ird/observe/validation/ValidationContext.java index 3f6383f..9fe68dc 100644 --- a/observe-business/src/main/java/fr/ird/observe/validation/ValidationContext.java +++ b/observe-business/src/main/java/fr/ird/observe/validation/ValidationContext.java @@ -19,7 +19,7 @@ * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ -package fr.ird.observe.validation; +package fr.ird.observe.business.validation; import fr.ird.observe.db.DataContext; import fr.ird.observe.db.DataSource; diff --git a/observe-business/src/main/java/fr/ird/observe/validation/ValidationMessageDetector.java b/observe-business/src/main/java/fr/ird/observe/validation/ValidationMessageDetector.java index ad0974b..7815a45 100644 --- a/observe-business/src/main/java/fr/ird/observe/validation/ValidationMessageDetector.java +++ b/observe-business/src/main/java/fr/ird/observe/validation/ValidationMessageDetector.java @@ -19,7 +19,7 @@ * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ -package fr.ird.observe.validation; +package fr.ird.observe.business.validation; import fr.ird.observe.ObserveDAOHelper; import fr.ird.observe.ObserveEntityEnum; diff --git a/observe-business/src/main/java/fr/ird/observe/validation/ValidationModelMode.java b/observe-business/src/main/java/fr/ird/observe/validation/ValidationModelMode.java index 463d7da..938f3a3 100644 --- a/observe-business/src/main/java/fr/ird/observe/validation/ValidationModelMode.java +++ b/observe-business/src/main/java/fr/ird/observe/validation/ValidationModelMode.java @@ -19,7 +19,7 @@ * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ -package fr.ird.observe.validation; +package fr.ird.observe.business.validation; import fr.ird.observe.entities.Entities; import fr.ird.observe.ObserveEntityEnum; diff --git a/observe-business/src/main/java/fr/ird/observe/validation/ValidationService.java b/observe-business/src/main/java/fr/ird/observe/validation/ValidationService.java index 84a71e8..1407e64 100644 --- a/observe-business/src/main/java/fr/ird/observe/validation/ValidationService.java +++ b/observe-business/src/main/java/fr/ird/observe/validation/ValidationService.java @@ -19,7 +19,7 @@ * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ -package fr.ird.observe.validation; +package fr.ird.observe.business.validation; import fr.ird.observe.ObserveEntityEnum; import org.apache.commons.logging.Log; diff --git a/observe-business/src/main/java/fr/ird/observe/validation/ValidatorsMap.java b/observe-business/src/main/java/fr/ird/observe/validation/ValidatorsMap.java index c4f1a03..b040f4c 100644 --- a/observe-business/src/main/java/fr/ird/observe/validation/ValidatorsMap.java +++ b/observe-business/src/main/java/fr/ird/observe/validation/ValidatorsMap.java @@ -19,7 +19,7 @@ * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ -package fr.ird.observe.validation; +package fr.ird.observe.business.validation; import org.nuiton.validator.NuitonValidatorScope; import org.nuiton.validator.bean.simple.SimpleBeanValidator; diff --git a/observe-business/src/main/resources/META-INF/services/fr.ird.observe.business.db.DataSourceProvider b/observe-business/src/main/resources/META-INF/services/fr.ird.observe.business.db.DataSourceProvider new file mode 100644 index 0000000..0310627 --- /dev/null +++ b/observe-business/src/main/resources/META-INF/services/fr.ird.observe.business.db.DataSourceProvider @@ -0,0 +1,2 @@ +fr.ird.observe.business.db.impl.H2DataSourceProvider +fr.ird.observe.business.db.impl.PGDataSourceProvider diff --git a/observe-business/src/main/resources/META-INF/services/fr.ird.observe.db.DataSourceProvider b/observe-business/src/main/resources/META-INF/services/fr.ird.observe.db.DataSourceProvider deleted file mode 100644 index 4f071a4..0000000 --- a/observe-business/src/main/resources/META-INF/services/fr.ird.observe.db.DataSourceProvider +++ /dev/null @@ -1,2 +0,0 @@ -fr.ird.observe.db.impl.H2DataSourceProvider -fr.ird.observe.db.impl.PGDataSourceProvider diff --git a/observe-business/src/test/java/fr/ird/observe/gps/GPSFileReaderTest.java b/observe-business/src/test/java/fr/ird/observe/gps/GPSFileReaderTest.java index 2e8bca7..f0f17c4 100644 --- a/observe-business/src/test/java/fr/ird/observe/gps/GPSFileReaderTest.java +++ b/observe-business/src/test/java/fr/ird/observe/gps/GPSFileReaderTest.java @@ -19,7 +19,7 @@ * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ -package fr.ird.observe.gps; +package fr.ird.observe.business.gps; import org.junit.After; import org.junit.Ignore; diff --git a/observe-business/src/test/java/fr/ird/observe/gps/GPSRouteTest.java b/observe-business/src/test/java/fr/ird/observe/gps/GPSRouteTest.java index 3c41e46..8aeaaae 100644 --- a/observe-business/src/test/java/fr/ird/observe/gps/GPSRouteTest.java +++ b/observe-business/src/test/java/fr/ird/observe/gps/GPSRouteTest.java @@ -19,7 +19,7 @@ * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ -package fr.ird.observe.gps; +package fr.ird.observe.business.gps; import org.junit.After; import org.junit.Before; diff --git a/observe-business/src/test/java/fr/ird/observe/gps/GPSServiceTest.java b/observe-business/src/test/java/fr/ird/observe/gps/GPSServiceTest.java index 82fcb1b..07e1418 100644 --- a/observe-business/src/test/java/fr/ird/observe/gps/GPSServiceTest.java +++ b/observe-business/src/test/java/fr/ird/observe/gps/GPSServiceTest.java @@ -19,7 +19,7 @@ * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ -package fr.ird.observe.gps; +package fr.ird.observe.business.gps; import org.apache.commons.lang3.time.DateUtils; import org.junit.Before; diff --git a/observe-business/src/test/java/fr/ird/observe/validation/ValidationServiceTest.java b/observe-business/src/test/java/fr/ird/observe/validation/ValidationServiceTest.java index cbd4c15..3704400 100644 --- a/observe-business/src/test/java/fr/ird/observe/validation/ValidationServiceTest.java +++ b/observe-business/src/test/java/fr/ird/observe/validation/ValidationServiceTest.java @@ -19,7 +19,7 @@ * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ -package fr.ird.observe.validation; +package fr.ird.observe.business.validation; import fr.ird.observe.entities.referentiel.Country; import fr.ird.observe.entities.referentiel.Ocean; diff --git a/observe-entities-validation/src/main/java/fr/ird/observe/validation/field/AbstractEspeceFieldValidator.java b/observe-entities-validation/src/main/java/fr/ird/observe/business/validation/field/AbstractEspeceFieldValidator.java similarity index 99% rename from observe-entities-validation/src/main/java/fr/ird/observe/validation/field/AbstractEspeceFieldValidator.java rename to observe-entities-validation/src/main/java/fr/ird/observe/business/validation/field/AbstractEspeceFieldValidator.java index 9194ff7..333b3d2 100644 --- a/observe-entities-validation/src/main/java/fr/ird/observe/validation/field/AbstractEspeceFieldValidator.java +++ b/observe-entities-validation/src/main/java/fr/ird/observe/business/validation/field/AbstractEspeceFieldValidator.java @@ -1,4 +1,4 @@ -package fr.ird.observe.validation.field; +package fr.ird.observe.business.validation.field; /* * #%L diff --git a/observe-entities-validation/src/main/java/fr/ird/observe/validation/field/ActivityDebutDePecheSaneValidator.java b/observe-entities-validation/src/main/java/fr/ird/observe/business/validation/field/ActivityDebutDePecheSaneValidator.java similarity index 99% rename from observe-entities-validation/src/main/java/fr/ird/observe/validation/field/ActivityDebutDePecheSaneValidator.java rename to observe-entities-validation/src/main/java/fr/ird/observe/business/validation/field/ActivityDebutDePecheSaneValidator.java index db12299..f578093 100644 --- a/observe-entities-validation/src/main/java/fr/ird/observe/validation/field/ActivityDebutDePecheSaneValidator.java +++ b/observe-entities-validation/src/main/java/fr/ird/observe/business/validation/field/ActivityDebutDePecheSaneValidator.java @@ -1,4 +1,4 @@ -package fr.ird.observe.validation.field; +package fr.ird.observe.business.validation.field; /* * #%L diff --git a/observe-entities-validation/src/main/java/fr/ird/observe/validation/field/ActivityFinDePecheSaneValidator.java b/observe-entities-validation/src/main/java/fr/ird/observe/business/validation/field/ActivityFinDePecheSaneValidator.java similarity index 99% rename from observe-entities-validation/src/main/java/fr/ird/observe/validation/field/ActivityFinDePecheSaneValidator.java rename to observe-entities-validation/src/main/java/fr/ird/observe/business/validation/field/ActivityFinDePecheSaneValidator.java index 93d77c6..c1213f1 100644 --- a/observe-entities-validation/src/main/java/fr/ird/observe/validation/field/ActivityFinDePecheSaneValidator.java +++ b/observe-entities-validation/src/main/java/fr/ird/observe/business/validation/field/ActivityFinDePecheSaneValidator.java @@ -1,4 +1,4 @@ -package fr.ird.observe.validation.field; +package fr.ird.observe.business.validation.field; /* * #%L diff --git a/observe-entities-validation/src/main/java/fr/ird/observe/validation/field/ActivityFinDeVeilleExistsValidator.java b/observe-entities-validation/src/main/java/fr/ird/observe/business/validation/field/ActivityFinDeVeilleExistsValidator.java similarity index 99% rename from observe-entities-validation/src/main/java/fr/ird/observe/validation/field/ActivityFinDeVeilleExistsValidator.java rename to observe-entities-validation/src/main/java/fr/ird/observe/business/validation/field/ActivityFinDeVeilleExistsValidator.java index 43b1ad2..da2998d 100644 --- a/observe-entities-validation/src/main/java/fr/ird/observe/validation/field/ActivityFinDeVeilleExistsValidator.java +++ b/observe-entities-validation/src/main/java/fr/ird/observe/business/validation/field/ActivityFinDeVeilleExistsValidator.java @@ -1,4 +1,4 @@ -package fr.ird.observe.validation.field; +package fr.ird.observe.business.validation.field; /* * #%L diff --git a/observe-entities-validation/src/main/java/fr/ird/observe/validation/field/ActivitySimpleSpeedValidator.java b/observe-entities-validation/src/main/java/fr/ird/observe/business/validation/field/ActivitySimpleSpeedValidator.java similarity index 97% rename from observe-entities-validation/src/main/java/fr/ird/observe/validation/field/ActivitySimpleSpeedValidator.java rename to observe-entities-validation/src/main/java/fr/ird/observe/business/validation/field/ActivitySimpleSpeedValidator.java index 8750114..ab115bf 100644 --- a/observe-entities-validation/src/main/java/fr/ird/observe/validation/field/ActivitySimpleSpeedValidator.java +++ b/observe-entities-validation/src/main/java/fr/ird/observe/business/validation/field/ActivitySimpleSpeedValidator.java @@ -1,4 +1,4 @@ -package fr.ird.observe.validation.field; +package fr.ird.observe.business.validation.field; /* * #%L @@ -28,8 +28,8 @@ import com.opensymphony.xwork2.validator.validators.FieldValidatorSupport; import fr.ird.observe.entities.seine.ActivitySeine; import fr.ird.observe.entities.seine.ActivitySeines; import fr.ird.observe.entities.seine.Route; -import fr.ird.observe.gps.GPSPoint; -import fr.ird.observe.gps.GpsPoints; +import fr.ird.observe.business.gps.GPSPoint; +import fr.ird.observe.business.gps.GpsPoints; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; diff --git a/observe-entities-validation/src/main/java/fr/ird/observe/validation/field/ActivitySpeedValidator.java b/observe-entities-validation/src/main/java/fr/ird/observe/business/validation/field/ActivitySpeedValidator.java similarity index 98% rename from observe-entities-validation/src/main/java/fr/ird/observe/validation/field/ActivitySpeedValidator.java rename to observe-entities-validation/src/main/java/fr/ird/observe/business/validation/field/ActivitySpeedValidator.java index 858242b..f2b6a17 100644 --- a/observe-entities-validation/src/main/java/fr/ird/observe/validation/field/ActivitySpeedValidator.java +++ b/observe-entities-validation/src/main/java/fr/ird/observe/business/validation/field/ActivitySpeedValidator.java @@ -1,4 +1,4 @@ -package fr.ird.observe.validation.field; +package fr.ird.observe.business.validation.field; /* * #%L @@ -27,8 +27,8 @@ import com.opensymphony.xwork2.validator.ValidationException; import com.opensymphony.xwork2.validator.validators.FieldValidatorSupport; import fr.ird.observe.entities.seine.ActivitySeine; import fr.ird.observe.entities.seine.Route; -import fr.ird.observe.gps.GPSPoint; -import fr.ird.observe.gps.GpsPoints; +import fr.ird.observe.business.gps.GPSPoint; +import fr.ird.observe.business.gps.GpsPoints; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.validator.xwork2.field.CollectionFieldExpressionValidator; diff --git a/observe-entities-validation/src/main/java/fr/ird/observe/validation/field/CollectionFieldExpressionValidator2.java b/observe-entities-validation/src/main/java/fr/ird/observe/business/validation/field/CollectionFieldExpressionValidator2.java similarity index 98% rename from observe-entities-validation/src/main/java/fr/ird/observe/validation/field/CollectionFieldExpressionValidator2.java rename to observe-entities-validation/src/main/java/fr/ird/observe/business/validation/field/CollectionFieldExpressionValidator2.java index 210d1dd..41baf7d 100644 --- a/observe-entities-validation/src/main/java/fr/ird/observe/validation/field/CollectionFieldExpressionValidator2.java +++ b/observe-entities-validation/src/main/java/fr/ird/observe/business/validation/field/CollectionFieldExpressionValidator2.java @@ -1,4 +1,4 @@ -package fr.ird.observe.validation.field; +package fr.ird.observe.business.validation.field; /* * #%L diff --git a/observe-entities-validation/src/main/java/fr/ird/observe/validation/field/CollectionUniqueKeyValidator2.java b/observe-entities-validation/src/main/java/fr/ird/observe/business/validation/field/CollectionUniqueKeyValidator2.java similarity index 96% rename from observe-entities-validation/src/main/java/fr/ird/observe/validation/field/CollectionUniqueKeyValidator2.java rename to observe-entities-validation/src/main/java/fr/ird/observe/business/validation/field/CollectionUniqueKeyValidator2.java index 0f78a32..94d6b4d 100644 --- a/observe-entities-validation/src/main/java/fr/ird/observe/validation/field/CollectionUniqueKeyValidator2.java +++ b/observe-entities-validation/src/main/java/fr/ird/observe/business/validation/field/CollectionUniqueKeyValidator2.java @@ -1,4 +1,4 @@ -package fr.ird.observe.validation.field; +package fr.ird.observe.business.validation.field; /* * #%L diff --git a/observe-entities-validation/src/main/java/fr/ird/observe/validation/field/ObserveCollectionUniqueKeyValidator.java b/observe-entities-validation/src/main/java/fr/ird/observe/business/validation/field/ObserveCollectionUniqueKeyValidator.java similarity index 99% rename from observe-entities-validation/src/main/java/fr/ird/observe/validation/field/ObserveCollectionUniqueKeyValidator.java rename to observe-entities-validation/src/main/java/fr/ird/observe/business/validation/field/ObserveCollectionUniqueKeyValidator.java index 041e85b..799b40f 100644 --- a/observe-entities-validation/src/main/java/fr/ird/observe/validation/field/ObserveCollectionUniqueKeyValidator.java +++ b/observe-entities-validation/src/main/java/fr/ird/observe/business/validation/field/ObserveCollectionUniqueKeyValidator.java @@ -1,4 +1,4 @@ -package fr.ird.observe.validation.field; +package fr.ird.observe.business.validation.field; /* * #%L diff --git a/observe-entities-validation/src/main/java/fr/ird/observe/validation/field/RouteActivitysFieldValidator.java b/observe-entities-validation/src/main/java/fr/ird/observe/business/validation/field/RouteActivitysFieldValidator.java similarity index 98% rename from observe-entities-validation/src/main/java/fr/ird/observe/validation/field/RouteActivitysFieldValidator.java rename to observe-entities-validation/src/main/java/fr/ird/observe/business/validation/field/RouteActivitysFieldValidator.java index 7a78f02..a106e47 100644 --- a/observe-entities-validation/src/main/java/fr/ird/observe/validation/field/RouteActivitysFieldValidator.java +++ b/observe-entities-validation/src/main/java/fr/ird/observe/business/validation/field/RouteActivitysFieldValidator.java @@ -1,4 +1,4 @@ -package fr.ird.observe.validation.field; +package fr.ird.observe.business.validation.field; /* * #%L diff --git a/observe-entities-validation/src/main/java/fr/ird/observe/validation/field/SetLonglineUniqueHomeIdValidator.java b/observe-entities-validation/src/main/java/fr/ird/observe/business/validation/field/SetLonglineUniqueHomeIdValidator.java similarity index 98% rename from observe-entities-validation/src/main/java/fr/ird/observe/validation/field/SetLonglineUniqueHomeIdValidator.java rename to observe-entities-validation/src/main/java/fr/ird/observe/business/validation/field/SetLonglineUniqueHomeIdValidator.java index 18b4244..993f8a6 100644 --- a/observe-entities-validation/src/main/java/fr/ird/observe/validation/field/SetLonglineUniqueHomeIdValidator.java +++ b/observe-entities-validation/src/main/java/fr/ird/observe/business/validation/field/SetLonglineUniqueHomeIdValidator.java @@ -1,4 +1,4 @@ -package fr.ird.observe.validation.field; +package fr.ird.observe.business.validation.field; /* * #%L diff --git a/observe-entities-validation/src/main/java/fr/ird/observe/validation/field/SetLonglineUniqueNumberValidator.java b/observe-entities-validation/src/main/java/fr/ird/observe/business/validation/field/SetLonglineUniqueNumberValidator.java similarity index 98% rename from observe-entities-validation/src/main/java/fr/ird/observe/validation/field/SetLonglineUniqueNumberValidator.java rename to observe-entities-validation/src/main/java/fr/ird/observe/business/validation/field/SetLonglineUniqueNumberValidator.java index 90005bd..c672f13 100644 --- a/observe-entities-validation/src/main/java/fr/ird/observe/validation/field/SetLonglineUniqueNumberValidator.java +++ b/observe-entities-validation/src/main/java/fr/ird/observe/business/validation/field/SetLonglineUniqueNumberValidator.java @@ -1,4 +1,4 @@ -package fr.ird.observe.validation.field; +package fr.ird.observe.business.validation.field; /* * #%L diff --git a/observe-entities-validation/src/main/java/fr/ird/observe/validation/field/SpeciesLengthFieldValidator.java b/observe-entities-validation/src/main/java/fr/ird/observe/business/validation/field/SpeciesLengthFieldValidator.java similarity index 96% rename from observe-entities-validation/src/main/java/fr/ird/observe/validation/field/SpeciesLengthFieldValidator.java rename to observe-entities-validation/src/main/java/fr/ird/observe/business/validation/field/SpeciesLengthFieldValidator.java index 68b0fdf..6c05cc4 100644 --- a/observe-entities-validation/src/main/java/fr/ird/observe/validation/field/SpeciesLengthFieldValidator.java +++ b/observe-entities-validation/src/main/java/fr/ird/observe/business/validation/field/SpeciesLengthFieldValidator.java @@ -1,4 +1,4 @@ -package fr.ird.observe.validation.field; +package fr.ird.observe.business.validation.field; /* * #%L diff --git a/observe-entities-validation/src/main/java/fr/ird/observe/validation/field/SpeciesWeightFieldValidator.java b/observe-entities-validation/src/main/java/fr/ird/observe/business/validation/field/SpeciesWeightFieldValidator.java similarity index 96% rename from observe-entities-validation/src/main/java/fr/ird/observe/validation/field/SpeciesWeightFieldValidator.java rename to observe-entities-validation/src/main/java/fr/ird/observe/business/validation/field/SpeciesWeightFieldValidator.java index a9b416c..d82e572 100644 --- a/observe-entities-validation/src/main/java/fr/ird/observe/validation/field/SpeciesWeightFieldValidator.java +++ b/observe-entities-validation/src/main/java/fr/ird/observe/business/validation/field/SpeciesWeightFieldValidator.java @@ -1,4 +1,4 @@ -package fr.ird.observe.validation.field; +package fr.ird.observe.business.validation.field; /* * #%L diff --git a/observe-entities-validation/src/main/java/fr/ird/observe/validation/field/VesselActivityFieldValidator.java b/observe-entities-validation/src/main/java/fr/ird/observe/business/validation/field/VesselActivityFieldValidator.java similarity index 99% rename from observe-entities-validation/src/main/java/fr/ird/observe/validation/field/VesselActivityFieldValidator.java rename to observe-entities-validation/src/main/java/fr/ird/observe/business/validation/field/VesselActivityFieldValidator.java index 1aa0c90..56ef35b 100644 --- a/observe-entities-validation/src/main/java/fr/ird/observe/validation/field/VesselActivityFieldValidator.java +++ b/observe-entities-validation/src/main/java/fr/ird/observe/business/validation/field/VesselActivityFieldValidator.java @@ -1,4 +1,4 @@ -package fr.ird.observe.validation.field; +package fr.ird.observe.business.validation.field; /* * #%L diff --git a/observe-entities-validation/src/main/resources/validators.xml b/observe-entities-validation/src/main/resources/validators.xml index 5d5d68d..857ceef 100644 --- a/observe-entities-validation/src/main/resources/validators.xml +++ b/observe-entities-validation/src/main/resources/validators.xml @@ -53,19 +53,19 @@ <validator name="fieldexpressionwithparams" class="org.nuiton.validator.xwork2.field.FieldExpressionWithParamsValidator"/> <!-- les validateurs spécifiques à ObServe --> - <!--<validator name="openableEntity" class="fr.ird.observe.validation.field.OpenableFieldValidator"/>--> - <validator name="species_length" class="fr.ird.observe.validation.field.SpeciesLengthFieldValidator"/> - <validator name="species_weight" class="fr.ird.observe.validation.field.SpeciesWeightFieldValidator"/> - <validator name="activitybateau" class="fr.ird.observe.validation.field.VesselActivityFieldValidator"/> - <validator name="activitySpeed" class="fr.ird.observe.validation.field.ActivitySpeedValidator"/> - <validator name="activitySimpleSpeed" class="fr.ird.observe.validation.field.ActivitySimpleSpeedValidator"/> - <validator name="activityFinDeVeilleExists" class="fr.ird.observe.validation.field.ActivityFinDeVeilleExistsValidator"/> - <validator name="setLonglineUniqueHomeId" class="fr.ird.observe.validation.field.SetLonglineUniqueHomeIdValidator"/> - <validator name="setLonglineUniqueNumber" class="fr.ird.observe.validation.field.SetLonglineUniqueNumberValidator"/> + <!--<validator name="openableEntity" class="fr.ird.observe.business.validation.field.OpenableFieldValidator"/>--> + <validator name="species_length" class="fr.ird.observe.business.validation.field.SpeciesLengthFieldValidator"/> + <validator name="species_weight" class="fr.ird.observe.business.validation.field.SpeciesWeightFieldValidator"/> + <validator name="activitybateau" class="fr.ird.observe.business.validation.field.VesselActivityFieldValidator"/> + <validator name="activitySpeed" class="fr.ird.observe.business.validation.field.ActivitySpeedValidator"/> + <validator name="activitySimpleSpeed" class="fr.ird.observe.business.validation.field.ActivitySimpleSpeedValidator"/> + <validator name="activityFinDeVeilleExists" class="fr.ird.observe.business.validation.field.ActivityFinDeVeilleExistsValidator"/> + <validator name="setLonglineUniqueHomeId" class="fr.ird.observe.business.validation.field.SetLonglineUniqueHomeIdValidator"/> + <validator name="setLonglineUniqueNumber" class="fr.ird.observe.business.validation.field.SetLonglineUniqueNumberValidator"/> - <validator name="collectionFieldExpression2" class="fr.ird.observe.validation.field.CollectionFieldExpressionValidator2"/> - <validator name="collectionFieldExpression" class="fr.ird.observe.validation.field.CollectionFieldExpressionValidator2"/> - <validator name="collectionUniqueKey" class="fr.ird.observe.validation.field.CollectionUniqueKeyValidator2"/> - <validator name="observeCollectionUniqueKey" class="fr.ird.observe.validation.field.ObserveCollectionUniqueKeyValidator"/> + <validator name="collectionFieldExpression2" class="fr.ird.observe.business.validation.field.CollectionFieldExpressionValidator2"/> + <validator name="collectionFieldExpression" class="fr.ird.observe.business.validation.field.CollectionFieldExpressionValidator2"/> + <validator name="collectionUniqueKey" class="fr.ird.observe.business.validation.field.CollectionUniqueKeyValidator2"/> + <validator name="observeCollectionUniqueKey" class="fr.ird.observe.business.validation.field.ObserveCollectionUniqueKeyValidator"/> </validators> diff --git a/observe-entities-validation/src/test/java/fr/ird/observe/validation/BeanValidatorDetectorTest.java b/observe-entities-validation/src/test/java/fr/ird/observe/business/validation/BeanValidatorDetectorTest.java similarity index 99% rename from observe-entities-validation/src/test/java/fr/ird/observe/validation/BeanValidatorDetectorTest.java rename to observe-entities-validation/src/test/java/fr/ird/observe/business/validation/BeanValidatorDetectorTest.java index d925ae2..14667a8 100644 --- a/observe-entities-validation/src/test/java/fr/ird/observe/validation/BeanValidatorDetectorTest.java +++ b/observe-entities-validation/src/test/java/fr/ird/observe/business/validation/BeanValidatorDetectorTest.java @@ -19,7 +19,7 @@ * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ -package fr.ird.observe.validation; +package fr.ird.observe.business.validation; import fr.ird.observe.ObserveEntityEnum; import fr.ird.observe.entities.longline.ActivityLongline; diff --git a/observe-entities-validation/src/test/java/fr/ird/observe/validation/RelationRegexTest.java b/observe-entities-validation/src/test/java/fr/ird/observe/business/validation/RelationRegexTest.java similarity index 98% rename from observe-entities-validation/src/test/java/fr/ird/observe/validation/RelationRegexTest.java rename to observe-entities-validation/src/test/java/fr/ird/observe/business/validation/RelationRegexTest.java index af291b8..953eb41 100644 --- a/observe-entities-validation/src/test/java/fr/ird/observe/validation/RelationRegexTest.java +++ b/observe-entities-validation/src/test/java/fr/ird/observe/business/validation/RelationRegexTest.java @@ -20,7 +20,7 @@ * #L% */ -package fr.ird.observe.validation; +package fr.ird.observe.business.validation; import org.junit.Assert; import org.junit.Test; diff --git a/observe-entities-validation/src/test/java/fr/ird/observe/validation/field/ActivitySeineSpeedValidatorTest.java b/observe-entities-validation/src/test/java/fr/ird/observe/business/validation/field/ActivitySeineSpeedValidatorTest.java similarity index 98% rename from observe-entities-validation/src/test/java/fr/ird/observe/validation/field/ActivitySeineSpeedValidatorTest.java rename to observe-entities-validation/src/test/java/fr/ird/observe/business/validation/field/ActivitySeineSpeedValidatorTest.java index a82304a..766958f 100644 --- a/observe-entities-validation/src/test/java/fr/ird/observe/validation/field/ActivitySeineSpeedValidatorTest.java +++ b/observe-entities-validation/src/test/java/fr/ird/observe/business/validation/field/ActivitySeineSpeedValidatorTest.java @@ -1,4 +1,4 @@ -package fr.ird.observe.validation.field; +package fr.ird.observe.business.validation.field; /* * #%L diff --git a/observe-entities/src/main/java/fr/ird/observe/gps/GPSPoint.java b/observe-entities/src/main/java/fr/ird/observe/business/gps/GPSPoint.java similarity index 98% rename from observe-entities/src/main/java/fr/ird/observe/gps/GPSPoint.java rename to observe-entities/src/main/java/fr/ird/observe/business/gps/GPSPoint.java index 4d256ad..f7f88fc 100644 --- a/observe-entities/src/main/java/fr/ird/observe/gps/GPSPoint.java +++ b/observe-entities/src/main/java/fr/ird/observe/business/gps/GPSPoint.java @@ -1,4 +1,4 @@ -package fr.ird.observe.gps; +package fr.ird.observe.business.gps; /* * #%L diff --git a/observe-entities/src/main/java/fr/ird/observe/gps/GPSPointImpl.java b/observe-entities/src/main/java/fr/ird/observe/business/gps/GPSPointImpl.java similarity index 98% rename from observe-entities/src/main/java/fr/ird/observe/gps/GPSPointImpl.java rename to observe-entities/src/main/java/fr/ird/observe/business/gps/GPSPointImpl.java index 22bde71..9638bc7 100644 --- a/observe-entities/src/main/java/fr/ird/observe/gps/GPSPointImpl.java +++ b/observe-entities/src/main/java/fr/ird/observe/business/gps/GPSPointImpl.java @@ -19,7 +19,7 @@ * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ -package fr.ird.observe.gps; +package fr.ird.observe.business.gps; import fr.ird.observe.entities.GPSAble; import fr.ird.type.CoordinateHelper; diff --git a/observe-entities/src/main/java/fr/ird/observe/gps/GPSPointInterval.java b/observe-entities/src/main/java/fr/ird/observe/business/gps/GPSPointInterval.java similarity index 99% rename from observe-entities/src/main/java/fr/ird/observe/gps/GPSPointInterval.java rename to observe-entities/src/main/java/fr/ird/observe/business/gps/GPSPointInterval.java index 84942e2..f1f92d2 100644 --- a/observe-entities/src/main/java/fr/ird/observe/gps/GPSPointInterval.java +++ b/observe-entities/src/main/java/fr/ird/observe/business/gps/GPSPointInterval.java @@ -1,4 +1,4 @@ -package fr.ird.observe.gps; +package fr.ird.observe.business.gps; /* * #%L diff --git a/observe-entities/src/main/java/fr/ird/observe/gps/GPSPointIntervalImpl.java b/observe-entities/src/main/java/fr/ird/observe/business/gps/GPSPointIntervalImpl.java similarity index 98% rename from observe-entities/src/main/java/fr/ird/observe/gps/GPSPointIntervalImpl.java rename to observe-entities/src/main/java/fr/ird/observe/business/gps/GPSPointIntervalImpl.java index 15dbd56..a1c22c7 100644 --- a/observe-entities/src/main/java/fr/ird/observe/gps/GPSPointIntervalImpl.java +++ b/observe-entities/src/main/java/fr/ird/observe/business/gps/GPSPointIntervalImpl.java @@ -19,7 +19,7 @@ * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ -package fr.ird.observe.gps; +package fr.ird.observe.business.gps; import java.util.Date; diff --git a/observe-entities/src/main/java/fr/ird/observe/gps/GPSRoute.java b/observe-entities/src/main/java/fr/ird/observe/business/gps/GPSRoute.java similarity index 99% rename from observe-entities/src/main/java/fr/ird/observe/gps/GPSRoute.java rename to observe-entities/src/main/java/fr/ird/observe/business/gps/GPSRoute.java index f60dfe1..166ebd4 100644 --- a/observe-entities/src/main/java/fr/ird/observe/gps/GPSRoute.java +++ b/observe-entities/src/main/java/fr/ird/observe/business/gps/GPSRoute.java @@ -1,4 +1,4 @@ -package fr.ird.observe.gps; +package fr.ird.observe.business.gps; /* * #%L diff --git a/observe-entities/src/main/java/fr/ird/observe/gps/GPSRouteImpl.java b/observe-entities/src/main/java/fr/ird/observe/business/gps/GPSRouteImpl.java similarity index 99% rename from observe-entities/src/main/java/fr/ird/observe/gps/GPSRouteImpl.java rename to observe-entities/src/main/java/fr/ird/observe/business/gps/GPSRouteImpl.java index 9a14284..485c4e1 100644 --- a/observe-entities/src/main/java/fr/ird/observe/gps/GPSRouteImpl.java +++ b/observe-entities/src/main/java/fr/ird/observe/business/gps/GPSRouteImpl.java @@ -19,7 +19,7 @@ * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ -package fr.ird.observe.gps; +package fr.ird.observe.business.gps; import java.util.Date; import java.util.List; diff --git a/observe-entities/src/main/java/fr/ird/observe/gps/GpsPoints.java b/observe-entities/src/main/java/fr/ird/observe/business/gps/GpsPoints.java similarity index 99% rename from observe-entities/src/main/java/fr/ird/observe/gps/GpsPoints.java rename to observe-entities/src/main/java/fr/ird/observe/business/gps/GpsPoints.java index 132d711..cf55641 100644 --- a/observe-entities/src/main/java/fr/ird/observe/gps/GpsPoints.java +++ b/observe-entities/src/main/java/fr/ird/observe/business/gps/GpsPoints.java @@ -1,4 +1,4 @@ -package fr.ird.observe.gps; +package fr.ird.observe.business.gps; /* * #%L diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/IdDtos.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/IdDtos.java new file mode 100644 index 0000000..a1d4d78 --- /dev/null +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/IdDtos.java @@ -0,0 +1,13 @@ +package fr.ird.observe.services.dto; + +public class IdDtos extends AbstractIdDtos { + + public static boolean isSeineId(String id) { + return id.contains("Seine"); + } + + public static boolean isLonglineId(String id) { + return id.contains("Longline"); + } + +} //IdDtos diff --git a/observe-services-topia/src/main/fromRefactor/fr/ird/observe/services/AbstractObserveService.java b/observe-services-topia/src/main/fromRefactor/fr/ird/observe/services/AbstractObserveService.java index 721f992..38add46 100644 --- a/observe-services-topia/src/main/fromRefactor/fr/ird/observe/services/AbstractObserveService.java +++ b/observe-services-topia/src/main/fromRefactor/fr/ird/observe/services/AbstractObserveService.java @@ -7,7 +7,7 @@ import com.google.common.collect.Lists; import fr.ird.observe.BinderService; import fr.ird.observe.IObserveConfig; import fr.ird.observe.ObserveEntityEnum; -import fr.ird.observe.db.DataSource; +import fr.ird.observe.business.db.DataSource; import fr.ird.observe.entities.Entities; import fr.ird.observe.entities.EntityMap; import fr.ird.observe.entities.constants.ReferenceLocale; diff --git a/observe-services-topia/src/main/fromRefactor/fr/ird/observe/services/ObserveServiceFactoryProviderTopia.java b/observe-services-topia/src/main/fromRefactor/fr/ird/observe/services/ObserveServiceFactoryProviderTopia.java index b25aade..613a9ae 100644 --- a/observe-services-topia/src/main/fromRefactor/fr/ird/observe/services/ObserveServiceFactoryProviderTopia.java +++ b/observe-services-topia/src/main/fromRefactor/fr/ird/observe/services/ObserveServiceFactoryProviderTopia.java @@ -3,9 +3,9 @@ package fr.ird.observe.services; import com.google.common.base.Preconditions; import com.google.common.collect.Sets; import fr.ird.observe.ObserveTechnicalException; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.impl.H2DataSource; -import fr.ird.observe.db.impl.PGDataSource; +import fr.ird.observe.business.db.DataSource; +import fr.ird.observe.business.db.impl.H2DataSource; +import fr.ird.observe.business.db.impl.PGDataSource; import org.apache.commons.lang3.reflect.ConstructorUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; diff --git a/observe-services-topia/src/main/fromRefactor/fr/ird/observe/services/ReplicationServiceImpl.java b/observe-services-topia/src/main/fromRefactor/fr/ird/observe/services/ReplicationServiceImpl.java index 6d51013..f35bd24 100644 --- a/observe-services-topia/src/main/fromRefactor/fr/ird/observe/services/ReplicationServiceImpl.java +++ b/observe-services-topia/src/main/fromRefactor/fr/ird/observe/services/ReplicationServiceImpl.java @@ -4,9 +4,9 @@ import fr.ird.observe.DecoratorService; import fr.ird.observe.ObserveDAOHelper; import fr.ird.observe.ObserveEntityEnum; import fr.ird.observe.SendMessageAble; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.DataSourceException; -import fr.ird.observe.db.constants.DataSourceState; +import fr.ird.observe.business.db.DataSource; +import fr.ird.observe.business.db.DataSourceException; +import fr.ird.observe.business.db.constants.DataSourceState; import fr.ird.observe.entities.Entities; import fr.ird.observe.entities.Trip; import fr.ird.observe.entities.longline.TripLongline; diff --git a/observe-services-topia/src/main/fromRefactor/fr/ird/observe/services/operation/GpsImportServiceImpl.java b/observe-services-topia/src/main/fromRefactor/fr/ird/observe/services/operation/GpsImportServiceImpl.java index 4c59cdd..d48a440 100644 --- a/observe-services-topia/src/main/fromRefactor/fr/ird/observe/services/operation/GpsImportServiceImpl.java +++ b/observe-services-topia/src/main/fromRefactor/fr/ird/observe/services/operation/GpsImportServiceImpl.java @@ -5,7 +5,7 @@ import fr.ird.observe.entities.seine.ActivitySeine; import fr.ird.observe.entities.seine.Route; import fr.ird.observe.entities.seine.TripSeine; import fr.ird.observe.entities.seine.TripSeineDAO; -import fr.ird.observe.gps.GPSPoint; +import fr.ird.observe.business.gps.GPSPoint; import fr.ird.observe.services.AbstractObserveService; import org.apache.commons.collections.primitives.ArrayIntList; import org.apache.commons.collections.primitives.IntIterator; @@ -16,8 +16,6 @@ import org.nuiton.topia.persistence.TopiaDAO; import java.util.HashMap; import java.util.Map; -import static org.nuiton.i18n.I18n.t; - /** * Created on 5/3/15. * diff --git a/observe-services-topia/src/main/fromRefactor/fr/ird/observe/services/operation/SynchronizeServiceImpl.java b/observe-services-topia/src/main/fromRefactor/fr/ird/observe/services/operation/SynchronizeServiceImpl.java index 52921a2..9c3a812 100644 --- a/observe-services-topia/src/main/fromRefactor/fr/ird/observe/services/operation/SynchronizeServiceImpl.java +++ b/observe-services-topia/src/main/fromRefactor/fr/ird/observe/services/operation/SynchronizeServiceImpl.java @@ -4,8 +4,8 @@ import fr.ird.observe.DecoratorService; import fr.ird.observe.ObserveDAOHelper; import fr.ird.observe.ObserveEntityEnum; import fr.ird.observe.SendMessageAble; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.DataSourceException; +import fr.ird.observe.business.db.DataSource; +import fr.ird.observe.business.db.DataSourceException; import fr.ird.observe.entities.Entities; import fr.ird.observe.entities.referentiel.ReferenceEntities; import fr.ird.observe.entities.seine.TripSeine; diff --git a/observe-services-topia/src/main/fromRefactor/fr/ird/observe/services/operation/ValidationServiceImpl.java b/observe-services-topia/src/main/fromRefactor/fr/ird/observe/services/operation/ValidationServiceImpl.java index 381336d..579d9f6 100644 --- a/observe-services-topia/src/main/fromRefactor/fr/ird/observe/services/operation/ValidationServiceImpl.java +++ b/observe-services-topia/src/main/fromRefactor/fr/ird/observe/services/operation/ValidationServiceImpl.java @@ -7,7 +7,7 @@ import fr.ird.observe.entities.referentiel.Program; import fr.ird.observe.services.AbstractObserveService; import fr.ird.observe.services.data.TripService; import fr.ird.observe.services.data.DataSelectionModel; -import fr.ird.observe.validation.ValidationMessageDetector; +import fr.ird.observe.business.validation.ValidationMessageDetector; import org.nuiton.topia.persistence.TopiaDAO; import org.nuiton.topia.persistence.TopiaEntity; -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.