Observe-commits
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
- 7199 discussions
[Git][ultreiaio/ird-observe][develop] 2 commits: [7.6.3][PS] Les thonidés sont disponibles dans la liste déroulante du form...
by Tony CHEMIT 01 Jul '20
by Tony CHEMIT 01 Jul '20
01 Jul '20
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
5e1b7baa by Tony Chemit at 2020-07-01T13:45:10+02:00
[7.6.3][PS] Les thonidés sont disponibles dans la liste déroulante du form Espèces accessoires, alors qu'ils ne sont pas dans la display liste correspondante - Closes #1562 (report v8)
- - - - -
db96c24b by Tony Chemit at 2020-07-01T13:48:53+02:00
Deux comportements étranges sur l'assistant tableaux de synthèse - Closes #1533 (report v8)
- - - - -
3 changed files:
- client-datasource-actions/src/main/java/fr/ird/observe/client/datasource/actions/config/ConfigModel.java
- client-datasource-actions/src/main/java/fr/ird/observe/client/datasource/actions/report/ReportModel.java
- client-datasource-editor-ps/src/main/java/fr/ird/observe/client/datasource/editor/content/data/ps/observation/NonTargetCatchUIHandler.java
Changes:
=====================================
client-datasource-actions/src/main/java/fr/ird/observe/client/datasource/actions/config/ConfigModel.java
=====================================
@@ -27,6 +27,7 @@ import fr.ird.observe.client.datasource.actions.AdminActionModel;
import fr.ird.observe.client.datasource.actions.AdminStep;
import fr.ird.observe.client.datasource.actions.AdminUI;
import fr.ird.observe.client.datasource.actions.AdminUIModel;
+import fr.ird.observe.client.datasource.actions.report.ReportModel;
import fr.ird.observe.client.datasource.actions.synchronize.referential.ng.ReferentialSynchronizeMode;
import fr.ird.observe.client.datasource.api.ObserveDataSourcesManagerApplicationComponent;
import fr.ird.observe.client.datasource.api.ObserveSwingDataSource;
@@ -37,6 +38,7 @@ import fr.ird.observe.client.util.ObserveKeyStrokesSupport;
import fr.ird.observe.client.util.UIHelper;
import fr.ird.observe.services.configuration.ObserveDataSourceConfiguration;
import fr.ird.observe.services.configuration.ObserveDataSourceInformation;
+import fr.ird.observe.services.service.actions.report.Report;
import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
@@ -44,6 +46,7 @@ import org.apache.logging.log4j.Logger;
import java.beans.PropertyChangeListener;
import java.io.File;
import java.util.EnumSet;
+import java.util.List;
import java.util.Objects;
import static fr.ird.observe.client.constants.DbMode.USE_LOCAL;
@@ -365,8 +368,10 @@ public class ConfigModel extends AdminActionModel {
if (uiModel.containsOperation(AdminStep.REPORT)) {
// il faut le fichier di'mport existe
- File reportFile = uiModel.getReportModel().getReportFile();
- validate &= reportFile != null && reportFile.exists();
+ ReportModel reportModel = uiModel.getReportModel();
+ File reportFile = reportModel.getReportFile();
+ List<Report> reports = reportModel.getReports();
+ validate &= reportFile != null && reportFile.exists() && reports!=null && !reports.isEmpty();
}
if (uiModel.containsOperation(AdminStep.ACTIVITY_LONGLINE_PAIRING)) {
validate &= localSourceModel.getDataSourceInformation() != null
=====================================
client-datasource-actions/src/main/java/fr/ird/observe/client/datasource/actions/report/ReportModel.java
=====================================
@@ -39,6 +39,8 @@ import java.beans.PropertyChangeListener;
import java.io.File;
import java.io.IOException;
import java.net.URL;
+import java.nio.file.Files;
+import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
@@ -184,12 +186,18 @@ public class ReportModel extends AdminActionModel {
public List<Report> getAllReports() {
if (allReports == null) {
- try {
- URL resource = reportFile.toURI().toURL();
- allReports = loadReports(resource);
- log.debug(String.format("Add loaded %d report(s).", allReports.size()));
- } catch (IOException e) {
- throw new IllegalStateException(String.format("Could not load reports definition file (%s).", reportFile), e);
+ if (reportFile == null || Files.notExists(reportFile.toPath())) {
+ log.warn("No report file, no reports loaded.");
+ allReports = Collections.emptyList();
+ } else {
+ try {
+ URL resource = reportFile.toURI().toURL();
+ allReports = loadReports(resource);
+ log.debug(String.format("Add loaded %d report(s).", allReports.size()));
+ } catch (IOException e) {
+ throw new IllegalStateException(
+ String.format("Could not load reports definition file (%s).", reportFile), e);
+ }
}
}
return allReports;
@@ -257,6 +265,7 @@ public class ReportModel extends AdminActionModel {
public void updateReports() {
setSelectedReport(null);
+ allReports = null;
if (reportFile == null) {
return;
}
@@ -272,12 +281,11 @@ public class ReportModel extends AdminActionModel {
File reportFile = ObserveClientResourceManager.Resource.report.getFile(config.getReportDirectory());
if (reportFile.exists()) {
- log.info(String.format("Will use report file : %s", reportFile));
-
- setReportFile(reportFile);
+ log.info(String.format("Will use default report file : %s", reportFile));
} else {
log.warn(String.format("Default report file %s does not exists.", reportFile));
}
+ setReportFile(reportFile);
// on ecoute la modification du modèle
PropertyChangeListener listenReportModified = evt -> {
=====================================
client-datasource-editor-ps/src/main/java/fr/ird/observe/client/datasource/editor/content/data/ps/observation/NonTargetCatchUIHandler.java
=====================================
@@ -179,13 +179,6 @@ public class NonTargetCatchUIHandler extends ContentTableUIHandler<SetNonTargetC
protected void loadEditBean(String beanId) {
Form<SetNonTargetCatchDto> form = getPsObservationNonTargetCatchService().loadForm(beanId);
getModel().openForm(form);
- //FIXME voir pk on faisait ça à ce moment
-// addReferentialFilter(NonTargetCatchDto.PROPERTY_SPECIES, (ReferentialReferencesFilter<SpeciesDto, SpeciesReference>) incomingReferences -> {
-// String speciesListId = getClientConfig().getSpeciesListSeineObservationNonTargetCatchId();
-// String tripId = ObserveSelectModelApplicationComponent.value().getSeine().getTrip().getId();
-// List<SpeciesReference> result = getTripService().getSpeciesByListAndTrip(tripId, speciesListId).toList();
-// return DtoReferenceCollection.filterEnabled(result);
-// });
}
@Override
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/621d20eb4303b6d0fb9854bd…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/621d20eb4303b6d0fb9854bd…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop-7.x] [7.6.3][PS] Les thonidés sont disponibles dans la liste déroulante du form...
by Tony CHEMIT 01 Jul '20
by Tony CHEMIT 01 Jul '20
01 Jul '20
Tony CHEMIT pushed to branch develop-7.x at ultreiaio / ird-observe
Commits:
da612dee by Tony Chemit at 2020-07-01T13:42:27+02:00
[7.6.3][PS] Les thonidés sont disponibles dans la liste déroulante du form Espèces accessoires, alors qu'ils ne sont pas dans la display liste correspondante - Closes #1562
- - - - -
1 changed file:
- client-core/src/main/java/fr/ird/observe/client/ui/content/data/seine/NonTargetCatchUIHandler.java
Changes:
=====================================
client-core/src/main/java/fr/ird/observe/client/ui/content/data/seine/NonTargetCatchUIHandler.java
=====================================
@@ -124,6 +124,16 @@ public class NonTargetCatchUIHandler extends ContentTableUIHandler<SetSeineNonTa
NonTargetCatchDto source = (NonTargetCatchDto) evt.getSource();
source.setMeanLengthComputedSource(null);
};
+ addReferentialFilter(NonTargetCatchDto.PROPERTY_SPECIES, (ReferentialReferencesFilter<SpeciesDto, SpeciesReference>) incomingReferences -> {
+
+ String speciesListId = ObserveSwingApplicationContext.get().getConfig().getSpeciesListSeineNonTargetCatchId();
+ String tripId = getDataContext().getSelectedTripSeineId();
+
+ List<SpeciesReference> result = getTripSeineService().getSpeciesByListAndTrip(tripId, speciesListId).toList();
+
+ return DtoReferenceCollection.filterEnabled(result);
+
+ });
}
String getCatchWeightDataTip(NonTargetCatchComputedValueSource computed) {
@@ -375,16 +385,6 @@ public class NonTargetCatchUIHandler extends ContentTableUIHandler<SetSeineNonTa
loadReferentialReferenceSetsInModel(form);
getModel().setForm(form);
SetSeineNonTargetCatchHelper.copySetSeineNonTargetCatchDto(form.getObject(), getBean());
- addReferentialFilter(NonTargetCatchDto.PROPERTY_SPECIES, (ReferentialReferencesFilter<SpeciesDto, SpeciesReference>) incomingReferences -> {
-
- String speciesListId = ObserveSwingApplicationContext.get().getConfig().getSpeciesListSeineNonTargetCatchId();
- String tripId = getDataContext().getSelectedTripSeineId();
-
- List<SpeciesReference> result = getTripSeineService().getSpeciesByListAndTrip(tripId, speciesListId).toList();
-
- return DtoReferenceCollection.filterEnabled(result);
-
- });
}
boolean showReasonForDiscard(SpeciesFateReference speciesFate) {
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/da612dee9f3b1e1c60939c7db…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/da612dee9f3b1e1c60939c7db…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop-7.x] [PS][Observations] Activité : contrôle trop strict - Closes #1552
by Tony CHEMIT 01 Jul '20
by Tony CHEMIT 01 Jul '20
01 Jul '20
Tony CHEMIT pushed to branch develop-7.x at ultreiaio / ird-observe
Commits:
6c2075f2 by Tony Chemit at 2020-07-01T11:20:02+02:00
[PS][Observations] Activité : contrôle trop strict - Closes #1552
- - - - -
2 changed files:
- dto/src/main/models/Observe.model
- services-local/src/test/java/fr/ird/observe/services/local/service/actions/validate/ValidateServiceLocalTest.java
Changes:
=====================================
dto/src/main/models/Observe.model
=====================================
@@ -610,7 +610,7 @@ data.seine.ActivitySeine > data.Openable | references=time,vesselActivitySeine,s
time + {*:1} Date | notNull
latitude + {*:1} Float | notNull
longitude + {*:1} Float | notNull
-vesselSpeed + {*:1} Float | strictlyPositiveNumber
+vesselSpeed + {*:1} Float | positiveNumber
seaSurfaceTemperature + {*:1} Float | mayNotNull strictlyPositiveNumber
ersId + {*:1} String
floatingObjectEmpty + {*:1} boolean
=====================================
services-local/src/test/java/fr/ird/observe/services/local/service/actions/validate/ValidateServiceLocalTest.java
=====================================
@@ -251,7 +251,7 @@ public class ValidateServiceLocalTest extends ServiceLocalTestSupport {
assertValidateResult(result, TripSeineDto.class, 5);
assertValidateResult(result, RouteDto.class, 3); // 55
- assertValidateResult(result, ActivitySeineDto.class, 12); // 11
+ assertValidateResult(result, ActivitySeineDto.class, 11);
assertValidateResult(result, TransmittingBuoyDto.class, 1);
assertValidateResult(result, SetSeineDto.class, 3);
assertValidateResult(result, NonTargetCatchDto.class, 3);
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/6c2075f2bb212d6566484c5b1…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/6c2075f2bb212d6566484c5b1…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop-7.x] 2 commits: Requêtes de synthèse PS - Closes #1529
by Tony CHEMIT 01 Jul '20
by Tony CHEMIT 01 Jul '20
01 Jul '20
Tony CHEMIT pushed to branch develop-7.x at ultreiaio / ird-observe
Commits:
b4c3bb68 by Tony Chemit at 2020-07-01T11:13:28+02:00
Requêtes de synthèse PS - Closes #1529
- - - - -
87541675 by Tony Chemit at 2020-07-01T11:13:31+02:00
[PS][Observations] Activité : contrôle trop strict - Closes #1552
- - - - -
3 changed files:
- dto/src/main/models/Observe.model
- services-local/src/test/java/fr/ird/observe/services/local/service/actions/report/ReportDcpUsageTest.java
- services/src/main/resources/observe-reports.properties
Changes:
=====================================
dto/src/main/models/Observe.model
=====================================
@@ -610,7 +610,7 @@ data.seine.ActivitySeine > data.Openable | references=time,vesselActivitySeine,s
time + {*:1} Date | notNull
latitude + {*:1} Float | notNull
longitude + {*:1} Float | notNull
-vesselSpeed + {*:1} Float | strictlyPositiveNumber
+vesselSpeed + {*:1} Float | positiveNumber
seaSurfaceTemperature + {*:1} Float | mayNotNull strictlyPositiveNumber
ersId + {*:1} String
floatingObjectEmpty + {*:1} boolean
=====================================
services-local/src/test/java/fr/ird/observe/services/local/service/actions/report/ReportDcpUsageTest.java
=====================================
@@ -32,7 +32,9 @@ import org.junit.Ignore;
*
* @author Tony Chemit - dev(a)tchemit.fr
* @since 1.9
+ * FIXME Use new report for FOB (see https://gitlab.com/ultreiaio/ird-observe/-/issues/1529)
*/
+@Ignore
public class ReportDcpUsageTest extends AbstractReportServiceLocalTest {
@Override
=====================================
services/src/main/resources/observe-reports.properties
=====================================
@@ -119,13 +119,19 @@ report.dailySetAndCatch.request.1=0,0|row|\
Group By r.date \
Order By r.date
################################################################################
-## Utilisation des FOB
+## Utilisation des FOB, tableau simplifie
################################################################################
-report.dcpUsage.modelType=PS
-report.dcpUsage.name=Utilisation des FOB
-report.dcpUsage.description=Tableau r\u00e9capitulatif du nombre de FOB visit\u00e9s selon l\u2019action effectu\u00e9e (visites avec et sans p\u00eache, mis \u00e0 l\u2019eau, r\u00e9cuperation), et tortues observ\u00e9es
-report.dcpUsage.columns=Type de FOB (Tableau 8),Visit\u00e9s sans p\u00eache,P\u00each\u00e9s,Mis \u00e0 l\u2019eau seuls,Modifi\u00e9s ou renforc\u00e9s,Retir\u00e9s,Abandonn\u00e9s (sans balise ou non d\u00e9truit ou non coul\u00e9),Coul\u00e9s,Remplac\u00e9s,Autre (p\u00e9ciser dans les notes),Tortues associ\u00e9es
-report.dcpUsage.repeatVariable.typeObjetId=java.lang.String|\
+report.fobUsageMinimal.modelType=PS
+report.fobUsageMinimal.name=Utilisation des FOB, tableau simplifi\u00e9e
+report.fobUsageMinimal.description=Tableau r\u00e9capitulatif des FOB rencontr\u00e9s, par types CECOFAD et types d\u2019actions regroup\u00e9s (rencontr\u00e9s et p\u00each\u00e9s, rencontr\u00e9s non p\u00each\u00e9s, d\u00e9ploy\u00e9s), et nombres de tortues observ\u00e9es
+report.fobUsageMinimal.columns=Type de FOB, \
+ Rencontr\u00e9s p\u00each\u00e9s, \
+ Rencontr\u00e9s non p\u00each\u00e9s, \
+ D\u00e9ploy\u00e9s, \
+ Tortues associ\u00e9es
+
+# liste des types CECOFAD en presence sur les donnees selectionnees
+report.fobUsageMinimal.repeatVariable.typeObjetId=java.lang.String|\
Select distinct (om.standardCode) \
From ObjectMaterialImpl om \
Where standardCode is not null \
@@ -139,15 +145,37 @@ report.dcpUsage.repeatVariable.typeObjetId=java.lang.String|\
m.id In :tripId \
and (dcp.computedWhenArrivingSimplifiedObjectType = om.standardCode Or dcp.computedWhenLeavingSimplifiedObjectType = om.standardCode) \
) > 0
-report.dcpUsage.request.1=0,0|row|\
+report.fobUsageMinimal.request.1=0,0|row|\
Select concat(str(om.standardCode) , ' - ', om.label2) \
From ObjectMaterialImpl om \
Where \
om.standardCode = :typeObjetId \
And om.status != 0
-report.dcpUsage.request.1.repeat=typeObjetId|column
-# visite
-report.dcpUsage.request.2=1,0|row|\
+report.fobUsageMinimal.request.1.repeat=typeObjetId|column
+
+# rencontres + peches
+report.fobUsageMinimal.request.2=1,0|row|\
+ Select Count(dcp) \
+ From TripSeineImpl m \
+ Join m.route r \
+ Join r.activitySeine a \
+ Join a.floatingObject dcp \
+ Where \
+ m.id In :tripId \
+ and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
+ and a.vesselActivitySeine.id = 'fr.ird.observe.entities.referentiel.seine.VesselActivitySeine#1239832675369#0.12552908048322586' \
+ and (dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#2' \
+ or dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#8' \
+ or dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#4' \
+ or dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#5' \
+ or dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#7' \
+ or dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#9' \
+ or dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#10' \
+ or dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#3')
+report.fobUsageMinimal.request.2.repeat=typeObjetId|column
+
+# rencontres - peches
+report.fobUsageMinimal.request.3=2,0|row|\
Select Count(dcp) \
From TripSeineImpl m \
Join m.route r \
@@ -156,23 +184,120 @@ report.dcpUsage.request.2=1,0|row|\
Where \
m.id In :tripId \
and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
- and dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#2' \
and a.vesselActivitySeine.id != 'fr.ird.observe.entities.referentiel.seine.VesselActivitySeine#1239832675369#0.12552908048322586'
-report.dcpUsage.request.2.repeat=typeObjetId|column
-# peche
-report.dcpUsage.request.3=2,0|row|\
+and (dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#2' \
+ or dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#8' \
+ or dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#4' \
+ or dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#5' \
+ or dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#7' \
+ or dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#9' \
+ or dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#10' \
+ or dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#3')
+report.fobUsageMinimal.request.3.repeat=typeObjetId|column
+
+# deployes
+report.fobUsageMinimal.request.4=3,0|row|\
Select Count(dcp) \
From TripSeineImpl m \
Join m.route r \
Join r.activitySeine a \
Join a.floatingObject dcp \
+ Where \
+ m.id In :tripId \
+ and dcp.computedWhenLeavingSimplifiedObjectType = :typeObjetId \
+ and dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#1'
+report.fobUsageMinimal.request.4.repeat=typeObjetId|column
+
+# Nombre de tortues
+report.fobUsageMinimal.request.5=4,0|row| \
+ Select Sum(efo.count) \
+ From TripSeineImpl m \
+ Join m.route r \
+ Join r.activitySeine a \
+ Join a.floatingObject dcp \
+ Join dcp.objectObservedSpecies efo \
Where \
m.id In :tripId \
and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
- and (dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#3' Or a.vesselActivitySeine.id = 'fr.ird.observe.entities.referentiel.seine.VesselActivitySeine#1239832675369#0.12552908048322586')
-report.dcpUsage.request.3.repeat=typeObjetId|column
-# mis a l'eau
-report.dcpUsage.request.4=3,0|row|\
+ and efo.species.speciesGroup.id = 'fr.ird.observe.entities.referentiel.SpeciesGroup#1239832683690#0.24333033683679461'
+report.fobUsageMinimal.request.5.repeat=typeObjetId|column
+################################################################################
+## Utilisation des FOB, tableau detaille
+################################################################################
+report.fobUsageExtended.modelType=PS
+report.fobUsageExtended.name=Utilisation des FOB, tableau d\u00e9taill\u00e9
+report.fobUsageExtended.description=Tableau r\u00e9capitulatif des FOB rencontr\u00e9s, par types CECOFAD et types d\u2019actions (d\u00e9ploiements, simples visites, modifications, diverses modalit\u00e9s de retraits), avec et sans p\u00eache, et nombres de tortues observ\u00e9es
+report.fobUsageExtended.columns=Type de FOB, \
+ Visit\u00e9s P\u00each\u00e9s, \
+ Visit\u00e9s non P\u00each\u00e9s, \
+ D\u00e9ploiement apr\u00e8s P\u00eaches, \
+ D\u00e9ploiement seul, \
+ Modifi\u00e9s P\u00each\u00e9s, \
+ Modifi\u00e9s non P\u00each\u00e9s, \
+ Retir\u00e9s P\u00each\u00e9s, \
+ Retir\u00e9s non P\u00each\u00e9s, \
+ Abandonn\u00e9s P\u00each\u00e9s, \
+ Abandonn\u00e9s non P\u00each\u00e9s, \
+ Coul\u00e9s P\u00each\u00e9s, \
+ Coul\u00e9s non P\u00each\u00e9s, \
+ Remplac\u00e9s P\u00each\u00e9s, \
+ Remplac\u00e9s non P\u00each\u00e9s, \
+ Autre P\u00each\u00e9s, \
+ Autre non P\u00each\u00e9s, \
+ Tortues associ\u00e9es
+
+report.fobUsageExtended.repeatVariable.typeObjetId=java.lang.String|\
+ Select distinct (om.standardCode) \
+ From ObjectMaterialImpl om \
+ Where standardCode is not null \
+ And standardCode != '' \
+ And (Select Count(dcp) \
+ From TripSeineImpl m \
+ Join m.route r \
+ Join r.activitySeine a \
+ Join a.floatingObject dcp \
+ Where \
+ m.id In :tripId \
+ and (dcp.computedWhenArrivingSimplifiedObjectType = om.standardCode Or dcp.computedWhenLeavingSimplifiedObjectType = om.standardCode) \
+ ) > 0
+report.fobUsageExtended.request.1=0,0|row|\
+ Select concat(str(om.standardCode) , ' - ', om.label2) \
+ From ObjectMaterialImpl om \
+ Where \
+ om.standardCode = :typeObjetId \
+ And om.status != 0
+report.fobUsageExtended.request.1.repeat=typeObjetId|column
+
+# visite + peche
+report.fobUsageExtended.request.2=1,0|row|\
+ Select Count(dcp) \
+ From TripSeineImpl m \
+ Join m.route r \
+ Join r.activitySeine a \
+ Join a.floatingObject dcp \
+ Where \
+ m.id In :tripId \
+ and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
+ and dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#2' \
+ and a.vesselActivitySeine.id = 'fr.ird.observe.entities.referentiel.seine.VesselActivitySeine#1239832675369#0.12552908048322586'
+report.fobUsageExtended.request.2.repeat=typeObjetId|column
+
+# visite - peche
+report.fobUsageExtended.request.3=2,0|row|\
+ Select Count(dcp) \
+ From TripSeineImpl m \
+ Join m.route r \
+ Join r.activitySeine a \
+ Join a.floatingObject dcp \
+ Where \
+ m.id In :tripId \
+ and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
+ and dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#2' \
+ and a.vesselActivitySeine.id != 'fr.ird.observe.entities.referentiel.seine.VesselActivitySeine#1239832675369#0.12552908048322586'
+report.fobUsageExtended.request.3.repeat=typeObjetId|column
+
+# Deploiement + peche
+report.fobUsageExtended.request.4=3,0|row|\
Select Count(dcp) \
From TripSeineImpl m \
Join m.route r \
@@ -181,12 +306,110 @@ report.dcpUsage.request.4=3,0|row|\
Where \
m.id In :tripId \
and dcp.computedWhenLeavingSimplifiedObjectType = :typeObjetId \
- and dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#1'
-report.dcpUsage.request.4.repeat=typeObjetId|column
-# modification ou renforcement
-#FIXME Supprime de la requete du dessous
-#FIXME and dcp.objectFate.id = 'fr.ird.observe.entities.referentiel.seine.ObjectFate#1396860761530#0.8869464242156488' \
-report.dcpUsage.request.5=4,0|row|\
+ and dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#1' \
+ and a.vesselActivitySeine.id = 'fr.ird.observe.entities.referentiel.seine.VesselActivitySeine#1239832675369#0.12552908048322586'
+report.fobUsageExtended.request.4.repeat=typeObjetId|column
+
+# Deploiement - peche
+report.fobUsageExtended.request.5=4,0|row|\
+ Select Count(dcp) \
+ From TripSeineImpl m \
+ Join m.route r \
+ Join r.activitySeine a \
+ Join a.floatingObject dcp \
+ Where \
+ m.id In :tripId \
+ and dcp.computedWhenLeavingSimplifiedObjectType = :typeObjetId \
+ and dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#1' \
+ and a.vesselActivitySeine.id != 'fr.ird.observe.entities.referentiel.seine.VesselActivitySeine#1239832675369#0.12552908048322586'
+report.fobUsageExtended.request.5.repeat=typeObjetId|column
+
+# Modifie + peche
+report.fobUsageExtended.request.6=5,0|row|\
+ Select Count(dcp) \
+ From TripSeineImpl m \
+ Join m.route r \
+ Join r.activitySeine a \
+ Join a.floatingObject dcp \
+ Where \
+ m.id In :tripId \
+ and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
+ and dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#8' \
+ and a.vesselActivitySeine.id = 'fr.ird.observe.entities.referentiel.seine.VesselActivitySeine#1239832675369#0.12552908048322586'
+report.fobUsageExtended.request.6.repeat=typeObjetId|column
+
+# Modifie - peche
+report.fobUsageExtended.request.7=6,0|row|\
+ Select Count(dcp) \
+ From TripSeineImpl m \
+ Join m.route r \
+ Join r.activitySeine a \
+ Join a.floatingObject dcp \
+ Where \
+ m.id In :tripId \
+ and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
+ and dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#8' \
+ and a.vesselActivitySeine.id != 'fr.ird.observe.entities.referentiel.seine.VesselActivitySeine#1239832675369#0.12552908048322586'
+report.fobUsageExtended.request.7.repeat=typeObjetId|column
+
+# Retire + peche
+report.fobUsageExtended.request.8=7,0|row|\
+ Select Count(dcp) \
+ From TripSeineImpl m \
+ Join m.route r \
+ Join r.activitySeine a \
+ Join a.floatingObject dcp \
+ Where \
+ m.id In :tripId \
+ and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
+ and dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#4' \
+ and a.vesselActivitySeine.id = 'fr.ird.observe.entities.referentiel.seine.VesselActivitySeine#1239832675369#0.12552908048322586'
+report.fobUsageExtended.request.8.repeat=typeObjetId|column
+
+# Retire - peche
+report.fobUsageExtended.request.9=8,0|row|\
+ Select Count(dcp) \
+ From TripSeineImpl m \
+ Join m.route r \
+ Join r.activitySeine a \
+ Join a.floatingObject dcp \
+ Where \
+ m.id In :tripId \
+ and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
+ and dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#4' \
+ and a.vesselActivitySeine.id != 'fr.ird.observe.entities.referentiel.seine.VesselActivitySeine#1239832675369#0.12552908048322586'
+report.fobUsageExtended.request.9.repeat=typeObjetId|column
+
+# Abandonne + peche
+report.fobUsageExtended.request.10=9,0|row|\
+ Select Count(dcp) \
+ From TripSeineImpl m \
+ Join m.route r \
+ Join r.activitySeine a \
+ Join a.floatingObject dcp \
+ Where \
+ m.id In :tripId \
+ and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
+ and dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#5' \
+ and a.vesselActivitySeine.id = 'fr.ird.observe.entities.referentiel.seine.VesselActivitySeine#1239832675369#0.12552908048322586'
+report.fobUsageExtended.request.10.repeat=typeObjetId|column
+
+# Abandonne - peche
+report.fobUsageExtended.request.11=10,0|row|\
+ Select Count(dcp) \
+ From TripSeineImpl m \
+ Join m.route r \
+ Join r.activitySeine a \
+ Join a.floatingObject dcp \
+ Where \
+ m.id In :tripId \
+ and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
+ and dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#5' \
+ and a.vesselActivitySeine.id != 'fr.ird.observe.entities.referentiel.seine.VesselActivitySeine#1239832675369#0.12552908048322586'
+report.fobUsageExtended.request.11.repeat=typeObjetId|column
+
+# Coule + peche
+report.fobUsageExtended.request.12=11,0|row|\
Select Count(dcp) \
From TripSeineImpl m \
Join m.route r \
@@ -195,10 +418,12 @@ report.dcpUsage.request.5=4,0|row|\
Where \
m.id In :tripId \
and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
- and dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#8'
-report.dcpUsage.request.5.repeat=typeObjetId|column
-# Retrait
-report.dcpUsage.request.6=5,0|row|\
+ and dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#7' \
+ and a.vesselActivitySeine.id = 'fr.ird.observe.entities.referentiel.seine.VesselActivitySeine#1239832675369#0.12552908048322586'
+report.fobUsageExtended.request.12.repeat=typeObjetId|column
+
+# Coule - peche
+report.fobUsageExtended.request.13=12,0|row|\
Select Count(dcp) \
From TripSeineImpl m \
Join m.route r \
@@ -207,10 +432,12 @@ report.dcpUsage.request.6=5,0|row|\
Where \
m.id In :tripId \
and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
- and dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#4'
-report.dcpUsage.request.6.repeat=typeObjetId|column
-# abondonne
-report.dcpUsage.request.7=6,0|row|\
+ and dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#7' \
+ and a.vesselActivitySeine.id != 'fr.ird.observe.entities.referentiel.seine.VesselActivitySeine#1239832675369#0.12552908048322586'
+report.fobUsageExtended.request.13.repeat=typeObjetId|column
+
+# Remplace + peche
+report.fobUsageExtended.request.14=13,0|row|\
Select Count(dcp) \
From TripSeineImpl m \
Join m.route r \
@@ -219,10 +446,12 @@ report.dcpUsage.request.7=6,0|row|\
Where \
m.id In :tripId \
and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
- and dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#5'
-report.dcpUsage.request.7.repeat=typeObjetId|column
-# coule
-report.dcpUsage.request.8=7,0|row|\
+ and dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#9' \
+ and a.vesselActivitySeine.id = 'fr.ird.observe.entities.referentiel.seine.VesselActivitySeine#1239832675369#0.12552908048322586'
+report.fobUsageExtended.request.14.repeat=typeObjetId|column
+
+# Remplace - peche
+report.fobUsageExtended.request.15=14,0|row|\
Select Count(dcp) \
From TripSeineImpl m \
Join m.route r \
@@ -231,10 +460,12 @@ report.dcpUsage.request.8=7,0|row|\
Where \
m.id In :tripId \
and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
- and dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#7'
-report.dcpUsage.request.8.repeat=typeObjetId|column
-# remplacement
-report.dcpUsage.request.9=8,0|row|\
+ and dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#9' \
+ and a.vesselActivitySeine.id != 'fr.ird.observe.entities.referentiel.seine.VesselActivitySeine#1239832675369#0.12552908048322586'
+report.fobUsageExtended.request.15.repeat=typeObjetId|column
+
+# Autre ou ancien peche + peche
+report.fobUsageExtended.request.16=15,0|row|\
Select Count(dcp) \
From TripSeineImpl m \
Join m.route r \
@@ -243,10 +474,13 @@ report.dcpUsage.request.9=8,0|row|\
Where \
m.id In :tripId \
and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
- and dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#09'
-report.dcpUsage.request.9.repeat=typeObjetId|column
-# autre
-report.dcpUsage.request.10=9,0|row|\
+ and (dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#10' \
+ or dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#3') \
+ and a.vesselActivitySeine.id = 'fr.ird.observe.entities.referentiel.seine.VesselActivitySeine#1239832675369#0.12552908048322586'
+report.fobUsageExtended.request.16.repeat=typeObjetId|column
+
+# Autre ou ancien peche - peche
+report.fobUsageExtended.request.17=16,0|row|\
Select Count(dcp) \
From TripSeineImpl m \
Join m.route r \
@@ -255,10 +489,13 @@ report.dcpUsage.request.10=9,0|row|\
Where \
m.id In :tripId \
and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
- and dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#10'
-report.dcpUsage.request.10.repeat=typeObjetId|column
-# tortues
-report.dcpUsage.request.11=10,0|row| \
+ and (dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#10' \
+ or dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#3') \
+ and a.vesselActivitySeine.id != 'fr.ird.observe.entities.referentiel.seine.VesselActivitySeine#1239832675369#0.12552908048322586'
+report.fobUsageExtended.request.17.repeat=typeObjetId|column
+
+# Nombre de tortues
+report.fobUsageExtended.request.18=17,0|row| \
Select Sum(efo.count) \
From TripSeineImpl m \
Join m.route r \
@@ -269,8 +506,7 @@ report.dcpUsage.request.11=10,0|row| \
m.id In :tripId \
and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
and efo.species.speciesGroup.id = 'fr.ird.observe.entities.referentiel.SpeciesGroup#1239832683690#0.24333033683679461'
-report.dcpUsage.request.11.repeat=typeObjetId|column
-
+report.fobUsageExtended.request.18.repeat=typeObjetId|column
################################################################################
## Nombre des cal\u00e9es selon le type d'association
################################################################################
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/abe16820422541fbf4fb2558…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/abe16820422541fbf4fb2558…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop-7.x] [PS][Observations] Activité : contrôle trop strict - Closes #1552
by Tony CHEMIT 01 Jul '20
by Tony CHEMIT 01 Jul '20
01 Jul '20
Tony CHEMIT pushed to branch develop-7.x at ultreiaio / ird-observe
Commits:
abe16820 by Tony Chemit at 2020-07-01T11:02:50+02:00
[PS][Observations] Activité : contrôle trop strict - Closes #1552
- - - - -
1 changed file:
- dto/src/main/models/Observe.model
Changes:
=====================================
dto/src/main/models/Observe.model
=====================================
@@ -610,7 +610,7 @@ data.seine.ActivitySeine > data.Openable | references=time,vesselActivitySeine,s
time + {*:1} Date | notNull
latitude + {*:1} Float | notNull
longitude + {*:1} Float | notNull
-vesselSpeed + {*:1} Float | strictlyPositiveNumber
+vesselSpeed + {*:1} Float | positiveNumber
seaSurfaceTemperature + {*:1} Float | mayNotNull strictlyPositiveNumber
ersId + {*:1} String
floatingObjectEmpty + {*:1} boolean
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/abe16820422541fbf4fb25581…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/abe16820422541fbf4fb25581…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop-7.x] 3 commits: Deux comportements étranges sur l'assistant tableaux de synthèse - Closes #1533
by Tony CHEMIT 01 Jul '20
by Tony CHEMIT 01 Jul '20
01 Jul '20
Tony CHEMIT pushed to branch develop-7.x at ultreiaio / ird-observe
Commits:
6d8bef84 by Tony Chemit at 2020-07-01T10:30:35+02:00
Deux comportements étranges sur l'assistant tableaux de synthèse - Closes #1533
- - - - -
ce0547c6 by Tony Chemit at 2020-07-01T10:41:29+02:00
Correction des composants graphiques numériques et sélection - Closes #1563
- - - - -
9c48d5ae by Tony Chemit at 2020-07-01T10:58:50+02:00
Requêtes de synthèse PS - Closes #1529
- - - - -
8 changed files:
- client-core/src/main/java/fr/ird/observe/client/ui/admin/config/ConfigModel.java
- client-core/src/main/java/fr/ird/observe/client/ui/admin/report/ReportModel.java
- dto/pom.xml
- persistence/pom.xml
- pom.xml
- server-core/pom.xml
- services-client/pom.xml
- services/src/main/resources/observe-reports.properties
Changes:
=====================================
client-core/src/main/java/fr/ird/observe/client/ui/admin/config/ConfigModel.java
=====================================
@@ -30,6 +30,7 @@ import fr.ird.observe.client.ui.admin.AdminActionModel;
import fr.ird.observe.client.ui.admin.AdminStep;
import fr.ird.observe.client.ui.admin.AdminUI;
import fr.ird.observe.client.ui.admin.AdminUIModel;
+import fr.ird.observe.client.ui.admin.report.ReportModel;
import fr.ird.observe.client.ui.storage.StorageUIModel;
import fr.ird.observe.client.ui.tree.selection.SelectionTreeModel;
import fr.ird.observe.services.configuration.ObserveDataSourceConfiguration;
@@ -37,6 +38,7 @@ import fr.ird.observe.services.configuration.ObserveDataSourceInformation;
import fr.ird.observe.services.service.BabModelVersionException;
import fr.ird.observe.services.service.DatabaseConnexionNotAuthorizedException;
import fr.ird.observe.services.service.DatabaseNotFoundException;
+import fr.ird.observe.services.service.actions.report.Report;
import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
@@ -44,6 +46,7 @@ import org.apache.logging.log4j.Logger;
import java.beans.PropertyChangeListener;
import java.io.File;
import java.util.EnumSet;
+import java.util.List;
import java.util.Objects;
import static fr.ird.observe.client.constants.DbMode.USE_LOCAL;
@@ -427,8 +430,10 @@ public class ConfigModel extends AdminActionModel {
if (uiModel.containsOperation(AdminStep.REPORT)) {
// il faut le fichier di'mport existe
- File reportFile = uiModel.getReportModel().getReportFile();
- validate &= reportFile != null && reportFile.exists();
+ ReportModel reportModel = uiModel.getReportModel();
+ File reportFile = reportModel.getReportFile();
+ List<Report> reports = reportModel.getReports();
+ validate &= reportFile != null && reportFile.exists() && reports!=null && !reports.isEmpty();
}
return validate;
=====================================
client-core/src/main/java/fr/ird/observe/client/ui/admin/report/ReportModel.java
=====================================
@@ -32,13 +32,15 @@ import fr.ird.observe.client.ui.tree.selection.SelectionTreeModel;
import fr.ird.observe.dto.ObserveModelType;
import fr.ird.observe.services.service.actions.report.Report;
import fr.ird.observe.services.service.actions.report.ReportBuilder;
-import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
import java.beans.PropertyChangeListener;
import java.io.File;
import java.io.IOException;
import java.net.URL;
+import java.nio.file.Files;
+import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
@@ -200,15 +202,18 @@ public class ReportModel extends AdminActionModel {
public List<Report> getAllReports() {
if (allReports == null) {
- try {
- URL resource = reportFile.toURI().toURL();
- allReports = loadReports(resource);
- if (log.isDebugEnabled()) {
- log.debug("Add loaded " + allReports.size() + " report(s).");
+ if (reportFile == null || Files.notExists(reportFile.toPath())) {
+ log.warn("No report file, no reports loaded.");
+ allReports = Collections.emptyList();
+ } else {
+ try {
+ URL resource = reportFile.toURI().toURL();
+ allReports = loadReports(resource);
+ log.debug(String.format("Add loaded %d report(s).", allReports.size()));
+ } catch (IOException e) {
+ throw new IllegalStateException(
+ String.format("Could not load reports definition file (%s).", reportFile), e);
}
- } catch (IOException e) {
- throw new IllegalStateException(
- "Could not load reports definition file (" + reportFile + ").", e);
}
}
return allReports;
@@ -276,6 +281,7 @@ public class ReportModel extends AdminActionModel {
public void updateReports() {
setSelectedReport(null);
+ allReports=null;
reports = getAllReports().stream().filter(r -> modelType == r.getModelType()).collect(Collectors.toList());
firePropertyChange(REPORTS_PROPERTY_NAME, reports);
if (log.isInfoEnabled()) {
@@ -290,15 +296,11 @@ public class ReportModel extends AdminActionModel {
File reportFile = ObserveResourceManager.Resource.report.getFile(config.getReportDirectory());
if (reportFile.exists()) {
- if (log.isInfoEnabled()) {
- log.info("Will use report file : " + reportFile);
- }
-
- setReportFile(reportFile);
+ log.info(String.format("Will use default report file : %s", reportFile));
} else {
- if (log.isWarnEnabled())
- log.warn("Default report file " + reportFile + " does not exists.");
+ log.warn(String.format("Default report file %s does not exists.", reportFile));
}
+ setReportFile(reportFile);
// on ecoute la modification du modèle
PropertyChangeListener listenReportModified = evt -> {
=====================================
dto/pom.xml
=====================================
@@ -180,6 +180,12 @@
<artifactId>templates</artifactId>
<version>${observeToolkitVersion}</version>
</dependency>
+ <dependency>
+ <groupId>io.ultreia.java4all.jaxx</groupId>
+ <artifactId>jaxx-runtime-spi</artifactId>
+ <version>${lib.version.java4all.jaxx}</version>
+ </dependency>
+
</dependencies>
</plugin>
<plugin>
=====================================
persistence/pom.xml
=====================================
@@ -238,6 +238,11 @@
<artifactId>templates</artifactId>
<version>${observeToolkitVersion}</version>
</dependency>
+ <dependency>
+ <groupId>io.ultreia.java4all.jaxx</groupId>
+ <artifactId>jaxx-runtime-spi</artifactId>
+ <version>${lib.version.java4all.jaxx}</version>
+ </dependency>
</dependencies>
</plugin>
</plugins>
=====================================
pom.xml
=====================================
@@ -26,7 +26,7 @@
<parent>
<groupId>io.ultreia.maven</groupId>
<artifactId>pom</artifactId>
- <version>2020.32</version>
+ <version>2020.36</version>
</parent>
<groupId>fr.ird.observe</groupId>
@@ -155,18 +155,19 @@
<maven.build.timestamp.format>dd/MM/yyyy HH:mm z</maven.build.timestamp.format>
<buildDate>${maven.build.timestamp}</buildDate>
- <observeToolkitVersion>3.7.28</observeToolkitVersion>
- <!--<lib.version.java4all.http>1.0.13</lib.version.java4all.http>-->
+ <!--Fixed versions-->
<lib.version.nuiton.validation>3.1</lib.version.nuiton.validation>
- <!--<lib.version.java4all.config>1.0.3</lib.version.java4all.config>-->
-
<!--can't use 1.4.197 (date has changed + blob also-->
<lib.version.h2>1.4.196</lib.version.h2>
<lib.version.java4all.eugene>3.0-alpha-26</lib.version.java4all.eugene>
- <!--<lib.version.java4all.jaxx>3.0-alpha-69-SNAPSHOT</lib.version.java4all.jaxx>-->
- <!--<lib.version.java4all.i18n>4.0-beta-8-SNAPSHOT</lib.version.java4all.i18n>-->
<lib.version.java4all.topia>1.1.17</lib.version.java4all.topia>
<lib.version.nuiton.utils>3.0</lib.version.nuiton.utils>
+
+ <observeToolkitVersion>3.7.29</observeToolkitVersion>
+ <!--<lib.version.java4all.http>1.0.13</lib.version.java4all.http>-->
+ <!--<lib.version.java4all.config>1.0.3</lib.version.java4all.config>-->
+ <!--<lib.version.java4all.jaxx>3.0-alpha-69-SNAPSHOT</lib.version.java4all.jaxx>-->
+ <!--<lib.version.java4all.i18n>4.0-beta-8-SNAPSHOT</lib.version.java4all.i18n>-->
<!--<lib.version.nuiton.topia>3.6-SNAPSHOT</lib.version.nuiton.topia>-->
<!--<lib.version.java4all.eugene>3.0-alpha-21</lib.version.java4all.eugene>-->
<!--<lib.version.java4all.config>1.0.9-SNAPSHOT</lib.version.java4all.config>-->
=====================================
server-core/pom.xml
=====================================
@@ -247,6 +247,11 @@
<artifactId>guava</artifactId>
<version>${lib.version.google.guava}</version>
</dependency>
+ <dependency>
+ <groupId>io.ultreia.java4all.jaxx</groupId>
+ <artifactId>jaxx-runtime-spi</artifactId>
+ <version>${lib.version.java4all.jaxx}</version>
+ </dependency>
</dependencies>
</plugin>
</plugins>
=====================================
services-client/pom.xml
=====================================
@@ -176,6 +176,11 @@
<artifactId>services</artifactId>
<version>${project.version}</version>
</dependency>
+ <dependency>
+ <groupId>io.ultreia.java4all.jaxx</groupId>
+ <artifactId>jaxx-runtime-spi</artifactId>
+ <version>${lib.version.java4all.jaxx}</version>
+ </dependency>
</dependencies>
</plugin>
</plugins>
=====================================
services/src/main/resources/observe-reports.properties
=====================================
@@ -119,13 +119,19 @@ report.dailySetAndCatch.request.1=0,0|row|\
Group By r.date \
Order By r.date
################################################################################
-## Utilisation des FOB
+## Utilisation des FOB, tableau simplifie
################################################################################
-report.dcpUsage.modelType=PS
-report.dcpUsage.name=Utilisation des FOB
-report.dcpUsage.description=Tableau r\u00e9capitulatif du nombre de FOB visit\u00e9s selon l\u2019action effectu\u00e9e (visites avec et sans p\u00eache, mis \u00e0 l\u2019eau, r\u00e9cuperation), et tortues observ\u00e9es
-report.dcpUsage.columns=Type de FOB (Tableau 8),Visit\u00e9s sans p\u00eache,P\u00each\u00e9s,Mis \u00e0 l\u2019eau seuls,Modifi\u00e9s ou renforc\u00e9s,Retir\u00e9s,Abandonn\u00e9s (sans balise ou non d\u00e9truit ou non coul\u00e9),Coul\u00e9s,Remplac\u00e9s,Autre (p\u00e9ciser dans les notes),Tortues associ\u00e9es
-report.dcpUsage.repeatVariable.typeObjetId=java.lang.String|\
+report.fobUsageMinimal.modelType=PS
+report.fobUsageMinimal.name=Utilisation des FOB, tableau simplifi\u00e9e
+report.fobUsageMinimal.description=Tableau r\u00e9capitulatif des FOB rencontr\u00e9s, par types CECOFAD et types d\u2019actions regroup\u00e9s (rencontr\u00e9s et p\u00each\u00e9s, rencontr\u00e9s non p\u00each\u00e9s, d\u00e9ploy\u00e9s), et nombres de tortues observ\u00e9es
+report.fobUsageMinimal.columns=Type de FOB, \
+ Rencontr\u00e9s p\u00each\u00e9s, \
+ Rencontr\u00e9s non p\u00each\u00e9s, \
+ D\u00e9ploy\u00e9s, \
+ Tortues associ\u00e9es
+
+# liste des types CECOFAD en presence sur les donnees selectionnees
+report.fobUsageMinimal.repeatVariable.typeObjetId=java.lang.String|\
Select distinct (om.standardCode) \
From ObjectMaterialImpl om \
Where standardCode is not null \
@@ -139,15 +145,37 @@ report.dcpUsage.repeatVariable.typeObjetId=java.lang.String|\
m.id In :tripId \
and (dcp.computedWhenArrivingSimplifiedObjectType = om.standardCode Or dcp.computedWhenLeavingSimplifiedObjectType = om.standardCode) \
) > 0
-report.dcpUsage.request.1=0,0|row|\
+report.fobUsageMinimal.request.1=0,0|row|\
Select concat(str(om.standardCode) , ' - ', om.label2) \
From ObjectMaterialImpl om \
Where \
om.standardCode = :typeObjetId \
And om.status != 0
-report.dcpUsage.request.1.repeat=typeObjetId|column
-# visite
-report.dcpUsage.request.2=1,0|row|\
+report.fobUsageMinimal.request.1.repeat=typeObjetId|column
+
+# rencontres + peches
+report.fobUsageMinimal.request.2=1,0|row|\
+ Select Count(dcp) \
+ From TripSeineImpl m \
+ Join m.route r \
+ Join r.activitySeine a \
+ Join a.floatingObject dcp \
+ Where \
+ m.id In :tripId \
+ and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
+ and a.vesselActivitySeine.id = 'fr.ird.observe.entities.referentiel.seine.VesselActivitySeine#1239832675369#0.12552908048322586' \
+ and (dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#2' \
+ or dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#8' \
+ or dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#4' \
+ or dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#5' \
+ or dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#7' \
+ or dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#9' \
+ or dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#10' \
+ or dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#3')
+report.fobUsageMinimal.request.2.repeat=typeObjetId|column
+
+# rencontres - peches
+report.fobUsageMinimal.request.3=2,0|row|\
Select Count(dcp) \
From TripSeineImpl m \
Join m.route r \
@@ -156,23 +184,120 @@ report.dcpUsage.request.2=1,0|row|\
Where \
m.id In :tripId \
and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
- and dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#2' \
and a.vesselActivitySeine.id != 'fr.ird.observe.entities.referentiel.seine.VesselActivitySeine#1239832675369#0.12552908048322586'
-report.dcpUsage.request.2.repeat=typeObjetId|column
-# peche
-report.dcpUsage.request.3=2,0|row|\
+and (dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#2' \
+ or dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#8' \
+ or dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#4' \
+ or dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#5' \
+ or dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#7' \
+ or dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#9' \
+ or dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#10' \
+ or dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#3')
+report.fobUsageMinimal.request.3.repeat=typeObjetId|column
+
+# deployes
+report.fobUsageMinimal.request.4=3,0|row|\
Select Count(dcp) \
From TripSeineImpl m \
Join m.route r \
Join r.activitySeine a \
Join a.floatingObject dcp \
+ Where \
+ m.id In :tripId \
+ and dcp.computedWhenLeavingSimplifiedObjectType = :typeObjetId \
+ and dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#1'
+report.fobUsageMinimal.request.4.repeat=typeObjetId|column
+
+# Nombre de tortues
+report.fobUsageMinimal.request.5=4,0|row| \
+ Select Sum(efo.count) \
+ From TripSeineImpl m \
+ Join m.route r \
+ Join r.activitySeine a \
+ Join a.floatingObject dcp \
+ Join dcp.objectObservedSpecies efo \
Where \
m.id In :tripId \
and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
- and (dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#3' Or a.vesselActivitySeine.id = 'fr.ird.observe.entities.referentiel.seine.VesselActivitySeine#1239832675369#0.12552908048322586')
-report.dcpUsage.request.3.repeat=typeObjetId|column
-# mis a l'eau
-report.dcpUsage.request.4=3,0|row|\
+ and efo.species.speciesGroup.id = 'fr.ird.observe.entities.referentiel.SpeciesGroup#1239832683690#0.24333033683679461'
+report.fobUsageMinimal.request.5.repeat=typeObjetId|column
+################################################################################
+## Utilisation des FOB, tableau detaille
+################################################################################
+report.fobUsageExtended.modelType=PS
+report.fobUsageExtended.name=Utilisation des FOB, tableau d\u00e9taill\u00e9
+report.fobUsageExtended.description=Tableau r\u00e9capitulatif des FOB rencontr\u00e9s, par types CECOFAD et types d\u2019actions (d\u00e9ploiements, simples visites, modifications, diverses modalit\u00e9s de retraits), avec et sans p\u00eache, et nombres de tortues observ\u00e9es
+report.fobUsageExtended.columns=Type de FOB, \
+ Visit\u00e9s P\u00each\u00e9s, \
+ Visit\u00e9s non P\u00each\u00e9s, \
+ D\u00e9ploiement apr\u00e8s P\u00eaches, \
+ D\u00e9ploiement seul, \
+ Modifi\u00e9s P\u00each\u00e9s, \
+ Modifi\u00e9s non P\u00each\u00e9s, \
+ Retir\u00e9s P\u00each\u00e9s, \
+ Retir\u00e9s non P\u00each\u00e9s, \
+ Abandonn\u00e9s P\u00each\u00e9s, \
+ Abandonn\u00e9s non P\u00each\u00e9s, \
+ Coul\u00e9s P\u00each\u00e9s, \
+ Coul\u00e9s non P\u00each\u00e9s, \
+ Remplac\u00e9s P\u00each\u00e9s, \
+ Remplac\u00e9s non P\u00each\u00e9s, \
+ Autre P\u00each\u00e9s, \
+ Autre non P\u00each\u00e9s, \
+ Tortues associ\u00e9es
+
+report.fobUsageExtended.repeatVariable.typeObjetId=java.lang.String|\
+ Select distinct (om.standardCode) \
+ From ObjectMaterialImpl om \
+ Where standardCode is not null \
+ And standardCode != '' \
+ And (Select Count(dcp) \
+ From TripSeineImpl m \
+ Join m.route r \
+ Join r.activitySeine a \
+ Join a.floatingObject dcp \
+ Where \
+ m.id In :tripId \
+ and (dcp.computedWhenArrivingSimplifiedObjectType = om.standardCode Or dcp.computedWhenLeavingSimplifiedObjectType = om.standardCode) \
+ ) > 0
+report.fobUsageExtended.request.1=0,0|row|\
+ Select concat(str(om.standardCode) , ' - ', om.label2) \
+ From ObjectMaterialImpl om \
+ Where \
+ om.standardCode = :typeObjetId \
+ And om.status != 0
+report.fobUsageExtended.request.1.repeat=typeObjetId|column
+
+# visite + peche
+report.fobUsageExtended.request.2=1,0|row|\
+ Select Count(dcp) \
+ From TripSeineImpl m \
+ Join m.route r \
+ Join r.activitySeine a \
+ Join a.floatingObject dcp \
+ Where \
+ m.id In :tripId \
+ and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
+ and dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#2' \
+ and a.vesselActivitySeine.id = 'fr.ird.observe.entities.referentiel.seine.VesselActivitySeine#1239832675369#0.12552908048322586'
+report.fobUsageExtended.request.2.repeat=typeObjetId|column
+
+# visite - peche
+report.fobUsageExtended.request.3=2,0|row|\
+ Select Count(dcp) \
+ From TripSeineImpl m \
+ Join m.route r \
+ Join r.activitySeine a \
+ Join a.floatingObject dcp \
+ Where \
+ m.id In :tripId \
+ and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
+ and dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#2' \
+ and a.vesselActivitySeine.id != 'fr.ird.observe.entities.referentiel.seine.VesselActivitySeine#1239832675369#0.12552908048322586'
+report.fobUsageExtended.request.3.repeat=typeObjetId|column
+
+# Deploiement + peche
+report.fobUsageExtended.request.4=3,0|row|\
Select Count(dcp) \
From TripSeineImpl m \
Join m.route r \
@@ -181,12 +306,110 @@ report.dcpUsage.request.4=3,0|row|\
Where \
m.id In :tripId \
and dcp.computedWhenLeavingSimplifiedObjectType = :typeObjetId \
- and dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#1'
-report.dcpUsage.request.4.repeat=typeObjetId|column
-# modification ou renforcement
-#FIXME Supprime de la requete du dessous
-#FIXME and dcp.objectFate.id = 'fr.ird.observe.entities.referentiel.seine.ObjectFate#1396860761530#0.8869464242156488' \
-report.dcpUsage.request.5=4,0|row|\
+ and dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#1' \
+ and a.vesselActivitySeine.id = 'fr.ird.observe.entities.referentiel.seine.VesselActivitySeine#1239832675369#0.12552908048322586'
+report.fobUsageExtended.request.4.repeat=typeObjetId|column
+
+# Deploiement - peche
+report.fobUsageExtended.request.5=4,0|row|\
+ Select Count(dcp) \
+ From TripSeineImpl m \
+ Join m.route r \
+ Join r.activitySeine a \
+ Join a.floatingObject dcp \
+ Where \
+ m.id In :tripId \
+ and dcp.computedWhenLeavingSimplifiedObjectType = :typeObjetId \
+ and dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#1' \
+ and a.vesselActivitySeine.id != 'fr.ird.observe.entities.referentiel.seine.VesselActivitySeine#1239832675369#0.12552908048322586'
+report.fobUsageExtended.request.5.repeat=typeObjetId|column
+
+# Modifie + peche
+report.fobUsageExtended.request.6=5,0|row|\
+ Select Count(dcp) \
+ From TripSeineImpl m \
+ Join m.route r \
+ Join r.activitySeine a \
+ Join a.floatingObject dcp \
+ Where \
+ m.id In :tripId \
+ and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
+ and dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#8' \
+ and a.vesselActivitySeine.id = 'fr.ird.observe.entities.referentiel.seine.VesselActivitySeine#1239832675369#0.12552908048322586'
+report.fobUsageExtended.request.6.repeat=typeObjetId|column
+
+# Modifie - peche
+report.fobUsageExtended.request.7=6,0|row|\
+ Select Count(dcp) \
+ From TripSeineImpl m \
+ Join m.route r \
+ Join r.activitySeine a \
+ Join a.floatingObject dcp \
+ Where \
+ m.id In :tripId \
+ and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
+ and dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#8' \
+ and a.vesselActivitySeine.id != 'fr.ird.observe.entities.referentiel.seine.VesselActivitySeine#1239832675369#0.12552908048322586'
+report.fobUsageExtended.request.7.repeat=typeObjetId|column
+
+# Retire + peche
+report.fobUsageExtended.request.8=7,0|row|\
+ Select Count(dcp) \
+ From TripSeineImpl m \
+ Join m.route r \
+ Join r.activitySeine a \
+ Join a.floatingObject dcp \
+ Where \
+ m.id In :tripId \
+ and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
+ and dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#4' \
+ and a.vesselActivitySeine.id = 'fr.ird.observe.entities.referentiel.seine.VesselActivitySeine#1239832675369#0.12552908048322586'
+report.fobUsageExtended.request.8.repeat=typeObjetId|column
+
+# Retire - peche
+report.fobUsageExtended.request.9=8,0|row|\
+ Select Count(dcp) \
+ From TripSeineImpl m \
+ Join m.route r \
+ Join r.activitySeine a \
+ Join a.floatingObject dcp \
+ Where \
+ m.id In :tripId \
+ and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
+ and dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#4' \
+ and a.vesselActivitySeine.id != 'fr.ird.observe.entities.referentiel.seine.VesselActivitySeine#1239832675369#0.12552908048322586'
+report.fobUsageExtended.request.9.repeat=typeObjetId|column
+
+# Abandonne + peche
+report.fobUsageExtended.request.10=9,0|row|\
+ Select Count(dcp) \
+ From TripSeineImpl m \
+ Join m.route r \
+ Join r.activitySeine a \
+ Join a.floatingObject dcp \
+ Where \
+ m.id In :tripId \
+ and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
+ and dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#5' \
+ and a.vesselActivitySeine.id = 'fr.ird.observe.entities.referentiel.seine.VesselActivitySeine#1239832675369#0.12552908048322586'
+report.fobUsageExtended.request.10.repeat=typeObjetId|column
+
+# Abandonne - peche
+report.fobUsageExtended.request.11=10,0|row|\
+ Select Count(dcp) \
+ From TripSeineImpl m \
+ Join m.route r \
+ Join r.activitySeine a \
+ Join a.floatingObject dcp \
+ Where \
+ m.id In :tripId \
+ and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
+ and dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#5' \
+ and a.vesselActivitySeine.id != 'fr.ird.observe.entities.referentiel.seine.VesselActivitySeine#1239832675369#0.12552908048322586'
+report.fobUsageExtended.request.11.repeat=typeObjetId|column
+
+# Coule + peche
+report.fobUsageExtended.request.12=11,0|row|\
Select Count(dcp) \
From TripSeineImpl m \
Join m.route r \
@@ -195,10 +418,12 @@ report.dcpUsage.request.5=4,0|row|\
Where \
m.id In :tripId \
and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
- and dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#8'
-report.dcpUsage.request.5.repeat=typeObjetId|column
-# Retrait
-report.dcpUsage.request.6=5,0|row|\
+ and dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#7' \
+ and a.vesselActivitySeine.id = 'fr.ird.observe.entities.referentiel.seine.VesselActivitySeine#1239832675369#0.12552908048322586'
+report.fobUsageExtended.request.12.repeat=typeObjetId|column
+
+# Coule - peche
+report.fobUsageExtended.request.13=12,0|row|\
Select Count(dcp) \
From TripSeineImpl m \
Join m.route r \
@@ -207,10 +432,12 @@ report.dcpUsage.request.6=5,0|row|\
Where \
m.id In :tripId \
and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
- and dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#4'
-report.dcpUsage.request.6.repeat=typeObjetId|column
-# abondonne
-report.dcpUsage.request.7=6,0|row|\
+ and dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#7' \
+ and a.vesselActivitySeine.id != 'fr.ird.observe.entities.referentiel.seine.VesselActivitySeine#1239832675369#0.12552908048322586'
+report.fobUsageExtended.request.13.repeat=typeObjetId|column
+
+# Remplace + peche
+report.fobUsageExtended.request.14=13,0|row|\
Select Count(dcp) \
From TripSeineImpl m \
Join m.route r \
@@ -219,10 +446,12 @@ report.dcpUsage.request.7=6,0|row|\
Where \
m.id In :tripId \
and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
- and dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#5'
-report.dcpUsage.request.7.repeat=typeObjetId|column
-# coule
-report.dcpUsage.request.8=7,0|row|\
+ and dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#9' \
+ and a.vesselActivitySeine.id = 'fr.ird.observe.entities.referentiel.seine.VesselActivitySeine#1239832675369#0.12552908048322586'
+report.fobUsageExtended.request.14.repeat=typeObjetId|column
+
+# Remplace - peche
+report.fobUsageExtended.request.15=14,0|row|\
Select Count(dcp) \
From TripSeineImpl m \
Join m.route r \
@@ -231,10 +460,12 @@ report.dcpUsage.request.8=7,0|row|\
Where \
m.id In :tripId \
and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
- and dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#7'
-report.dcpUsage.request.8.repeat=typeObjetId|column
-# remplacement
-report.dcpUsage.request.9=8,0|row|\
+ and dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#9' \
+ and a.vesselActivitySeine.id != 'fr.ird.observe.entities.referentiel.seine.VesselActivitySeine#1239832675369#0.12552908048322586'
+report.fobUsageExtended.request.15.repeat=typeObjetId|column
+
+# Autre ou ancien peche + peche
+report.fobUsageExtended.request.16=15,0|row|\
Select Count(dcp) \
From TripSeineImpl m \
Join m.route r \
@@ -243,10 +474,13 @@ report.dcpUsage.request.9=8,0|row|\
Where \
m.id In :tripId \
and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
- and dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#09'
-report.dcpUsage.request.9.repeat=typeObjetId|column
-# autre
-report.dcpUsage.request.10=9,0|row|\
+ and (dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#10' \
+ or dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#3') \
+ and a.vesselActivitySeine.id = 'fr.ird.observe.entities.referentiel.seine.VesselActivitySeine#1239832675369#0.12552908048322586'
+report.fobUsageExtended.request.16.repeat=typeObjetId|column
+
+# Autre ou ancien peche - peche
+report.fobUsageExtended.request.17=16,0|row|\
Select Count(dcp) \
From TripSeineImpl m \
Join m.route r \
@@ -255,10 +489,13 @@ report.dcpUsage.request.10=9,0|row|\
Where \
m.id In :tripId \
and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
- and dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#10'
-report.dcpUsage.request.10.repeat=typeObjetId|column
-# tortues
-report.dcpUsage.request.11=10,0|row| \
+ and (dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#10' \
+ or dcp.objectOperation.id = 'fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#3') \
+ and a.vesselActivitySeine.id != 'fr.ird.observe.entities.referentiel.seine.VesselActivitySeine#1239832675369#0.12552908048322586'
+report.fobUsageExtended.request.17.repeat=typeObjetId|column
+
+# Nombre de tortues
+report.fobUsageExtended.request.18=17,0|row| \
Select Sum(efo.count) \
From TripSeineImpl m \
Join m.route r \
@@ -269,8 +506,7 @@ report.dcpUsage.request.11=10,0|row| \
m.id In :tripId \
and dcp.computedWhenArrivingSimplifiedObjectType = :typeObjetId \
and efo.species.speciesGroup.id = 'fr.ird.observe.entities.referentiel.SpeciesGroup#1239832683690#0.24333033683679461'
-report.dcpUsage.request.11.repeat=typeObjetId|column
-
+report.fobUsageExtended.request.18.repeat=typeObjetId|column
################################################################################
## Nombre des cal\u00e9es selon le type d'association
################################################################################
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/ee51e70ab424f184eda02d52…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/ee51e70ab424f184eda02d52…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop] Bascule entre langues - Closes #1553
by Tony CHEMIT 30 Jun '20
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
[Git][ultreiaio/ird-observe][develop] 2 commits: Élimination des points non effectifs dans la carte - Closes #1560
by Tony CHEMIT 30 Jun '20
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
[Git][ultreiaio/ird-observe][develop] 2 commits: Élimination des points non effectifs dans la carte - Cloes #1560
by Tony CHEMIT 30 Jun '20
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
[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
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