Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: e76086e4 by Tony Chemit at 2024-05-13T11:05:50+02:00 Il semble que le référentiel local ne se mette plus à jour lors d'une synchro simple de référentiel - Closes #2882 - - - - - 31a4cd82 by Tony Chemit at 2024-05-13T11:09:38+02:00 Muavaise gestion des lignes sur la carte - Closes #2883 - - - - - 7 changed files: - client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/save/actions/Start.java - client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/referential/legacy/actions/Apply.java - client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/referential/legacy/actions/Start.java - client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/referential/legacy/actions/SynchroUIActionSupport.java - client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/common/LinesBuilder.java - client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/common/TripMapContentBuilder.java - client/datasource/editor/ll/src/main/resources/map/ll-style.xml Changes: ===================================== client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/save/actions/Start.java ===================================== @@ -31,7 +31,6 @@ import fr.ird.observe.datasource.request.CreateDatabaseRequest; import fr.ird.observe.dto.ProgressionModel; import fr.ird.observe.services.service.DataSourceService; import fr.ird.observe.services.service.referential.UnidirectionalSynchronizeContext; -import io.ultreia.java4all.lang.Strings; import io.ultreia.java4all.util.TimeLog; import io.ultreia.java4all.util.sql.SqlScript; import org.apache.logging.log4j.LogManager; ===================================== client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/referential/legacy/actions/Apply.java ===================================== @@ -22,26 +22,18 @@ package fr.ird.observe.client.datasource.actions.synchronize.referential.legacy. * #L% */ -import fr.ird.observe.client.datasource.actions.AdminStep; import fr.ird.observe.client.datasource.actions.synchronize.referential.legacy.ObsoleteReferentialReference; import fr.ird.observe.client.datasource.actions.synchronize.referential.legacy.SynchronizeModel; import fr.ird.observe.client.datasource.actions.synchronize.referential.legacy.SynchronizeUI; import fr.ird.observe.client.datasource.api.ObserveSwingDataSource; -import fr.ird.observe.dto.I18nDecoratorHelper; import fr.ird.observe.dto.ToolkitIdLabel; import fr.ird.observe.dto.referential.ReferentialDto; -import fr.ird.observe.services.service.referential.UnidirectionalSynchronizeContext; import fr.ird.observe.services.service.referential.UnidirectionalSynchronizeEngine; import fr.ird.observe.services.service.referential.synchro.UnidirectionalCallbackResults; -import fr.ird.observe.services.service.referential.synchro.UnidirectionalResult; import io.ultreia.java4all.jaxx.widgets.combobox.FilterableComboBox; -import io.ultreia.java4all.util.LeftOrRightContext; -import io.ultreia.java4all.util.TimeLog; import org.nuiton.jaxx.runtime.swing.wizard.ext.WizardState; import java.awt.event.ActionEvent; -import java.util.Collection; -import java.util.List; import static io.ultreia.java4all.i18n.I18n.t; @@ -88,63 +80,4 @@ public class Apply extends SynchroUIActionSupport { } } - - private void beforeSuccess(UnidirectionalSynchronizeEngine engine) { - SynchronizeModel stepModel = ui.getStepModel(); - - UnidirectionalSynchronizeContext referentialSynchronizeContext = stepModel.getReferentialSynchronizeContext(); - UnidirectionalCallbackResults referentialSynchronizeCallbackResults = stepModel.getReferentialSynchronizeCallbackResults(); - - UnidirectionalResult referentialSynchronizeResult = engine.prepareResult(referentialSynchronizeContext, referentialSynchronizeCallbackResults); - stepModel.setReferentialSynchronizeResult(referentialSynchronizeResult); - long t00 = TimeLog.getTime(); - if (referentialSynchronizeResult.isEmpty()) { - //Update lastUpdateDate anyway (See https://gitlab.com/ultreiaio/ird-observe/-/issues/2231) - sendMessage(t("observe.ui.datasource.editor.actions.synchro.referential.message.ref.is.updtodate")); - ui.getModel().getSaveLocalModel().addStepForSave(AdminStep.SYNCHRONIZE); - } else { - for (Class<? extends ReferentialDto> referentialName : referentialSynchronizeResult.getReferentialNames()) { - String referentialStr = t(I18nDecoratorHelper.getType(referentialName)); - Collection<String> referentialAdded = referentialSynchronizeResult.getReferentialAdded(referentialName); - if (referentialAdded != null && !referentialAdded.isEmpty()) { - sendMessage(t("observe.ui.datasource.editor.actions.synchro.referential.message.referentiel.was.added", referentialStr, referentialAdded.size())); - for (String id : referentialAdded) { - sendMessage(" - " + id); - } - } - Collection<String> referentialUpdated = referentialSynchronizeResult.getReferentialUpdated(referentialName); - if (referentialUpdated != null && !referentialUpdated.isEmpty()) { - sendMessage(t("observe.ui.datasource.editor.actions.synchro.referential.message.referentiel.was.modified", referentialStr, referentialUpdated.size())); - for (String id : referentialUpdated) { - sendMessage(" - " + id); - } - } - Collection<String> referentialReverted = referentialSynchronizeResult.getReferentialReverted(referentialName); - if (referentialReverted != null && !referentialReverted.isEmpty()) { - sendMessage(t("observe.ui.datasource.editor.actions.synchro.referential.message.referentiel.was.reverted", referentialStr, referentialReverted.size())); - for (String id : referentialReverted) { - sendMessage(" - " + id); - } - } - Collection<String> referentialRemoved = referentialSynchronizeResult.getReferentialRemoved(referentialName); - if (referentialRemoved != null && !referentialRemoved.isEmpty()) { - sendMessage(t("observe.ui.datasource.editor.actions.synchro.referential.message.referentiel.was.removed", referentialStr, referentialRemoved.size())); - for (String id : referentialRemoved) { - sendMessage(" - " + id); - } - } - List<LeftOrRightContext<String>> referentialReplaced = referentialSynchronizeResult.getReferentialReplaced(referentialName); - if (referentialReplaced != null && !referentialReplaced.isEmpty()) { - sendMessage(t("observe.ui.datasource.editor.actions.synchro.referential.message.referentiel.was.replaced", referentialStr, referentialReplaced.size())); - for (LeftOrRightContext<String> ids : referentialReplaced) { - sendMessage(" - " + ids.left() + " → " + ids.right()); - } - } - } - sendMessage(t("observe.ui.datasource.editor.actions.synchro.referential.message.script.path", referentialSynchronizeContext.getSqlScriptPath())); - - ui.getModel().getSaveLocalModel().addStepForSave(AdminStep.SYNCHRONIZE); - } - onEndAction(t00, -1, null); - } } ===================================== client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/referential/legacy/actions/Start.java ===================================== @@ -22,7 +22,6 @@ package fr.ird.observe.client.datasource.actions.synchronize.referential.legacy. * #L% */ -import fr.ird.observe.client.datasource.actions.AdminStep; import fr.ird.observe.client.datasource.actions.synchronize.referential.legacy.ObsoleteReferentialReference; import fr.ird.observe.client.datasource.actions.synchronize.referential.legacy.SynchronizeModel; import fr.ird.observe.client.datasource.actions.synchronize.referential.legacy.SynchronizeUI; @@ -113,15 +112,14 @@ public class Start extends SynchroUIActionSupport { // need user fix on obsolete references return WizardState.NEED_FIX; } + + // pas de reference obsolete à traiter + // on termine le traitement + //Update lastUpdateDate anyway (See https://gitlab.com/ultreiaio/ird-observe/-/issues/2231) + beforeSuccess(engine); + return WizardState.SUCCESSED; } } - // pas de reference obsolete à traiter - // on termine le traitement - //Update lastUpdateDate anyway (See https://gitlab.com/ultreiaio/ird-observe/-/issues/2231) - sendMessage(t("observe.ui.datasource.editor.actions.synchro.referential.message.ref.is.updtodate")); - - ui.getModel().getSaveLocalModel().addStepForSave(AdminStep.SYNCHRONIZE); - return WizardState.SUCCESSED; } } ===================================== client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/referential/legacy/actions/SynchroUIActionSupport.java ===================================== @@ -22,13 +22,85 @@ package fr.ird.observe.client.datasource.actions.synchronize.referential.legacy. * #L% */ +import fr.ird.observe.client.datasource.actions.AdminStep; import fr.ird.observe.client.datasource.actions.actions.AdminTabUIActionSupport; +import fr.ird.observe.client.datasource.actions.synchronize.referential.legacy.SynchronizeModel; import fr.ird.observe.client.datasource.actions.synchronize.referential.legacy.SynchronizeUI; +import fr.ird.observe.dto.I18nDecoratorHelper; +import fr.ird.observe.dto.referential.ReferentialDto; +import fr.ird.observe.services.service.referential.UnidirectionalSynchronizeContext; +import fr.ird.observe.services.service.referential.UnidirectionalSynchronizeEngine; +import fr.ird.observe.services.service.referential.synchro.UnidirectionalCallbackResults; +import fr.ird.observe.services.service.referential.synchro.UnidirectionalResult; +import io.ultreia.java4all.util.LeftOrRightContext; +import io.ultreia.java4all.util.TimeLog; + +import java.util.Collection; +import java.util.List; + +import static io.ultreia.java4all.i18n.I18n.t; public abstract class SynchroUIActionSupport extends AdminTabUIActionSupport<SynchronizeUI> { public SynchroUIActionSupport(String label, String shortDescription, String actionIcon, char acceleratorKey) { super(label, shortDescription, actionIcon, acceleratorKey); } + protected void beforeSuccess(UnidirectionalSynchronizeEngine engine) { + SynchronizeModel stepModel = ui.getStepModel(); + + UnidirectionalSynchronizeContext referentialSynchronizeContext = stepModel.getReferentialSynchronizeContext(); + UnidirectionalCallbackResults referentialSynchronizeCallbackResults = stepModel.getReferentialSynchronizeCallbackResults(); + UnidirectionalResult referentialSynchronizeResult = engine.prepareResult(referentialSynchronizeContext, referentialSynchronizeCallbackResults); + stepModel.setReferentialSynchronizeResult(referentialSynchronizeResult); + long t00 = TimeLog.getTime(); + if (referentialSynchronizeResult.isEmpty()) { + //Update lastUpdateDate anyway (See https://gitlab.com/ultreiaio/ird-observe/-/issues/2231) + sendMessage(t("observe.ui.datasource.editor.actions.synchro.referential.message.ref.is.updtodate")); + ui.getModel().getSaveLocalModel().addStepForSave(AdminStep.SYNCHRONIZE); + } else { + for (Class<? extends ReferentialDto> referentialName : referentialSynchronizeResult.getReferentialNames()) { + String referentialStr = t(I18nDecoratorHelper.getType(referentialName)); + Collection<String> referentialAdded = referentialSynchronizeResult.getReferentialAdded(referentialName); + if (referentialAdded != null && !referentialAdded.isEmpty()) { + sendMessage(t("observe.ui.datasource.editor.actions.synchro.referential.message.referentiel.was.added", referentialStr, referentialAdded.size())); + for (String id : referentialAdded) { + sendMessage(" - " + id); + } + } + Collection<String> referentialUpdated = referentialSynchronizeResult.getReferentialUpdated(referentialName); + if (referentialUpdated != null && !referentialUpdated.isEmpty()) { + sendMessage(t("observe.ui.datasource.editor.actions.synchro.referential.message.referentiel.was.modified", referentialStr, referentialUpdated.size())); + for (String id : referentialUpdated) { + sendMessage(" - " + id); + } + } + Collection<String> referentialReverted = referentialSynchronizeResult.getReferentialReverted(referentialName); + if (referentialReverted != null && !referentialReverted.isEmpty()) { + sendMessage(t("observe.ui.datasource.editor.actions.synchro.referential.message.referentiel.was.reverted", referentialStr, referentialReverted.size())); + for (String id : referentialReverted) { + sendMessage(" - " + id); + } + } + Collection<String> referentialRemoved = referentialSynchronizeResult.getReferentialRemoved(referentialName); + if (referentialRemoved != null && !referentialRemoved.isEmpty()) { + sendMessage(t("observe.ui.datasource.editor.actions.synchro.referential.message.referentiel.was.removed", referentialStr, referentialRemoved.size())); + for (String id : referentialRemoved) { + sendMessage(" - " + id); + } + } + List<LeftOrRightContext<String>> referentialReplaced = referentialSynchronizeResult.getReferentialReplaced(referentialName); + if (referentialReplaced != null && !referentialReplaced.isEmpty()) { + sendMessage(t("observe.ui.datasource.editor.actions.synchro.referential.message.referentiel.was.replaced", referentialStr, referentialReplaced.size())); + for (LeftOrRightContext<String> ids : referentialReplaced) { + sendMessage(" - " + ids.left() + " → " + ids.right()); + } + } + } + sendMessage(t("observe.ui.datasource.editor.actions.synchro.referential.message.script.path", referentialSynchronizeContext.getSqlScriptPath())); + + ui.getModel().getSaveLocalModel().addStepForSave(AdminStep.SYNCHRONIZE); + } + onEndAction(t00, -1, null); + } } ===================================== client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/common/LinesBuilder.java ===================================== @@ -50,6 +50,20 @@ public abstract class LinesBuilder { private static final String LOGBOOK_LINES_LAYER_NAME = "Logbook lines"; + @Override + public String tripLineId() { + return "logbookTrip"; + } + + @Override + public String settingLineId() { + return "logbookSetting"; + } + + @Override + public String haulingLineId() { + return "logbookHauling"; + } @Override public boolean addSettingLine(TripMapPointType previousTripMapPointType, TripMapPointType tripMapPointType) { @@ -91,6 +105,21 @@ public abstract class LinesBuilder { private static final String OBSERVATION_LINES_LAYER_NAME = "Observation lines"; + @Override + public String tripLineId() { + return "observationsTrip"; + } + + @Override + public String settingLineId() { + return "observationsSetting"; + } + + @Override + public String haulingLineId() { + return "observationsHauling"; + } + @Override public boolean addSettingLine(TripMapPointType previousTripMapPointType, TripMapPointType tripMapPointType) { return previousTripMapPointType.equals(TripMapPointType.llActivityObsWithSettingStart) && tripMapPointType.equals(TripMapPointType.llActivityObsWithSettingEnd); @@ -146,10 +175,13 @@ public abstract class LinesBuilder { public abstract boolean skipLine(TripMapPointType previousTripMapPointType, TripMapPointType tripMapPointType); + public abstract String tripLineId(); public abstract String tripLineTitle(); + public abstract String settingLineId(); public abstract String settingLineTitle(); + public abstract String haulingLineId(); public abstract String haulingLineTitle(); public abstract String layerName(); @@ -167,7 +199,7 @@ public abstract class LinesBuilder { if (tripMapPoint.isValid()) { offerNextPoint(tripMapPoint); } else { - log.info(String.format("Point %d → %s - skip (not valid)", index, tripMapPointType)); + log.debug(String.format("Point %d → %s - skip (not valid)", index, tripMapPointType)); } previousTripMapPoint = tripMapPoint; } @@ -187,14 +219,14 @@ public abstract class LinesBuilder { protected void offerNextPoint(TripMapPoint tripMapPoint) { TripMapPointType tripMapPointType = tripMapPoint.getType(); - log.info(String.format("Point %d → %s", index, tripMapPointType)); + log.debug(String.format("Point %d → %s", index, tripMapPointType)); TripMapPointType previousTripMapPointType = previousTripMapPoint.getType(); boolean previousPointValid = previousTripMapPoint.isValid(); if (addSettingLine(previousTripMapPointType, tripMapPointType)) { if (previousPointValid) { settingLines.add(TripMapContentBuilderSupport.create(previousTripMapPoint, tripMapPoint)); - log.info(String.format("Point %d → %s - add setting line %d (%s → %s)", index, tripMapPoint.getType(), settingLines.size(), previousTripMapPoint.getType(), tripMapPoint.getType())); + log.debug(String.format("Point %d → %s - add setting line %d (%s → %s)", index, tripMapPoint.getType(), settingLines.size(), previousTripMapPoint.getType(), tripMapPoint.getType())); } return; } @@ -204,17 +236,17 @@ public abstract class LinesBuilder { if (addHaulingLine(previousTripMapPointType, tripMapPointType)) { if (previousPointValid) { haulingLines.add(TripMapContentBuilderSupport.create(previousTripMapPoint, tripMapPoint)); - log.info(String.format("Point %d → %s - add hauling line %d (%s → %s)", index, tripMapPoint.getType(), haulingLines.size(), previousTripMapPoint.getType(), tripMapPoint.getType())); + log.debug(String.format("Point %d → %s - add hauling line %d (%s → %s)", index, tripMapPoint.getType(), haulingLines.size(), previousTripMapPoint.getType(), tripMapPoint.getType())); } return; } if (tripLineStart == null) { tripLineStart = tripMapPoint; - log.info(String.format("Point %d → %s - add first start for first line", index, tripMapPoint.getType())); + log.debug(String.format("Point %d → %s - add first start for first line", index, tripMapPoint.getType())); return; } tripLines.add(TripMapContentBuilderSupport.create(tripLineStart, tripMapPoint)); - log.info(String.format("Point %d → %s - add trip line %d (%s → %s)", index, tripMapPoint.getType(), tripLines.size(), tripLineStart.getType(), tripMapPoint.getType())); + log.debug(String.format("Point %d → %s - add trip line %d (%s → %s)", index, tripMapPoint.getType(), tripLines.size(), tripLineStart.getType(), tripMapPoint.getType())); tripLineStart = tripMapPoint; } ===================================== client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/common/TripMapContentBuilder.java ===================================== @@ -56,9 +56,6 @@ import static io.ultreia.java4all.i18n.I18n.n; @AutoService(fr.ird.observe.dto.data.TripMapContentBuilder.class) public class TripMapContentBuilder extends TripMapContentBuilderSupport { - public static final String SETTING_LINE_TYPE = "setting"; - public static final String HAULING_LINE_TYPE = "hauling"; - public static final String TRIP_LINE_TYPE = "trip"; private static final LinesBuilder.LogbookLinesBuilder LOGBOOK_LINES_BUILDER = new LinesBuilder.LogbookLinesBuilder(); private static final ZonesBuilder.LogbookZonesBuilder LOGBOOK_ZONES_BUILDER = new ZonesBuilder.LogbookZonesBuilder(); private static final LinesBuilder.ObservationsLinesBuilder OBSERVATIONS_LINES_BUILDER = new LinesBuilder.ObservationsLinesBuilder(); @@ -137,22 +134,22 @@ public class TripMapContentBuilder extends TripMapContentBuilderSupport { Set<String> lineTypes = new TreeSet<>(); builder.build(tripMapPoints); if (addTripSegment) { - addLines(TRIP_LINE_TYPE, linesFeatures, lineTypes, builder.getTripLines(), excludedFeatureNames); + addLines(builder.tripLineId(), linesFeatures, lineTypes, builder.getTripLines(), excludedFeatureNames); } - addLines(SETTING_LINE_TYPE, linesFeatures, lineTypes, builder.getSettingLines(), excludedFeatureNames); - addLines(HAULING_LINE_TYPE, linesFeatures, lineTypes, builder.getHaulingLines(), excludedFeatureNames); - if (!linesFeatures.isEmpty()) { + addLines(builder.settingLineId(), linesFeatures, lineTypes, builder.getSettingLines(), excludedFeatureNames); + addLines(builder.haulingLineId(), linesFeatures, lineTypes, builder.getHaulingLines(), excludedFeatureNames); + if (!lineTypes.isEmpty()) { Style styleLines = findStyle(styledLayerDescriptor, builder.layerName()); Layer layerLines = new FeatureLayer(linesFeatures, styleLines, builder.layerName()); mapContent.addLayer(layerLines); - if (lineTypes.contains(TRIP_LINE_TYPE)) { - addLineLegend(styleLines, TRIP_LINE_TYPE, builder.tripLineTitle(), excludedFeatureNames); + if (lineTypes.contains(builder.tripLineId())) { + addLineLegend(styleLines, builder.tripLineId(), builder.tripLineTitle(), excludedFeatureNames); } - if (lineTypes.contains(SETTING_LINE_TYPE)) { - addLineLegend(styleLines, SETTING_LINE_TYPE, builder.settingLineTitle(), excludedFeatureNames); + if (lineTypes.contains(builder.settingLineId())) { + addLineLegend(styleLines, builder.settingLineId(), builder.settingLineTitle(), excludedFeatureNames); } - if (lineTypes.contains(HAULING_LINE_TYPE)) { - addLineLegend(styleLines, HAULING_LINE_TYPE, builder.haulingLineTitle(), excludedFeatureNames); + if (lineTypes.contains(builder.haulingLineId())) { + addLineLegend(styleLines, builder.haulingLineId(), builder.haulingLineTitle(), excludedFeatureNames); } } } ===================================== client/datasource/editor/ll/src/main/resources/map/ll-style.xml ===================================== @@ -112,7 +112,7 @@ <ogc:Filter> <ogc:PropertyIsEqualTo> <ogc:PropertyName>type</ogc:PropertyName> - <ogc:Literal>trip</ogc:Literal> + <ogc:Literal>observationsTrip</ogc:Literal> </ogc:PropertyIsEqualTo> </ogc:Filter> <LineSymbolizer> @@ -130,7 +130,7 @@ <ogc:Filter> <ogc:PropertyIsEqualTo> <ogc:PropertyName>type</ogc:PropertyName> - <ogc:Literal>setting</ogc:Literal> + <ogc:Literal>observationsSetting</ogc:Literal> </ogc:PropertyIsEqualTo> </ogc:Filter> <LineSymbolizer> @@ -147,7 +147,7 @@ <ogc:Filter> <ogc:PropertyIsEqualTo> <ogc:PropertyName>type</ogc:PropertyName> - <ogc:Literal>hauling</ogc:Literal> + <ogc:Literal>observationsHauling</ogc:Literal> </ogc:PropertyIsEqualTo> </ogc:Filter> <LineSymbolizer> @@ -171,7 +171,7 @@ <ogc:Filter> <ogc:PropertyIsEqualTo> <ogc:PropertyName>type</ogc:PropertyName> - <ogc:Literal>trip</ogc:Literal> + <ogc:Literal>logbookTrip</ogc:Literal> </ogc:PropertyIsEqualTo> </ogc:Filter> <LineSymbolizer> @@ -189,7 +189,7 @@ <ogc:Filter> <ogc:PropertyIsEqualTo> <ogc:PropertyName>type</ogc:PropertyName> - <ogc:Literal>setting</ogc:Literal> + <ogc:Literal>logbookSetting</ogc:Literal> </ogc:PropertyIsEqualTo> </ogc:Filter> <LineSymbolizer> @@ -206,7 +206,7 @@ <ogc:Filter> <ogc:PropertyIsEqualTo> <ogc:PropertyName>type</ogc:PropertyName> - <ogc:Literal>hauling</ogc:Literal> + <ogc:Literal>logbookHauling</ogc:Literal> </ogc:PropertyIsEqualTo> </ogc:Filter> <LineSymbolizer> View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/47b094f54cf2f3bc4def693c5... -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/47b094f54cf2f3bc4def693c5... You're receiving this email because of your account on gitlab.com.
participants (1)
-
Tony CHEMIT (@tchemit)