mailman.cloud.codelutin.com
Sign In Sign Up
Manage this list Sign In Sign Up

Keyboard Shortcuts

Thread View

  • j: Next unread message
  • k: Previous unread message
  • j a: Jump to all threads
  • j l: Jump to MailingList overview

Observe-commits

Thread Start a new thread
Download
Threads by month
  • ----- 2026 -----
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2025 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2024 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2023 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2022 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2021 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2020 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2019 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2018 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2017 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2016 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2015 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2014 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2013 -----
  • December
  • November
  • October
  • September
observe-commits@list.forge.codelutin.com

June 2020

  • 1 participants
  • 51 discussions
[Git][ultreiaio/ird-observe][develop] Bascule entre langues - Closes #1553
by Tony CHEMIT 30 Jun '20

30 Jun '20
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: 621d20eb by Tony Chemit at 2020-06-30T13:41:44+02:00 Bascule entre langues - Closes #1553 - - - - - 5 changed files: - client-core/src/main/java/fr/ird/observe/client/ObserveSwingApplicationContext.java - client-core/src/main/java/fr/ird/observe/client/main/actions/CloseApplicationAction.java - client-core/src/main/java/fr/ird/observe/client/main/actions/ReloadApplicationAction.java - client-core/src/main/java/fr/ird/observe/client/main/callback/ReloadApplicationCallback.java - client-runner/src/main/java/fr/ird/observe/client/RunObserve.java Changes: ===================================== client-core/src/main/java/fr/ird/observe/client/ObserveSwingApplicationContext.java ===================================== @@ -22,7 +22,7 @@ package fr.ird.observe.client; import fr.ird.observe.client.configuration.ClientConfig; -import fr.ird.observe.client.configuration.ClientConfigApplicationComponent; +import fr.ird.observe.client.datasource.api.ObserveSwingDataSource; import fr.ird.observe.services.ObserveServiceMainFactory; import fr.ird.observe.services.ObserveServiceMainFactoryApplicationComponent; import fr.ird.observe.spi.DtoModelHelper; @@ -30,6 +30,8 @@ import io.ultreia.java4all.application.context.ApplicationContext; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import java.util.Optional; + import static io.ultreia.java4all.i18n.I18n.n; /** @@ -43,6 +45,7 @@ import static io.ultreia.java4all.i18n.I18n.n; public class ObserveSwingApplicationContext extends ApplicationContext { private static final Logger log = LogManager.getLogger(ObserveSwingApplicationContext.class); + private static ObserveSwingDataSource dataSourceToReload; public static ObserveSwingApplicationContext init(ClientConfig config) { ClientConfigFinderInstance.config = config; @@ -90,4 +93,12 @@ public class ObserveSwingApplicationContext extends ApplicationContext { n("observe.runner.initStorage.title.no.local.db.found"); } + + public static void setDataSourceToReload(ObserveSwingDataSource dataSourceToReload) { + ObserveSwingApplicationContext.dataSourceToReload = dataSourceToReload; + } + + public static Optional<ObserveSwingDataSource> getDataSourceToReload() { + return Optional.ofNullable(dataSourceToReload); + } } ===================================== client-core/src/main/java/fr/ird/observe/client/main/actions/CloseApplicationAction.java ===================================== @@ -28,6 +28,7 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.nuiton.jaxx.runtime.swing.application.ApplicationRunner; +import javax.swing.KeyStroke; import java.awt.event.ActionEvent; import static io.ultreia.java4all.i18n.I18n.t; @@ -46,6 +47,22 @@ public class CloseApplicationAction extends MainUIActionSupport implements Runna super(t("observe.action.exit"), t("observe.action.exit.tip"), "exit", 'Q'); } + public CloseApplicationAction(String label, String shortDescription, String actionIcon, KeyStroke acceleratorKey) { + super(label, shortDescription, actionIcon, acceleratorKey); + } + + public CloseApplicationAction(String actionCommandKey, String label, String shortDescription, String actionIcon, KeyStroke acceleratorKey) { + super(actionCommandKey, label, shortDescription, actionIcon, acceleratorKey); + } + + public CloseApplicationAction(String label, String shortDescription, String actionIcon, char acceleratorKey) { + super(label, shortDescription, actionIcon, acceleratorKey); + } + + public CloseApplicationAction(String actionCommandKey, String label, String shortDescription, String actionIcon, char acceleratorKey) { + super(actionCommandKey, label, shortDescription, actionIcon, acceleratorKey); + } + @Override public void run() { ===================================== client-core/src/main/java/fr/ird/observe/client/main/actions/ReloadApplicationAction.java ===================================== @@ -22,12 +22,13 @@ package fr.ird.observe.client.main.actions; * #L% */ -import fr.ird.observe.client.main.ObserveMainUI; +import fr.ird.observe.client.ObserveSwingApplicationContext; +import fr.ird.observe.client.datasource.api.ObserveSwingDataSource; import fr.ird.observe.client.main.body.NoBodyContentComponent; +import fr.ird.observe.client.util.UIHelper; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; - -import java.awt.event.ActionEvent; +import org.nuiton.jaxx.runtime.swing.application.ApplicationRunner; import static io.ultreia.java4all.i18n.I18n.t; @@ -37,7 +38,7 @@ import static io.ultreia.java4all.i18n.I18n.t; * @author Tony Chemit - dev(a)tchemit.fr * @since 8.0 */ -public class ReloadApplicationAction extends MainUIActionSupport { +public class ReloadApplicationAction extends CloseApplicationAction { private static final Logger log = LogManager.getLogger(ReloadApplicationAction.class); @@ -46,14 +47,28 @@ public class ReloadApplicationAction extends MainUIActionSupport { } @Override - protected void doActionPerformed(ActionEvent event, ObserveMainUI ui) { - + public void run() { log.info("ObServe reloading..."); + boolean canContinue = ui.changeBodyContent(NoBodyContentComponent.class); -// boolean canContinue = ContentUIManagerApplicationComponent.value().closeSelectedContentUI(); - if (canContinue) { - getClientUIContext().getUiCallbackManager().run("application"); + if (!canContinue) { + return; + } + + ObserveSwingDataSource mainDataSource = getObserveDataSourcesManager().getMainDataSource(); + if (mainDataSource != null) { + if (mainDataSource.isOpen()) { + try { + mainDataSource.close(); + } catch (Exception e) { + UIHelper.handlingError("Can't close data source", e); + mainDataSource = null; + } + } + ObserveSwingApplicationContext.setDataSourceToReload(mainDataSource); } + ApplicationRunner.getRunner().setReload(true); + super.run(); } } ===================================== client-core/src/main/java/fr/ird/observe/client/main/callback/ReloadApplicationCallback.java ===================================== @@ -25,9 +25,8 @@ package fr.ird.observe.client.main.callback; import com.google.auto.service.AutoService; import fr.ird.observe.client.ClientUIContext; import fr.ird.observe.client.main.ObserveMainUI; -import fr.ird.observe.client.main.actions.CloseApplicationAction; +import fr.ird.observe.client.main.actions.ReloadApplicationAction; import org.nuiton.jaxx.runtime.swing.SwingUtil; -import org.nuiton.jaxx.runtime.swing.application.ApplicationRunner; import javax.swing.Icon; @@ -64,8 +63,7 @@ public class ReloadApplicationCallback implements ObserveUICallback { @Override public void run() { - ApplicationRunner.getRunner().setReload(true); - CloseApplicationAction action = new CloseApplicationAction(); + ReloadApplicationAction action = new ReloadApplicationAction(); action.setUi(mainUI); action.run(); } ===================================== client-runner/src/main/java/fr/ird/observe/client/RunObserve.java ===================================== @@ -75,6 +75,7 @@ import java.util.Arrays; import java.util.Date; import java.util.EnumSet; import java.util.Locale; +import java.util.Optional; import java.util.Set; import java.util.logging.Level; @@ -271,7 +272,9 @@ public class RunObserve extends ApplicationRunner implements WithBackupsManager, // // return; // } - if (!config.isLoadLocalStorage()) { + Optional<ObserveSwingDataSource> dataSourceToReload = ObserveSwingApplicationContext.getDataSourceToReload(); + ObserveSwingApplicationContext.setDataSourceToReload(null); + if (!config.isLoadLocalStorage() && !dataSourceToReload.isPresent()) { // on ne charge rien au démarrage log.info(t("observe.runner.loaded", config.getVersion())); @@ -280,7 +283,8 @@ public class RunObserve extends ApplicationRunner implements WithBackupsManager, // 4 - init storage - Runnable initStorage = () -> initStorage(config, ui); + + Runnable initStorage = () -> initStorage(config, ui, dataSourceToReload.orElse(null)); getObserveActionExecutor().addAction(t("observe.runner.load.database"), initStorage); } @@ -364,57 +368,65 @@ public class RunObserve extends ApplicationRunner implements WithBackupsManager, //FIXME Need to have a unified API and only one //FIXME first try to open specified ds (here local ds) //FIXME if can not load local ds, then feedback it and propose to load automatic backup, or to create a new local ds - private void initStorage(ClientConfig config, JFrame ui) { + private void initStorage(ClientConfig config, JFrame ui, ObserveSwingDataSource previousDataSource) { ObserveMainUI mainUI = (ObserveMainUI) ui; ObserveDataSourcesManager dataSourcesManager = getObserveDataSourcesManager(); BackupsManager backupsManager = getBackupsManager(); - BackupStorage lastAutomaticBackup = backupsManager.getAutomaticBackups().stream().findFirst().orElse(null); - - boolean askToCreate = true; - if (config.isLocalStorageExist()) { + if (previousDataSource != null) { - // une base locale existe, on l'ouvre + // reuse previous data source + previousDataSource.setProgressModel(new ProgressModel()); + mainUI.getMainUIBodyContentManager().getBodyTyped(DataSourceEditor.class, DataSourceEditorBodyContent.class).loadStorage(mainUI, previousDataSource, true); - ObserveSwingDataSource dataSource = dataSourcesManager.newLocalDataSource(); - dataSource.setProgressModel(new ProgressModel()); + } else if (config.isLoadLocalStorage()){ - try { + boolean askToCreate = true; + BackupStorage lastAutomaticBackup = backupsManager.getAutomaticBackups().stream().findFirst().orElse(null); - ObserveDataSourceInformation dataSourceInformation = dataSource.checkCanConnect(false); - dataSource.setOwner(dataSourceInformation.isOwner()); - dataSource.setSuperUser(dataSourceInformation.isSuperUser()); - dataSource.migrateDataIfPossible(dataSourceInformation, config.getModelVersion()); + if (config.isLocalStorageExist()) { - // la source sera utilisée dans les ui - mainUI.getMainUIBodyContentManager().getBodyTyped(DataSourceEditor.class, DataSourceEditorBodyContent.class).loadStorage(mainUI, dataSource, true); + // une base locale existe, on l'ouvre - askToCreate = false; - } catch (Exception e) { + ObserveSwingDataSource dataSource = dataSourcesManager.newLocalDataSource(); + dataSource.setProgressModel(new ProgressModel()); - if (lastAutomaticBackup != null) { + try { - log.error("Could not load local database", e); + ObserveDataSourceInformation dataSourceInformation = dataSource.checkCanConnect(false); + dataSource.setOwner(dataSourceInformation.isOwner()); + dataSource.setSuperUser(dataSourceInformation.isSuperUser()); + dataSource.migrateDataIfPossible(dataSourceInformation, config.getModelVersion()); - InitStorageModel initStorageModel = new InitStorageModel(config.getLocalDBDirectory(), lastAutomaticBackup); + // la source sera utilisée dans les ui + mainUI.getMainUIBodyContentManager().getBodyTyped(DataSourceEditor.class, DataSourceEditorBodyContent.class).loadStorage(mainUI, dataSource, true); - JOptionPane.showMessageDialog( - mainUI, - t("observe.runner.initStorage.local.db.error", initStorageModel.getBackupDate()), - t("observe.runner.title.error.dialog"), - JOptionPane.WARNING_MESSAGE - ); - loadBackup(dataSourcesManager, mainUI, lastAutomaticBackup); askToCreate = false; + } catch (Exception e) { + + if (lastAutomaticBackup != null) { + + log.error("Could not load local database", e); + + InitStorageModel initStorageModel = new InitStorageModel(config.getLocalDBDirectory(), lastAutomaticBackup); + + JOptionPane.showMessageDialog( + mainUI, + t("observe.runner.initStorage.local.db.error", initStorageModel.getBackupDate()), + t("observe.runner.title.error.dialog"), + JOptionPane.WARNING_MESSAGE + ); + loadBackup(dataSourcesManager, mainUI, lastAutomaticBackup); + askToCreate = false; + } } - } - } - if (askToCreate) { - askToCreateLocalDatabase(mainUI, config, dataSourcesManager, lastAutomaticBackup); + if (askToCreate) { + askToCreateLocalDatabase(mainUI, config, dataSourcesManager, lastAutomaticBackup); + } + } } - log.info(t("observe.runner.initStorage.done")); } View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/621d20eb4303b6d0fb9854bd5… -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/621d20eb4303b6d0fb9854bd5… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][develop] 2 commits: Élimination des points non effectifs dans la carte - Closes #1560
by Tony CHEMIT 30 Jun '20

30 Jun '20
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: 42c7753d by Tony Chemit at 2020-06-30T13:00:25+02:00 Élimination des points non effectifs dans la carte - Closes #1560 - - - - - 7b72d889 by Tony Chemit at 2020-06-30T13:00:26+02:00 Carte - Closes #1517 - - - - - 20 changed files: - client-datasource-editor-common/src/main/java/fr/ird/observe/client/datasource/editor/content/data/trip/map/ObserveMapPaneLegendItem.java - client-datasource-editor-common/src/main/java/fr/ird/observe/client/datasource/editor/content/data/trip/map/TripMapContentBuilder.java - client-datasource-editor-common/src/main/java/fr/ird/observe/client/datasource/editor/content/data/trip/map/TripMapUIHandler.java - client-datasource-editor-common/src/main/map/ll-style.xml - client-datasource-editor-common/src/main/map/ps-style.xml - client-datasource-editor-ll/src/main/i18n/getters/java.getter - client-datasource-editor-ll/src/main/java/fr/ird/observe/client/datasource/editor/content/data/ll/common/TripMapContentBuilder.java - client-datasource-editor-ps/src/main/i18n/getters/java.getter - client-datasource-editor-ps/src/main/java/fr/ird/observe/client/datasource/editor/content/data/ps/common/TripMapContentBuilder.java - dto/src/main/java/fr/ird/observe/dto/data/TripMapPoint.java - dto/src/main/java/fr/ird/observe/spi/DtoModelClasses.java - observe-i18n/src/main/i18n/translations/observe_en_GB.properties - observe-i18n/src/main/i18n/translations/observe_es_ES.properties - observe-i18n/src/main/i18n/translations/observe_fr_FR.properties - persistence/src/main/java/fr/ird/observe/entities/Entities.java - persistence/src/main/java/fr/ird/observe/entities/data/ll/common/TripTopiaDao.java - persistence/src/main/java/fr/ird/observe/entities/data/ps/common/TripTopiaDao.java - services-local/src/main/java/fr/ird/observe/services/local/service/actions/validate/ValidateServiceLocal.java - services-local/src/main/java/fr/ird/observe/services/local/service/referential/ReferentialServiceLocal.java - services-local/src/main/java/fr/ird/observe/services/local/service/sql/SqlScriptProducerServiceLocal.java Changes: ===================================== client-datasource-editor-common/src/main/java/fr/ird/observe/client/datasource/editor/content/data/trip/map/ObserveMapPaneLegendItem.java ===================================== @@ -49,13 +49,13 @@ public class ObserveMapPaneLegendItem { public static Coordinate[] lineCoordinates() { Coordinate[] coordinates = new Coordinate[2]; - coordinates[0] = new Coordinate(LEGEND_MARGIN, LEGEND_ITEM_HEIGHT / 2); - coordinates[1] = new Coordinate(LEGEND_SYMBOL_WIDTH - LEGEND_MARGIN, LEGEND_ITEM_HEIGHT / 2); + coordinates[0] = new Coordinate(LEGEND_MARGIN, LEGEND_ITEM_HEIGHT / 2.); + coordinates[1] = new Coordinate(LEGEND_SYMBOL_WIDTH - LEGEND_MARGIN, LEGEND_ITEM_HEIGHT / 2.); return coordinates; } public static Coordinate pointCoordinates() { - return new Coordinate(LEGEND_SYMBOL_WIDTH / 2, LEGEND_ITEM_HEIGHT / 2); + return new Coordinate(LEGEND_SYMBOL_WIDTH / 2., LEGEND_ITEM_HEIGHT / 2.); } public SimpleFeature getSimpleFeature() { ===================================== client-datasource-editor-common/src/main/java/fr/ird/observe/client/datasource/editor/content/data/trip/map/TripMapContentBuilder.java ===================================== @@ -62,11 +62,14 @@ import java.io.IOException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.HashSet; +import java.util.LinkedList; import java.util.List; import java.util.Optional; import java.util.ServiceLoader; import java.util.Set; +import static io.ultreia.java4all.i18n.I18n.t; + /** * @author Tony Chemit - dev(a)tchemit.fr */ @@ -76,12 +79,14 @@ public abstract class TripMapContentBuilder { protected static final String TRIP_LOGBOOK_POINTS_LAYER_NAME = "Trip Logbook points"; protected static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("dd/MM"); - protected MapContent mapContent; + private static ImmutableSet<TripMapContentBuilder> PROVIDERS; + protected final List<ObserveMapPaneLegendItem> legendItems; + protected final List<TripMapPoint> notValidPoints = new LinkedList<>(); protected final Set<TripMapPointType> acceptedTripPointTypes; + protected MapContent mapContent; protected StyledLayerDescriptor styledLayerDescriptor; - private static ImmutableSet<TripMapContentBuilder> PROVIDERS; public abstract boolean accept(TripMapDto tripMapDto); @@ -121,7 +126,8 @@ public abstract class TripMapContentBuilder { private void reset() { legendItems.clear(); - mapContent=new MapContent(); + notValidPoints.clear(); + mapContent = new MapContent(); } protected TripMapContentBuilder(Set<TripMapPointType> acceptedTripPointTypes) { @@ -152,7 +158,7 @@ public abstract class TripMapContentBuilder { mapContent.addLayer(layer); } - public void addPoints(List<TripMapPoint> tripMapPoints, String layerName) throws FactoryException { + public void addPoints(List<TripMapPoint> tripMapPoints, String layerName, String notValidPointsLabel) throws FactoryException { GeometryFactory geometryFactory = JTSFactoryFinder.getGeometryFactory(); @@ -171,8 +177,11 @@ public abstract class TripMapContentBuilder { Style stylePoints = findStyle(styledLayerDescriptor, layerName, null); Set<TripMapPointType> pointTypeInLegend = new HashSet<>(); - for (TripMapPoint tripMapPoint : tripMapPoints) { + if (!tripMapPoint.isValid()) { + notValidPoints.add(tripMapPoint); + continue; + } Coordinate coordinate = new Coordinate(tripMapPoint.getLongitude(), tripMapPoint.getLatitude()); TripMapPointType type = tripMapPoint.getType(); @@ -205,6 +214,19 @@ public abstract class TripMapContentBuilder { mapContent.addLayer(pointsLayer); } + if (!notValidPoints.isEmpty()) { + Point point = geometryFactory.createPoint(ObserveMapPaneLegendItem.pointCoordinates()); + pointBuilder.add(point); + pointBuilder.add(""); + pointBuilder.add("notValidPoint"); + + ObserveMapPaneLegendItem legendPoint = new ObserveMapPaneLegendItem( + pointBuilder.buildFeature(null), + stylePoints, + t(notValidPointsLabel, notValidPoints.size())); + legendItems.add(legendPoint); + } + } ===================================== client-datasource-editor-common/src/main/java/fr/ird/observe/client/datasource/editor/content/data/trip/map/TripMapUIHandler.java ===================================== @@ -94,7 +94,9 @@ public class TripMapUIHandler implements UIHandler<TripMapUI> { // set zoom tripArea = new ReferencedEnvelope(); for (TripMapPoint point : tripMapPoints) { - tripArea.expandToInclude(new DirectPosition2D(point.getLongitude(), point.getLatitude())); + if (point.isValid()) { + tripArea.expandToInclude(new DirectPosition2D(point.getLongitude(), point.getLatitude())); + } } tripArea.expandBy(1.1); ===================================== client-datasource-editor-common/src/main/map/ll-style.xml ===================================== @@ -118,7 +118,7 @@ <LineSymbolizer> <Stroke> <CssParameter name="stroke">#00FF00</CssParameter> - <CssParameter name="stroke-width">1</CssParameter> + <CssParameter name="stroke-width">2</CssParameter> <CssParameter name="stroke-dasharray">5 7</CssParameter> </Stroke> </LineSymbolizer> @@ -404,6 +404,33 @@ </TextSymbolizer> </Rule> </FeatureTypeStyle> + <FeatureTypeStyle> + <Rule> + <Name>Not valid observation point</Name> + <ogc:Filter> + <ogc:PropertyIsEqualTo> + <ogc:PropertyName>pointType</ogc:PropertyName> + <ogc:Literal>notValidPoint</ogc:Literal> + </ogc:PropertyIsEqualTo> + </ogc:Filter> + <PointSymbolizer> + <Graphic> + <Mark> + <WellKnownName>ttf://Serif#U+0021</WellKnownName> + <Fill> + <CssParameter name="fill">#00FF00</CssParameter> + </Fill> + <Stroke> + <CssParameter name="stroke">#000000</CssParameter> + <CssParameter name="stroke-width">1</CssParameter> + </Stroke> + </Mark> + <Size>12</Size> + </Graphic> + </PointSymbolizer> + </Rule> + </FeatureTypeStyle> + </UserStyle> </NamedLayer> @@ -596,6 +623,33 @@ </Rule> </FeatureTypeStyle> + <FeatureTypeStyle> + <Rule> + <Name>Not valid logbook point</Name> + <ogc:Filter> + <ogc:PropertyIsEqualTo> + <ogc:PropertyName>pointType</ogc:PropertyName> + <ogc:Literal>notValidPoint</ogc:Literal> + </ogc:PropertyIsEqualTo> + </ogc:Filter> + <PointSymbolizer> + <Graphic> + <Mark> + <WellKnownName>ttf://Serif#U+0021</WellKnownName> + <Fill> + <CssParameter name="fill">#FF0000</CssParameter> + </Fill> + <Stroke> + <CssParameter name="stroke">#000000</CssParameter> + <CssParameter name="stroke-width">1</CssParameter> + </Stroke> + </Mark> + <Size>12</Size> + </Graphic> + </PointSymbolizer> + </Rule> + </FeatureTypeStyle> + </UserStyle> </NamedLayer> ===================================== client-datasource-editor-common/src/main/map/ps-style.xml ===================================== @@ -196,6 +196,33 @@ </Rule> </FeatureTypeStyle> + <FeatureTypeStyle> + <Rule> + <Name>Not valid point</Name> + <ogc:Filter> + <ogc:PropertyIsEqualTo> + <ogc:PropertyName>pointType</ogc:PropertyName> + <ogc:Literal>notValidPoint</ogc:Literal> + </ogc:PropertyIsEqualTo> + </ogc:Filter> + <PointSymbolizer> + <Graphic> + <Mark> + <WellKnownName>ttf://Serif#U+0021</WellKnownName> + <Fill> + <CssParameter name="fill">#00FF00</CssParameter> + </Fill> + <Stroke> + <CssParameter name="stroke">#000000</CssParameter> + <CssParameter name="stroke-width">1</CssParameter> + </Stroke> + </Mark> + <Size>12</Size> + </Graphic> + </PointSymbolizer> + </Rule> + </FeatureTypeStyle> + </UserStyle> </NamedLayer> ===================================== client-datasource-editor-ll/src/main/i18n/getters/java.getter ===================================== @@ -317,6 +317,8 @@ observe.data.ll.observation.WeightMeasure.table.weight.tip observe.data.ll.observation.WeightMeasure.table.weightMeasureType observe.data.ll.observation.WeightMeasure.table.weightMeasureType.tip observe.data.ps.common.GearUseFeatures.delete +observe.map.logbook.points.not.valid +observe.map.observation.points.not.valid observe.menu.navigation.action.move.activityLongline observe.menu.navigation.action.move.sample observe.menu.navigation.action.move.sample.choice ===================================== client-datasource-editor-ll/src/main/java/fr/ird/observe/client/datasource/editor/content/data/ll/common/TripMapContentBuilder.java ===================================== @@ -51,6 +51,7 @@ import java.util.LinkedList; import java.util.List; import java.util.stream.Collectors; +import static io.ultreia.java4all.i18n.I18n.n; import static io.ultreia.java4all.i18n.I18n.t; /** @@ -106,8 +107,8 @@ public class TripMapContentBuilder extends fr.ird.observe.client.datasource.edit @Override protected void addPoints(List<TripMapPoint> tripMapPoints) throws FactoryException { - addPoints(tripMapPoints.stream().filter(f->f.getType().isTrip() || f.getType().isObs()).collect(Collectors.toList()), TRIP_OBS_POINTS_LAYER_NAME); - addPoints(tripMapPoints.stream().filter(f->f.getType().isTrip() || f.getType().isLogbook()).collect(Collectors.toList()), TRIP_LOGBOOK_POINTS_LAYER_NAME); + addPoints(tripMapPoints.stream().filter(f -> f.getType().isTrip() || f.getType().isObs()).collect(Collectors.toList()), TRIP_OBS_POINTS_LAYER_NAME, n("observe.map.observation.points.not.valid")); + addPoints(tripMapPoints.stream().filter(f -> f.getType().isTrip() || f.getType().isLogbook()).collect(Collectors.toList()), TRIP_LOGBOOK_POINTS_LAYER_NAME, n("observe.map.logbook.points.not.valid")); } private void addLonglineObsFishingZone(List<TripMapPoint> tripMapPoints) throws FactoryException { @@ -126,24 +127,31 @@ public class TripMapContentBuilder extends fr.ird.observe.client.datasource.edit DefaultFeatureCollection polygonsFeatures = new DefaultFeatureCollection(); for (int indexPoint = 3; indexPoint < tripMapPoints.size(); indexPoint++) { - if (tripMapPoints.get(indexPoint).getType().equals(TripMapPointType.llActivityObsWithHaulingEnd) - && tripMapPoints.get(indexPoint - 1).getType().equals(TripMapPointType.llActivityObsWithHaulingStart) - && tripMapPoints.get(indexPoint - 2).getType().equals(TripMapPointType.llActivityObsWithSettingEnd) - && tripMapPoints.get(indexPoint - 3).getType().equals(TripMapPointType.llActivityObsWithSettingStart)) { + TripMapPoint tripMapPoint = tripMapPoints.get(indexPoint); + TripMapPoint tripMapPoint1 = tripMapPoints.get(indexPoint - 1); + TripMapPoint tripMapPoint2 = tripMapPoints.get(indexPoint - 2); + TripMapPoint tripMapPoint3 = tripMapPoints.get(indexPoint - 3); + if (!(tripMapPoint.isValid()&& tripMapPoint1.isValid() && tripMapPoint2.isValid() && tripMapPoint3.isValid())) { + continue; + } + if (tripMapPoint.getType().equals(TripMapPointType.llActivityObsWithHaulingEnd) + && tripMapPoint1.getType().equals(TripMapPointType.llActivityObsWithHaulingStart) + && tripMapPoint2.getType().equals(TripMapPointType.llActivityObsWithSettingEnd) + && tripMapPoint3.getType().equals(TripMapPointType.llActivityObsWithSettingStart)) { Coordinate[] coordinates = { - new Coordinate(tripMapPoints.get(indexPoint - 3).getLongitude(), tripMapPoints.get(indexPoint - 3).getLatitude()), - new Coordinate(tripMapPoints.get(indexPoint - 2).getLongitude(), tripMapPoints.get(indexPoint - 2).getLatitude()), - new Coordinate(tripMapPoints.get(indexPoint - 1).getLongitude(), tripMapPoints.get(indexPoint - 1).getLatitude()), - new Coordinate(tripMapPoints.get(indexPoint).getLongitude(), tripMapPoints.get(indexPoint).getLatitude()), - new Coordinate(tripMapPoints.get(indexPoint - 3).getLongitude(), tripMapPoints.get(indexPoint - 3).getLatitude()) + new Coordinate(tripMapPoint3.getLongitude(), tripMapPoint3.getLatitude()), + new Coordinate(tripMapPoint2.getLongitude(), tripMapPoint2.getLatitude()), + new Coordinate(tripMapPoint1.getLongitude(), tripMapPoint1.getLatitude()), + new Coordinate(tripMapPoint.getLongitude(), tripMapPoint.getLatitude()), + new Coordinate(tripMapPoint3.getLongitude(), tripMapPoint3.getLatitude()) }; Polygon polygon = geometryFactory.createPolygon(coordinates); //polygon = (Polygon) polygon.convexHull(); // permet de transformer un poliqgone croisé en polygon convex polygonBuilder.add(polygon); - polygonBuilder.add(DATE_FORMAT.format(tripMapPoints.get(indexPoint - 3).getTime())); + polygonBuilder.add(DATE_FORMAT.format(tripMapPoint3.getTime())); polygonBuilder.add("longlineFishingZone"); SimpleFeature feature = polygonBuilder.buildFeature(null); polygonsFeatures.add(feature); @@ -174,24 +182,31 @@ public class TripMapContentBuilder extends fr.ird.observe.client.datasource.edit DefaultFeatureCollection polygonsFeatures = new DefaultFeatureCollection(); for (int indexPoint = 3; indexPoint < tripMapPoints.size(); indexPoint++) { - if (tripMapPoints.get(indexPoint).getType().equals(TripMapPointType.llActivityLogbookWithHaulingEnd) - && tripMapPoints.get(indexPoint - 1).getType().equals(TripMapPointType.llActivityLogbookWithHaulingStart) - && tripMapPoints.get(indexPoint - 2).getType().equals(TripMapPointType.llActivityLogbookWithSettingEnd) - && tripMapPoints.get(indexPoint - 3).getType().equals(TripMapPointType.llActivityLogbookWithSettingStart)) { + TripMapPoint tripMapPoint = tripMapPoints.get(indexPoint); + TripMapPoint tripMapPoint1 = tripMapPoints.get(indexPoint - 1); + TripMapPoint tripMapPoint2 = tripMapPoints.get(indexPoint - 2); + TripMapPoint tripMapPoint3 = tripMapPoints.get(indexPoint - 3); + if (!(tripMapPoint.isValid()&& tripMapPoint1.isValid() && tripMapPoint2.isValid() && tripMapPoint3.isValid())) { + continue; + } + if (tripMapPoint.getType().equals(TripMapPointType.llActivityLogbookWithHaulingEnd) + && tripMapPoint1.getType().equals(TripMapPointType.llActivityLogbookWithHaulingStart) + && tripMapPoint2.getType().equals(TripMapPointType.llActivityLogbookWithSettingEnd) + && tripMapPoint3.getType().equals(TripMapPointType.llActivityLogbookWithSettingStart)) { Coordinate[] coordinates = { - new Coordinate(tripMapPoints.get(indexPoint - 3).getLongitude(), tripMapPoints.get(indexPoint - 3).getLatitude()), - new Coordinate(tripMapPoints.get(indexPoint - 2).getLongitude(), tripMapPoints.get(indexPoint - 2).getLatitude()), - new Coordinate(tripMapPoints.get(indexPoint - 1).getLongitude(), tripMapPoints.get(indexPoint - 1).getLatitude()), - new Coordinate(tripMapPoints.get(indexPoint).getLongitude(), tripMapPoints.get(indexPoint).getLatitude()), - new Coordinate(tripMapPoints.get(indexPoint - 3).getLongitude(), tripMapPoints.get(indexPoint - 3).getLatitude()) + new Coordinate(tripMapPoint3.getLongitude(), tripMapPoint3.getLatitude()), + new Coordinate(tripMapPoint2.getLongitude(), tripMapPoint2.getLatitude()), + new Coordinate(tripMapPoint1.getLongitude(), tripMapPoint1.getLatitude()), + new Coordinate(tripMapPoint.getLongitude(), tripMapPoint.getLatitude()), + new Coordinate(tripMapPoint3.getLongitude(), tripMapPoint3.getLatitude()) }; Polygon polygon = geometryFactory.createPolygon(coordinates); //polygon = (Polygon) polygon.convexHull(); // permet de transformer un poliqgone croisé en polygon convex polygonBuilder.add(polygon); - polygonBuilder.add(DATE_FORMAT.format(tripMapPoints.get(indexPoint - 3).getTime())); + polygonBuilder.add(DATE_FORMAT.format(tripMapPoint3.getTime())); polygonBuilder.add("longlineFishingZone"); SimpleFeature feature = polygonBuilder.buildFeature(null); polygonsFeatures.add(feature); @@ -223,35 +238,44 @@ public class TripMapContentBuilder extends fr.ird.observe.client.datasource.edit List<Coordinate> defaultLineCoordinates = new LinkedList<>(); boolean found = false; for (int indexPoint = 0; indexPoint < tripMapPoints.size(); indexPoint++) { - if (indexPoint > 1 && tripMapPoints.get(indexPoint).getType().equals(TripMapPointType.llActivityObsWithSettingEnd) - && tripMapPoints.get(indexPoint - 1).getType().equals(TripMapPointType.llActivityObsWithSettingStart) - || tripMapPoints.get(indexPoint).getType().equals(TripMapPointType.llActivityObsWithHaulingEnd) - && tripMapPoints.get(indexPoint - 1).getType().equals(TripMapPointType.llActivityObsWithHaulingStart)) { - - found = true; - Coordinate[] coordinates = { - new Coordinate(tripMapPoints.get(indexPoint - 1).getLongitude(), tripMapPoints.get(indexPoint - 1).getLatitude()), - new Coordinate(tripMapPoints.get(indexPoint).getLongitude(), tripMapPoints.get(indexPoint).getLatitude()), - }; - - boolean setting = tripMapPoints.get(indexPoint).getType().equals(TripMapPointType.llActivityObsWithSettingEnd); - LineString lineString = geometryFactory.createLineString(coordinates); - lineBuilder.add(lineString); - lineBuilder.add(setting ? "setting" : "hauling"); - SimpleFeature feature = lineBuilder.buildFeature(null); - linesFeatures.add(feature); - - defaultLineCoordinates.clear(); + TripMapPoint tripMapPoint = tripMapPoints.get(indexPoint); + TripMapPointType pointType = tripMapPoint.getType(); + if (tripMapPoint.isValid() && indexPoint > 1) { + + TripMapPoint previousTripMapPoint = tripMapPoints.get(indexPoint - 1); + TripMapPointType previousTripMapPointType = previousTripMapPoint.getType(); + if (previousTripMapPoint.isValid()) { + if ( + pointType.equals(TripMapPointType.llActivityObsWithSettingEnd) && previousTripMapPointType.equals(TripMapPointType.llActivityObsWithSettingStart) + || + pointType.equals(TripMapPointType.llActivityObsWithHaulingEnd) && previousTripMapPointType.equals(TripMapPointType.llActivityObsWithHaulingStart)) { + + found = true; + Coordinate[] coordinates = { + new Coordinate(previousTripMapPoint.getLongitude(), previousTripMapPoint.getLatitude()), + new Coordinate(tripMapPoint.getLongitude(), tripMapPoint.getLatitude()), + }; + + boolean setting = pointType.equals(TripMapPointType.llActivityObsWithSettingEnd); + LineString lineString = geometryFactory.createLineString(coordinates); + lineBuilder.add(lineString); + lineBuilder.add(setting ? "setting" : "hauling"); + SimpleFeature feature = lineBuilder.buildFeature(null); + linesFeatures.add(feature); + + defaultLineCoordinates.clear(); + } + } } - if (!(tripMapPoints.get(indexPoint).getType().equals(TripMapPointType.llActivityObsWithSettingEnd) - || tripMapPoints.get(indexPoint).getType().equals(TripMapPointType.llActivityObsWithHaulingStart))) { + if (tripMapPoint.isValid() && !(pointType.equals(TripMapPointType.llActivityObsWithSettingEnd) + || pointType.equals(TripMapPointType.llActivityObsWithHaulingStart))) { - defaultLineCoordinates.add(new Coordinate(tripMapPoints.get(indexPoint).getLongitude(), tripMapPoints.get(indexPoint).getLatitude())); + defaultLineCoordinates.add(new Coordinate(tripMapPoint.getLongitude(), tripMapPoint.getLatitude())); } - if ((tripMapPoints.get(indexPoint).getType().equals(TripMapPointType.llActivityObsWithSettingStart) + if ((pointType.equals(TripMapPointType.llActivityObsWithSettingStart) || indexPoint == tripMapPoints.size() - 1) && defaultLineCoordinates.size() > 1) { LineString lineString = geometryFactory.createLineString(defaultLineCoordinates.toArray(new Coordinate[0])); @@ -315,34 +339,40 @@ public class TripMapContentBuilder extends fr.ird.observe.client.datasource.edit List<Coordinate> defaultLineCoordinates = new LinkedList<>(); boolean found = false; for (int indexPoint = 0; indexPoint < tripMapPoints.size(); indexPoint++) { - if (indexPoint > 1 && tripMapPoints.get(indexPoint).getType().equals(TripMapPointType.llActivityLogbookWithSettingEnd) - && tripMapPoints.get(indexPoint - 1).getType().equals(TripMapPointType.llActivityLogbookWithSettingStart) - || tripMapPoints.get(indexPoint).getType().equals(TripMapPointType.llActivityLogbookWithHaulingEnd) - && tripMapPoints.get(indexPoint - 1).getType().equals(TripMapPointType.llActivityLogbookWithHaulingStart)) { - found = true; - Coordinate[] coordinates = { - new Coordinate(tripMapPoints.get(indexPoint - 1).getLongitude(), tripMapPoints.get(indexPoint - 1).getLatitude()), - new Coordinate(tripMapPoints.get(indexPoint).getLongitude(), tripMapPoints.get(indexPoint).getLatitude()), - }; - - boolean setting = tripMapPoints.get(indexPoint).getType().equals(TripMapPointType.llActivityLogbookWithSettingEnd); - LineString lineString = geometryFactory.createLineString(coordinates); - lineBuilder.add(lineString); - lineBuilder.add(setting ? "setting" : "hauling"); - SimpleFeature feature = lineBuilder.buildFeature(null); - linesFeatures.add(feature); - - defaultLineCoordinates.clear(); + TripMapPoint tripMapPoint = tripMapPoints.get(indexPoint); + TripMapPointType tripMapPointType = tripMapPoint.getType(); + if (tripMapPoint.isValid() && indexPoint > 1) { + TripMapPoint previousTripMapPoint = tripMapPoints.get(indexPoint - 1); + if (previousTripMapPoint.isValid()) { + TripMapPointType previousTripMapPointType = previousTripMapPoint.getType(); + if (tripMapPointType.equals(TripMapPointType.llActivityLogbookWithSettingEnd) + && previousTripMapPointType.equals(TripMapPointType.llActivityLogbookWithSettingStart) + || tripMapPointType.equals(TripMapPointType.llActivityLogbookWithHaulingEnd) + && previousTripMapPointType.equals(TripMapPointType.llActivityLogbookWithHaulingStart)) { + found = true; + Coordinate[] coordinates = { + new Coordinate(previousTripMapPoint.getLongitude(), previousTripMapPoint.getLatitude()), + new Coordinate(tripMapPoint.getLongitude(), tripMapPoint.getLatitude()), + }; + + boolean setting = tripMapPointType.equals(TripMapPointType.llActivityLogbookWithSettingEnd); + LineString lineString = geometryFactory.createLineString(coordinates); + lineBuilder.add(lineString); + lineBuilder.add(setting ? "setting" : "hauling"); + SimpleFeature feature = lineBuilder.buildFeature(null); + linesFeatures.add(feature); + + defaultLineCoordinates.clear(); + } + } } - - if (!(tripMapPoints.get(indexPoint).getType().equals(TripMapPointType.llActivityLogbookWithSettingEnd) - || tripMapPoints.get(indexPoint).getType().equals(TripMapPointType.llActivityLogbookWithHaulingStart))) { - - defaultLineCoordinates.add(new Coordinate(tripMapPoints.get(indexPoint).getLongitude(), tripMapPoints.get(indexPoint).getLatitude())); + if (tripMapPoint.isValid() && + !(tripMapPointType.equals(TripMapPointType.llActivityLogbookWithSettingEnd) || tripMapPointType.equals(TripMapPointType.llActivityLogbookWithHaulingStart))) { + defaultLineCoordinates.add(new Coordinate(tripMapPoint.getLongitude(), tripMapPoint.getLatitude())); } - if ((tripMapPoints.get(indexPoint).getType().equals(TripMapPointType.llActivityLogbookWithSettingStart) + if ((tripMapPointType.equals(TripMapPointType.llActivityLogbookWithSettingStart) || indexPoint == tripMapPoints.size() - 1) && defaultLineCoordinates.size() > 1) { LineString lineString = geometryFactory.createLineString(defaultLineCoordinates.toArray(new Coordinate[0])); ===================================== client-datasource-editor-ps/src/main/i18n/getters/java.getter ===================================== @@ -171,6 +171,7 @@ observe.data.ps.observation.TargetLength.table.species observe.data.ps.observation.TargetLength.table.species.tip observe.data.ps.observation.TargetLength.table.totalWeight observe.data.ps.observation.TargetLength.table.totalWeight.tip +observe.map.observation.points.not.valid observe.menu.navigation.action.move.activity observe.menu.navigation.action.move.route observe.menu.navigation.action.move.trip ===================================== client-datasource-editor-ps/src/main/java/fr/ird/observe/client/datasource/editor/content/data/ps/common/TripMapContentBuilder.java ===================================== @@ -51,6 +51,7 @@ import java.text.DateFormat; import java.util.LinkedList; import java.util.List; +import static io.ultreia.java4all.i18n.I18n.n; import static io.ultreia.java4all.i18n.I18n.t; /** @@ -85,8 +86,7 @@ public class TripMapContentBuilder extends fr.ird.observe.client.datasource.edit @Override protected void addPoints(List<TripMapPoint> tripMapPoints) throws FactoryException { - addPoints(tripMapPoints, TRIP_OBS_POINTS_LAYER_NAME); -// addPoints(tripMapPoints, TRIP_LOGBOOK_POINTS_LAYER_NAME); + addPoints(tripMapPoints, TRIP_OBS_POINTS_LAYER_NAME, n("observe.map.observation.points.not.valid")); } @Override ===================================== dto/src/main/java/fr/ird/observe/dto/data/TripMapPoint.java ===================================== @@ -22,29 +22,33 @@ package fr.ird.observe.dto.data; * #L% */ -import java.io.Serializable; -import java.util.Date; - -public class TripMapPoint implements Serializable { - - public static final String PROPERTY_TIME = "time"; - - public static final String PROPERTY_LATITUDE = "latitude"; +import fr.ird.observe.dto.ObserveDto; - public static final String PROPERTY_LONGITUDE = "longitude"; - - public static final String PROPERTY_TYPE = "type"; - - private static final long serialVersionUID = 1L; +import java.util.Date; +import java.util.Objects; + +public class TripMapPoint implements ObserveDto { + + public static TripMapPoint of(TripMapPointType type, Date time, Float latitude, Float longitude) { + TripMapPoint result = new TripMapPoint(); + result.setType(Objects.requireNonNull(type)); + result.setTime(time); + result.setLatitude(latitude); + result.setLongitude(longitude); + result.setValid(time != null && latitude != null && longitude != null); + return result; + } protected Date time; - protected float latitude; + protected Float latitude; - protected float longitude; + protected Float longitude; protected TripMapPointType type; + protected boolean valid; + public Date getTime() { return time; } @@ -53,19 +57,19 @@ public class TripMapPoint implements Serializable { this.time = time; } - public float getLatitude() { + public Float getLatitude() { return latitude; } - public void setLatitude(float latitude) { + public void setLatitude(Float latitude) { this.latitude = latitude; } - public float getLongitude() { + public Float getLongitude() { return longitude; } - public void setLongitude(float longitude) { + public void setLongitude(Float longitude) { this.longitude = longitude; } @@ -76,4 +80,12 @@ public class TripMapPoint implements Serializable { public void setType(TripMapPointType type) { this.type = type; } + + public boolean isValid() { + return valid; + } + + public void setValid(boolean valid) { + this.valid = valid; + } } ===================================== dto/src/main/java/fr/ird/observe/spi/DtoModelClasses.java ===================================== @@ -28,6 +28,8 @@ import fr.ird.observe.dto.referential.ReferentialDto; import fr.ird.observe.dto.referential.ll.common.HealthStatusDto; import fr.ird.observe.dto.referential.ll.observation.StomachFullnessDto; +import java.util.function.Predicate; + /** * Created by tchemit on 03/09/17. * @@ -35,6 +37,9 @@ import fr.ird.observe.dto.referential.ll.observation.StomachFullnessDto; */ public class DtoModelClasses { + public static final Predicate<String> IS_SEINE_ID = DtoModelClasses::isSeineId; + public static final Predicate<String> IS_LONGLINE_ID = DtoModelClasses::isLonglineId; + public static final ImmutableSet<Class<? extends ReferentialDto>> COMMON_REFERENTIAL_TYPES = ImmutableSet.of( fr.ird.observe.dto.referential.common.VesselSizeCategoryDto.class, fr.ird.observe.dto.referential.common.CountryDto.class, @@ -87,7 +92,7 @@ public class DtoModelClasses { fr.ird.observe.dto.referential.ps.observation.ReasonForDiscardDto.class, fr.ird.observe.dto.referential.ps.observation.SpeciesStatusDto.class, fr.ird.observe.dto.referential.ps.observation.ObservedSystemDto.class - ); + ); public static final ImmutableSet<Class<? extends ReferentialDto>> SEINE_REFERENTIAL_TYPES = ImmutableSet.<Class<? extends ReferentialDto>>builder() .addAll(SEINE_COMMON_REFERENTIAL_TYPES) @@ -141,7 +146,6 @@ public class DtoModelClasses { .addAll(SEINE_REFERENTIAL_TYPES) .addAll(LONGLINE_REFERENTIAL_TYPES) .build(); - private static final ImmutableSet<Class<? extends DataDto>> SEINE_ENTITY_DATA_TYPES = ImmutableSet.of( fr.ird.observe.dto.data.ps.observation.ActivityDto.class, fr.ird.observe.dto.data.ps.observation.FloatingObjectDto.class, ===================================== observe-i18n/src/main/i18n/translations/observe_en_GB.properties ===================================== @@ -2324,6 +2324,8 @@ observe.init.local.db.error=Could not find local database, will load last backup observe.init.no.initial.dump.detected=Internal data source %1$s not detected. observe.init.no.local.db.detected=Local data source %1$s not detected. observe.init.storage.done=Init of Persistent Service done. +observe.map.logbook.points.not.valid=LogBook - Number of none displayed points\: %d +observe.map.observation.points.not.valid=Observation - Number of none displayed points\: %d observe.menu.actions=Actions observe.menu.configuration=Configuration observe.menu.configuration.tip=To configure application ===================================== observe-i18n/src/main/i18n/translations/observe_es_ES.properties ===================================== @@ -2324,6 +2324,8 @@ observe.init.local.db.error=Imposible cargar la base local, se cargará el últi observe.init.no.initial.dump.detected=fuente de datos interna %1$s no detectada. observe.init.no.local.db.detected=Base local %1$s no detectada. observe.init.storage.done=Inicialización del servicio de persistencia terminado. +observe.map.logbook.points.not.valid=LogBook - Number of none displayed points\: %d \#TODO +observe.map.observation.points.not.valid=Observation - Number of none displayed points\: %d \#TODO observe.menu.actions=Acciones observe.menu.configuration=Configuración observe.menu.configuration.tip=Menú de configuración ===================================== observe-i18n/src/main/i18n/translations/observe_fr_FR.properties ===================================== @@ -2324,6 +2324,8 @@ observe.init.local.db.error=Impossible de charger la base locale, la dernière s observe.init.no.initial.dump.detected=Base embarquée %1$s non détectée. observe.init.no.local.db.detected=Base locale %1$s non détectée. observe.init.storage.done=Initialisation du service de persistance terminé. +observe.map.logbook.points.not.valid=Libre de bord - Nombre de points non affichés \: %d +observe.map.observation.points.not.valid=Observation - Nombre de points non affichés \: %d observe.menu.actions=Actions observe.menu.configuration=Configuration observe.menu.configuration.tip=Menu de configuration ===================================== persistence/src/main/java/fr/ird/observe/entities/Entities.java ===================================== @@ -22,10 +22,17 @@ package fr.ird.observe.entities; * #L% */ +import fr.ird.observe.dto.data.TripMapPoint; +import fr.ird.observe.dto.data.TripMapPointType; +import fr.ird.observe.entities.referential.common.Harbour; + +import java.sql.ResultSet; +import java.sql.SQLException; import java.util.Arrays; import java.util.Collections; +import java.util.Date; import java.util.List; -import java.util.function.Predicate; +import java.util.Optional; /** * Created on 8/27/14. @@ -122,15 +129,28 @@ public class Entities { }; public static final List<ObserveEntityEnum> REFERENCE_ENTITIES_LIST = Collections.unmodifiableList(Arrays.asList(REFERENCE_ENTITIES)); - public static final Predicate<String> IS_SEINE_ID = Entities::isSeineId; - public static final Predicate<String> IS_LONGLINE_ID = Entities::isLonglineId; - public static boolean isSeineId(String id) { - return id.contains(".ps."); + public static Float getFloat(ResultSet resultSet, int columnIndex) throws SQLException { + float result = resultSet.getFloat(columnIndex); + return resultSet.wasNull() ? null : result; + } + + public static Optional<TripMapPoint> createHarbourPoint(Harbour harbour, Date date, TripMapPointType tripMapPointType) { + TripMapPoint result = null; + if (harbour != null) { + result = TripMapPoint.of(tripMapPointType, date, harbour.getLatitude(), harbour.getLongitude()); + } + return Optional.ofNullable(result); } - public static boolean isLonglineId(String id) { - return id.contains(".ll."); + public static TripMapPoint createPoint(TripMapPointType type, Date dateTime, ResultSet resultSet, int columnIndex) throws SQLException { + Float latitude = getFloat(resultSet, columnIndex); + Float longitude = getFloat(resultSet, columnIndex + 1); + return TripMapPoint.of(type, dateTime, latitude, longitude); } + public static TripMapPoint createPoint(TripMapPointType type, ResultSet resultSet, int dateColumnIndex) throws SQLException { + java.sql.Date date = resultSet.getDate(dateColumnIndex); + return createPoint(type, date, resultSet, dateColumnIndex + 1); + } } ===================================== persistence/src/main/java/fr/ird/observe/entities/data/ll/common/TripTopiaDao.java ===================================== @@ -26,7 +26,7 @@ import com.google.common.collect.ImmutableMap; import fr.ird.observe.dto.data.TripMapConfigDto; import fr.ird.observe.dto.data.TripMapPoint; import fr.ird.observe.dto.data.TripMapPointType; -import fr.ird.observe.entities.referential.common.Harbour; +import fr.ird.observe.entities.Entities; import org.nuiton.topia.persistence.support.TopiaSqlQuery; import org.nuiton.topia.persistence.support.TopiaSqlSupport; import org.nuiton.util.DateUtil; @@ -42,7 +42,6 @@ import java.util.LinkedHashSet; import java.util.LinkedList; import java.util.List; import java.util.Objects; -import java.util.Optional; import java.util.stream.Collectors; public class TripTopiaDao extends AbstractTripTopiaDao<Trip> { @@ -57,7 +56,7 @@ public class TripTopiaDao extends AbstractTripTopiaDao<Trip> { LinkedHashSet<TripMapPoint> tripMapPoints = new LinkedHashSet<>(); // add departure harbour - createPoint(trip.getDepartureHarbour(), trip.getStartDate(), TripMapPointType.llTripDepartureHarbour).map(tripMapPoints::add); + Entities.createHarbourPoint(trip.getDepartureHarbour(), trip.getStartDate(), TripMapPointType.llTripDepartureHarbour).map(tripMapPoints::add); if (addObservation) { // Add Activities Observation @@ -73,7 +72,7 @@ public class TripTopiaDao extends AbstractTripTopiaDao<Trip> { } // add landing harbour - createPoint(trip.getLandingHarbour(), trip.getEndDate(), TripMapPointType.llTripLandingHarbour).map(tripMapPoints::add); + Entities.createHarbourPoint(trip.getLandingHarbour(), trip.getEndDate(), TripMapPointType.llTripLandingHarbour).map(tripMapPoints::add); return tripMapPoints; } @@ -128,10 +127,10 @@ public class TripTopiaDao extends AbstractTripTopiaDao<Trip> { return Collections.emptyList(); } return this. - <Trip>stream("From TripImpl Where vessel.id = :vesselId " + - "And (( :startDate <= endDate And :endDate >= endDate ) " + - " Or ( :endDate <= startDate And :endDate >= startDate )) " + - "Order By startDate, endDate", ImmutableMap.of( + <Trip>stream("From fr.ird.observe.entities.data.ll.common.TripImpl Where vessel.id = :vesselId " + + "And (( :startDate <= endDate And :endDate >= endDate ) " + + " Or ( :endDate <= startDate And :endDate >= startDate )) " + + "Order By startDate, endDate", ImmutableMap.of( "vesselId", vesselId, "startDate", startDate, "endDate", endDate)) @@ -146,6 +145,7 @@ public class TripTopiaDao extends AbstractTripTopiaDao<Trip> { " a.latitude," + " a.longitude," + " a.vesselActivity," + + " s.topiaId," + " s.settingStartTimestamp," + " s.settingStartLatitude," + " s.settingStartLongitude," + @@ -184,26 +184,32 @@ public class TripTopiaDao extends AbstractTripTopiaDao<Trip> { if (resultSet.getString(5) == null) { // simple activity - Optional<TripMapPoint> activity = createPoint(resultSet, 1, TripMapPointType.llActivityObs); - activity.ifPresent(result::add); + TripMapPoint activity = Entities.createPoint(TripMapPointType.llActivityObs, resultSet, 1); + result.add(activity); } // settingStart - Optional<TripMapPoint> settingStart = createPoint(resultSet, 5, TripMapPointType.llActivityObsWithSettingStart); - settingStart.ifPresent(result::add); + TripMapPoint settingStart = Entities.createPoint(TripMapPointType.llActivityObsWithSettingStart, resultSet, 6); + result.add(settingStart); // settingEnd - Optional<TripMapPoint> settingEnd = createPoint(resultSet, 8, TripMapPointType.llActivityObsWithSettingEnd); - settingEnd.ifPresent(result::add); + TripMapPoint settingEnd = Entities.createPoint(TripMapPointType.llActivityObsWithSettingEnd, resultSet, 9); + result.add(settingEnd); // haulingStart - Optional<TripMapPoint> haulingStart = createPoint(resultSet, 11, TripMapPointType.llActivityObsWithHaulingStart); - haulingStart.ifPresent(result::add); + TripMapPoint haulingStart = Entities.createPoint(TripMapPointType.llActivityObsWithHaulingStart, resultSet, 12); + result.add(haulingStart); // haulingEnd - Optional<TripMapPoint> haulingEnd = createPoint(resultSet, 14, TripMapPointType.llActivityObsWithHaulingEnd); - haulingEnd.ifPresent(result::add); - + TripMapPoint haulingEnd = Entities.createPoint(TripMapPointType.llActivityObsWithHaulingEnd, resultSet, 15); + result.add(haulingEnd); + + if (!(settingStart.isValid() && settingEnd.isValid() && haulingStart.isValid() && haulingEnd.isValid())) { + settingStart.setValid(false); + settingEnd.setValid(false); + haulingStart.setValid(false); + haulingEnd.setValid(false); + } return result; } } @@ -215,6 +221,7 @@ public class TripTopiaDao extends AbstractTripTopiaDao<Trip> { " a.latitude," + " a.longitude," + " a.vesselActivity," + + " s.topiaId," + " s.settingStartTimestamp," + " s.settingStartLatitude," + " s.settingStartLongitude," + @@ -253,25 +260,32 @@ public class TripTopiaDao extends AbstractTripTopiaDao<Trip> { if (resultSet.getString(5) == null) { // simple activity - Optional<TripMapPoint> activity = createPoint(resultSet, 1, TripMapPointType.llActivityLogbook); - activity.ifPresent(result::add); + TripMapPoint activity = Entities.createPoint(TripMapPointType.llActivityLogbook, resultSet, 1); + result.add(activity); } // settingStart - Optional<TripMapPoint> settingStart = createPoint(resultSet, 5, TripMapPointType.llActivityLogbookWithSettingStart); - settingStart.ifPresent(result::add); + TripMapPoint settingStart = Entities.createPoint(TripMapPointType.llActivityLogbookWithSettingStart, resultSet, 6); + result.add(settingStart); // settingEnd - Optional<TripMapPoint> settingEnd = createPoint(resultSet, 8, TripMapPointType.llActivityLogbookWithSettingEnd); - settingEnd.ifPresent(result::add); + TripMapPoint settingEnd = Entities.createPoint(TripMapPointType.llActivityLogbookWithSettingEnd, resultSet, 9); + result.add(settingEnd); // haulingStart - Optional<TripMapPoint> haulingStart = createPoint(resultSet, 11, TripMapPointType.llActivityLogbookWithHaulingStart); - haulingStart.ifPresent(result::add); + TripMapPoint haulingStart = Entities.createPoint(TripMapPointType.llActivityLogbookWithHaulingStart, resultSet, 12); + result.add(haulingStart); // haulingEnd - Optional<TripMapPoint> haulingEnd = createPoint(resultSet, 14, TripMapPointType.llActivityLogbookWithHaulingEnd); - haulingEnd.ifPresent(result::add); + TripMapPoint haulingEnd = Entities.createPoint(TripMapPointType.llActivityLogbookWithHaulingEnd, resultSet, 15); + result.add(haulingEnd); + + if (!(settingStart.isValid() && settingEnd.isValid() && haulingStart.isValid() && haulingEnd.isValid())) { + settingStart.setValid(false); + settingEnd.setValid(false); + haulingStart.setValid(false); + haulingEnd.setValid(false); + } return result; } @@ -315,29 +329,4 @@ public class TripTopiaDao extends AbstractTripTopiaDao<Trip> { } - private static Optional<TripMapPoint> createPoint(Harbour harbour, Date date, TripMapPointType tripMapPointType) { - TripMapPoint result = null; - if (harbour != null && harbour.getLatitude() != null && harbour.getLongitude() != null) { - result = new TripMapPoint(); - result.setTime(date); - result.setLatitude(harbour.getLatitude()); - result.setLongitude(harbour.getLongitude()); - result.setType(tripMapPointType); - } - return Optional.ofNullable(result); - } - - private static Optional<TripMapPoint> createPoint(ResultSet resultSet, int dateColumnIndex, TripMapPointType tripMapPointType) throws SQLException { - - TripMapPoint result = null; - if (resultSet.getString(dateColumnIndex) != null) { - result = new TripMapPoint(); - result.setTime(resultSet.getDate(dateColumnIndex)); - result.setLatitude(resultSet.getFloat(dateColumnIndex + 1)); - result.setLongitude(resultSet.getFloat(dateColumnIndex + 2)); - result.setType(tripMapPointType); - } - return Optional.ofNullable(result); - } - } ===================================== persistence/src/main/java/fr/ird/observe/entities/data/ps/common/TripTopiaDao.java ===================================== @@ -26,7 +26,7 @@ import fr.ird.observe.dto.ProtectedIds; import fr.ird.observe.dto.data.TripMapConfigDto; import fr.ird.observe.dto.data.TripMapPoint; import fr.ird.observe.dto.data.TripMapPointType; -import fr.ird.observe.entities.referential.common.Harbour; +import fr.ird.observe.entities.Entities; import org.nuiton.topia.persistence.support.TopiaSqlQuery; import org.nuiton.topia.persistence.support.TopiaSqlSupport; import org.nuiton.util.DateUtil; @@ -40,7 +40,6 @@ import java.util.Date; import java.util.LinkedHashSet; import java.util.List; import java.util.Objects; -import java.util.Optional; import java.util.stream.Collectors; /** @@ -58,14 +57,14 @@ public class TripTopiaDao extends AbstractTripTopiaDao<Trip> { LinkedHashSet<TripMapPoint> tripMapPoints = new LinkedHashSet<>(); // add departure harbour - createPoint(trip.getDepartureHarbour(), trip.getStartDate(), TripMapPointType.psTripDepartureHarbour).map(tripMapPoints::add); + Entities.createHarbourPoint(trip.getDepartureHarbour(), trip.getStartDate(), TripMapPointType.psTripDepartureHarbour).map(tripMapPoints::add); // Add Activities TripMapActivityPointQuery tripMapActivityPointQuery = new TripMapActivityPointQuery(tripId); tripMapPoints.addAll(topiaSqlSupport.findMultipleResult(tripMapActivityPointQuery)); // add landing harbour - createPoint(trip.getLandingHarbour(), trip.getEndDate(), TripMapPointType.psTripLandingHarbour).map(tripMapPoints::add); + Entities.createHarbourPoint(trip.getLandingHarbour(), trip.getEndDate(), TripMapPointType.psTripLandingHarbour).map(tripMapPoints::add); return tripMapPoints; } @@ -75,7 +74,7 @@ public class TripTopiaDao extends AbstractTripTopiaDao<Trip> { return Collections.emptyList(); } return this. - <Trip>stream("From TripImpl Where vessel.id = :vesselId " + + <Trip>stream("From fr.ird.observe.entities.data.ps.common.TripImpl Where vessel.id = :vesselId " + "And (( :startDate <= endDate And :endDate >= endDate ) " + " Or ( :endDate <= startDate And :endDate >= startDate )) " + "Order By startDate, endDate", ImmutableMap.of( @@ -119,32 +118,32 @@ public class TripTopiaDao extends AbstractTripTopiaDao<Trip> { @Override public TripMapPoint prepareResult(ResultSet resultSet) throws SQLException { - TripMapPoint point = new TripMapPoint(); - Date time = DateUtil.getDateAndTime(resultSet.getDate(1), resultSet.getTime(2), true, false); - point.setTime(time); - point.setLatitude(resultSet.getFloat(3)); - point.setLongitude(resultSet.getFloat(4)); + TripMapPointType type; + if (ProtectedIds.PS_COMMON_ACTIVITY_HARBOUR_ID.equals(resultSet.getString(5))) { - point.setType(TripMapPointType.psActivityObsInHarbour); + type = TripMapPointType.psActivityObsInHarbour; } else if (resultSet.getString(6) == null) { - point.setType(TripMapPointType.psActivityObs); + type = TripMapPointType.psActivityObs; } else { String schoolType = resultSet.getString(6); switch (schoolType) { case ProtectedIds.PS_COMMON_SCHOOL_TYPE_FREE_ID: - point.setType(TripMapPointType.psActivityObsWithFreeSchoolType); + type = TripMapPointType.psActivityObsWithFreeSchoolType; break; case ProtectedIds.PS_COMMON_SCHOOL_TYPE_OBJECT_ID: - point.setType(TripMapPointType.psActivityObsWithObjectSchoolType); + type = TripMapPointType.psActivityObsWithObjectSchoolType; break; default: - point.setType(TripMapPointType.psActivityObs); + type = TripMapPointType.psActivityObs; } } - return point; + + Date time = DateUtil.getDateAndTime(resultSet.getDate(1), resultSet.getTime(2), true, false); + return Entities.createPoint(type, time, resultSet, 3); } } + public boolean updateEndDate(Trip trip) { boolean wasUpdated = false; @@ -230,16 +229,4 @@ public class TripTopiaDao extends AbstractTripTopiaDao<Trip> { } - private static Optional<TripMapPoint> createPoint(Harbour harbour, Date date, TripMapPointType tripMapPointType) { - TripMapPoint result = null; - if (harbour != null && harbour.getLatitude() != null && harbour.getLongitude() != null) { - result = new TripMapPoint(); - result.setTime(date); - result.setLatitude(harbour.getLatitude()); - result.setLongitude(harbour.getLongitude()); - result.setType(tripMapPointType); - } - return Optional.ofNullable(result); - } - } ===================================== services-local/src/main/java/fr/ird/observe/services/local/service/actions/validate/ValidateServiceLocal.java ===================================== @@ -31,7 +31,6 @@ import fr.ird.observe.dto.referential.ReferentialDto; import fr.ird.observe.dto.referential.ReferentialLocale; import fr.ird.observe.dto.referential.common.SpeciesDto; import fr.ird.observe.dto.referential.ps.observation.ObservedSystemReference; -import fr.ird.observe.entities.Entities; import fr.ird.observe.entities.data.TripAware; import fr.ird.observe.entities.referential.ReferentialEntity; import fr.ird.observe.entities.referential.common.Species; @@ -47,6 +46,7 @@ import fr.ird.observe.services.service.actions.validate.ValidateService; import fr.ird.observe.services.service.actions.validate.ValidationRequest; import fr.ird.observe.services.service.referential.ReferentialService; import fr.ird.observe.spi.DbModelHelper; +import fr.ird.observe.spi.DtoModelClasses; import fr.ird.observe.spi.type.TypeTranslators; import fr.ird.observe.validation.ServiceValidationContext; import fr.ird.observe.validation.ValidatorsMap; @@ -156,7 +156,7 @@ public class ValidateServiceLocal extends ObserveServiceLocal implements Validat private void validateData(String dataId, ValidationMessageDetector detector, ServiceValidationContext validationContext, Set<SpeciesDto> species) { TripAware<?, ?> trip; - if (Entities.isSeineId(dataId)) { + if (DtoModelClasses.isSeineId(dataId)) { trip = fr.ird.observe.entities.data.ps.common.Trip.loadEntity(getTopiaPersistenceContext(), dataId); } else { trip = fr.ird.observe.entities.data.ll.common.Trip.loadEntity(getTopiaPersistenceContext(), dataId); ===================================== services-local/src/main/java/fr/ird/observe/services/local/service/referential/ReferentialServiceLocal.java ===================================== @@ -34,7 +34,6 @@ import fr.ird.observe.dto.referential.ReferenceStatus; import fr.ird.observe.dto.referential.ReferentialDto; import fr.ird.observe.dto.referential.ReferentialLocale; import fr.ird.observe.dto.result.SaveResultDto; -import fr.ird.observe.entities.Entities; import fr.ird.observe.entities.ObserveEntityEnum; import fr.ird.observe.entities.ObserveTopiaPersistenceContext; import fr.ird.observe.entities.data.ll.common.Trip; @@ -247,11 +246,11 @@ public class ReferentialServiceLocal extends ObserveServiceLocal implements Refe ReferentialShellBuilder referentialShellBuilder = ReferentialShellBuilder.builder(request.getCentralSourceReferential()); for (String tripId : request.getTripIds()) { - if (Entities.isLonglineId(tripId)) { + if (DtoModelClasses.isLonglineId(tripId)) { Trip trip = fr.ird.observe.entities.data.ll.common.Trip.loadEntity(getTopiaPersistenceContext(), tripId); log.info("Compute missing referential for trip: " + tripId); referentialShellBuilder.scan(trip); - } else if (Entities.isSeineId(tripId)) { + } else if (DtoModelClasses.isSeineId(tripId)) { fr.ird.observe.entities.data.ps.common.Trip trip = fr.ird.observe.entities.data.ps.common.Trip.loadEntity(getTopiaPersistenceContext(), tripId); log.info("Compute missing referential for trip: " + tripId); referentialShellBuilder.scan(trip); ===================================== services-local/src/main/java/fr/ird/observe/services/local/service/sql/SqlScriptProducerServiceLocal.java ===================================== @@ -25,7 +25,6 @@ package fr.ird.observe.services.local.service.sql; import com.google.common.collect.ImmutableSet; import com.google.common.collect.ListMultimap; import fr.ird.observe.dto.reference.ReferentialDtoReference; -import fr.ird.observe.entities.Entities; import fr.ird.observe.entities.ObserveEntityEnum; import fr.ird.observe.entities.ObserveTopiaApplicationContext; import fr.ird.observe.services.local.service.ObserveServiceLocal; @@ -33,6 +32,7 @@ import fr.ird.observe.services.service.sql.AddSqlScriptProducerRequest; import fr.ird.observe.services.service.sql.DeleteSqlScriptProducerRequest; import fr.ird.observe.services.service.sql.SqlScriptProducerService; import fr.ird.observe.spi.DbModelHelper; +import fr.ird.observe.spi.DtoModelClasses; import org.apache.commons.collections4.CollectionUtils; import org.nuiton.topia.persistence.metadata.TopiaMetadataModel; import org.nuiton.topia.persistence.script.TopiaBlobsContainer; @@ -46,8 +46,8 @@ import java.util.List; import java.util.Set; import java.util.stream.Collectors; -import static fr.ird.observe.entities.Entities.IS_LONGLINE_ID; -import static fr.ird.observe.entities.Entities.IS_SEINE_ID; +import static fr.ird.observe.spi.DtoModelClasses.IS_LONGLINE_ID; +import static fr.ird.observe.spi.DtoModelClasses.IS_SEINE_ID; import static fr.ird.observe.entities.Entities.REFERENCE_ENTITIES_LIST; /** @@ -174,14 +174,14 @@ public class SqlScriptProducerServiceLocal extends ObserveServiceLocal implement } else { { - Set<String> tripIds1 = tripIds.stream().filter(Entities.IS_SEINE_ID).collect(Collectors.toSet()); + Set<String> tripIds1 = tripIds.stream().filter(DtoModelClasses.IS_SEINE_ID).collect(Collectors.toSet()); if (!tripIds1.isEmpty()) { builder.addDeleteTablesRequest(topiaApplicationContext.getTripSeineTables(), TopiaSqlTableSelectArgument.of(tripIds1)); } } { - Set<String> tripIds1 = tripIds.stream().filter(Entities.IS_LONGLINE_ID).collect(Collectors.toSet()); + Set<String> tripIds1 = tripIds.stream().filter(DtoModelClasses.IS_LONGLINE_ID).collect(Collectors.toSet()); if (!tripIds1.isEmpty()) { builder.addDeleteTablesRequest(topiaApplicationContext.getTripLonglineTables(), TopiaSqlTableSelectArgument.of(tripIds1)); } View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/2ed828ccb130e70a93159e57… -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/2ed828ccb130e70a93159e57… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][develop] 2 commits: Élimination des points non effectifs dans la carte - Cloes #1560
by Tony CHEMIT 30 Jun '20

30 Jun '20
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: a670d27c by Tony Chemit at 2020-06-30T12:58:27+02:00 Élimination des points non effectifs dans la carte - Cloes #1560 - - - - - 2ed828cc by Tony Chemit at 2020-06-30T12:59:02+02:00 Carte - Cloes #1517 - - - - - 20 changed files: - client-datasource-editor-common/src/main/java/fr/ird/observe/client/datasource/editor/content/data/trip/map/ObserveMapPaneLegendItem.java - client-datasource-editor-common/src/main/java/fr/ird/observe/client/datasource/editor/content/data/trip/map/TripMapContentBuilder.java - client-datasource-editor-common/src/main/java/fr/ird/observe/client/datasource/editor/content/data/trip/map/TripMapUIHandler.java - client-datasource-editor-common/src/main/map/ll-style.xml - client-datasource-editor-common/src/main/map/ps-style.xml - client-datasource-editor-ll/src/main/i18n/getters/java.getter - client-datasource-editor-ll/src/main/java/fr/ird/observe/client/datasource/editor/content/data/ll/common/TripMapContentBuilder.java - client-datasource-editor-ps/src/main/i18n/getters/java.getter - client-datasource-editor-ps/src/main/java/fr/ird/observe/client/datasource/editor/content/data/ps/common/TripMapContentBuilder.java - dto/src/main/java/fr/ird/observe/dto/data/TripMapPoint.java - dto/src/main/java/fr/ird/observe/spi/DtoModelClasses.java - observe-i18n/src/main/i18n/translations/observe_en_GB.properties - observe-i18n/src/main/i18n/translations/observe_es_ES.properties - observe-i18n/src/main/i18n/translations/observe_fr_FR.properties - persistence/src/main/java/fr/ird/observe/entities/Entities.java - persistence/src/main/java/fr/ird/observe/entities/data/ll/common/TripTopiaDao.java - persistence/src/main/java/fr/ird/observe/entities/data/ps/common/TripTopiaDao.java - services-local/src/main/java/fr/ird/observe/services/local/service/actions/validate/ValidateServiceLocal.java - services-local/src/main/java/fr/ird/observe/services/local/service/referential/ReferentialServiceLocal.java - services-local/src/main/java/fr/ird/observe/services/local/service/sql/SqlScriptProducerServiceLocal.java Changes: ===================================== client-datasource-editor-common/src/main/java/fr/ird/observe/client/datasource/editor/content/data/trip/map/ObserveMapPaneLegendItem.java ===================================== @@ -49,13 +49,13 @@ public class ObserveMapPaneLegendItem { public static Coordinate[] lineCoordinates() { Coordinate[] coordinates = new Coordinate[2]; - coordinates[0] = new Coordinate(LEGEND_MARGIN, LEGEND_ITEM_HEIGHT / 2); - coordinates[1] = new Coordinate(LEGEND_SYMBOL_WIDTH - LEGEND_MARGIN, LEGEND_ITEM_HEIGHT / 2); + coordinates[0] = new Coordinate(LEGEND_MARGIN, LEGEND_ITEM_HEIGHT / 2.); + coordinates[1] = new Coordinate(LEGEND_SYMBOL_WIDTH - LEGEND_MARGIN, LEGEND_ITEM_HEIGHT / 2.); return coordinates; } public static Coordinate pointCoordinates() { - return new Coordinate(LEGEND_SYMBOL_WIDTH / 2, LEGEND_ITEM_HEIGHT / 2); + return new Coordinate(LEGEND_SYMBOL_WIDTH / 2., LEGEND_ITEM_HEIGHT / 2.); } public SimpleFeature getSimpleFeature() { ===================================== client-datasource-editor-common/src/main/java/fr/ird/observe/client/datasource/editor/content/data/trip/map/TripMapContentBuilder.java ===================================== @@ -62,11 +62,14 @@ import java.io.IOException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.HashSet; +import java.util.LinkedList; import java.util.List; import java.util.Optional; import java.util.ServiceLoader; import java.util.Set; +import static io.ultreia.java4all.i18n.I18n.t; + /** * @author Tony Chemit - dev(a)tchemit.fr */ @@ -76,12 +79,14 @@ public abstract class TripMapContentBuilder { protected static final String TRIP_LOGBOOK_POINTS_LAYER_NAME = "Trip Logbook points"; protected static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("dd/MM"); - protected MapContent mapContent; + private static ImmutableSet<TripMapContentBuilder> PROVIDERS; + protected final List<ObserveMapPaneLegendItem> legendItems; + protected final List<TripMapPoint> notValidPoints = new LinkedList<>(); protected final Set<TripMapPointType> acceptedTripPointTypes; + protected MapContent mapContent; protected StyledLayerDescriptor styledLayerDescriptor; - private static ImmutableSet<TripMapContentBuilder> PROVIDERS; public abstract boolean accept(TripMapDto tripMapDto); @@ -121,7 +126,8 @@ public abstract class TripMapContentBuilder { private void reset() { legendItems.clear(); - mapContent=new MapContent(); + notValidPoints.clear(); + mapContent = new MapContent(); } protected TripMapContentBuilder(Set<TripMapPointType> acceptedTripPointTypes) { @@ -152,7 +158,7 @@ public abstract class TripMapContentBuilder { mapContent.addLayer(layer); } - public void addPoints(List<TripMapPoint> tripMapPoints, String layerName) throws FactoryException { + public void addPoints(List<TripMapPoint> tripMapPoints, String layerName, String notValidPointsLabel) throws FactoryException { GeometryFactory geometryFactory = JTSFactoryFinder.getGeometryFactory(); @@ -171,8 +177,11 @@ public abstract class TripMapContentBuilder { Style stylePoints = findStyle(styledLayerDescriptor, layerName, null); Set<TripMapPointType> pointTypeInLegend = new HashSet<>(); - for (TripMapPoint tripMapPoint : tripMapPoints) { + if (!tripMapPoint.isValid()) { + notValidPoints.add(tripMapPoint); + continue; + } Coordinate coordinate = new Coordinate(tripMapPoint.getLongitude(), tripMapPoint.getLatitude()); TripMapPointType type = tripMapPoint.getType(); @@ -205,6 +214,19 @@ public abstract class TripMapContentBuilder { mapContent.addLayer(pointsLayer); } + if (!notValidPoints.isEmpty()) { + Point point = geometryFactory.createPoint(ObserveMapPaneLegendItem.pointCoordinates()); + pointBuilder.add(point); + pointBuilder.add(""); + pointBuilder.add("notValidPoint"); + + ObserveMapPaneLegendItem legendPoint = new ObserveMapPaneLegendItem( + pointBuilder.buildFeature(null), + stylePoints, + t(notValidPointsLabel, notValidPoints.size())); + legendItems.add(legendPoint); + } + } ===================================== client-datasource-editor-common/src/main/java/fr/ird/observe/client/datasource/editor/content/data/trip/map/TripMapUIHandler.java ===================================== @@ -94,7 +94,9 @@ public class TripMapUIHandler implements UIHandler<TripMapUI> { // set zoom tripArea = new ReferencedEnvelope(); for (TripMapPoint point : tripMapPoints) { - tripArea.expandToInclude(new DirectPosition2D(point.getLongitude(), point.getLatitude())); + if (point.isValid()) { + tripArea.expandToInclude(new DirectPosition2D(point.getLongitude(), point.getLatitude())); + } } tripArea.expandBy(1.1); ===================================== client-datasource-editor-common/src/main/map/ll-style.xml ===================================== @@ -118,7 +118,7 @@ <LineSymbolizer> <Stroke> <CssParameter name="stroke">#00FF00</CssParameter> - <CssParameter name="stroke-width">1</CssParameter> + <CssParameter name="stroke-width">2</CssParameter> <CssParameter name="stroke-dasharray">5 7</CssParameter> </Stroke> </LineSymbolizer> @@ -404,6 +404,33 @@ </TextSymbolizer> </Rule> </FeatureTypeStyle> + <FeatureTypeStyle> + <Rule> + <Name>Not valid observation point</Name> + <ogc:Filter> + <ogc:PropertyIsEqualTo> + <ogc:PropertyName>pointType</ogc:PropertyName> + <ogc:Literal>notValidPoint</ogc:Literal> + </ogc:PropertyIsEqualTo> + </ogc:Filter> + <PointSymbolizer> + <Graphic> + <Mark> + <WellKnownName>ttf://Serif#U+0021</WellKnownName> + <Fill> + <CssParameter name="fill">#00FF00</CssParameter> + </Fill> + <Stroke> + <CssParameter name="stroke">#000000</CssParameter> + <CssParameter name="stroke-width">1</CssParameter> + </Stroke> + </Mark> + <Size>12</Size> + </Graphic> + </PointSymbolizer> + </Rule> + </FeatureTypeStyle> + </UserStyle> </NamedLayer> @@ -596,6 +623,33 @@ </Rule> </FeatureTypeStyle> + <FeatureTypeStyle> + <Rule> + <Name>Not valid logbook point</Name> + <ogc:Filter> + <ogc:PropertyIsEqualTo> + <ogc:PropertyName>pointType</ogc:PropertyName> + <ogc:Literal>notValidPoint</ogc:Literal> + </ogc:PropertyIsEqualTo> + </ogc:Filter> + <PointSymbolizer> + <Graphic> + <Mark> + <WellKnownName>ttf://Serif#U+0021</WellKnownName> + <Fill> + <CssParameter name="fill">#FF0000</CssParameter> + </Fill> + <Stroke> + <CssParameter name="stroke">#000000</CssParameter> + <CssParameter name="stroke-width">1</CssParameter> + </Stroke> + </Mark> + <Size>12</Size> + </Graphic> + </PointSymbolizer> + </Rule> + </FeatureTypeStyle> + </UserStyle> </NamedLayer> ===================================== client-datasource-editor-common/src/main/map/ps-style.xml ===================================== @@ -196,6 +196,33 @@ </Rule> </FeatureTypeStyle> + <FeatureTypeStyle> + <Rule> + <Name>Not valid point</Name> + <ogc:Filter> + <ogc:PropertyIsEqualTo> + <ogc:PropertyName>pointType</ogc:PropertyName> + <ogc:Literal>notValidPoint</ogc:Literal> + </ogc:PropertyIsEqualTo> + </ogc:Filter> + <PointSymbolizer> + <Graphic> + <Mark> + <WellKnownName>ttf://Serif#U+0021</WellKnownName> + <Fill> + <CssParameter name="fill">#00FF00</CssParameter> + </Fill> + <Stroke> + <CssParameter name="stroke">#000000</CssParameter> + <CssParameter name="stroke-width">1</CssParameter> + </Stroke> + </Mark> + <Size>12</Size> + </Graphic> + </PointSymbolizer> + </Rule> + </FeatureTypeStyle> + </UserStyle> </NamedLayer> ===================================== client-datasource-editor-ll/src/main/i18n/getters/java.getter ===================================== @@ -317,6 +317,8 @@ observe.data.ll.observation.WeightMeasure.table.weight.tip observe.data.ll.observation.WeightMeasure.table.weightMeasureType observe.data.ll.observation.WeightMeasure.table.weightMeasureType.tip observe.data.ps.common.GearUseFeatures.delete +observe.map.logbook.points.not.valid +observe.map.observation.points.not.valid observe.menu.navigation.action.move.activityLongline observe.menu.navigation.action.move.sample observe.menu.navigation.action.move.sample.choice ===================================== client-datasource-editor-ll/src/main/java/fr/ird/observe/client/datasource/editor/content/data/ll/common/TripMapContentBuilder.java ===================================== @@ -51,6 +51,7 @@ import java.util.LinkedList; import java.util.List; import java.util.stream.Collectors; +import static io.ultreia.java4all.i18n.I18n.n; import static io.ultreia.java4all.i18n.I18n.t; /** @@ -106,8 +107,8 @@ public class TripMapContentBuilder extends fr.ird.observe.client.datasource.edit @Override protected void addPoints(List<TripMapPoint> tripMapPoints) throws FactoryException { - addPoints(tripMapPoints.stream().filter(f->f.getType().isTrip() || f.getType().isObs()).collect(Collectors.toList()), TRIP_OBS_POINTS_LAYER_NAME); - addPoints(tripMapPoints.stream().filter(f->f.getType().isTrip() || f.getType().isLogbook()).collect(Collectors.toList()), TRIP_LOGBOOK_POINTS_LAYER_NAME); + addPoints(tripMapPoints.stream().filter(f -> f.getType().isTrip() || f.getType().isObs()).collect(Collectors.toList()), TRIP_OBS_POINTS_LAYER_NAME, n("observe.map.observation.points.not.valid")); + addPoints(tripMapPoints.stream().filter(f -> f.getType().isTrip() || f.getType().isLogbook()).collect(Collectors.toList()), TRIP_LOGBOOK_POINTS_LAYER_NAME, n("observe.map.logbook.points.not.valid")); } private void addLonglineObsFishingZone(List<TripMapPoint> tripMapPoints) throws FactoryException { @@ -126,24 +127,31 @@ public class TripMapContentBuilder extends fr.ird.observe.client.datasource.edit DefaultFeatureCollection polygonsFeatures = new DefaultFeatureCollection(); for (int indexPoint = 3; indexPoint < tripMapPoints.size(); indexPoint++) { - if (tripMapPoints.get(indexPoint).getType().equals(TripMapPointType.llActivityObsWithHaulingEnd) - && tripMapPoints.get(indexPoint - 1).getType().equals(TripMapPointType.llActivityObsWithHaulingStart) - && tripMapPoints.get(indexPoint - 2).getType().equals(TripMapPointType.llActivityObsWithSettingEnd) - && tripMapPoints.get(indexPoint - 3).getType().equals(TripMapPointType.llActivityObsWithSettingStart)) { + TripMapPoint tripMapPoint = tripMapPoints.get(indexPoint); + TripMapPoint tripMapPoint1 = tripMapPoints.get(indexPoint - 1); + TripMapPoint tripMapPoint2 = tripMapPoints.get(indexPoint - 2); + TripMapPoint tripMapPoint3 = tripMapPoints.get(indexPoint - 3); + if (!(tripMapPoint.isValid()&& tripMapPoint1.isValid() && tripMapPoint2.isValid() && tripMapPoint3.isValid())) { + continue; + } + if (tripMapPoint.getType().equals(TripMapPointType.llActivityObsWithHaulingEnd) + && tripMapPoint1.getType().equals(TripMapPointType.llActivityObsWithHaulingStart) + && tripMapPoint2.getType().equals(TripMapPointType.llActivityObsWithSettingEnd) + && tripMapPoint3.getType().equals(TripMapPointType.llActivityObsWithSettingStart)) { Coordinate[] coordinates = { - new Coordinate(tripMapPoints.get(indexPoint - 3).getLongitude(), tripMapPoints.get(indexPoint - 3).getLatitude()), - new Coordinate(tripMapPoints.get(indexPoint - 2).getLongitude(), tripMapPoints.get(indexPoint - 2).getLatitude()), - new Coordinate(tripMapPoints.get(indexPoint - 1).getLongitude(), tripMapPoints.get(indexPoint - 1).getLatitude()), - new Coordinate(tripMapPoints.get(indexPoint).getLongitude(), tripMapPoints.get(indexPoint).getLatitude()), - new Coordinate(tripMapPoints.get(indexPoint - 3).getLongitude(), tripMapPoints.get(indexPoint - 3).getLatitude()) + new Coordinate(tripMapPoint3.getLongitude(), tripMapPoint3.getLatitude()), + new Coordinate(tripMapPoint2.getLongitude(), tripMapPoint2.getLatitude()), + new Coordinate(tripMapPoint1.getLongitude(), tripMapPoint1.getLatitude()), + new Coordinate(tripMapPoint.getLongitude(), tripMapPoint.getLatitude()), + new Coordinate(tripMapPoint3.getLongitude(), tripMapPoint3.getLatitude()) }; Polygon polygon = geometryFactory.createPolygon(coordinates); //polygon = (Polygon) polygon.convexHull(); // permet de transformer un poliqgone croisé en polygon convex polygonBuilder.add(polygon); - polygonBuilder.add(DATE_FORMAT.format(tripMapPoints.get(indexPoint - 3).getTime())); + polygonBuilder.add(DATE_FORMAT.format(tripMapPoint3.getTime())); polygonBuilder.add("longlineFishingZone"); SimpleFeature feature = polygonBuilder.buildFeature(null); polygonsFeatures.add(feature); @@ -174,24 +182,31 @@ public class TripMapContentBuilder extends fr.ird.observe.client.datasource.edit DefaultFeatureCollection polygonsFeatures = new DefaultFeatureCollection(); for (int indexPoint = 3; indexPoint < tripMapPoints.size(); indexPoint++) { - if (tripMapPoints.get(indexPoint).getType().equals(TripMapPointType.llActivityLogbookWithHaulingEnd) - && tripMapPoints.get(indexPoint - 1).getType().equals(TripMapPointType.llActivityLogbookWithHaulingStart) - && tripMapPoints.get(indexPoint - 2).getType().equals(TripMapPointType.llActivityLogbookWithSettingEnd) - && tripMapPoints.get(indexPoint - 3).getType().equals(TripMapPointType.llActivityLogbookWithSettingStart)) { + TripMapPoint tripMapPoint = tripMapPoints.get(indexPoint); + TripMapPoint tripMapPoint1 = tripMapPoints.get(indexPoint - 1); + TripMapPoint tripMapPoint2 = tripMapPoints.get(indexPoint - 2); + TripMapPoint tripMapPoint3 = tripMapPoints.get(indexPoint - 3); + if (!(tripMapPoint.isValid()&& tripMapPoint1.isValid() && tripMapPoint2.isValid() && tripMapPoint3.isValid())) { + continue; + } + if (tripMapPoint.getType().equals(TripMapPointType.llActivityLogbookWithHaulingEnd) + && tripMapPoint1.getType().equals(TripMapPointType.llActivityLogbookWithHaulingStart) + && tripMapPoint2.getType().equals(TripMapPointType.llActivityLogbookWithSettingEnd) + && tripMapPoint3.getType().equals(TripMapPointType.llActivityLogbookWithSettingStart)) { Coordinate[] coordinates = { - new Coordinate(tripMapPoints.get(indexPoint - 3).getLongitude(), tripMapPoints.get(indexPoint - 3).getLatitude()), - new Coordinate(tripMapPoints.get(indexPoint - 2).getLongitude(), tripMapPoints.get(indexPoint - 2).getLatitude()), - new Coordinate(tripMapPoints.get(indexPoint - 1).getLongitude(), tripMapPoints.get(indexPoint - 1).getLatitude()), - new Coordinate(tripMapPoints.get(indexPoint).getLongitude(), tripMapPoints.get(indexPoint).getLatitude()), - new Coordinate(tripMapPoints.get(indexPoint - 3).getLongitude(), tripMapPoints.get(indexPoint - 3).getLatitude()) + new Coordinate(tripMapPoint3.getLongitude(), tripMapPoint3.getLatitude()), + new Coordinate(tripMapPoint2.getLongitude(), tripMapPoint2.getLatitude()), + new Coordinate(tripMapPoint1.getLongitude(), tripMapPoint1.getLatitude()), + new Coordinate(tripMapPoint.getLongitude(), tripMapPoint.getLatitude()), + new Coordinate(tripMapPoint3.getLongitude(), tripMapPoint3.getLatitude()) }; Polygon polygon = geometryFactory.createPolygon(coordinates); //polygon = (Polygon) polygon.convexHull(); // permet de transformer un poliqgone croisé en polygon convex polygonBuilder.add(polygon); - polygonBuilder.add(DATE_FORMAT.format(tripMapPoints.get(indexPoint - 3).getTime())); + polygonBuilder.add(DATE_FORMAT.format(tripMapPoint3.getTime())); polygonBuilder.add("longlineFishingZone"); SimpleFeature feature = polygonBuilder.buildFeature(null); polygonsFeatures.add(feature); @@ -223,35 +238,44 @@ public class TripMapContentBuilder extends fr.ird.observe.client.datasource.edit List<Coordinate> defaultLineCoordinates = new LinkedList<>(); boolean found = false; for (int indexPoint = 0; indexPoint < tripMapPoints.size(); indexPoint++) { - if (indexPoint > 1 && tripMapPoints.get(indexPoint).getType().equals(TripMapPointType.llActivityObsWithSettingEnd) - && tripMapPoints.get(indexPoint - 1).getType().equals(TripMapPointType.llActivityObsWithSettingStart) - || tripMapPoints.get(indexPoint).getType().equals(TripMapPointType.llActivityObsWithHaulingEnd) - && tripMapPoints.get(indexPoint - 1).getType().equals(TripMapPointType.llActivityObsWithHaulingStart)) { - - found = true; - Coordinate[] coordinates = { - new Coordinate(tripMapPoints.get(indexPoint - 1).getLongitude(), tripMapPoints.get(indexPoint - 1).getLatitude()), - new Coordinate(tripMapPoints.get(indexPoint).getLongitude(), tripMapPoints.get(indexPoint).getLatitude()), - }; - - boolean setting = tripMapPoints.get(indexPoint).getType().equals(TripMapPointType.llActivityObsWithSettingEnd); - LineString lineString = geometryFactory.createLineString(coordinates); - lineBuilder.add(lineString); - lineBuilder.add(setting ? "setting" : "hauling"); - SimpleFeature feature = lineBuilder.buildFeature(null); - linesFeatures.add(feature); - - defaultLineCoordinates.clear(); + TripMapPoint tripMapPoint = tripMapPoints.get(indexPoint); + TripMapPointType pointType = tripMapPoint.getType(); + if (tripMapPoint.isValid() && indexPoint > 1) { + + TripMapPoint previousTripMapPoint = tripMapPoints.get(indexPoint - 1); + TripMapPointType previousTripMapPointType = previousTripMapPoint.getType(); + if (previousTripMapPoint.isValid()) { + if ( + pointType.equals(TripMapPointType.llActivityObsWithSettingEnd) && previousTripMapPointType.equals(TripMapPointType.llActivityObsWithSettingStart) + || + pointType.equals(TripMapPointType.llActivityObsWithHaulingEnd) && previousTripMapPointType.equals(TripMapPointType.llActivityObsWithHaulingStart)) { + + found = true; + Coordinate[] coordinates = { + new Coordinate(previousTripMapPoint.getLongitude(), previousTripMapPoint.getLatitude()), + new Coordinate(tripMapPoint.getLongitude(), tripMapPoint.getLatitude()), + }; + + boolean setting = pointType.equals(TripMapPointType.llActivityObsWithSettingEnd); + LineString lineString = geometryFactory.createLineString(coordinates); + lineBuilder.add(lineString); + lineBuilder.add(setting ? "setting" : "hauling"); + SimpleFeature feature = lineBuilder.buildFeature(null); + linesFeatures.add(feature); + + defaultLineCoordinates.clear(); + } + } } - if (!(tripMapPoints.get(indexPoint).getType().equals(TripMapPointType.llActivityObsWithSettingEnd) - || tripMapPoints.get(indexPoint).getType().equals(TripMapPointType.llActivityObsWithHaulingStart))) { + if (tripMapPoint.isValid() && !(pointType.equals(TripMapPointType.llActivityObsWithSettingEnd) + || pointType.equals(TripMapPointType.llActivityObsWithHaulingStart))) { - defaultLineCoordinates.add(new Coordinate(tripMapPoints.get(indexPoint).getLongitude(), tripMapPoints.get(indexPoint).getLatitude())); + defaultLineCoordinates.add(new Coordinate(tripMapPoint.getLongitude(), tripMapPoint.getLatitude())); } - if ((tripMapPoints.get(indexPoint).getType().equals(TripMapPointType.llActivityObsWithSettingStart) + if ((pointType.equals(TripMapPointType.llActivityObsWithSettingStart) || indexPoint == tripMapPoints.size() - 1) && defaultLineCoordinates.size() > 1) { LineString lineString = geometryFactory.createLineString(defaultLineCoordinates.toArray(new Coordinate[0])); @@ -315,34 +339,40 @@ public class TripMapContentBuilder extends fr.ird.observe.client.datasource.edit List<Coordinate> defaultLineCoordinates = new LinkedList<>(); boolean found = false; for (int indexPoint = 0; indexPoint < tripMapPoints.size(); indexPoint++) { - if (indexPoint > 1 && tripMapPoints.get(indexPoint).getType().equals(TripMapPointType.llActivityLogbookWithSettingEnd) - && tripMapPoints.get(indexPoint - 1).getType().equals(TripMapPointType.llActivityLogbookWithSettingStart) - || tripMapPoints.get(indexPoint).getType().equals(TripMapPointType.llActivityLogbookWithHaulingEnd) - && tripMapPoints.get(indexPoint - 1).getType().equals(TripMapPointType.llActivityLogbookWithHaulingStart)) { - found = true; - Coordinate[] coordinates = { - new Coordinate(tripMapPoints.get(indexPoint - 1).getLongitude(), tripMapPoints.get(indexPoint - 1).getLatitude()), - new Coordinate(tripMapPoints.get(indexPoint).getLongitude(), tripMapPoints.get(indexPoint).getLatitude()), - }; - - boolean setting = tripMapPoints.get(indexPoint).getType().equals(TripMapPointType.llActivityLogbookWithSettingEnd); - LineString lineString = geometryFactory.createLineString(coordinates); - lineBuilder.add(lineString); - lineBuilder.add(setting ? "setting" : "hauling"); - SimpleFeature feature = lineBuilder.buildFeature(null); - linesFeatures.add(feature); - - defaultLineCoordinates.clear(); + TripMapPoint tripMapPoint = tripMapPoints.get(indexPoint); + TripMapPointType tripMapPointType = tripMapPoint.getType(); + if (tripMapPoint.isValid() && indexPoint > 1) { + TripMapPoint previousTripMapPoint = tripMapPoints.get(indexPoint - 1); + if (previousTripMapPoint.isValid()) { + TripMapPointType previousTripMapPointType = previousTripMapPoint.getType(); + if (tripMapPointType.equals(TripMapPointType.llActivityLogbookWithSettingEnd) + && previousTripMapPointType.equals(TripMapPointType.llActivityLogbookWithSettingStart) + || tripMapPointType.equals(TripMapPointType.llActivityLogbookWithHaulingEnd) + && previousTripMapPointType.equals(TripMapPointType.llActivityLogbookWithHaulingStart)) { + found = true; + Coordinate[] coordinates = { + new Coordinate(previousTripMapPoint.getLongitude(), previousTripMapPoint.getLatitude()), + new Coordinate(tripMapPoint.getLongitude(), tripMapPoint.getLatitude()), + }; + + boolean setting = tripMapPointType.equals(TripMapPointType.llActivityLogbookWithSettingEnd); + LineString lineString = geometryFactory.createLineString(coordinates); + lineBuilder.add(lineString); + lineBuilder.add(setting ? "setting" : "hauling"); + SimpleFeature feature = lineBuilder.buildFeature(null); + linesFeatures.add(feature); + + defaultLineCoordinates.clear(); + } + } } - - if (!(tripMapPoints.get(indexPoint).getType().equals(TripMapPointType.llActivityLogbookWithSettingEnd) - || tripMapPoints.get(indexPoint).getType().equals(TripMapPointType.llActivityLogbookWithHaulingStart))) { - - defaultLineCoordinates.add(new Coordinate(tripMapPoints.get(indexPoint).getLongitude(), tripMapPoints.get(indexPoint).getLatitude())); + if (tripMapPoint.isValid() && + !(tripMapPointType.equals(TripMapPointType.llActivityLogbookWithSettingEnd) || tripMapPointType.equals(TripMapPointType.llActivityLogbookWithHaulingStart))) { + defaultLineCoordinates.add(new Coordinate(tripMapPoint.getLongitude(), tripMapPoint.getLatitude())); } - if ((tripMapPoints.get(indexPoint).getType().equals(TripMapPointType.llActivityLogbookWithSettingStart) + if ((tripMapPointType.equals(TripMapPointType.llActivityLogbookWithSettingStart) || indexPoint == tripMapPoints.size() - 1) && defaultLineCoordinates.size() > 1) { LineString lineString = geometryFactory.createLineString(defaultLineCoordinates.toArray(new Coordinate[0])); ===================================== client-datasource-editor-ps/src/main/i18n/getters/java.getter ===================================== @@ -171,6 +171,7 @@ observe.data.ps.observation.TargetLength.table.species observe.data.ps.observation.TargetLength.table.species.tip observe.data.ps.observation.TargetLength.table.totalWeight observe.data.ps.observation.TargetLength.table.totalWeight.tip +observe.map.observation.points.not.valid observe.menu.navigation.action.move.activity observe.menu.navigation.action.move.route observe.menu.navigation.action.move.trip ===================================== client-datasource-editor-ps/src/main/java/fr/ird/observe/client/datasource/editor/content/data/ps/common/TripMapContentBuilder.java ===================================== @@ -51,6 +51,7 @@ import java.text.DateFormat; import java.util.LinkedList; import java.util.List; +import static io.ultreia.java4all.i18n.I18n.n; import static io.ultreia.java4all.i18n.I18n.t; /** @@ -85,8 +86,7 @@ public class TripMapContentBuilder extends fr.ird.observe.client.datasource.edit @Override protected void addPoints(List<TripMapPoint> tripMapPoints) throws FactoryException { - addPoints(tripMapPoints, TRIP_OBS_POINTS_LAYER_NAME); -// addPoints(tripMapPoints, TRIP_LOGBOOK_POINTS_LAYER_NAME); + addPoints(tripMapPoints, TRIP_OBS_POINTS_LAYER_NAME, n("observe.map.observation.points.not.valid")); } @Override ===================================== dto/src/main/java/fr/ird/observe/dto/data/TripMapPoint.java ===================================== @@ -22,29 +22,33 @@ package fr.ird.observe.dto.data; * #L% */ -import java.io.Serializable; -import java.util.Date; - -public class TripMapPoint implements Serializable { - - public static final String PROPERTY_TIME = "time"; - - public static final String PROPERTY_LATITUDE = "latitude"; +import fr.ird.observe.dto.ObserveDto; - public static final String PROPERTY_LONGITUDE = "longitude"; - - public static final String PROPERTY_TYPE = "type"; - - private static final long serialVersionUID = 1L; +import java.util.Date; +import java.util.Objects; + +public class TripMapPoint implements ObserveDto { + + public static TripMapPoint of(TripMapPointType type, Date time, Float latitude, Float longitude) { + TripMapPoint result = new TripMapPoint(); + result.setType(Objects.requireNonNull(type)); + result.setTime(time); + result.setLatitude(latitude); + result.setLongitude(longitude); + result.setValid(time != null && latitude != null && longitude != null); + return result; + } protected Date time; - protected float latitude; + protected Float latitude; - protected float longitude; + protected Float longitude; protected TripMapPointType type; + protected boolean valid; + public Date getTime() { return time; } @@ -53,19 +57,19 @@ public class TripMapPoint implements Serializable { this.time = time; } - public float getLatitude() { + public Float getLatitude() { return latitude; } - public void setLatitude(float latitude) { + public void setLatitude(Float latitude) { this.latitude = latitude; } - public float getLongitude() { + public Float getLongitude() { return longitude; } - public void setLongitude(float longitude) { + public void setLongitude(Float longitude) { this.longitude = longitude; } @@ -76,4 +80,12 @@ public class TripMapPoint implements Serializable { public void setType(TripMapPointType type) { this.type = type; } + + public boolean isValid() { + return valid; + } + + public void setValid(boolean valid) { + this.valid = valid; + } } ===================================== dto/src/main/java/fr/ird/observe/spi/DtoModelClasses.java ===================================== @@ -28,6 +28,8 @@ import fr.ird.observe.dto.referential.ReferentialDto; import fr.ird.observe.dto.referential.ll.common.HealthStatusDto; import fr.ird.observe.dto.referential.ll.observation.StomachFullnessDto; +import java.util.function.Predicate; + /** * Created by tchemit on 03/09/17. * @@ -35,6 +37,9 @@ import fr.ird.observe.dto.referential.ll.observation.StomachFullnessDto; */ public class DtoModelClasses { + public static final Predicate<String> IS_SEINE_ID = DtoModelClasses::isSeineId; + public static final Predicate<String> IS_LONGLINE_ID = DtoModelClasses::isLonglineId; + public static final ImmutableSet<Class<? extends ReferentialDto>> COMMON_REFERENTIAL_TYPES = ImmutableSet.of( fr.ird.observe.dto.referential.common.VesselSizeCategoryDto.class, fr.ird.observe.dto.referential.common.CountryDto.class, @@ -87,7 +92,7 @@ public class DtoModelClasses { fr.ird.observe.dto.referential.ps.observation.ReasonForDiscardDto.class, fr.ird.observe.dto.referential.ps.observation.SpeciesStatusDto.class, fr.ird.observe.dto.referential.ps.observation.ObservedSystemDto.class - ); + ); public static final ImmutableSet<Class<? extends ReferentialDto>> SEINE_REFERENTIAL_TYPES = ImmutableSet.<Class<? extends ReferentialDto>>builder() .addAll(SEINE_COMMON_REFERENTIAL_TYPES) @@ -141,7 +146,6 @@ public class DtoModelClasses { .addAll(SEINE_REFERENTIAL_TYPES) .addAll(LONGLINE_REFERENTIAL_TYPES) .build(); - private static final ImmutableSet<Class<? extends DataDto>> SEINE_ENTITY_DATA_TYPES = ImmutableSet.of( fr.ird.observe.dto.data.ps.observation.ActivityDto.class, fr.ird.observe.dto.data.ps.observation.FloatingObjectDto.class, ===================================== observe-i18n/src/main/i18n/translations/observe_en_GB.properties ===================================== @@ -2324,6 +2324,8 @@ observe.init.local.db.error=Could not find local database, will load last backup observe.init.no.initial.dump.detected=Internal data source %1$s not detected. observe.init.no.local.db.detected=Local data source %1$s not detected. observe.init.storage.done=Init of Persistent Service done. +observe.map.logbook.points.not.valid=LogBook - Number of none displayed points\: %d +observe.map.observation.points.not.valid=Observation - Number of none displayed points\: %d observe.menu.actions=Actions observe.menu.configuration=Configuration observe.menu.configuration.tip=To configure application ===================================== observe-i18n/src/main/i18n/translations/observe_es_ES.properties ===================================== @@ -2324,6 +2324,8 @@ observe.init.local.db.error=Imposible cargar la base local, se cargará el últi observe.init.no.initial.dump.detected=fuente de datos interna %1$s no detectada. observe.init.no.local.db.detected=Base local %1$s no detectada. observe.init.storage.done=Inicialización del servicio de persistencia terminado. +observe.map.logbook.points.not.valid=LogBook - Number of none displayed points\: %d \#TODO +observe.map.observation.points.not.valid=Observation - Number of none displayed points\: %d \#TODO observe.menu.actions=Acciones observe.menu.configuration=Configuración observe.menu.configuration.tip=Menú de configuración ===================================== observe-i18n/src/main/i18n/translations/observe_fr_FR.properties ===================================== @@ -2324,6 +2324,8 @@ observe.init.local.db.error=Impossible de charger la base locale, la dernière s observe.init.no.initial.dump.detected=Base embarquée %1$s non détectée. observe.init.no.local.db.detected=Base locale %1$s non détectée. observe.init.storage.done=Initialisation du service de persistance terminé. +observe.map.logbook.points.not.valid=Libre de bord - Nombre de points non affichés \: %d +observe.map.observation.points.not.valid=Observation - Nombre de points non affichés \: %d observe.menu.actions=Actions observe.menu.configuration=Configuration observe.menu.configuration.tip=Menu de configuration ===================================== persistence/src/main/java/fr/ird/observe/entities/Entities.java ===================================== @@ -22,10 +22,17 @@ package fr.ird.observe.entities; * #L% */ +import fr.ird.observe.dto.data.TripMapPoint; +import fr.ird.observe.dto.data.TripMapPointType; +import fr.ird.observe.entities.referential.common.Harbour; + +import java.sql.ResultSet; +import java.sql.SQLException; import java.util.Arrays; import java.util.Collections; +import java.util.Date; import java.util.List; -import java.util.function.Predicate; +import java.util.Optional; /** * Created on 8/27/14. @@ -122,15 +129,28 @@ public class Entities { }; public static final List<ObserveEntityEnum> REFERENCE_ENTITIES_LIST = Collections.unmodifiableList(Arrays.asList(REFERENCE_ENTITIES)); - public static final Predicate<String> IS_SEINE_ID = Entities::isSeineId; - public static final Predicate<String> IS_LONGLINE_ID = Entities::isLonglineId; - public static boolean isSeineId(String id) { - return id.contains(".ps."); + public static Float getFloat(ResultSet resultSet, int columnIndex) throws SQLException { + float result = resultSet.getFloat(columnIndex); + return resultSet.wasNull() ? null : result; + } + + public static Optional<TripMapPoint> createHarbourPoint(Harbour harbour, Date date, TripMapPointType tripMapPointType) { + TripMapPoint result = null; + if (harbour != null) { + result = TripMapPoint.of(tripMapPointType, date, harbour.getLatitude(), harbour.getLongitude()); + } + return Optional.ofNullable(result); } - public static boolean isLonglineId(String id) { - return id.contains(".ll."); + public static TripMapPoint createPoint(TripMapPointType type, Date dateTime, ResultSet resultSet, int columnIndex) throws SQLException { + Float latitude = getFloat(resultSet, columnIndex); + Float longitude = getFloat(resultSet, columnIndex + 1); + return TripMapPoint.of(type, dateTime, latitude, longitude); } + public static TripMapPoint createPoint(TripMapPointType type, ResultSet resultSet, int dateColumnIndex) throws SQLException { + java.sql.Date date = resultSet.getDate(dateColumnIndex); + return createPoint(type, date, resultSet, dateColumnIndex + 1); + } } ===================================== persistence/src/main/java/fr/ird/observe/entities/data/ll/common/TripTopiaDao.java ===================================== @@ -26,7 +26,7 @@ import com.google.common.collect.ImmutableMap; import fr.ird.observe.dto.data.TripMapConfigDto; import fr.ird.observe.dto.data.TripMapPoint; import fr.ird.observe.dto.data.TripMapPointType; -import fr.ird.observe.entities.referential.common.Harbour; +import fr.ird.observe.entities.Entities; import org.nuiton.topia.persistence.support.TopiaSqlQuery; import org.nuiton.topia.persistence.support.TopiaSqlSupport; import org.nuiton.util.DateUtil; @@ -42,7 +42,6 @@ import java.util.LinkedHashSet; import java.util.LinkedList; import java.util.List; import java.util.Objects; -import java.util.Optional; import java.util.stream.Collectors; public class TripTopiaDao extends AbstractTripTopiaDao<Trip> { @@ -57,7 +56,7 @@ public class TripTopiaDao extends AbstractTripTopiaDao<Trip> { LinkedHashSet<TripMapPoint> tripMapPoints = new LinkedHashSet<>(); // add departure harbour - createPoint(trip.getDepartureHarbour(), trip.getStartDate(), TripMapPointType.llTripDepartureHarbour).map(tripMapPoints::add); + Entities.createHarbourPoint(trip.getDepartureHarbour(), trip.getStartDate(), TripMapPointType.llTripDepartureHarbour).map(tripMapPoints::add); if (addObservation) { // Add Activities Observation @@ -73,7 +72,7 @@ public class TripTopiaDao extends AbstractTripTopiaDao<Trip> { } // add landing harbour - createPoint(trip.getLandingHarbour(), trip.getEndDate(), TripMapPointType.llTripLandingHarbour).map(tripMapPoints::add); + Entities.createHarbourPoint(trip.getLandingHarbour(), trip.getEndDate(), TripMapPointType.llTripLandingHarbour).map(tripMapPoints::add); return tripMapPoints; } @@ -128,10 +127,10 @@ public class TripTopiaDao extends AbstractTripTopiaDao<Trip> { return Collections.emptyList(); } return this. - <Trip>stream("From TripImpl Where vessel.id = :vesselId " + - "And (( :startDate <= endDate And :endDate >= endDate ) " + - " Or ( :endDate <= startDate And :endDate >= startDate )) " + - "Order By startDate, endDate", ImmutableMap.of( + <Trip>stream("From fr.ird.observe.entities.data.ll.common.TripImpl Where vessel.id = :vesselId " + + "And (( :startDate <= endDate And :endDate >= endDate ) " + + " Or ( :endDate <= startDate And :endDate >= startDate )) " + + "Order By startDate, endDate", ImmutableMap.of( "vesselId", vesselId, "startDate", startDate, "endDate", endDate)) @@ -146,6 +145,7 @@ public class TripTopiaDao extends AbstractTripTopiaDao<Trip> { " a.latitude," + " a.longitude," + " a.vesselActivity," + + " s.topiaId," + " s.settingStartTimestamp," + " s.settingStartLatitude," + " s.settingStartLongitude," + @@ -184,26 +184,32 @@ public class TripTopiaDao extends AbstractTripTopiaDao<Trip> { if (resultSet.getString(5) == null) { // simple activity - Optional<TripMapPoint> activity = createPoint(resultSet, 1, TripMapPointType.llActivityObs); - activity.ifPresent(result::add); + TripMapPoint activity = Entities.createPoint(TripMapPointType.llActivityObs, resultSet, 1); + result.add(activity); } // settingStart - Optional<TripMapPoint> settingStart = createPoint(resultSet, 5, TripMapPointType.llActivityObsWithSettingStart); - settingStart.ifPresent(result::add); + TripMapPoint settingStart = Entities.createPoint(TripMapPointType.llActivityObsWithSettingStart, resultSet, 6); + result.add(settingStart); // settingEnd - Optional<TripMapPoint> settingEnd = createPoint(resultSet, 8, TripMapPointType.llActivityObsWithSettingEnd); - settingEnd.ifPresent(result::add); + TripMapPoint settingEnd = Entities.createPoint(TripMapPointType.llActivityObsWithSettingEnd, resultSet, 9); + result.add(settingEnd); // haulingStart - Optional<TripMapPoint> haulingStart = createPoint(resultSet, 11, TripMapPointType.llActivityObsWithHaulingStart); - haulingStart.ifPresent(result::add); + TripMapPoint haulingStart = Entities.createPoint(TripMapPointType.llActivityObsWithHaulingStart, resultSet, 12); + result.add(haulingStart); // haulingEnd - Optional<TripMapPoint> haulingEnd = createPoint(resultSet, 14, TripMapPointType.llActivityObsWithHaulingEnd); - haulingEnd.ifPresent(result::add); - + TripMapPoint haulingEnd = Entities.createPoint(TripMapPointType.llActivityObsWithHaulingEnd, resultSet, 15); + result.add(haulingEnd); + + if (!(settingStart.isValid() && settingEnd.isValid() && haulingStart.isValid() && haulingEnd.isValid())) { + settingStart.setValid(false); + settingEnd.setValid(false); + haulingStart.setValid(false); + haulingEnd.setValid(false); + } return result; } } @@ -215,6 +221,7 @@ public class TripTopiaDao extends AbstractTripTopiaDao<Trip> { " a.latitude," + " a.longitude," + " a.vesselActivity," + + " s.topiaId," + " s.settingStartTimestamp," + " s.settingStartLatitude," + " s.settingStartLongitude," + @@ -253,25 +260,32 @@ public class TripTopiaDao extends AbstractTripTopiaDao<Trip> { if (resultSet.getString(5) == null) { // simple activity - Optional<TripMapPoint> activity = createPoint(resultSet, 1, TripMapPointType.llActivityLogbook); - activity.ifPresent(result::add); + TripMapPoint activity = Entities.createPoint(TripMapPointType.llActivityLogbook, resultSet, 1); + result.add(activity); } // settingStart - Optional<TripMapPoint> settingStart = createPoint(resultSet, 5, TripMapPointType.llActivityLogbookWithSettingStart); - settingStart.ifPresent(result::add); + TripMapPoint settingStart = Entities.createPoint(TripMapPointType.llActivityLogbookWithSettingStart, resultSet, 6); + result.add(settingStart); // settingEnd - Optional<TripMapPoint> settingEnd = createPoint(resultSet, 8, TripMapPointType.llActivityLogbookWithSettingEnd); - settingEnd.ifPresent(result::add); + TripMapPoint settingEnd = Entities.createPoint(TripMapPointType.llActivityLogbookWithSettingEnd, resultSet, 9); + result.add(settingEnd); // haulingStart - Optional<TripMapPoint> haulingStart = createPoint(resultSet, 11, TripMapPointType.llActivityLogbookWithHaulingStart); - haulingStart.ifPresent(result::add); + TripMapPoint haulingStart = Entities.createPoint(TripMapPointType.llActivityLogbookWithHaulingStart, resultSet, 12); + result.add(haulingStart); // haulingEnd - Optional<TripMapPoint> haulingEnd = createPoint(resultSet, 14, TripMapPointType.llActivityLogbookWithHaulingEnd); - haulingEnd.ifPresent(result::add); + TripMapPoint haulingEnd = Entities.createPoint(TripMapPointType.llActivityLogbookWithHaulingEnd, resultSet, 15); + result.add(haulingEnd); + + if (!(settingStart.isValid() && settingEnd.isValid() && haulingStart.isValid() && haulingEnd.isValid())) { + settingStart.setValid(false); + settingEnd.setValid(false); + haulingStart.setValid(false); + haulingEnd.setValid(false); + } return result; } @@ -315,29 +329,4 @@ public class TripTopiaDao extends AbstractTripTopiaDao<Trip> { } - private static Optional<TripMapPoint> createPoint(Harbour harbour, Date date, TripMapPointType tripMapPointType) { - TripMapPoint result = null; - if (harbour != null && harbour.getLatitude() != null && harbour.getLongitude() != null) { - result = new TripMapPoint(); - result.setTime(date); - result.setLatitude(harbour.getLatitude()); - result.setLongitude(harbour.getLongitude()); - result.setType(tripMapPointType); - } - return Optional.ofNullable(result); - } - - private static Optional<TripMapPoint> createPoint(ResultSet resultSet, int dateColumnIndex, TripMapPointType tripMapPointType) throws SQLException { - - TripMapPoint result = null; - if (resultSet.getString(dateColumnIndex) != null) { - result = new TripMapPoint(); - result.setTime(resultSet.getDate(dateColumnIndex)); - result.setLatitude(resultSet.getFloat(dateColumnIndex + 1)); - result.setLongitude(resultSet.getFloat(dateColumnIndex + 2)); - result.setType(tripMapPointType); - } - return Optional.ofNullable(result); - } - } ===================================== persistence/src/main/java/fr/ird/observe/entities/data/ps/common/TripTopiaDao.java ===================================== @@ -26,7 +26,7 @@ import fr.ird.observe.dto.ProtectedIds; import fr.ird.observe.dto.data.TripMapConfigDto; import fr.ird.observe.dto.data.TripMapPoint; import fr.ird.observe.dto.data.TripMapPointType; -import fr.ird.observe.entities.referential.common.Harbour; +import fr.ird.observe.entities.Entities; import org.nuiton.topia.persistence.support.TopiaSqlQuery; import org.nuiton.topia.persistence.support.TopiaSqlSupport; import org.nuiton.util.DateUtil; @@ -40,7 +40,6 @@ import java.util.Date; import java.util.LinkedHashSet; import java.util.List; import java.util.Objects; -import java.util.Optional; import java.util.stream.Collectors; /** @@ -58,14 +57,14 @@ public class TripTopiaDao extends AbstractTripTopiaDao<Trip> { LinkedHashSet<TripMapPoint> tripMapPoints = new LinkedHashSet<>(); // add departure harbour - createPoint(trip.getDepartureHarbour(), trip.getStartDate(), TripMapPointType.psTripDepartureHarbour).map(tripMapPoints::add); + Entities.createHarbourPoint(trip.getDepartureHarbour(), trip.getStartDate(), TripMapPointType.psTripDepartureHarbour).map(tripMapPoints::add); // Add Activities TripMapActivityPointQuery tripMapActivityPointQuery = new TripMapActivityPointQuery(tripId); tripMapPoints.addAll(topiaSqlSupport.findMultipleResult(tripMapActivityPointQuery)); // add landing harbour - createPoint(trip.getLandingHarbour(), trip.getEndDate(), TripMapPointType.psTripLandingHarbour).map(tripMapPoints::add); + Entities.createHarbourPoint(trip.getLandingHarbour(), trip.getEndDate(), TripMapPointType.psTripLandingHarbour).map(tripMapPoints::add); return tripMapPoints; } @@ -75,7 +74,7 @@ public class TripTopiaDao extends AbstractTripTopiaDao<Trip> { return Collections.emptyList(); } return this. - <Trip>stream("From TripImpl Where vessel.id = :vesselId " + + <Trip>stream("From fr.ird.observe.entities.data.ps.common.TripImpl Where vessel.id = :vesselId " + "And (( :startDate <= endDate And :endDate >= endDate ) " + " Or ( :endDate <= startDate And :endDate >= startDate )) " + "Order By startDate, endDate", ImmutableMap.of( @@ -119,32 +118,32 @@ public class TripTopiaDao extends AbstractTripTopiaDao<Trip> { @Override public TripMapPoint prepareResult(ResultSet resultSet) throws SQLException { - TripMapPoint point = new TripMapPoint(); - Date time = DateUtil.getDateAndTime(resultSet.getDate(1), resultSet.getTime(2), true, false); - point.setTime(time); - point.setLatitude(resultSet.getFloat(3)); - point.setLongitude(resultSet.getFloat(4)); + TripMapPointType type; + if (ProtectedIds.PS_COMMON_ACTIVITY_HARBOUR_ID.equals(resultSet.getString(5))) { - point.setType(TripMapPointType.psActivityObsInHarbour); + type = TripMapPointType.psActivityObsInHarbour; } else if (resultSet.getString(6) == null) { - point.setType(TripMapPointType.psActivityObs); + type = TripMapPointType.psActivityObs; } else { String schoolType = resultSet.getString(6); switch (schoolType) { case ProtectedIds.PS_COMMON_SCHOOL_TYPE_FREE_ID: - point.setType(TripMapPointType.psActivityObsWithFreeSchoolType); + type = TripMapPointType.psActivityObsWithFreeSchoolType; break; case ProtectedIds.PS_COMMON_SCHOOL_TYPE_OBJECT_ID: - point.setType(TripMapPointType.psActivityObsWithObjectSchoolType); + type = TripMapPointType.psActivityObsWithObjectSchoolType; break; default: - point.setType(TripMapPointType.psActivityObs); + type = TripMapPointType.psActivityObs; } } - return point; + + Date time = DateUtil.getDateAndTime(resultSet.getDate(1), resultSet.getTime(2), true, false); + return Entities.createPoint(type, time, resultSet, 3); } } + public boolean updateEndDate(Trip trip) { boolean wasUpdated = false; @@ -230,16 +229,4 @@ public class TripTopiaDao extends AbstractTripTopiaDao<Trip> { } - private static Optional<TripMapPoint> createPoint(Harbour harbour, Date date, TripMapPointType tripMapPointType) { - TripMapPoint result = null; - if (harbour != null && harbour.getLatitude() != null && harbour.getLongitude() != null) { - result = new TripMapPoint(); - result.setTime(date); - result.setLatitude(harbour.getLatitude()); - result.setLongitude(harbour.getLongitude()); - result.setType(tripMapPointType); - } - return Optional.ofNullable(result); - } - } ===================================== services-local/src/main/java/fr/ird/observe/services/local/service/actions/validate/ValidateServiceLocal.java ===================================== @@ -31,7 +31,6 @@ import fr.ird.observe.dto.referential.ReferentialDto; import fr.ird.observe.dto.referential.ReferentialLocale; import fr.ird.observe.dto.referential.common.SpeciesDto; import fr.ird.observe.dto.referential.ps.observation.ObservedSystemReference; -import fr.ird.observe.entities.Entities; import fr.ird.observe.entities.data.TripAware; import fr.ird.observe.entities.referential.ReferentialEntity; import fr.ird.observe.entities.referential.common.Species; @@ -47,6 +46,7 @@ import fr.ird.observe.services.service.actions.validate.ValidateService; import fr.ird.observe.services.service.actions.validate.ValidationRequest; import fr.ird.observe.services.service.referential.ReferentialService; import fr.ird.observe.spi.DbModelHelper; +import fr.ird.observe.spi.DtoModelClasses; import fr.ird.observe.spi.type.TypeTranslators; import fr.ird.observe.validation.ServiceValidationContext; import fr.ird.observe.validation.ValidatorsMap; @@ -156,7 +156,7 @@ public class ValidateServiceLocal extends ObserveServiceLocal implements Validat private void validateData(String dataId, ValidationMessageDetector detector, ServiceValidationContext validationContext, Set<SpeciesDto> species) { TripAware<?, ?> trip; - if (Entities.isSeineId(dataId)) { + if (DtoModelClasses.isSeineId(dataId)) { trip = fr.ird.observe.entities.data.ps.common.Trip.loadEntity(getTopiaPersistenceContext(), dataId); } else { trip = fr.ird.observe.entities.data.ll.common.Trip.loadEntity(getTopiaPersistenceContext(), dataId); ===================================== services-local/src/main/java/fr/ird/observe/services/local/service/referential/ReferentialServiceLocal.java ===================================== @@ -34,7 +34,6 @@ import fr.ird.observe.dto.referential.ReferenceStatus; import fr.ird.observe.dto.referential.ReferentialDto; import fr.ird.observe.dto.referential.ReferentialLocale; import fr.ird.observe.dto.result.SaveResultDto; -import fr.ird.observe.entities.Entities; import fr.ird.observe.entities.ObserveEntityEnum; import fr.ird.observe.entities.ObserveTopiaPersistenceContext; import fr.ird.observe.entities.data.ll.common.Trip; @@ -247,11 +246,11 @@ public class ReferentialServiceLocal extends ObserveServiceLocal implements Refe ReferentialShellBuilder referentialShellBuilder = ReferentialShellBuilder.builder(request.getCentralSourceReferential()); for (String tripId : request.getTripIds()) { - if (Entities.isLonglineId(tripId)) { + if (DtoModelClasses.isLonglineId(tripId)) { Trip trip = fr.ird.observe.entities.data.ll.common.Trip.loadEntity(getTopiaPersistenceContext(), tripId); log.info("Compute missing referential for trip: " + tripId); referentialShellBuilder.scan(trip); - } else if (Entities.isSeineId(tripId)) { + } else if (DtoModelClasses.isSeineId(tripId)) { fr.ird.observe.entities.data.ps.common.Trip trip = fr.ird.observe.entities.data.ps.common.Trip.loadEntity(getTopiaPersistenceContext(), tripId); log.info("Compute missing referential for trip: " + tripId); referentialShellBuilder.scan(trip); ===================================== services-local/src/main/java/fr/ird/observe/services/local/service/sql/SqlScriptProducerServiceLocal.java ===================================== @@ -25,7 +25,6 @@ package fr.ird.observe.services.local.service.sql; import com.google.common.collect.ImmutableSet; import com.google.common.collect.ListMultimap; import fr.ird.observe.dto.reference.ReferentialDtoReference; -import fr.ird.observe.entities.Entities; import fr.ird.observe.entities.ObserveEntityEnum; import fr.ird.observe.entities.ObserveTopiaApplicationContext; import fr.ird.observe.services.local.service.ObserveServiceLocal; @@ -33,6 +32,7 @@ import fr.ird.observe.services.service.sql.AddSqlScriptProducerRequest; import fr.ird.observe.services.service.sql.DeleteSqlScriptProducerRequest; import fr.ird.observe.services.service.sql.SqlScriptProducerService; import fr.ird.observe.spi.DbModelHelper; +import fr.ird.observe.spi.DtoModelClasses; import org.apache.commons.collections4.CollectionUtils; import org.nuiton.topia.persistence.metadata.TopiaMetadataModel; import org.nuiton.topia.persistence.script.TopiaBlobsContainer; @@ -46,8 +46,8 @@ import java.util.List; import java.util.Set; import java.util.stream.Collectors; -import static fr.ird.observe.entities.Entities.IS_LONGLINE_ID; -import static fr.ird.observe.entities.Entities.IS_SEINE_ID; +import static fr.ird.observe.spi.DtoModelClasses.IS_LONGLINE_ID; +import static fr.ird.observe.spi.DtoModelClasses.IS_SEINE_ID; import static fr.ird.observe.entities.Entities.REFERENCE_ENTITIES_LIST; /** @@ -174,14 +174,14 @@ public class SqlScriptProducerServiceLocal extends ObserveServiceLocal implement } else { { - Set<String> tripIds1 = tripIds.stream().filter(Entities.IS_SEINE_ID).collect(Collectors.toSet()); + Set<String> tripIds1 = tripIds.stream().filter(DtoModelClasses.IS_SEINE_ID).collect(Collectors.toSet()); if (!tripIds1.isEmpty()) { builder.addDeleteTablesRequest(topiaApplicationContext.getTripSeineTables(), TopiaSqlTableSelectArgument.of(tripIds1)); } } { - Set<String> tripIds1 = tripIds.stream().filter(Entities.IS_LONGLINE_ID).collect(Collectors.toSet()); + Set<String> tripIds1 = tripIds.stream().filter(DtoModelClasses.IS_LONGLINE_ID).collect(Collectors.toSet()); if (!tripIds1.isEmpty()) { builder.addDeleteTablesRequest(topiaApplicationContext.getTripLonglineTables(), TopiaSqlTableSelectArgument.of(tripIds1)); } View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/fddb45997dd5c9dd2e087ded… -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/fddb45997dd5c9dd2e087ded… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][develop] Ajouter une option pour ne pas afficher la légende dans la carte - Closes #1557
by Tony CHEMIT 29 Jun '20

29 Jun '20
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: fddb4599 by Tony Chemit at 2020-06-29T13:00:49+02:00 Ajouter une option pour ne pas afficher la légende dans la carte - Closes #1557 - - - - - 9 changed files: - client-core/src/main/java/fr/ird/observe/client/util/ObserveKeyStrokesSupport.java - client-datasource-editor-common/src/main/i18n/getters/java.getter - client-datasource-editor-common/src/main/java/fr/ird/observe/client/datasource/editor/content/data/trip/map/ObserveMapPane.java - client-datasource-editor-common/src/main/java/fr/ird/observe/client/datasource/editor/content/data/trip/map/TripMapUI.jaxx - client-datasource-editor-common/src/main/java/fr/ird/observe/client/datasource/editor/content/data/trip/map/TripMapUIHandler.java - + client-datasource-editor-common/src/main/java/fr/ird/observe/client/datasource/editor/content/data/trip/map/actions/ToggleLegend.java - observe-i18n/src/main/i18n/translations/observe_en_GB.properties - observe-i18n/src/main/i18n/translations/observe_es_ES.properties - observe-i18n/src/main/i18n/translations/observe_fr_FR.properties Changes: ===================================== client-core/src/main/java/fr/ird/observe/client/util/ObserveKeyStrokesSupport.java ===================================== @@ -91,6 +91,7 @@ public abstract class ObserveKeyStrokesSupport { public static final KeyStroke KEY_STROKE_SHOW_REFERENTIAL = KeyStroke.getKeyStroke("ctrl pressed F4"); public static final KeyStroke KEY_STROKE_SHOW_EMPTY_PROGRAM = KeyStroke.getKeyStroke("ctrl pressed F5"); public static final KeyStroke KEY_STROKE_SHOW_DISABLED_PROGRAM = KeyStroke.getKeyStroke("ctrl pressed F6"); + public static final KeyStroke KEY_STROKE_TOGGLE_LEGEND = KeyStroke.getKeyStroke("ctrl pressed L"); public static final KeyStroke KEY_STROKE_COPY_VALUES_AND_SAVE = KeyStroke.getKeyStroke("ctrl pressed T"); public static final KeyStroke KEY_STROKE_SAVE_TABLE_ENTRY = KeyStroke.getKeyStroke("ctrl pressed S"); @@ -110,7 +111,7 @@ public abstract class ObserveKeyStrokesSupport { public static final KeyStroke KEY_STROKE_MAP_EXPORT = KeyStroke.getKeyStroke("ctrl pressed S"); public static final KeyStroke KEY_STROKE_MAP_ZOOM_IT = KeyStroke.getKeyStroke("ctrl pressed I"); public static final KeyStroke KEY_STROKE_MAP_ZOOM_PLUS = KeyStroke.getKeyStroke("ctrl pressed P"); - public static final KeyStroke KEY_STROKE_MAP_ZOOM_MINUS = KeyStroke.getKeyStroke("ctrl pressed L"); + public static final KeyStroke KEY_STROKE_MAP_ZOOM_MINUS = KeyStroke.getKeyStroke("ctrl pressed R"); public static final KeyStroke KEY_STROKE_SHIFT_ALT_ENTER = KeyStroke.getKeyStroke("alt shift pressed ENTER"); public static final KeyStroke KEY_STROKE_SHOW_TECHNICAL_INFORMATION = KeyStroke.getKeyStroke("shift pressed F1"); ===================================== client-datasource-editor-common/src/main/i18n/getters/java.getter ===================================== @@ -11,6 +11,8 @@ observe.content.map.export.chooseFile.ok observe.content.map.export.chooseFile.png observe.content.map.export.chooseFile.title observe.content.map.export.success +observe.content.map.legend +observe.content.map.legend.tip observe.content.map.miles observe.content.map.north observe.content.map.showLogbook ===================================== client-datasource-editor-common/src/main/java/fr/ird/observe/client/datasource/editor/content/data/trip/map/ObserveMapPane.java ===================================== @@ -69,6 +69,7 @@ public class ObserveMapPane extends JMapPane { protected double rotation; private long scaleInMiles; + private boolean showLegend = true; public ObserveMapPane() { labelScaleUp = "0 m"; @@ -95,6 +96,16 @@ public class ObserveMapPane extends JMapPane { firePropertyChange("scaleInMiles", oldValue, scaleInMiles); } + public boolean isShowLegend() { + return showLegend; + } + + public void setShowLegend(boolean showLegend) { + boolean oldValue = isShowLegend(); + this.showLegend = showLegend; + firePropertyChange("showLegend", oldValue, showLegend); + } + protected void updateScale() { ReferencedEnvelope displayArea = getDisplayArea(); double dpi = 2.54 / 100; // pour avoir l'echélle en metre/pixel @@ -226,7 +237,7 @@ public class ObserveMapPane extends JMapPane { protected void paintLegend(Graphics graphics) { - if (legendItems != null) { + if (getLegendItems() != null && isShowLegend()) { int x = 0; int y = getHeight() - ObserveMapPaneLegendItem.LEGEND_ITEM_HEIGHT * legendItems.size() - 2 * LEGEND_MARGIN; ===================================== client-datasource-editor-common/src/main/java/fr/ird/observe/client/datasource/editor/content/data/trip/map/TripMapUI.jaxx ===================================== @@ -33,6 +33,7 @@ <JButton id='zoomPlus'/> <JButton id='zoomMinus'/> <JButton id='exportPng'/> + <JToggleButton id="toggleLegend"/> </JToolBar> <JPanel id="config" constraints="BorderLayout.SOUTH" layout="{new GridLayout(1,0)}" beanScope="tripMapConfig"> <BeanCheckBox id="addObservations"/> ===================================== client-datasource-editor-common/src/main/java/fr/ird/observe/client/datasource/editor/content/data/trip/map/TripMapUIHandler.java ===================================== @@ -37,6 +37,7 @@ import org.geotools.swing.event.MapPaneEvent; import org.geotools.swing.event.MapPaneListener; import org.nuiton.jaxx.runtime.spi.UIHandler; +import javax.swing.SwingUtilities; import java.awt.Point; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; @@ -178,6 +179,7 @@ public class TripMapUIHandler implements UIHandler<TripMapUI> { public void init() { init(ui.getAddObservations()); init(ui.getAddLogbook()); + ui.getToggleLegend().setSelected(true); } public ReferencedEnvelope getTripArea() { @@ -206,6 +208,11 @@ public class TripMapUIHandler implements UIHandler<TripMapUI> { editor.init(true, false); } + public void updateMap(boolean showLegend) { + getObserveMapPane().setShowLegend(showLegend); + SwingUtilities.invokeLater(getObserveMapPane()::repaint); + } + private class MouseMapListener implements MouseWheelListener, MouseListener, MouseMotionListener { Point2D startPointInWorld; ===================================== client-datasource-editor-common/src/main/java/fr/ird/observe/client/datasource/editor/content/data/trip/map/actions/ToggleLegend.java ===================================== @@ -0,0 +1,54 @@ +package fr.ird.observe.client.datasource.editor.content.data.trip.map.actions; + +/*- + * #%L + * ObServe :: Client DataSource Editor Common + * %% + * Copyright (C) 2008 - 2020 IRD, Code Lutin, Ultreia.io + * %% + * 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.client.datasource.editor.content.data.trip.map.TripMapUI; +import fr.ird.observe.client.util.ObserveKeyStrokesSupport; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import java.awt.event.ActionEvent; + +import static io.ultreia.java4all.i18n.I18n.t; + +public class ToggleLegend extends TripMapUIActionSupport { + private static final Logger log = LogManager.getLogger(ToggleLegend.class); + + public ToggleLegend() { + super( + t("observe.content.map.legend"), + t("observe.content.map.legend.tip"), + "show-help", + ObserveKeyStrokesSupport.KEY_STROKE_TOGGLE_LEGEND); + + } + + @Override + protected void doActionPerformed(ActionEvent e, TripMapUI ui) { + boolean selected = ui.getToggleLegend().isSelected(); + log.info(String.format("Was showing legend? %b", selected)); + boolean newValue = !selected; + ui.getToggleLegend().setSelected(newValue); + ui.getHandler().updateMap(newValue); + } +} ===================================== observe-i18n/src/main/i18n/translations/observe_en_GB.properties ===================================== @@ -741,12 +741,14 @@ observe.content.map.export.chooseFile.ok=Exporter observe.content.map.export.chooseFile.png=PNG image observe.content.map.export.chooseFile.title=Export map observe.content.map.export.success=Map exported (%s) +observe.content.map.legend=Legend observe.content.map.legend.hauling=Hauling observe.content.map.legend.logbook.hauling=Logbook - Hauling observe.content.map.legend.logbook.setting=Logbook - setting observe.content.map.legend.obs.hauling=Observation - Hauling observe.content.map.legend.obs.setting=Observation - setting observe.content.map.legend.setting=setting +observe.content.map.legend.tip=To display or hide legend observe.content.map.legend.tripBetweenTwoDays=Night trip observe.content.map.legend.tripDay=Day trip observe.content.map.miles=miles ===================================== observe-i18n/src/main/i18n/translations/observe_es_ES.properties ===================================== @@ -741,12 +741,14 @@ observe.content.map.export.chooseFile.ok=Exportar observe.content.map.export.chooseFile.png=imagen PNG observe.content.map.export.chooseFile.title=Exportar el mapa observe.content.map.export.success=Mapa exportada (%s) +observe.content.map.legend=Legend \#TODO observe.content.map.legend.hauling=Arrastre observe.content.map.legend.logbook.hauling=Logbook - Arrastre observe.content.map.legend.logbook.setting=Logbook - Calada observe.content.map.legend.obs.hauling=Observation - Arrastre observe.content.map.legend.obs.setting=Observation - Calada observe.content.map.legend.setting=Calada +observe.content.map.legend.tip=To display or hide legend \#TODO observe.content.map.legend.tripBetweenTwoDays=Trayecto del noche observe.content.map.legend.tripDay=Trayecto del día observe.content.map.miles=milles ===================================== observe-i18n/src/main/i18n/translations/observe_fr_FR.properties ===================================== @@ -741,12 +741,14 @@ observe.content.map.export.chooseFile.ok=Exporter observe.content.map.export.chooseFile.png=image PNG observe.content.map.export.chooseFile.title=Exporter la carte observe.content.map.export.success=Carte exportée (%s) +observe.content.map.legend=Légende observe.content.map.legend.hauling=Virage observe.content.map.legend.logbook.hauling=Livre de bord - Virage observe.content.map.legend.logbook.setting=Livre de bord - Filage observe.content.map.legend.obs.hauling=Observation - Virage observe.content.map.legend.obs.setting=Observation - Filage observe.content.map.legend.setting=Filage +observe.content.map.legend.tip=Pour afficher ou masquer la légende observe.content.map.legend.tripBetweenTwoDays=Trajet de nuit observe.content.map.legend.tripDay=Trajet de jour observe.content.map.miles=milles View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/fddb45997dd5c9dd2e087dedb… -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/fddb45997dd5c9dd2e087dedb… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][develop] 3 commits: L'ajout d'une caractéristique d'équipement plante - Closes #1516
by Tony CHEMIT 29 Jun '20

29 Jun '20
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: 87301103 by Tony Chemit at 2020-06-29T08:40:43+02:00 L&#39;ajout d&#39;une caractéristique d&#39;équipement plante - Closes #1516 - - - - - 1e710af4 by Tony Chemit at 2020-06-29T08:51:57+02:00 LL Observations / Echec d&#39;enregistrement d&#39;une capture - Closes #1519 - - - - - 35d8e24e by Tony Chemit at 2020-06-29T09:44:03+02:00 Amélioration de l&#39;onglet Sauvegarde (Actions longues) - Closes #1555 - - - - - 13 changed files: - client-datasource-actions/src/main/i18n/getters/java.getter - client-datasource-actions/src/main/java/fr/ird/observe/client/datasource/actions/save/SaveLocalUI.jcss - client-datasource-actions/src/main/java/fr/ird/observe/client/datasource/actions/save/actions/ChooseBackupDirectory.java - client-datasource-actions/src/main/java/fr/ird/observe/client/datasource/actions/save/actions/SelectDoBackup.java - client-datasource-editor-ll/src/main/java/fr/ird/observe/client/datasource/editor/content/data/ll/common/GearUseFeaturesMeasurementsTableModel.java - client-datasource-editor-ll/src/main/java/fr/ird/observe/client/datasource/editor/content/data/ll/common/GearUseFeaturesUIHandler.java - client-datasource-editor-ll/src/main/java/fr/ird/observe/client/datasource/editor/content/data/ll/observation/BasketTableModel.java - client-datasource-editor-ll/src/main/java/fr/ird/observe/client/datasource/editor/content/data/ll/observation/BranchlineTableModel.java - client-datasource-editor-ll/src/main/java/fr/ird/observe/client/datasource/editor/content/data/ll/observation/SizeMeasureTableModel.java - client-datasource-editor-ll/src/main/java/fr/ird/observe/client/datasource/editor/content/data/ll/observation/WeightMeasureTableModel.java - client-datasource-editor-ps/src/main/java/fr/ird/observe/client/datasource/editor/content/data/ps/common/GearUseFeaturesMeasurementsTableModel.java - client-datasource-editor-ps/src/main/java/fr/ird/observe/client/datasource/editor/content/data/ps/common/GearUseFeaturesUIHandler.java - client-datasource-editor-ps/src/main/java/fr/ird/observe/client/datasource/editor/content/data/ps/observation/FloatingObjectUIHandler.java Changes: ===================================== client-datasource-actions/src/main/i18n/getters/java.getter ===================================== @@ -12,7 +12,6 @@ observe.action.config.export.required.write.data observe.action.continue observe.action.copy observe.action.copy.to.clipBoard -observe.action.do.backup observe.action.do.backup.tip observe.action.goto.next.stage observe.action.goto.next.stage.tip ===================================== client-datasource-actions/src/main/java/fr/ird/observe/client/datasource/actions/save/SaveLocalUI.jcss ===================================== @@ -56,7 +56,7 @@ enabled:{stepModel.isDoBackup()}; } -#chooseBackupFile { +#chooseBackupDirectory { enabled:{stepModel.isDoBackup()}; } ===================================== client-datasource-actions/src/main/java/fr/ird/observe/client/datasource/actions/save/actions/ChooseBackupDirectory.java ===================================== @@ -35,7 +35,7 @@ public class ChooseBackupDirectory extends SaveLocalUIActionSupport { public ChooseBackupDirectory() { - super(t("observe.action.continue"), t("observe.action.continue"), "fileChooser", ObserveKeyStrokesSupport.KEY_STROKE_STORAGE_DO_CHOOSE_FILE); + super("", t("observe.action.choose.db.dump.directory"), "fileChooser", ObserveKeyStrokesSupport.KEY_STROKE_STORAGE_DO_CHOOSE_FILE); } @Override @@ -46,6 +46,8 @@ public class ChooseBackupDirectory extends SaveLocalUIActionSupport { t("observe.action.choose.db.dump.directory"), new File(ui.getDirectoryText().getText()) ); - ui.getHandler().changeDirectory(f); + if (f != null) { + ui.getHandler().changeDirectory(f); + } } } ===================================== client-datasource-actions/src/main/java/fr/ird/observe/client/datasource/actions/save/actions/SelectDoBackup.java ===================================== @@ -22,6 +22,7 @@ package fr.ird.observe.client.datasource.actions.save.actions; * #L% */ +import fr.ird.observe.client.datasource.actions.save.SaveLocalModel; import fr.ird.observe.client.datasource.actions.save.SaveLocalUI; import fr.ird.observe.client.util.ObserveKeyStrokesSupport; @@ -32,11 +33,13 @@ import static io.ultreia.java4all.i18n.I18n.t; public class SelectDoBackup extends SaveLocalUIActionSupport { public SelectDoBackup() { - super(t("observe.action.do.backup"), t("observe.action.do.backup.tip"), null, ObserveKeyStrokesSupport.KEY_STROKE_STORAGE_DO_BACKUP); + super(t("observe.action.do.backup.tip"), t("observe.action.do.backup.tip"), "save", ObserveKeyStrokesSupport.KEY_STROKE_STORAGE_DO_BACKUP); } @Override protected void doActionPerformed(ActionEvent e, SaveLocalUI ui) { - ui.getStepModel().setDoBackup(ui.getStepModel().isDoBackup()); + SaveLocalModel stepModel = ui.getStepModel(); + boolean newValue = !stepModel.isDoBackup(); + stepModel.setDoBackup(newValue); } } ===================================== client-datasource-editor-ll/src/main/java/fr/ird/observe/client/datasource/editor/content/data/ll/common/GearUseFeaturesMeasurementsTableModel.java ===================================== @@ -23,9 +23,12 @@ package fr.ird.observe.client.datasource.editor.content.data.ll.common; */ import fr.ird.observe.client.datasource.editor.content.ui.table.EditableTableWithCacheTableModelSupport; +import fr.ird.observe.dto.IdDto; import fr.ird.observe.dto.data.ll.common.GearUseFeaturesMeasurementDto; import fr.ird.observe.dto.referential.common.GearCaracteristicReference; +import java.util.Date; + /** * Created on 4/7/15. * @@ -134,6 +137,6 @@ public class GearUseFeaturesMeasurementsTableModel extends EditableTableWithCach @Override protected GearUseFeaturesMeasurementDto createNewRow() { - return new GearUseFeaturesMeasurementDto(); + return IdDto.newDto(GearUseFeaturesMeasurementDto.class, new Date()); } } ===================================== client-datasource-editor-ll/src/main/java/fr/ird/observe/client/datasource/editor/content/data/ll/common/GearUseFeaturesUIHandler.java ===================================== @@ -29,6 +29,7 @@ import fr.ird.observe.client.datasource.editor.content.data.table.ContentTableUI import fr.ird.observe.client.datasource.editor.content.data.table.ContentTableUILayoutFocusTraversalPolicy; import fr.ird.observe.client.datasource.editor.content.ui.table.EditableTableModelSupport; import fr.ird.observe.client.util.UIHelper; +import fr.ird.observe.dto.IdDto; import fr.ird.observe.dto.data.ll.common.GearUseFeaturesDto; import fr.ird.observe.dto.data.ll.common.GearUseFeaturesMeasurementDto; import fr.ird.observe.dto.data.ll.common.TripGearUseFeaturesDto; @@ -55,6 +56,7 @@ import java.beans.PropertyChangeListener; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; +import java.util.Date; import java.util.List; import java.util.stream.Collectors; @@ -319,7 +321,7 @@ public class GearUseFeaturesUIHandler extends ContentTableUIHandler<TripGearUseF return gearDto.getGearCaracteristic().stream() .map(input -> { - GearUseFeaturesMeasurementDto measurementLonglineDto = new GearUseFeaturesMeasurementDto(); + GearUseFeaturesMeasurementDto measurementLonglineDto = IdDto.newDto(GearUseFeaturesMeasurementDto.class, new Date()); measurementLonglineDto.setGearCaracteristic(input); if (input.getGearCaracteristicType().isBoolean()) { measurementLonglineDto.setMeasurementValue(Boolean.FALSE.toString()); ===================================== client-datasource-editor-ll/src/main/java/fr/ird/observe/client/datasource/editor/content/data/ll/observation/BasketTableModel.java ===================================== @@ -22,9 +22,12 @@ package fr.ird.observe.client.datasource.editor.content.data.ll.observation; * #L% */ +import fr.ird.observe.dto.IdDto; import fr.ird.observe.dto.data.ll.observation.BasketDto; import fr.ird.observe.dto.data.ll.observation.SectionTemplate; +import java.util.Date; + /** * Created on 12/11/14. * @@ -40,7 +43,7 @@ public class BasketTableModel extends LonglineCompositionObsTableModelSupport<Ba @Override public BasketDto createNewRow() { - return new BasketDto(); + return IdDto.newDto(BasketDto.class, new Date()); } @Override ===================================== client-datasource-editor-ll/src/main/java/fr/ird/observe/client/datasource/editor/content/data/ll/observation/BranchlineTableModel.java ===================================== @@ -22,6 +22,7 @@ package fr.ird.observe.client.datasource.editor.content.data.ll.observation; * #L% */ +import fr.ird.observe.dto.IdDto; import fr.ird.observe.dto.data.ll.observation.BranchlineDto; import java.util.Date; @@ -49,7 +50,7 @@ public class BranchlineTableModel extends LonglineCompositionObsTableModelSuppor @Override public BranchlineDto createNewRow() { - BranchlineDto branchline = new BranchlineDto(); + BranchlineDto branchline = IdDto.newDto(BranchlineDto.class, new Date()); branchline.setTimerTimeOnBoard(defaultDate); branchline.setTimer(useTimer); return branchline; ===================================== client-datasource-editor-ll/src/main/java/fr/ird/observe/client/datasource/editor/content/data/ll/observation/SizeMeasureTableModel.java ===================================== @@ -23,9 +23,12 @@ package fr.ird.observe.client.datasource.editor.content.data.ll.observation; */ import fr.ird.observe.client.datasource.editor.content.ui.table.EditableTableWithCacheTableModelSupport; +import fr.ird.observe.dto.IdDto; import fr.ird.observe.dto.data.ll.observation.SizeMeasureDto; import fr.ird.observe.dto.referential.common.SizeMeasureTypeReference; +import java.util.Date; + /** * Created on 12/3/14. * @@ -48,6 +51,7 @@ public class SizeMeasureTableModel extends EditableTableWithCacheTableModelSuppo @Override protected boolean isRowValid(SizeMeasureDto valid) { Float size = valid.getSize(); + //FIXME This is a hardcoded validation ? return !(valid.getSizeMeasureType() == null || size == null) && size > 0 && size < 1000; } @@ -97,7 +101,7 @@ public class SizeMeasureTableModel extends EditableTableWithCacheTableModelSuppo @Override protected SizeMeasureDto createNewRow() { - return new SizeMeasureDto(); + return IdDto.newDto(SizeMeasureDto.class, new Date()); } } ===================================== client-datasource-editor-ll/src/main/java/fr/ird/observe/client/datasource/editor/content/data/ll/observation/WeightMeasureTableModel.java ===================================== @@ -23,9 +23,12 @@ package fr.ird.observe.client.datasource.editor.content.data.ll.observation; */ import fr.ird.observe.client.datasource.editor.content.ui.table.EditableTableWithCacheTableModelSupport; +import fr.ird.observe.dto.IdDto; import fr.ird.observe.dto.data.ll.observation.WeightMeasureDto; import fr.ird.observe.dto.referential.common.WeightMeasureTypeReference; +import java.util.Date; + /** * Created on 12/3/14. * @@ -48,12 +51,13 @@ public class WeightMeasureTableModel extends EditableTableWithCacheTableModelSup @Override public boolean isRowValid(WeightMeasureDto valid) { Float weight = valid.getWeight(); + //FIXME This is a hardcoded validation ? return !(valid.getWeightMeasureType() == null || weight == null) && weight > 0 && weight < 1000; } @Override protected WeightMeasureDto createNewRow() { - return new WeightMeasureDto(); + return IdDto.newDto(WeightMeasureDto.class, new Date()); } @Override ===================================== client-datasource-editor-ps/src/main/java/fr/ird/observe/client/datasource/editor/content/data/ps/common/GearUseFeaturesMeasurementsTableModel.java ===================================== @@ -23,9 +23,12 @@ package fr.ird.observe.client.datasource.editor.content.data.ps.common; */ import fr.ird.observe.client.datasource.editor.content.ui.table.EditableTableWithCacheTableModelSupport; +import fr.ird.observe.dto.IdDto; import fr.ird.observe.dto.data.ps.common.GearUseFeaturesMeasurementDto; import fr.ird.observe.dto.referential.common.GearCaracteristicReference; +import java.util.Date; + /** * Created on 4/7/15. * @@ -129,6 +132,6 @@ public class GearUseFeaturesMeasurementsTableModel extends EditableTableWithCach @Override protected GearUseFeaturesMeasurementDto createNewRow() { - return new GearUseFeaturesMeasurementDto(); + return IdDto.newDto(GearUseFeaturesMeasurementDto.class, new Date()); } } ===================================== client-datasource-editor-ps/src/main/java/fr/ird/observe/client/datasource/editor/content/data/ps/common/GearUseFeaturesUIHandler.java ===================================== @@ -29,6 +29,7 @@ import fr.ird.observe.client.datasource.editor.content.data.table.ContentTableUI import fr.ird.observe.client.datasource.editor.content.data.table.ContentTableUILayoutFocusTraversalPolicy; import fr.ird.observe.client.datasource.editor.content.ui.table.EditableTableModelSupport; import fr.ird.observe.client.util.UIHelper; +import fr.ird.observe.dto.IdDto; import fr.ird.observe.dto.data.ps.common.GearUseFeaturesDto; import fr.ird.observe.dto.data.ps.common.GearUseFeaturesMeasurementDto; import fr.ird.observe.dto.data.ps.common.TripGearUseFeaturesDto; @@ -55,6 +56,7 @@ import java.beans.PropertyChangeListener; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; +import java.util.Date; import java.util.List; import java.util.stream.Collectors; @@ -152,7 +154,7 @@ public class GearUseFeaturesUIHandler extends ContentTableUIHandler<TripGearUseF return gearDto.getGearCaracteristic().stream() .map(input -> { - GearUseFeaturesMeasurementDto measurementSeineDto = new GearUseFeaturesMeasurementDto(); + GearUseFeaturesMeasurementDto measurementSeineDto = IdDto.newDto(GearUseFeaturesMeasurementDto.class, new Date()); if (input.getGearCaracteristicType().isBoolean()) { measurementSeineDto.setMeasurementValue(Boolean.FALSE.toString()); } ===================================== client-datasource-editor-ps/src/main/java/fr/ird/observe/client/datasource/editor/content/data/ps/observation/FloatingObjectUIHandler.java ===================================== @@ -338,7 +338,7 @@ public class FloatingObjectUIHandler extends ContentEditUIHandler<FloatingObject if (transmittingBuoy == null) { - TransmittingBuoyHelper.copyTransmittingBuoyDto(new TransmittingBuoyDto(), editBean); + TransmittingBuoyHelper.copyTransmittingBuoyDto(TransmittingBuoyDto.newDto(TransmittingBuoyDto.class, new Date()), editBean); editBean.setCreateDate(new Date()); editBean.setTransmittingBuoyOperation(operation); View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/3b49578350849a8311258b59… -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/3b49578350849a8311258b59… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][develop] 2 commits: L'ajout d'une caractéristique d'équipement plante - Closes #1516
by Tony CHEMIT 29 Jun '20

29 Jun '20
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: daeeb76a by Tony Chemit at 2020-06-29T08:27:27+02:00 L&#39;ajout d&#39;une caractéristique d&#39;équipement plante - Closes #1516 - - - - - 3b495783 by Tony Chemit at 2020-06-29T08:30:09+02:00 LL Observations / Echec d&#39;enregistrement d&#39;une capture - Closes #1519 - - - - - 4 changed files: - client-datasource-editor-ll/src/main/java/fr/ird/observe/client/datasource/editor/content/data/ll/common/GearUseFeaturesUIHandler.java - client-datasource-editor-ll/src/main/java/fr/ird/observe/client/datasource/editor/content/data/ll/observation/SizeMeasureTableModel.java - client-datasource-editor-ll/src/main/java/fr/ird/observe/client/datasource/editor/content/data/ll/observation/WeightMeasureTableModel.java - client-datasource-editor-ps/src/main/java/fr/ird/observe/client/datasource/editor/content/data/ps/common/GearUseFeaturesUIHandler.java Changes: ===================================== client-datasource-editor-ll/src/main/java/fr/ird/observe/client/datasource/editor/content/data/ll/common/GearUseFeaturesUIHandler.java ===================================== @@ -29,6 +29,7 @@ import fr.ird.observe.client.datasource.editor.content.data.table.ContentTableUI import fr.ird.observe.client.datasource.editor.content.data.table.ContentTableUILayoutFocusTraversalPolicy; import fr.ird.observe.client.datasource.editor.content.ui.table.EditableTableModelSupport; import fr.ird.observe.client.util.UIHelper; +import fr.ird.observe.dto.IdDto; import fr.ird.observe.dto.data.ll.common.GearUseFeaturesDto; import fr.ird.observe.dto.data.ll.common.GearUseFeaturesMeasurementDto; import fr.ird.observe.dto.data.ll.common.TripGearUseFeaturesDto; @@ -55,6 +56,7 @@ import java.beans.PropertyChangeListener; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; +import java.util.Date; import java.util.List; import java.util.stream.Collectors; @@ -319,7 +321,7 @@ public class GearUseFeaturesUIHandler extends ContentTableUIHandler<TripGearUseF return gearDto.getGearCaracteristic().stream() .map(input -> { - GearUseFeaturesMeasurementDto measurementLonglineDto = new GearUseFeaturesMeasurementDto(); + GearUseFeaturesMeasurementDto measurementLonglineDto = IdDto.newDto(GearUseFeaturesMeasurementDto.class, new Date()); measurementLonglineDto.setGearCaracteristic(input); if (input.getGearCaracteristicType().isBoolean()) { measurementLonglineDto.setMeasurementValue(Boolean.FALSE.toString()); ===================================== client-datasource-editor-ll/src/main/java/fr/ird/observe/client/datasource/editor/content/data/ll/observation/SizeMeasureTableModel.java ===================================== @@ -23,9 +23,12 @@ package fr.ird.observe.client.datasource.editor.content.data.ll.observation; */ import fr.ird.observe.client.datasource.editor.content.ui.table.EditableTableWithCacheTableModelSupport; +import fr.ird.observe.dto.IdDto; import fr.ird.observe.dto.data.ll.observation.SizeMeasureDto; import fr.ird.observe.dto.referential.common.SizeMeasureTypeReference; +import java.util.Date; + /** * Created on 12/3/14. * @@ -48,6 +51,7 @@ public class SizeMeasureTableModel extends EditableTableWithCacheTableModelSuppo @Override protected boolean isRowValid(SizeMeasureDto valid) { Float size = valid.getSize(); + //FIXME This is a hardcoded validation ? return !(valid.getSizeMeasureType() == null || size == null) && size > 0 && size < 1000; } @@ -97,7 +101,7 @@ public class SizeMeasureTableModel extends EditableTableWithCacheTableModelSuppo @Override protected SizeMeasureDto createNewRow() { - return new SizeMeasureDto(); + return IdDto.newDto(SizeMeasureDto.class, new Date()); } } ===================================== client-datasource-editor-ll/src/main/java/fr/ird/observe/client/datasource/editor/content/data/ll/observation/WeightMeasureTableModel.java ===================================== @@ -23,9 +23,12 @@ package fr.ird.observe.client.datasource.editor.content.data.ll.observation; */ import fr.ird.observe.client.datasource.editor.content.ui.table.EditableTableWithCacheTableModelSupport; +import fr.ird.observe.dto.IdDto; import fr.ird.observe.dto.data.ll.observation.WeightMeasureDto; import fr.ird.observe.dto.referential.common.WeightMeasureTypeReference; +import java.util.Date; + /** * Created on 12/3/14. * @@ -48,12 +51,13 @@ public class WeightMeasureTableModel extends EditableTableWithCacheTableModelSup @Override public boolean isRowValid(WeightMeasureDto valid) { Float weight = valid.getWeight(); + //FIXME This is a hardcoded validation ? return !(valid.getWeightMeasureType() == null || weight == null) && weight > 0 && weight < 1000; } @Override protected WeightMeasureDto createNewRow() { - return new WeightMeasureDto(); + return IdDto.newDto(WeightMeasureDto.class, new Date()); } @Override ===================================== client-datasource-editor-ps/src/main/java/fr/ird/observe/client/datasource/editor/content/data/ps/common/GearUseFeaturesUIHandler.java ===================================== @@ -29,6 +29,7 @@ import fr.ird.observe.client.datasource.editor.content.data.table.ContentTableUI import fr.ird.observe.client.datasource.editor.content.data.table.ContentTableUILayoutFocusTraversalPolicy; import fr.ird.observe.client.datasource.editor.content.ui.table.EditableTableModelSupport; import fr.ird.observe.client.util.UIHelper; +import fr.ird.observe.dto.IdDto; import fr.ird.observe.dto.data.ps.common.GearUseFeaturesDto; import fr.ird.observe.dto.data.ps.common.GearUseFeaturesMeasurementDto; import fr.ird.observe.dto.data.ps.common.TripGearUseFeaturesDto; @@ -55,6 +56,7 @@ import java.beans.PropertyChangeListener; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; +import java.util.Date; import java.util.List; import java.util.stream.Collectors; @@ -152,7 +154,7 @@ public class GearUseFeaturesUIHandler extends ContentTableUIHandler<TripGearUseF return gearDto.getGearCaracteristic().stream() .map(input -> { - GearUseFeaturesMeasurementDto measurementSeineDto = new GearUseFeaturesMeasurementDto(); + GearUseFeaturesMeasurementDto measurementSeineDto = IdDto.newDto(GearUseFeaturesMeasurementDto.class, new Date()); if (input.getGearCaracteristicType().isBoolean()) { measurementSeineDto.setMeasurementValue(Boolean.FALSE.toString()); } View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/7e94d30f6384c72165b201cf… -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/7e94d30f6384c72165b201cf… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][develop] 14 commits: Ajout d'une méthode de mesure de poids par défaut sur Estimations du banc - Closes #1510
by Tony CHEMIT 29 Jun '20

29 Jun '20
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: 3a5e6544 by Tony Chemit at 2020-06-29T08:10:32+02:00 Ajout d&#39;une méthode de mesure de poids par défaut sur Estimations du banc - Closes #1510 - - - - - 9cb86fc5 by Tony Chemit at 2020-06-29T08:10:34+02:00 Renommer un onglet sur form Marée LL - Closes #1521 - - - - - c63f7620 by Tony Chemit at 2020-06-29T08:10:34+02:00 LL Observations / Capture / déprédation : libellé - Closes #1520 [LL][Logbook] opération de pêche / libellé - Closes #1526 - - - - - 45ad272d by Tony Chemit at 2020-06-29T08:10:34+02:00 [LL][Logbooks] Besoin de pouvoir mettre les horodatages à NULL - Closes #1523 - - - - - 93bef350 by Tony Chemit at 2020-06-29T08:10:34+02:00 [LL Logbook Activity] Revoir finement l&#39;activité observée associée à une activité logbook - See #1551 - - - - - 609bb0d3 by Tony Chemit at 2020-06-29T08:10:34+02:00 Revoir les barres de progressions - Closes #1417 - - - - - 576e1632 by Tony Chemit at 2020-06-29T08:10:34+02:00 Try a new RC and use stable toolkit - - - - - eb6c6450 by Tony Chemit at 2020-06-29T08:10:34+02:00 [LL] Appairement des activités : cosmétique - Closes #1537 - - - - - 6595086f by Tony Chemit at 2020-06-29T08:10:34+02:00 [LL][Echantillon logbook] Cosmétique échantillon dans l&#39;arbre - Closes #1535 - - - - - 34c2f432 by Tony Chemit at 2020-06-29T08:10:34+02:00 [LL][Logbooks] Form Opération de pêche / Capture : champs actifs en fonction du mode de saisie - Closes #1534 - - - - - 24116d14 by Tony Chemit at 2020-06-29T08:10:34+02:00 [CALCULS] L&#39;assistant calculs bloque après la sélection des marées - Closes #1547 - - - - - 52cdc0e1 by Tony Chemit at 2020-06-29T08:10:34+02:00 update changelog [skip ci] - - - - - cba750bc by Tony Chemit at 2020-06-29T08:10:34+02:00 Add a fixme to be done - - - - - 7e94d30f by Tony Chemit at 2020-06-29T08:10:34+02:00 Libellés référentiels - Closes #1509 - - - - - 30 changed files: - CHANGELOG.md - client-configuration/pom.xml - client-core/pom.xml - client-core/src/main/java/fr/ird/observe/client/datasource/api/ObserveDataSourcesManager.java - client-core/src/main/java/fr/ird/observe/client/datasource/api/ObserveSwingDataSource.java - client-core/src/main/java/fr/ird/observe/client/util/ProgressModel.java - client-datasource-actions/pom.xml - client-datasource-actions/src/main/i18n/getters/java.getter - client-datasource-actions/src/main/java/fr/ird/observe/client/datasource/actions/actions/AdminTabUIActionSupport.java - client-datasource-actions/src/main/java/fr/ird/observe/client/datasource/actions/consolidate/actions/Start.java - client-datasource-actions/src/main/java/fr/ird/observe/client/datasource/actions/export/actions/Start.java - client-datasource-actions/src/main/java/fr/ird/observe/client/datasource/actions/longline/pairing/actions/Prepare.java - client-datasource-actions/src/main/java/fr/ird/observe/client/datasource/actions/longline/pairing/tree/ActivityLonglinePairingTreeTableModel.java - client-datasource-actions/src/main/java/fr/ird/observe/client/datasource/actions/longline/pairing/tree/node/ActivityLonglinePairingActivityNode.java - client-datasource-actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/data/actions/Apply.java - client-datasource-actions/src/main/java/fr/ird/observe/client/datasource/actions/validate/actions/Start.java - client-datasource-editor-api/pom.xml - client-datasource-editor-api/src/main/java/fr/ird/observe/client/datasource/editor/DataSourceEditorBodyContent.java - client-datasource-editor-api/src/main/java/fr/ird/observe/client/datasource/editor/DataSourceEditorHandler.java - client-datasource-editor-api/src/main/java/fr/ird/observe/client/datasource/editor/wizard/StorageBackupUILauncher.java - client-datasource-editor-common/pom.xml - client-datasource-editor-ll/pom.xml - client-datasource-editor-ll/src/main/java/fr/ird/observe/client/datasource/editor/content/data/ll/logbook/ActivityUI.jcss - client-datasource-editor-ll/src/main/java/fr/ird/observe/client/datasource/editor/content/data/ll/logbook/CatchUIHandler.java - client-datasource-editor-ll/src/main/java/fr/ird/observe/client/datasource/editor/content/data/ll/logbook/SetUI.jcss - client-datasource-editor-ps/pom.xml - client-datasource-editor-ps/src/main/java/fr/ird/observe/client/datasource/editor/content/data/ps/observation/ObjectSchoolEstimateUIModel.java - client-datasource-editor-ps/src/main/java/fr/ird/observe/client/datasource/editor/content/data/ps/observation/SchoolEstimateUIModel.java - client-runner/pom.xml - dto-spi/pom.xml The diff was not included because it is too large. View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/4e13843a4985bacf13fa2bbd… -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/4e13843a4985bacf13fa2bbd… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][develop] Libellés référentiels - Closes #1509
by Tony CHEMIT 29 Jun '20

29 Jun '20
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: 4e13843a by Tony Chemit at 2020-06-29T08:06:35+02:00 Libellés référentiels - Closes #1509 - - - - - 3 changed files: - observe-i18n/src/main/i18n/translations/observe_en_GB.properties - observe-i18n/src/main/i18n/translations/observe_es_ES.properties - observe-i18n/src/main/i18n/translations/observe_fr_FR.properties Changes: ===================================== observe-i18n/src/main/i18n/translations/observe_en_GB.properties ===================================== @@ -784,7 +784,7 @@ observe.data.Data.endDate=End date observe.data.Data.haulingIdentifier=Hauling identifier observe.data.Data.hookLost=Hook lost observe.data.Data.landingHarbour=Landing harbour -observe.data.Data.lengthMeasureMethod=Length measure method +observe.data.Data.lengthMeasureMethod=Size measure type observe.data.Data.message.historical.data=Historical data (can be closed, even if not valid) observe.data.Data.observer=Observer observe.data.Data.program=Program @@ -797,7 +797,7 @@ observe.data.Data.timerTimeOnBoard=Time on board observe.data.Data.traceCutOff=Trace cut off observe.data.Data.type=<html><body>Data of type <i>%s</i> observe.data.Data.vessel=Vessel -observe.data.Data.weightMeasureMethod=Weight measure method +observe.data.Data.weightMeasureMethod=Weight measure type observe.data.Openable.action.closeAndCreate=Close and create observe.data.Openable.action.closeAndCreate.tip=Close current element and create a new one observe.data.Openable.action.reopen=Re-open @@ -2459,8 +2459,8 @@ observe.referential.common.LengthLengthParameter.sex=Sex observe.referential.common.LengthLengthParameter.startDate=Start date observe.referential.common.LengthLengthParameter.type=Length length parameter observe.referential.common.LengthLengthParameter.types=Length length parameters -observe.referential.common.LengthMeasureMethod.type=Length measure method -observe.referential.common.LengthMeasureMethod.types=Length measure methods +observe.referential.common.LengthMeasureMethod.type=Size measure type +observe.referential.common.LengthMeasureMethod.types=Size measure types observe.referential.common.LengthWeightParameter.coefficients=Coefficients observe.referential.common.LengthWeightParameter.endDate=End date observe.referential.common.LengthWeightParameter.generalTab=General caracteristics @@ -2589,8 +2589,8 @@ observe.referential.common.VesselSizeCategory.type=Vessel size category observe.referential.common.VesselSizeCategory.types=Vessel size categories observe.referential.common.VesselType.type=Vessel type observe.referential.common.VesselType.types=Vessel types -observe.referential.common.WeightMeasureMethod.type=Weight measure method -observe.referential.common.WeightMeasureMethod.types=Weight measure methods +observe.referential.common.WeightMeasureMethod.type=Weight measure type +observe.referential.common.WeightMeasureMethod.types=Weight measure types observe.referential.common.WeightMeasureType.type=Weight measure type observe.referential.common.WeightMeasureType.types=Weight measure types observe.referential.common.Wind.speedRange=Speed range ===================================== observe-i18n/src/main/i18n/translations/observe_es_ES.properties ===================================== @@ -784,7 +784,7 @@ observe.data.Data.endDate=Fecha de fin observe.data.Data.haulingIdentifier=Arrastre observe.data.Data.hookLost=Anzuelo erdido observe.data.Data.landingHarbour=Puerto de desembarque -observe.data.Data.lengthMeasureMethod=Méthode de mesure de taille \#TODO +observe.data.Data.lengthMeasureMethod=Método de medición del tamaño observe.data.Data.message.historical.data=Datos históricos (puede cerrarse incluso sin validar) observe.data.Data.observer=Observador observe.data.Data.program=Programa @@ -797,7 +797,7 @@ observe.data.Data.timerTimeOnBoard=Timestamp de subida a bordo observe.data.Data.traceCutOff=Bajo de línea cortada observe.data.Data.type=<html><body>Dato de tipo <i>%s</i> observe.data.Data.vessel=Buque -observe.data.Data.weightMeasureMethod=Méthode de mesure de poids \#TODO +observe.data.Data.weightMeasureMethod=Método de medición de peso observe.data.Openable.action.closeAndCreate=Cerrar y crear observe.data.Openable.action.closeAndCreate.tip=Cierre el elemento activo y crear un nuevo observe.data.Openable.action.reopen=Reabrir @@ -2459,8 +2459,8 @@ observe.referential.common.LengthLengthParameter.sex=Sexo observe.referential.common.LengthLengthParameter.startDate=Fecha de comienzo observe.referential.common.LengthLengthParameter.type=Relación Tamaño-Tamaño observe.referential.common.LengthLengthParameter.types=Relaciones Tamaño-Tamaño -observe.referential.common.LengthMeasureMethod.type=Méthode d'estimation de taille \#TODO -observe.referential.common.LengthMeasureMethod.types=Méthodes d'estimation de taille \#TODO +observe.referential.common.LengthMeasureMethod.type=Método de medición del tamaño +observe.referential.common.LengthMeasureMethod.types=Método de medición del tamaño observe.referential.common.LengthWeightParameter.coefficients=Coeficientes observe.referential.common.LengthWeightParameter.endDate=Fecha de fin observe.referential.common.LengthWeightParameter.generalTab=Características generales @@ -2589,8 +2589,8 @@ observe.referential.common.VesselSizeCategory.type=Categoría de buque observe.referential.common.VesselSizeCategory.types=Categorías de buque observe.referential.common.VesselType.type=Tipo de pesquería observe.referential.common.VesselType.types=Tipos de pesquería -observe.referential.common.WeightMeasureMethod.type=Méthode d'estimation de poids \#TODO -observe.referential.common.WeightMeasureMethod.types=Méthodes d'estimation de poids \#TODO +observe.referential.common.WeightMeasureMethod.type=Método de medición de peso +observe.referential.common.WeightMeasureMethod.types=Método de medición de peso observe.referential.common.WeightMeasureType.type=Tipo de medida de peso observe.referential.common.WeightMeasureType.types=Tipos de medida de peso observe.referential.common.Wind.speedRange=Texto velocidad del viento ===================================== observe-i18n/src/main/i18n/translations/observe_fr_FR.properties ===================================== @@ -2459,8 +2459,8 @@ observe.referential.common.LengthLengthParameter.sex=Sexe observe.referential.common.LengthLengthParameter.startDate=Début de validité observe.referential.common.LengthLengthParameter.type=Relation Taille-Taille observe.referential.common.LengthLengthParameter.types=Relations Taille-Taille -observe.referential.common.LengthMeasureMethod.type=Méthode d'estimation de taille -observe.referential.common.LengthMeasureMethod.types=Méthodes d'estimation de taille +observe.referential.common.LengthMeasureMethod.type=Méthode de mesure de taille +observe.referential.common.LengthMeasureMethod.types=Méthodes de mesure de taille observe.referential.common.LengthWeightParameter.coefficients=Coefficients observe.referential.common.LengthWeightParameter.endDate=Fin de validité observe.referential.common.LengthWeightParameter.generalTab=Caractéristiques générales @@ -2589,8 +2589,8 @@ observe.referential.common.VesselSizeCategory.type=Catégorie de bateau observe.referential.common.VesselSizeCategory.types=Catégories de bateau observe.referential.common.VesselType.type=Type de pêcherie observe.referential.common.VesselType.types=Types de pêcherie -observe.referential.common.WeightMeasureMethod.type=Méthode d'estimation de poids -observe.referential.common.WeightMeasureMethod.types=Méthodes d'estimation de poids +observe.referential.common.WeightMeasureMethod.type=Méthode de mesure de poids +observe.referential.common.WeightMeasureMethod.types=Méthodes de mesure de poids observe.referential.common.WeightMeasureType.type=Type de mesure de poids observe.referential.common.WeightMeasureType.types=Types de mesure de poids observe.referential.common.Wind.speedRange=Libellé vitesse vent View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/4e13843a4985bacf13fa2bbd2… -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/4e13843a4985bacf13fa2bbd2… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][develop] 2 commits: update changelog [skip ci]
by Tony CHEMIT 27 Jun '20

27 Jun '20
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: f94b5b2f by Tony Chemit at 2020-06-27T20:02:45+02:00 update changelog [skip ci] - - - - - 29fb236f by Tony Chemit at 2020-06-27T20:02:58+02:00 Add a fixme to be done - - - - - 2 changed files: - CHANGELOG.md - dto/src/main/java/fr/ird/observe/dto/decoration/DecoratorService.java Changes: ===================================== CHANGELOG.md ===================================== @@ -1,7 +1,7 @@ # ObServe changelog * Author [Tony Chemit](mailto:dev@tchemit.fr) - * Last generated at 2020-06-22 19:14. + * Last generated at 2020-06-27 20:02. ## Version [8.0-RC-7](https://gitlab.com/ultreiaio/ird-observe/milestones/161) ===================================== dto/src/main/java/fr/ird/observe/dto/decoration/DecoratorService.java ===================================== @@ -39,6 +39,7 @@ import java.util.Comparator; * @author Tony Chemit - dev(a)tchemit.fr * @since 1.3 */ +//FIXME This should not be a application component, but just something, somewhere else!!! @GenerateApplicationComponent( name = "Decoration service", dependencies = ReferentialLocaleConfig.class View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/eaed2fad340b9f7dcb181fb0… -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/eaed2fad340b9f7dcb181fb0… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][develop] [CALCULS] L'assistant calculs bloque après la sélection des marées - Closes #1547
by Tony CHEMIT 27 Jun '20

27 Jun '20
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: eaed2fad by Tony Chemit at 2020-06-27T19:54:57+02:00 [CALCULS] L&#39;assistant calculs bloque après la sélection des marées - Closes #1547 - - - - - 1 changed file: - services-local/src/main/java/fr/ird/observe/services/local/service/actions/consolidate/ConsolidateDataServiceLocal.java Changes: ===================================== services-local/src/main/java/fr/ird/observe/services/local/service/actions/consolidate/ConsolidateDataServiceLocal.java ===================================== @@ -28,7 +28,6 @@ import fr.ird.observe.dto.data.ps.NonTargetCatchComputedValueSource; import fr.ird.observe.dto.data.ps.observation.FloatingObjectDto; import fr.ird.observe.dto.data.ps.observation.FloatingObjectPartDto; import fr.ird.observe.dto.decoration.DecoratorService; -import fr.ird.observe.dto.decoration.DecoratorServiceApplicationComponent; import fr.ird.observe.dto.referential.I18nReferentialHelper; import fr.ird.observe.dto.referential.ReferentialLocale; import fr.ird.observe.entities.EntityHelper; @@ -54,6 +53,7 @@ import fr.ird.observe.entities.referential.common.Species; import fr.ird.observe.entities.referential.ps.common.SchoolType; import fr.ird.observe.entities.referential.ps.common.SpeciesFate; import fr.ird.observe.entities.referential.ps.observation.ObjectMaterial; +import fr.ird.observe.services.local.ObserveServiceContextLocal; import fr.ird.observe.services.local.service.ObserveServiceLocal; import fr.ird.observe.services.service.actions.consolidate.ConsolidateDataService; import fr.ird.observe.services.service.actions.consolidate.ConsolidateTripSeineDataRequest; @@ -143,6 +143,13 @@ public class ConsolidateDataServiceLocal extends ObserveServiceLocal implements } return ImmutableMap.copyOf(mappingBuilder); } + private DecoratorService decoratorService; + + @Override + public void setServiceContext(ObserveServiceContextLocal serviceContext) { + super.setServiceContext(serviceContext); + decoratorService = new DecoratorService(ConsolidateDataServiceLocal.this::getReferentialLocale); + } @Override public ConsolidateTripSeineDataResult consolidateTripSeine(SimplifiedObjectTypeSpecializedRules simplifiedObjectTypeSpecializedRules, ConsolidateTripSeineDataRequest request) { @@ -154,7 +161,6 @@ public class ConsolidateDataServiceLocal extends ObserveServiceLocal implements SimplifiedObjectTypeManager simplifiedObjectTypeManager = newSimplifiedObjectTypeManager(simplifiedObjectTypeSpecializedRules); FloatingObjectConsolidateEngine floatingObjectConsolidateEngine = new FloatingObjectConsolidateEngine(simplifiedObjectTypeManager); - DecoratorService decoratorService = DecoratorServiceApplicationComponent.value(); Optional<ConsolidateTripSeineDataResult> consolidateTripSeineDataResult = consolidateTripSeine(decoratorService,referenceLocale, floatingObjectConsolidateEngine, request.getTripSeineId(), failIfLengthWeightParameterNotFound, failIfLengthLengthParameterNotFound); return consolidateTripSeineDataResult.orElse(null); } View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/eaed2fad340b9f7dcb181fb04… -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/eaed2fad340b9f7dcb181fb04… You're receiving this email because of your account on gitlab.com.
1 0
0 0
  • ← Newer
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • Older →

HyperKitty Powered by HyperKitty version 1.3.12.