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

Keyboard Shortcuts

Thread View

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

Observe-commits

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

  • 7199 discussions
[Git][ultreiaio/ird-observe][develop] 7 commits: Use new jaxx list widgets (remove select ones)
by Tony CHEMIT 16 Jan '21

16 Jan '21
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: c704ea5c by Tony Chemit at 2021-01-15T15:09:29+01:00 Use new jaxx list widgets (remove select ones) Clean jaxx files (remove dummy constructor who passes the ui to widgets, this is too much! and it works without it, so remove them) - - - - - b701b5a1 by Tony Chemit at 2021-01-15T16:33:02+01:00 [LL][Observations] Horodatage hook timers par défaut - Closes #1625 - - - - - 9c1ffd91 by Tony Chemit at 2021-01-16T14:36:06+01:00 Change Branchline.timeSinceContact to Integer - See #1757 - - - - - 810bcf8b by Tony Chemit at 2021-01-16T14:41:47+01:00 Introduce UnlimitedTimeEditor - See #1757 - - - - - be3b4ce7 by Tony Chemit at 2021-01-16T14:42:12+01:00 Specify java version - - - - - 6e4da3e6 by Tony Chemit at 2021-01-16T14:43:58+01:00 use UnlimitedTimeEditor on SetCatchUI and do the math (in fact just remove all specific code ^^) - See #1757 - - - - - e4033872 by Tony Chemit at 2021-01-16T15:34:55+01:00 use UnlimitedTimeEditor on BranchlineUI and do the math (in fact just remove all specific code ^^) - See #1757 Now functional on both forms :) - - - - - 30 changed files: - client/core/pom.xml - client/core/src/main/java/fr/ird/observe/client/datasource/api/cache/ReferencesCache.java - client/core/src/main/java/fr/ird/observe/client/util/init/DefaultUIInitializer.java - client/core/src/main/java/fr/ird/observe/client/util/init/DefaultUIInitializerResult.java - client/core/src/main/java/fr/ird/observe/client/util/init/UIInitHelper.java - client/core/src/main/java/fr/ird/observe/client/util/session/ObserveSwingSessionHelper.java - client/core/src/main/resources/fr/ird/observe/client/ui/ObserveCommon.jcss - client/datasource/editor/api/pom.xml - client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/Common.jcss - client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/ContentUIInitializer.java - client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/data/list/ContentListUI.jaxx - client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/data/list/ContentListUIHandler.java - client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/referential/ContentReferentialUI.jaxx - client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/referential/ContentReferentialUIHandler.java - client/datasource/editor/api/src/main/resources/fr/ird/observe/client/datasource/editor/api/content/data/edit/CommonContentEditUI.jcss - client/datasource/editor/api/src/main/resources/fr/ird/observe/client/datasource/editor/api/content/data/open/CommonContentOpenableUI.jcss - client/datasource/editor/api/src/main/resources/fr/ird/observe/client/datasource/editor/api/content/data/simple/CommonContentSimpleUI.jcss - client/datasource/editor/api/src/main/resources/fr/ird/observe/client/datasource/editor/api/content/referential/CommonContentI18nReferentialUI.jcss - client/datasource/editor/api/src/main/resources/fr/ird/observe/client/datasource/editor/api/content/referential/CommonContentReferentialUI.jcss - client/datasource/editor/common/pom.xml - client/datasource/editor/common/src/main/java/fr/ird/observe/client/datasource/editor/common/referential/common/GearCharacteristicUI.jaxx - client/datasource/editor/common/src/main/java/fr/ird/observe/client/datasource/editor/common/referential/common/GearUI.jaxx - client/datasource/editor/common/src/main/java/fr/ird/observe/client/datasource/editor/common/referential/common/HarbourUI.jaxx - client/datasource/editor/common/src/main/java/fr/ird/observe/client/datasource/editor/common/referential/common/LengthLengthParameterUI.jaxx - client/datasource/editor/common/src/main/java/fr/ird/observe/client/datasource/editor/common/referential/common/LengthWeightParameterUI.jaxx - client/datasource/editor/common/src/main/java/fr/ird/observe/client/datasource/editor/common/referential/common/OrganismUI.jaxx - client/datasource/editor/common/src/main/java/fr/ird/observe/client/datasource/editor/common/referential/common/PersonUI.jaxx - client/datasource/editor/common/src/main/java/fr/ird/observe/client/datasource/editor/common/referential/common/ProgramUI.jaxx - client/datasource/editor/common/src/main/java/fr/ird/observe/client/datasource/editor/common/referential/common/ShipOwnerUI.jaxx - client/datasource/editor/common/src/main/java/fr/ird/observe/client/datasource/editor/common/referential/common/SpeciesGroupUI.jaxx The diff was not included because it is too large. View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/9ada1099b7e1f407d959b513… -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/9ada1099b7e1f407d959b513… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][develop] Fix some missing decorators
by Tony CHEMIT 15 Jan '21

15 Jan '21
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: 9ada1099 by Tony Chemit at 2021-01-15T03:50:41+01:00 Fix some missing decorators - - - - - 1 changed file: - client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/ContentUIHandler.java Changes: ===================================== client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/ContentUIHandler.java ===================================== @@ -323,7 +323,9 @@ public abstract class ContentUIHandler<U extends ContentUI> implements ObserveSe public final <R extends ReferentialDtoReference> List<R> getReferentialReferences(Class<R> type, String... ids) { ObserveSwingDataSource mainDataSource = getClientUIContext().getDataSourcesManager().getMainDataSource(); - return new LinkedList<>(mainDataSource.getReferentialReferences(type, ids)); + LinkedList<R> result = new LinkedList<>(mainDataSource.getReferentialReferences(type, ids)); + getDecoratorService().installDecorator(type, result.stream()); + return result; } @Override View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/9ada1099b7e1f407d959b5134… -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/9ada1099b7e1f407d959b5134… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][develop] 4 commits: Découplage case 'Horloge' et champ 'Horodatage de montée à bord' - Closes #1754
by Tony CHEMIT 15 Jan '21

15 Jan '21
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: ad9a007c by Tony Chemit at 2021-01-14T23:05:57+01:00 Découplage case &#39;Horloge&#39; et champ &#39;Horodatage de montée à bord&#39; - Closes #1754 Clean timeSinceContact when timer is off. - - - - - 8bfa20bb by Tony Chemit at 2021-01-15T03:31:30+01:00 Low some log level (in configuration file, do not touch the code) - - - - - 4bc05760 by Tony Chemit at 2021-01-15T03:36:59+01:00 Let&#39;s make overridable BusinessModule - - - - - 3c6c9b65 by Tony Chemit at 2021-01-15T03:40:20+01:00 Optimisation de l&#39;arbre de sélection et navigation - Closes #1750 Première très concluante : on obtient des temps de l&#39;ordre de quelques secondes pour une grosse base \o/ - - - - - 30 changed files: - client/configuration/src/main/resources/observe-log4j2.xml - client/core/src/main/java/fr/ird/observe/client/util/busy/BusyLayerUI.java - client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/ContentUIInitializer.java - client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/selection/RootSelectionTreeNodeProvider.java - client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/selection/SelectionTreeModel.java - client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/selection/nodes/RootSelectionTreeNode.java - client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/navigation/tree/root/RootNavigationCapability.java - client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/navigation/tree/root/RootNavigationInitializer.java - client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/navigation/tree/root/RootNavigationTreeNodeProvider.java - client/datasource/editor/common/pom.xml - client/datasource/editor/common/src/main/java/fr/ird/observe/client/datasource/editor/common/CommonRootSelectionTreeNodeProvider.java - client/datasource/editor/ll/pom.xml - client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/LlRootNavigationTreeNodeProvider.java - client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/LlRootSelectionTreeNodeProvider.java - client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/observation/SetCatchUIHandler.java - client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/PsRootNavigationTreeNodeProvider.java - client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/PsRootSelectionTreeNodeProvider.java - client/datasource/editor/spi/src/main/java/fr/ird/observe/client/datasource/editor/spi/content/helper/ContentUINavigationNodeHelper.java - + models/dto/src/main/java/fr/ird/observe/spi/module/ObserveBusinessModule.java - + models/dto/src/main/java/fr/ird/observe/spi/module/common/BusinessModule.java - + models/dto/src/main/java/fr/ird/observe/spi/module/ll/BusinessModule.java - + models/dto/src/main/java/fr/ird/observe/spi/module/ps/BusinessModule.java - models/persistence/src/main/java/fr/ird/observe/entities/data/TripAwareTopiaDao.java - models/persistence/src/main/java/fr/ird/observe/entities/data/ll/common/TripTopiaDao.java - models/persistence/src/main/java/fr/ird/observe/entities/data/ps/common/TripTopiaDao.java - server/core/src/main/filtered-resources/mapping - services/api/src/main/java/fr/ird/observe/services/service/data/NavigationResult.java - services/api/src/main/java/fr/ird/observe/services/service/data/NavigationService.java - + services/api/src/main/java/fr/ird/observe/services/service/data/SelectionResult.java - services/local-impl/src/main/java/fr/ird/observe/services/local/service/data/NavigationServiceLocalSupport.java The diff was not included because it is too large. View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/dbc89a2d7ccac8232bb6a6df… -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/dbc89a2d7ccac8232bb6a6df… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][develop-7.x] fix dependencies
by Tony CHEMIT 14 Jan '21

14 Jan '21
Tony CHEMIT pushed to branch develop-7.x at ultreiaio / ird-observe Commits: 33140d2d by Tony Chemit at 2021-01-14T23:41:07+01:00 fix dependencies - - - - - 1 changed file: - client-core/pom.xml Changes: ===================================== client-core/pom.xml ===================================== @@ -377,6 +377,10 @@ <artifactId>java-lang</artifactId> <scope>runtime</scope> </dependency> + <dependency> + <groupId>io.ultreia.java4all</groupId> + <artifactId>java-util</artifactId> + </dependency> <!-- jaxx dependencies --> View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/33140d2dc1de5d91c07d87217… -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/33140d2dc1de5d91c07d87217… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][develop-7.x] Découplage case 'Horloge' et champ 'Horodatage de montée à bord' - Closes #1754
by Tony CHEMIT 14 Jan '21

14 Jan '21
Tony CHEMIT pushed to branch develop-7.x at ultreiaio / ird-observe Commits: f96ea336 by Tony Chemit at 2021-01-14T23:10:27+01:00 Découplage case &#39;Horloge&#39; et champ &#39;Horodatage de montée à bord&#39; - Closes #1754 Clean timeSinceContact when timer is off. - - - - - 1 changed file: - client-core/src/main/java/fr/ird/observe/client/ui/content/data/longline/CatchLonglineUIHandler.java Changes: ===================================== client-core/src/main/java/fr/ird/observe/client/ui/content/data/longline/CatchLonglineUIHandler.java ===================================== @@ -60,6 +60,7 @@ import fr.ird.observe.dto.referential.longline.CatchFateLonglineReference; import fr.ird.observe.dto.referential.longline.HealthStatusReference; import fr.ird.observe.dto.result.SaveResultDto; import fr.ird.observe.spi.DtoModelHelper; +import io.ultreia.java4all.util.Dates; import org.apache.commons.lang3.BooleanUtils; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -112,6 +113,7 @@ public class CatchLonglineUIHandler extends ContentTableUIHandler<SetLonglineCat private final PropertyChangeListener branchlineChanged; private final PropertyChangeListener depredatedChanged; + private final PropertyChangeListener timerChanged; private final PropertyChangeListener sizeTableModelModified; @@ -135,7 +137,7 @@ public class CatchLonglineUIHandler extends ContentTableUIHandler<SetLonglineCat weightTableModelModified = evt -> onWeightTableModelModified((Boolean) evt.getNewValue()); sizeTableModelModified = evt -> onSizeTableModelModified((Boolean) evt.getNewValue()); depredatedChanged = evt -> onDepredatedChanged((Boolean) evt.getNewValue(), (CatchLonglineDto) evt.getSource()); - + timerChanged = evt -> onTimerChanged((Boolean) evt.getNewValue()); addReferentialFilter(CatchLonglineDto.PROPERTY_SPECIES_CATCH, (ReferentialReferencesFilter<SpeciesDto, SpeciesReference>) incomingReferences -> { String speciesListId = ObserveSwingApplicationContext.get().getConfig().getSpeciesListLonglineCatchId(); String tripLonglineId = getDataContext().getSelectedTripLonglineId(); @@ -835,7 +837,7 @@ public class CatchLonglineUIHandler extends ContentTableUIHandler<SetLonglineCat if (log.isInfoEnabled()) { log.info("Remove branchline"); } - + branchline.removePropertyChangeListener(BranchlineDto.PROPERTY_TIMER, timerChanged); branchlineValidator.setBean(null); branchline.clear(); model.setBranchlineTimeSinceContact(null); @@ -845,7 +847,7 @@ public class CatchLonglineUIHandler extends ContentTableUIHandler<SetLonglineCat if (log.isInfoEnabled()) { log.info("Use branchline: " + newValue); } - + branchline.addPropertyChangeListener(BranchlineDto.PROPERTY_TIMER, timerChanged); String setLonglineId = getDataContext().getSelectedSetLonglineId(); Form<BranchlineDto> form = getBranchlineService().loadForm(setLonglineId, newValue.getId()); @@ -1038,7 +1040,15 @@ public class CatchLonglineUIHandler extends ContentTableUIHandler<SetLonglineCat model.setBranchlineTabValid(branchlineTabValid); } - + void onTimerChanged(Boolean newValue) { + if (Objects.equals(true, newValue)) { + // with timer + ui.getModel().setBranchlineTimeSinceContact(Dates.createDate(0, 0, 0, 0, 0, 0)); + } else { + // without timer + ui.getModel().setBranchlineTimeSinceContact(null); + } + } @Override protected CatchLonglineTableModel getTableModel() { return (CatchLonglineTableModel) super.getTableModel(); View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/f96ea3362800bbf2772aee792… -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/f96ea3362800bbf2772aee792… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][develop] 4 commits: Optimisation de l'arbre de sélection et navigation - See #1750
by Tony CHEMIT 14 Jan '21

14 Jan '21
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: d28d1be5 by Tony Chemit at 2021-01-14T19:24:59+01:00 Optimisation de l&#39;arbre de sélection et navigation - See #1750 Ne pas recharger l&#39;apparence des fils du parent (ce n&#39;est pas nécessaire) - - - - - 3ffeb6ee by Tony Chemit at 2021-01-14T19:25:07+01:00 clean code - - - - - 10362d83 by Tony Chemit at 2021-01-14T22:01:03+01:00 Problème d&#39;enregistrement sur avançon depuis le formulaire capture - Closes #1755 - - - - - dbc89a2d by Tony Chemit at 2021-01-14T22:39:19+01:00 Découplage case &#39;Horloge&#39; et champ &#39;Horodatage de montée à bord&#39; - Closes #1754 - - - - - 6 changed files: - client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/actions/mode/ChangeModeExecutor.java - client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/navigation/tree/NavigationNode.java - client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/observation/SetCatchUI.jcss - client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/observation/SetCatchUIHandler.java - client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/observation/SetCatchUIModelStates.java - client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/observation/actions/SetCatchUISaveBranchline.java Changes: ===================================== client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/actions/mode/ChangeModeExecutor.java ===================================== @@ -108,7 +108,7 @@ public class ChangeModeExecutor<U extends ContentUI> { previousOpenedNode.refreshToRoot(); } NavigationNode selectedNode = tree.getSelectedNode(); - tree.getSelectedNode().nodeChanged(true, true); + selectedNode.nodeChanged(true, true); if (previousOpenedNode == null || !Objects.equals(previousOpenedNode.getParent(), selectedNode.getParent())) { selectedNode.getParent().refreshToRoot(); } ===================================== client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/navigation/tree/NavigationNode.java ===================================== @@ -340,7 +340,7 @@ public abstract class NavigationNode extends DefaultMutableTreeNode implements W public final void nodeChanged(boolean refreshFromParent, boolean refreshChildren) { if (refreshFromParent) { - getParent().nodeChanged(false, refreshChildren); + getParent().nodeChanged(false, false); } if (refreshChildren) { nodeChangedDeep(); ===================================== client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/observation/SetCatchUI.jcss ===================================== @@ -136,12 +136,11 @@ #timeSinceContact { enabled:{Objects.equals(true, branchlineBean.getTimer())}; - showTimeEditorSlider:false; + _showTimeEditorSlider:false; } #timerTimeOnBoard { - enabled:{Objects.equals(true, branchlineBean.getTimer())}; - showTimeEditorSlider:false; + _showTimeEditorSlider:false; } #branchlineActions { ===================================== client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/observation/SetCatchUIHandler.java ===================================== @@ -285,7 +285,8 @@ public class SetCatchUIHandler extends GeneratedSetCatchUIHandler { if (timeSinceContact != null) { timeSinceContactDate = DateUtil.createDate(0, (int) (timeSinceContact % 60), (int) (timeSinceContact / 60f), 0, 0, 0); } - } else { + } + if (timeSinceContactDate == null) { timeSinceContactDate = DateUtil.createDate(0, 0, 0, 0, 0, 0); } log.info(String.format("%s Set time since contact: %s", prefix, timeSinceContactDate)); ===================================== client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/observation/SetCatchUIModelStates.java ===================================== @@ -119,9 +119,9 @@ public class SetCatchUIModelStates extends GeneratedSetCatchUIModelStates { } public void setTimeSinceContact(Date timeSinceContact) { -// Date oldValue = getBranchlineTimeSinceContact(); + Date oldValue = getTimeSinceContact(); this.timeSinceContact = timeSinceContact; - firePropertyChange(PROPERTY_TIME_SINCE_CONTACT, null, timeSinceContact); + firePropertyChange(PROPERTY_TIME_SINCE_CONTACT, oldValue, timeSinceContact); } public void resetPosition(CatchDto dto) { ===================================== client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/observation/actions/SetCatchUISaveBranchline.java ===================================== @@ -26,6 +26,7 @@ import fr.ird.observe.client.datasource.editor.api.content.actions.ContentUIActi import fr.ird.observe.client.datasource.editor.ll.ObserveLLKeyStrokes; import fr.ird.observe.client.datasource.editor.ll.data.observation.SetCatchUI; import fr.ird.observe.client.datasource.editor.ll.data.observation.SetCatchUIModel; +import fr.ird.observe.client.datasource.editor.ll.data.observation.SetCatchUIModelStates; import fr.ird.observe.dto.data.ll.observation.BranchlineDto; import fr.ird.observe.dto.result.SaveResultDto; import org.apache.logging.log4j.LogManager; @@ -54,23 +55,24 @@ public class SetCatchUISaveBranchline extends ContentUIActionSupport<SetCatchUI> protected void doActionPerformed(ActionEvent e, SetCatchUI ui) { SetCatchUIModel model = ui.getModel(); String prefix = model.getPrefix(); - log.info(prefix + "Saved modified branchline"); + log.info(String.format("%sSaved modified branchline", prefix)); BranchlineDto branchline = ui.getBranchlineBean(); + SetCatchUIModelStates states = model.getStates(); if (Objects.equals(true, branchline.getTimer())) { Calendar calendar = Calendar.getInstance(); - calendar.setTime(model.getStates().getTimeSinceContact()); + calendar.setTime(states.getTimeSinceContact()); int minutes = calendar.get(Calendar.MINUTE); int hours = calendar.get(Calendar.HOUR_OF_DAY); branchline.setTimeSinceContact(minutes + 60L * hours); } else { branchline.setTimeSinceContact(null); } - log.debug(prefix + "Time since contact: " + branchline.getTimeSinceContact()); + log.info(String.format("%sTime since contact to keep: %d", prefix, branchline.getTimeSinceContact())); SaveResultDto saveResult = getServicesProvider().getLlObservationBranchlineService().save(branchline); saveResult.toDto(branchline); // on recopie le last update car c'est le last update de Set qui est renvoyé. - model.getStates().getBean().setLastUpdateDate(saveResult.getLastUpdateDate()); + states.getBean().setLastUpdateDate(saveResult.getLastUpdateDate()); ui.getBranchlineValidator().setChanged(false); } } View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/2462e0f4bd8e53079c81533c… -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/2462e0f4bd8e53079c81533c… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][develop-7.x] Découplage case 'Horloge' et champ 'Horodatage de montée à bord' - Closes #1754
by Tony CHEMIT 14 Jan '21

14 Jan '21
Tony CHEMIT pushed to branch develop-7.x at ultreiaio / ird-observe Commits: 50026873 by Tony Chemit at 2021-01-14T22:40:23+01:00 Découplage case &#39;Horloge&#39; et champ &#39;Horodatage de montée à bord&#39; - Closes #1754 - - - - - 2 changed files: - client-core/src/main/java/fr/ird/observe/client/ui/content/data/longline/CatchLonglineUI.jaxx - client-core/src/main/java/fr/ird/observe/client/ui/content/data/longline/CatchLonglineUI.jcss Changes: ===================================== client-core/src/main/java/fr/ird/observe/client/ui/content/data/longline/CatchLonglineUI.jaxx ===================================== @@ -420,7 +420,7 @@ <row> <cell> </cell> - <cell columns="2"> + <cell columns="3"> <DateTimeEditor id='timerTimeOnBoard' constructorParams='this'/> </cell> </row> ===================================== client-core/src/main/java/fr/ird/observe/client/ui/content/data/longline/CatchLonglineUI.jcss ===================================== @@ -335,7 +335,6 @@ JCheckBox { propertyDate: {BranchlineDto.PROPERTY_TIMER_TIME_ON_BOARD}; bean:{branchlineBean}; showTimeEditorSlider:false; - enabled:{BooleanUtils.isTrue(branchlineBean.getTimer())}; } #baitHaulingStatus { View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/50026873164711f6a3bc8ce8b… -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/50026873164711f6a3bc8ce8b… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][develop-7.x] 2 commits: Souci de gestion sur 12h du champ 'Temps depuis déclenchement' - Closes #1757
by Tony CHEMIT 14 Jan '21

14 Jan '21
Tony CHEMIT pushed to branch develop-7.x at ultreiaio / ird-observe Commits: 96d93595 by Tony Chemit at 2021-01-14T21:47:56+01:00 Souci de gestion sur 12h du champ &#39;Temps depuis déclenchement&#39; - Closes #1757 - - - - - b2148594 by Tony Chemit at 2021-01-14T21:57:38+01:00 Problème d&#39;enregistrement sur avançon depuis le formulaire capture - Closes #1755 - - - - - 2 changed files: - client-core/src/main/java/fr/ird/observe/client/ui/content/data/longline/CatchLonglineUIHandler.java - client-core/src/main/java/fr/ird/observe/client/ui/content/data/longline/CatchLonglineUIModel.java Changes: ===================================== client-core/src/main/java/fr/ird/observe/client/ui/content/data/longline/CatchLonglineUIHandler.java ===================================== @@ -68,7 +68,6 @@ import org.nuiton.jaxx.runtime.spi.UIHandler; import org.nuiton.jaxx.validator.swing.SwingValidator; import org.nuiton.jaxx.validator.swing.SwingValidatorMessage; import org.nuiton.jaxx.validator.swing.SwingValidatorMessageTableModel; -import org.nuiton.jaxx.widgets.datetime.TimeEditor; import org.nuiton.util.DateUtil; import org.nuiton.validator.NuitonValidatorScope; @@ -823,7 +822,7 @@ public class CatchLonglineUIHandler extends ContentTableUIHandler<SetLonglineCat } //tchemit-20191104 there is a bug on time editor, need to reset by hand the hour and minute editor - reset(ui.getTimeSinceContact()); + ui.getTimeSinceContact().reset(); CatchLonglineUI ui = getUi(); @@ -862,7 +861,8 @@ public class CatchLonglineUIHandler extends ContentTableUIHandler<SetLonglineCat if (timeSinceContact != null) { timeSinceContactDate = DateUtil.createDate(0, (int) (timeSinceContact % 60), (int) (timeSinceContact / 60f), 0, 0, 0); } - } else { + } + if (timeSinceContactDate == null) { timeSinceContactDate = DateUtil.createDate(0, 0, 0, 0, 0, 0); } log.info("Set time since contact: " + timeSinceContactDate); @@ -874,12 +874,6 @@ public class CatchLonglineUIHandler extends ContentTableUIHandler<SetLonglineCat } - private void reset(TimeEditor ui) { - ui.getHourEditor().setValue(new Date(0)); - ui.getMinuteEditor().setValue(new Date(0)); - ui.getModel().setTime(null); - } - private void onDepredatedChanged(Boolean newValue, CatchLonglineDto tableEditBean) { CatchLonglineUI ui = getUi(); ===================================== client-core/src/main/java/fr/ird/observe/client/ui/content/data/longline/CatchLonglineUIModel.java ===================================== @@ -194,9 +194,9 @@ public class CatchLonglineUIModel extends ContentTableUIModel<SetLonglineCatchDt } public void setBranchlineTimeSinceContact(Date branchlineTimeSinceContact) { -// Date oldValue = getBranchlineTimeSinceContact(); + Date oldValue = getBranchlineTimeSinceContact(); this.branchlineTimeSinceContact = branchlineTimeSinceContact; - firePropertyChange(PROPERTY_BRANCHLINE_TIME_SINCE_CONTACT, null, branchlineTimeSinceContact); + firePropertyChange(PROPERTY_BRANCHLINE_TIME_SINCE_CONTACT, oldValue, branchlineTimeSinceContact); } View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/be2566afad69329438f19982… -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/be2566afad69329438f19982… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][develop-7.x] 2 commits: Fix isValidId method
by Tony CHEMIT 14 Jan '21

14 Jan '21
Tony CHEMIT pushed to branch develop-7.x at ultreiaio / ird-observe Commits: 00213e9a by Tony Chemit at 2020-11-25T15:47:50+01:00 Fix isValidId method (Possibilité de forcer le topiaid sur tous les écrans de création des référentiels - See #1328) - - - - - be2566af by Tony Chemit at 2021-01-14T21:43:47+01:00 Souci de gestion sur 12h du champ &#39;Temps depuis déclenchement&#39; - Closes #1757 - - - - - 2 changed files: - client-core/src/main/java/fr/ird/observe/client/ui/content/data/longline/BranchlineUIHandler.java - common-persistence/src/main/java/fr/ird/observe/persistence/ObserveTopiaIdFactory.java Changes: ===================================== client-core/src/main/java/fr/ird/observe/client/ui/content/data/longline/BranchlineUIHandler.java ===================================== @@ -270,7 +270,7 @@ public class BranchlineUIHandler extends ContentUIHandler<BranchlineDto, Branchl Calendar calendar = Calendar.getInstance(); calendar.setTime(getModel().getTimeSinceContact()); int minutes = calendar.get(Calendar.MINUTE); - int hours = calendar.get(Calendar.HOUR); + int hours = calendar.get(Calendar.HOUR_OF_DAY); beanToSave.setTimeSinceContact(minutes + 60L * hours); } else { beanToSave.setTimeSinceContact(null); ===================================== common-persistence/src/main/java/fr/ird/observe/persistence/ObserveTopiaIdFactory.java ===================================== @@ -29,6 +29,8 @@ import org.apache.logging.log4j.Logger; import org.nuiton.topia.persistence.TopiaEntity; import org.nuiton.topia.persistence.internal.LegacyTopiaIdFactory; +import java.util.Objects; + /** * Created on 21/08/15. * @@ -54,10 +56,10 @@ public class ObserveTopiaIdFactory extends LegacyTopiaIdFactory { if (str != null && !str.endsWith(getSeparator())) { String[] split = str.split(getSeparator()); if (split.length == 3) { - String className = split[0]; - isTopiaId = entityClass.getName().equals(className); - for (int index = 1; index < split.length; index++) { - isTopiaId &= StringUtils.isNumeric(split[index]); + isTopiaId = Objects.equals(entityClass, getClassName(str)); + for (int index = 1; isTopiaId && index < split.length; index++) { + String part = split[index]; + isTopiaId = !part.endsWith(".") && StringUtils.isNumeric(part.replace(".", "")); } } } View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/021cbd030baeb134001a34be… -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/021cbd030baeb134001a34be… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][develop] Optimisation de l'arbre de sélection et navigation - See #1750
by Tony CHEMIT 14 Jan '21

14 Jan '21
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: 2462e0f4 by Tony Chemit at 2021-01-14T18:38:54+01:00 Optimisation de l&#39;arbre de sélection et navigation - See #1750 - - - - - 18 changed files: - client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/data/list/ContentListUINavigationInitializer.java - models/persistence/src/main/java/fr/ird/observe/entities/data/TripAwareTopiaDao.java - models/persistence/src/main/java/fr/ird/observe/entities/data/ps/observation/ActivityImpl.java - server/core/src/main/filtered-resources/mapping - services/local-impl/src/main/java/fr/ird/observe/services/local/service/actions/report/ReportServiceLocalSupport.java - services/local-impl/src/main/java/fr/ird/observe/services/local/service/data/EditableDataServiceLocalSupport.java - services/local-impl/src/main/java/fr/ird/observe/services/local/service/data/OpenableDataServiceLocalSupport.java - services/local-impl/src/main/java/fr/ird/observe/services/local/service/data/TripServiceLocalSupport.java - services/local-impl/src/main/java/fr/ird/observe/services/local/service/data/ps/observation/FloatingObjectServiceLocalSupport.java - toolkit/dto/src/main/java/fr/ird/observe/dto/reference/DtoReferenceCollection.java - toolkit/dto/src/main/java/fr/ird/observe/dto/reference/LazyDataDtoReferenceSet.java - + toolkit/dto/src/main/java/fr/ird/observe/dto/reference/UpdatedDataDtoReferenceSet.java - toolkit/persistence/src/main/java/fr/ird/observe/entities/AbstractObserveTopiaDao.java - toolkit/persistence/src/main/java/fr/ird/observe/spi/context/DataDtoEntityContext.java - toolkit/persistence/src/main/java/fr/ird/observe/spi/context/DtoEntityContextSupport.java - toolkit/persistence/src/main/java/fr/ird/observe/spi/context/ReferentialDtoEntityContext.java - toolkit/service/src/main/java/fr/ird/observe/services/service/data/OpenableDataService.java - toolkit/service/src/main/java/fr/ird/observe/spi/context/EmptyChildrenDataReferenceSet.java Changes: ===================================== client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/data/list/ContentListUINavigationInitializer.java ===================================== @@ -70,7 +70,6 @@ public class ContentListUINavigationInitializer extends NavigationInitializer<Co protected void reload(NavigationContext<ContentListUINavigationContext> context) { //FIXME Make sure we need to reload data parentReference = context.reloadReference(parentReference); - //FIXME Make this more performant: only reload references that has changed references.reload(); } ===================================== models/persistence/src/main/java/fr/ird/observe/entities/data/TripAwareTopiaDao.java ===================================== @@ -23,11 +23,15 @@ package fr.ird.observe.entities.data; */ import com.google.common.collect.ArrayListMultimap; +import com.google.common.collect.ImmutableSet; import fr.ird.observe.dto.data.DataDto; import fr.ird.observe.dto.data.TripMapConfigDto; import fr.ird.observe.dto.data.TripMapPoint; import fr.ird.observe.dto.reference.DataDtoReference; +import fr.ird.observe.entities.referential.common.Program; +import org.nuiton.topia.persistence.TopiaDao; import org.nuiton.topia.persistence.TopiaEntityEnum; +import org.nuiton.topia.persistence.TopiaQueryBuilderAddCriteriaOrRunQueryStep; import org.nuiton.topia.persistence.support.SqlFunction; import org.nuiton.topia.persistence.support.TopiaSqlSupport; @@ -35,6 +39,7 @@ import java.sql.ResultSet; import java.util.Date; import java.util.LinkedHashSet; import java.util.List; +import java.util.Map; /** * Created on 14/10/2020. @@ -42,12 +47,16 @@ import java.util.List; * @author Tony Chemit - dev(a)tchemit.fr * @since 8.0.1 */ -public interface TripAwareTopiaDao<D extends DataDto & fr.ird.observe.dto.data.TripAware, R extends DataDtoReference & fr.ird.observe.dto.data.TripAware, E extends DataEntity<D, R> & TripAware<D, R>> { +public interface TripAwareTopiaDao<D extends DataDto & fr.ird.observe.dto.data.TripAware, R extends DataDtoReference & fr.ird.observe.dto.data.TripAware, E extends DataEntity<D, R> & TripAware<D, R>> extends TopiaDao<E> { String GET_TRIP_IDS_BY_PROGRAM_ID = "SELECT program, topiaId FROM %S.%s t ORDER BY program"; LinkedHashSet<TripMapPoint> extractTripMapActivityPoints(TripMapConfigDto tripMapConfig); + TopiaQueryBuilderAddCriteriaOrRunQueryStep<E> forLastUpdateDateGreaterThan(Date lastUpdateDate); + + <O> List<O> findAll(String hql, Map<String, Object> hqlParameters); + List<E> getMatchingTripsVesselWithinDateRange(String id, String vesselId, Date startDate, Date endDate); void fillTripIdByProgramId(ArrayListMultimap<String, String> map); @@ -59,4 +68,15 @@ public interface TripAwareTopiaDao<D extends DataDto & fr.ird.observe.dto.data.T return null; }); } + + default List<E> getChildren(Program parent, Date lastUpdate) { + if (lastUpdate == null) { + return forProperties(TripAware.PROPERTY_PROGRAM, parent).findAll(); + } + return forLastUpdateDateGreaterThan(lastUpdate).addEquals(TripAware.PROPERTY_PROGRAM, parent).findAll(); + } + + default ImmutableSet<String> getChildrenIds(Program parent) { + return ImmutableSet.copyOf(forProperties(TripAware.PROPERTY_PROGRAM, parent).findAllIds()); + } } ===================================== models/persistence/src/main/java/fr/ird/observe/entities/data/ps/observation/ActivityImpl.java ===================================== @@ -32,6 +32,7 @@ import fr.ird.observe.dto.referential.common.SpeciesReference; import fr.ird.observe.dto.referential.ps.common.VesselActivityReference; import fr.ird.observe.entities.referential.ps.observation.ObservedSystem; +import java.util.Date; import java.util.stream.Collectors; /** @@ -105,7 +106,7 @@ public class ActivityImpl extends ActivityAbstract { public ActivityReference toReference(ReferentialLocale referentialLocale) { ActivityReference reference = super.toReference(referentialLocale); if (isFloatingObjectNotEmpty()) { - reference.setFloatingObject(FloatingObject.SPI.toReferenceSet(referentialLocale, getFloatingObject()).toList()); + reference.setFloatingObject(FloatingObject.SPI.toReferenceSet(referentialLocale, getFloatingObject(), new Date()).toList()); } return reference; } ===================================== server/core/src/main/filtered-resources/mapping ===================================== @@ -102,6 +102,7 @@ GET /api/v1/data/ll/common/TripService/exists GET /api/v1/data/ll/common/TripService/getAllTrip v1.data.ll.common.TripServiceRestApi.getAllTrip GET /api/v1/data/ll/common/TripService/getBrothers v1.data.ll.common.TripServiceRestApi.getBrothers GET /api/v1/data/ll/common/TripService/getChildren v1.data.ll.common.TripServiceRestApi.getChildren +GET /api/v1/data/ll/common/TripService/getChildrenUpdate v1.data.ll.common.TripServiceRestApi.getChildrenUpdate GET /api/v1/data/ll/common/TripService/getMatchingTripsVesselWithinDateRange v1.data.ll.common.TripServiceRestApi.getMatchingTripsVesselWithinDateRange GET /api/v1/data/ll/common/TripService/getParentBrothers v1.data.ll.common.TripServiceRestApi.getParentBrothers GET /api/v1/data/ll/common/TripService/getSpeciesByListAndTrip v1.data.ll.common.TripServiceRestApi.getSpeciesByListAndTrip @@ -116,6 +117,7 @@ DELETE /api/v1/data/ll/landing/LandingService/delete GET /api/v1/data/ll/landing/LandingService/exists v1.data.ll.landing.LandingServiceRestApi.exists GET /api/v1/data/ll/landing/LandingService/getBrothers v1.data.ll.landing.LandingServiceRestApi.getBrothers GET /api/v1/data/ll/landing/LandingService/getChildren v1.data.ll.landing.LandingServiceRestApi.getChildren +GET /api/v1/data/ll/landing/LandingService/getChildrenUpdate v1.data.ll.landing.LandingServiceRestApi.getChildrenUpdate GET /api/v1/data/ll/landing/LandingService/loadDto v1.data.ll.landing.LandingServiceRestApi.loadDto GET /api/v1/data/ll/landing/LandingService/loadForm v1.data.ll.landing.LandingServiceRestApi.loadForm GET /api/v1/data/ll/landing/LandingService/loadReferenceToRead v1.data.ll.landing.LandingServiceRestApi.loadReferenceToRead @@ -135,6 +137,7 @@ DELETE /api/v1/data/ll/logbook/ActivityService/delete GET /api/v1/data/ll/logbook/ActivityService/exists v1.data.ll.logbook.ActivityServiceRestApi.exists GET /api/v1/data/ll/logbook/ActivityService/getBrothers v1.data.ll.logbook.ActivityServiceRestApi.getBrothers GET /api/v1/data/ll/logbook/ActivityService/getChildren v1.data.ll.logbook.ActivityServiceRestApi.getChildren +GET /api/v1/data/ll/logbook/ActivityService/getChildrenUpdate v1.data.ll.logbook.ActivityServiceRestApi.getChildrenUpdate GET /api/v1/data/ll/logbook/ActivityService/loadDto v1.data.ll.logbook.ActivityServiceRestApi.loadDto GET /api/v1/data/ll/logbook/ActivityService/loadForm v1.data.ll.logbook.ActivityServiceRestApi.loadForm GET /api/v1/data/ll/logbook/ActivityService/loadReferenceToRead v1.data.ll.logbook.ActivityServiceRestApi.loadReferenceToRead @@ -145,6 +148,7 @@ DELETE /api/v1/data/ll/logbook/SampleService/delete GET /api/v1/data/ll/logbook/SampleService/exists v1.data.ll.logbook.SampleServiceRestApi.exists GET /api/v1/data/ll/logbook/SampleService/getBrothers v1.data.ll.logbook.SampleServiceRestApi.getBrothers GET /api/v1/data/ll/logbook/SampleService/getChildren v1.data.ll.logbook.SampleServiceRestApi.getChildren +GET /api/v1/data/ll/logbook/SampleService/getChildrenUpdate v1.data.ll.logbook.SampleServiceRestApi.getChildrenUpdate GET /api/v1/data/ll/logbook/SampleService/loadDto v1.data.ll.logbook.SampleServiceRestApi.loadDto GET /api/v1/data/ll/logbook/SampleService/loadForm v1.data.ll.logbook.SampleServiceRestApi.loadForm GET /api/v1/data/ll/logbook/SampleService/loadReferenceToRead v1.data.ll.logbook.SampleServiceRestApi.loadReferenceToRead @@ -171,6 +175,7 @@ DELETE /api/v1/data/ll/observation/ActivityService/delete GET /api/v1/data/ll/observation/ActivityService/exists v1.data.ll.observation.ActivityServiceRestApi.exists GET /api/v1/data/ll/observation/ActivityService/getBrothers v1.data.ll.observation.ActivityServiceRestApi.getBrothers GET /api/v1/data/ll/observation/ActivityService/getChildren v1.data.ll.observation.ActivityServiceRestApi.getChildren +GET /api/v1/data/ll/observation/ActivityService/getChildrenUpdate v1.data.ll.observation.ActivityServiceRestApi.getChildrenUpdate GET /api/v1/data/ll/observation/ActivityService/loadDto v1.data.ll.observation.ActivityServiceRestApi.loadDto GET /api/v1/data/ll/observation/ActivityService/loadForm v1.data.ll.observation.ActivityServiceRestApi.loadForm GET /api/v1/data/ll/observation/ActivityService/loadReferenceToRead v1.data.ll.observation.ActivityServiceRestApi.loadReferenceToRead @@ -204,6 +209,7 @@ GET /api/v1/data/ps/common/TripService/exists GET /api/v1/data/ps/common/TripService/getAllTrip v1.data.ps.common.TripServiceRestApi.getAllTrip GET /api/v1/data/ps/common/TripService/getBrothers v1.data.ps.common.TripServiceRestApi.getBrothers GET /api/v1/data/ps/common/TripService/getChildren v1.data.ps.common.TripServiceRestApi.getChildren +GET /api/v1/data/ps/common/TripService/getChildrenUpdate v1.data.ps.common.TripServiceRestApi.getChildrenUpdate GET /api/v1/data/ps/common/TripService/getMatchingTripsVesselWithinDateRange v1.data.ps.common.TripServiceRestApi.getMatchingTripsVesselWithinDateRange GET /api/v1/data/ps/common/TripService/getParentBrothers v1.data.ps.common.TripServiceRestApi.getParentBrothers GET /api/v1/data/ps/common/TripService/getSpeciesByListAndTrip v1.data.ps.common.TripServiceRestApi.getSpeciesByListAndTrip @@ -218,6 +224,7 @@ DELETE /api/v1/data/ps/observation/ActivityService/delete GET /api/v1/data/ps/observation/ActivityService/exists v1.data.ps.observation.ActivityServiceRestApi.exists GET /api/v1/data/ps/observation/ActivityService/getBrothers v1.data.ps.observation.ActivityServiceRestApi.getBrothers GET /api/v1/data/ps/observation/ActivityService/getChildren v1.data.ps.observation.ActivityServiceRestApi.getChildren +GET /api/v1/data/ps/observation/ActivityService/getChildrenUpdate v1.data.ps.observation.ActivityServiceRestApi.getChildrenUpdate GET /api/v1/data/ps/observation/ActivityService/loadDto v1.data.ps.observation.ActivityServiceRestApi.loadDto GET /api/v1/data/ps/observation/ActivityService/loadForm v1.data.ps.observation.ActivityServiceRestApi.loadForm GET /api/v1/data/ps/observation/ActivityService/loadReferenceToRead v1.data.ps.observation.ActivityServiceRestApi.loadReferenceToRead @@ -248,6 +255,7 @@ DELETE /api/v1/data/ps/observation/RouteService/delete GET /api/v1/data/ps/observation/RouteService/exists v1.data.ps.observation.RouteServiceRestApi.exists GET /api/v1/data/ps/observation/RouteService/getBrothers v1.data.ps.observation.RouteServiceRestApi.getBrothers GET /api/v1/data/ps/observation/RouteService/getChildren v1.data.ps.observation.RouteServiceRestApi.getChildren +GET /api/v1/data/ps/observation/RouteService/getChildrenUpdate v1.data.ps.observation.RouteServiceRestApi.getChildrenUpdate GET /api/v1/data/ps/observation/RouteService/isActivityEndOfSearchFound v1.data.ps.observation.RouteServiceRestApi.isActivityEndOfSearchFound GET /api/v1/data/ps/observation/RouteService/loadDto v1.data.ps.observation.RouteServiceRestApi.loadDto GET /api/v1/data/ps/observation/RouteService/loadForm v1.data.ps.observation.RouteServiceRestApi.loadForm ===================================== services/local-impl/src/main/java/fr/ird/observe/services/local/service/actions/report/ReportServiceLocalSupport.java ===================================== @@ -34,7 +34,7 @@ import fr.ird.observe.dto.report.Report; import fr.ird.observe.dto.report.ReportOperation; import fr.ird.observe.dto.report.ReportRequest; import fr.ird.observe.dto.report.ReportVariable; -import fr.ird.observe.entities.AbstractObserveTopiaDao; +import fr.ird.observe.entities.data.TripAwareTopiaDao; import fr.ird.observe.entities.data.ll.common.GearUseFeatures; import fr.ird.observe.entities.data.ll.common.GearUseFeaturesMeasurement; import fr.ird.observe.entities.data.ps.common.Trip; @@ -485,9 +485,9 @@ public class ReportServiceLocalSupport extends ObserveServiceLocal implements Re paramsFixes.put(name, value); } } - AbstractObserveTopiaDao<?> dao = (AbstractObserveTopiaDao<?>) getTopiaPersistenceContext().getDao(Trip.class); + TripAwareTopiaDao<?, ?, ?> dao = (TripAwareTopiaDao<?, ?, ?>) getTopiaPersistenceContext().getDao(Trip.class); log.debug(String.format("Request: %s, params: %s", request, paramsFixes)); - return dao.findAllFromHql(request, paramsFixes); + return dao.findAll(request, paramsFixes); } private void doPopulateRepeatVariables(Report report, ImmutableSet<String> tripId) { ===================================== services/local-impl/src/main/java/fr/ird/observe/services/local/service/data/EditableDataServiceLocalSupport.java ===================================== @@ -120,10 +120,6 @@ public abstract class EditableDataServiceLocalSupport<PE extends Entity, D exten return spi.newEntity(now()); } - protected DataDtoReferenceSet<R> toReferenceSet(Collection<E> entities) { - return spi.toReferenceSet(getReferentialLocale(), entities); - } - protected DataDtoReferenceSet<R> toReferenceSet(Collection<E> entities, Date now) { return spi.toReferenceSet(getReferentialLocale(), entities, now); } ===================================== services/local-impl/src/main/java/fr/ird/observe/services/local/service/data/OpenableDataServiceLocalSupport.java ===================================== @@ -27,6 +27,7 @@ import fr.ird.observe.dto.data.OpenableDto; import fr.ird.observe.dto.form.Form; import fr.ird.observe.dto.reference.DataDtoReference; import fr.ird.observe.dto.reference.DataDtoReferenceSet; +import fr.ird.observe.dto.reference.UpdatedDataDtoReferenceSet; import fr.ird.observe.dto.result.SaveResultDto; import fr.ird.observe.entities.Entity; import fr.ird.observe.entities.ObserveTopiaPersistenceContext; @@ -36,9 +37,11 @@ import fr.ird.observe.services.service.data.OpenableDataService; import fr.ird.observe.spi.context.DataDtoEntityContext; import fr.ird.observe.spi.context.DtoEntityContext; import org.nuiton.topia.persistence.TopiaDao; +import org.nuiton.topia.persistence.TopiaEntity; import java.util.Collection; import java.util.Date; +import java.util.stream.Collectors; import java.util.stream.Stream; /** @@ -72,6 +75,14 @@ public abstract class OpenableDataServiceLocalSupport<PE extends Entity, D exten return getChildren(parent); } + @Override + public UpdatedDataDtoReferenceSet<R> getChildrenUpdate(String parentId, Date lastUpdate) { + PE parent = loadParentEntity(parentId); + ImmutableSet<String> allIds = getChildrenIds(parent); + Collection<E> children0 = getChildren0(parent, lastUpdate); + return new UpdatedDataDtoReferenceSet<R>(allIds, toReferenceSet(children0, now())); + } + @Override public DataDtoReferenceSet<R> getBrothers(String id) { return getBrothers(parentSpi, propertyName, spi, id); @@ -105,7 +116,7 @@ public abstract class OpenableDataServiceLocalSupport<PE extends Entity, D exten @Override public void move(String newParentId, ImmutableSet<String> ids) { PE parent = loadParentEntity(newParentId); - Collection<E> collection = parent.get(propertyName); + Collection<E> collection = getChildren0(parent, null); for (String id : ids) { E entity = loadEntity(id); collection.add(entity); @@ -142,10 +153,6 @@ public abstract class OpenableDataServiceLocalSupport<PE extends Entity, D exten return spi.newEntity(now()); } - protected DataDtoReferenceSet<R> toReferenceSet(Collection<E> entities) { - return spi.toReferenceSet(getReferentialLocale(), entities); - } - protected DataDtoReferenceSet<R> toReferenceSet(Collection<E> entities, Date now) { return spi.toReferenceSet(getReferentialLocale(), entities, now); } @@ -182,9 +189,22 @@ public abstract class OpenableDataServiceLocalSupport<PE extends Entity, D exten return spi.loadEntity(getApplicationLocale(), getTopiaPersistenceContext(), id); } - protected DataDtoReferenceSet<R> getChildren(PE parent) { - Collection<E> parents = parent.get(propertyName); - return spi.toReferenceSet(getReferentialLocale(), parents); + protected final DataDtoReferenceSet<R> getChildren(PE parent) { + Collection<E> parents = getChildren0(parent, null); + return spi.toReferenceSet(getReferentialLocale(), parents, now()); + } + + protected Collection<E> getChildren0(PE parent, Date lastUpdate) { + Collection<E> collection = parent.get(propertyName); + if (lastUpdate != null) { + collection = collection.stream().filter(e -> e.getLastUpdateDate().after(lastUpdate)).collect(Collectors.toList()); + } + return collection; + } + + protected ImmutableSet<String> getChildrenIds(PE parent) { + Collection<E> collection = getChildren0(parent, null); + return collection.stream().map(TopiaEntity::getTopiaId).collect(ImmutableSet.toImmutableSet()); } protected PE getParent(String id) { ===================================== services/local-impl/src/main/java/fr/ird/observe/services/local/service/data/TripServiceLocalSupport.java ===================================== @@ -50,6 +50,7 @@ import org.nuiton.topia.persistence.script.SqlScriptConsumer; import org.nuiton.topia.persistence.script.TopiaSqlScript; import org.nuiton.util.DateUtil; +import java.util.Collection; import java.util.Comparator; import java.util.Date; import java.util.LinkedHashSet; @@ -71,7 +72,7 @@ public abstract class TripServiceLocalSupport<D extends OpenableDto & fr.ird.obs } @Override - public void setServiceContext(ObserveServiceContextLocal serviceContext) { + public final void setServiceContext(ObserveServiceContextLocal serviceContext) { super.setServiceContext(serviceContext); sqlScriptProducerService = serviceContext.newService(SqlScriptProducerService.class); } @@ -86,16 +87,10 @@ public abstract class TripServiceLocalSupport<D extends OpenableDto & fr.ird.obs return getProgramBrothers(parentSpi, programId); } - @Override - protected DataDtoReferenceSet<R> getChildren(Program parent) { - List<E> entities = getDao().forEquals(TripAware.PROPERTY_PROGRAM, parent).findAll(); - return toReferenceSet(entities); - } - @Override public ImmutableSet<R> getMatchingTripsVesselWithinDateRange(String tripId, String vesselId, Date startDate, Date endDate) { List<E> trips = getDao().getMatchingTripsVesselWithinDateRange(tripId, vesselId, startDate, endDate); - return toReferenceSet(trips).toSet(); + return toReferenceSet(trips, now()).toSet(); } @Override @@ -157,10 +152,20 @@ public abstract class TripServiceLocalSupport<D extends OpenableDto & fr.ird.obs } @Override - protected SaveResultDto onSave(Program parent, E entity, D dto) { + protected final SaveResultDto onSave(Program parent, E entity, D dto) { if (entity.isPersisted()) { entity.updateEndDate(); } return saveEntity(entity); } + + @Override + protected final Collection<E> getChildren0(Program parent, Date lastUpdate) { + return getDao().getChildren(parent, lastUpdate); + } + + @Override + protected final ImmutableSet<String> getChildrenIds(Program parent) { + return getDao().getChildrenIds(parent); + } } ===================================== services/local-impl/src/main/java/fr/ird/observe/services/local/service/data/ps/observation/FloatingObjectServiceLocalSupport.java ===================================== @@ -89,7 +89,7 @@ class FloatingObjectServiceLocalSupport extends EditableDataServiceLocalSupport< @Override public DataDtoReferenceSet<FloatingObjectReference> getChildren(String activityId) { Set<FloatingObject> entities = loadParentEntity(activityId).getFloatingObject(); - return toReferenceSet(entities); + return toReferenceSet(entities, now()); } @Override ===================================== toolkit/dto/src/main/java/fr/ird/observe/dto/reference/DtoReferenceCollection.java ===================================== @@ -102,6 +102,10 @@ public abstract class DtoReferenceCollection<R extends DtoReference> implements return stream().filter(id -> idsList.contains(id.getId())); } + public Stream<R> subSet(Collection<String> ids) { + return stream().filter(id -> ids.contains(id.getId())); + } + public ImmutableSet<R> toSet() { return ImmutableSet.copyOf(references); } ===================================== toolkit/dto/src/main/java/fr/ird/observe/dto/reference/LazyDataDtoReferenceSet.java ===================================== @@ -56,15 +56,15 @@ public abstract class LazyDataDtoReferenceSet<R extends DataDtoReference> implem } public final DataDtoReferenceSet<R> reload() { - clear(); + createDelegate(); return get(); } - public void clear() { - delegate = null; - } - public final Class<R> getReferenceType() { return referenceType; } + + protected DataDtoReferenceSet<R> getDelegate() { + return delegate; + } } ===================================== toolkit/dto/src/main/java/fr/ird/observe/dto/reference/UpdatedDataDtoReferenceSet.java ===================================== @@ -0,0 +1,65 @@ +package fr.ird.observe.dto.reference; + +/*- + * #%L + * ObServe Toolkit :: Dto + * %% + * Copyright (C) 2008 - 2021 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 com.google.common.collect.ImmutableSet; +import fr.ird.observe.dto.ObserveDto; + +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Objects; +import java.util.Set; +import java.util.stream.Collectors; + +/** + * Created on 14/01/2021. + * + * @author Tony Chemit - dev(a)tchemit.fr + * @since 8.0.3 + */ +public class UpdatedDataDtoReferenceSet<R extends DataDtoReference> implements ObserveDto { + + private final ImmutableSet<String> allIds; + private final DataDtoReferenceSet<R> updatedReferences; + + public UpdatedDataDtoReferenceSet(ImmutableSet<String> allIds, DataDtoReferenceSet<R> updatedReferences) { + this.allIds = Objects.requireNonNull(allIds); + this.updatedReferences = Objects.requireNonNull(updatedReferences); + } + + public ImmutableSet<String> getAllIds() { + return allIds; + } + + public DataDtoReferenceSet<R> getUpdatedReferences() { + return updatedReferences; + } + + public DataDtoReferenceSet<R> mergeTo(DataDtoReferenceSet<R> incoming) { + Set<String> previousIdsToKeep = new LinkedHashSet<>(getAllIds()); + previousIdsToKeep.removeAll(updatedReferences.toIds()); + List<R> collect = incoming.subSet(previousIdsToKeep).collect(Collectors.toList()); + collect.addAll(getUpdatedReferences().toArrayList()); + return DataDtoReferenceSet.of(incoming.getType(), collect, getUpdatedReferences().getLastUpdate()); + } +} ===================================== toolkit/persistence/src/main/java/fr/ird/observe/entities/AbstractObserveTopiaDao.java ===================================== @@ -22,50 +22,28 @@ package fr.ird.observe.entities; * #L% */ +import fr.ird.observe.dto.IdDto; +import org.nuiton.topia.persistence.HqlAndParametersBuilder; +import org.nuiton.topia.persistence.TopiaQueryBuilderAddCriteriaOrRunQueryStep; import org.nuiton.topia.persistence.internal.AbstractTopiaDao; -import org.nuiton.topia.persistence.support.TopiaSqlQuery; -import java.sql.Connection; -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.sql.Timestamp; +import java.util.Date; import java.util.List; import java.util.Map; public abstract class AbstractObserveTopiaDao<E extends Entity> extends AbstractTopiaDao<E> { - private final GetLastUpdateDateSqlQuery getLastUpdateDateSqlQuery; + public TopiaQueryBuilderAddCriteriaOrRunQueryStep<E> forLastUpdateDateGreaterThan(Date lastUpdateDate) { + HqlAndParametersBuilder<E> hqlAndParametersBuilder = newHqlAndParametersBuilder(); + hqlAndParametersBuilder.addGreaterThan(IdDto.PROPERTY_LAST_UPDATE_DATE, lastUpdateDate); + return new InnerTopiaQueryBuilderAddCriteriaOrRunQueryStep<>(this, hqlAndParametersBuilder) { - protected AbstractObserveTopiaDao() { - String schemaName = getTopiaEntityEnum().dbSchemaName(); - String tableName = getTopiaEntityEnum().dbTableName(); - getLastUpdateDateSqlQuery = new GetLastUpdateDateSqlQuery(schemaName, tableName); + }; } - private static class GetLastUpdateDateSqlQuery extends TopiaSqlQuery<Timestamp> { - - protected final String sql; - - private GetLastUpdateDateSqlQuery(String schemaName, String tableName) { - this.sql = "SELECT max(" + Entity.PROPERTY_LAST_UPDATE_DATE + ") FROM " + schemaName + "." + tableName; - } - - @Override - public PreparedStatement prepareQuery(Connection connection) throws SQLException { - return connection.prepareStatement(sql); - } - - @Override - public Timestamp prepareResult(ResultSet set) throws SQLException { - return set.getTimestamp(1); - } - - } - - public <O> List<O> findAllFromHql(String hql, Map<String, Object> hqlParameters) { - return findAll(hql, hqlParameters); + @Override + public <O> List<O> findAll(String hql, Map<String, Object> hqlParameters) { + return super.findAll(hql, hqlParameters); } - } ===================================== toolkit/persistence/src/main/java/fr/ird/observe/spi/context/DataDtoEntityContext.java ===================================== @@ -51,11 +51,6 @@ public class DataDtoEntityContext<D extends DataDto, R extends DataDtoReference, super(dtoType, referenceType, entityType, entityTypeImpl, daoFunction); } - @Override - public DataDtoReferenceSet<R> toReferenceSet(ReferentialLocale referentialLocale, Collection<E> entities) { - return (DataDtoReferenceSet<R>) super.toReferenceSet(referentialLocale, entities); - } - @Override public DataDtoReferenceSet<R> toReferenceSet(ReferentialLocale referentialLocale, Collection<E> entities, Date now) { return (DataDtoReferenceSet<R>) super.toReferenceSet(referentialLocale, entities.stream(), now); ===================================== toolkit/persistence/src/main/java/fr/ird/observe/spi/context/DtoEntityContextSupport.java ===================================== @@ -75,15 +75,6 @@ public abstract class DtoEntityContextSupport<D extends IdDto, R extends DtoRefe protected abstract void fromDto(ReferentialLocale referentialLocale, E entity, D dto); - protected DtoReferenceCollection<R> toReferenceSet(ReferentialLocale referentialLocale, Collection<E> entities) { - ImmutableSet.Builder<R> references = ImmutableSet.builder(); - for (E entity : entities) { - @SuppressWarnings("unchecked") R reference = ((EntityToDto<?, R>) entity).toReference(referentialLocale); - references.add(reference); - } - return createReferenceSet(referentialLocale, references.build(), null); - } - @Override public UpdateLastUpdateDateFieldScript getUpdateLastUpdateDateFieldScript() { return updateLastUpdateDateFieldScript; ===================================== toolkit/persistence/src/main/java/fr/ird/observe/spi/context/ReferentialDtoEntityContext.java ===================================== @@ -50,11 +50,6 @@ public class ReferentialDtoEntityContext<D extends ReferentialDto, R extends Ref super(dtoType, referenceType, entityType, entityTypeImpl, daoFunction); } - @Override - public ReferentialDtoReferenceSet<R> toReferenceSet(ReferentialLocale referentialLocale, Collection<E> entities) { - return (ReferentialDtoReferenceSet<R>) super.toReferenceSet(referentialLocale, entities); - } - @Override public ReferentialDtoReferenceSet<R> toReferenceSet(ReferentialLocale referentialLocale, Collection<E> entities, Date now) { return (ReferentialDtoReferenceSet<R>) super.toReferenceSet(referentialLocale, entities, now); ===================================== toolkit/service/src/main/java/fr/ird/observe/services/service/data/OpenableDataService.java ===================================== @@ -27,6 +27,7 @@ import fr.ird.observe.dto.data.DataDto; import fr.ird.observe.dto.form.Form; import fr.ird.observe.dto.reference.DataDtoReference; import fr.ird.observe.dto.reference.DataDtoReferenceSet; +import fr.ird.observe.dto.reference.UpdatedDataDtoReferenceSet; import fr.ird.observe.dto.result.SaveResultDto; import fr.ird.observe.security.Permission; import fr.ird.observe.services.service.ObserveService; @@ -37,6 +38,8 @@ import io.ultreia.java4all.http.spi.Get; import io.ultreia.java4all.http.spi.Internal; import io.ultreia.java4all.http.spi.Post; +import java.util.Date; + /** * Created on 13/10/2020. * @@ -50,6 +53,10 @@ public interface OpenableDataService<D extends DataDto, R extends DataDtoReferen @MethodCredential(Permission.READ_DATA) DataDtoReferenceSet<R> getChildren(String parentId); + @Get + @MethodCredential(Permission.READ_DATA) + UpdatedDataDtoReferenceSet<R> getChildrenUpdate(String parentId, Date lastUpdate); + @Get @MethodCredential(Permission.READ_DATA) DataDtoReferenceSet<R> getBrothers(String id); ===================================== toolkit/service/src/main/java/fr/ird/observe/spi/context/EmptyChildrenDataReferenceSet.java ===================================== @@ -26,6 +26,8 @@ import fr.ird.observe.dto.decoration.DecoratorServiceSupport; import fr.ird.observe.dto.reference.DataDtoReference; import fr.ird.observe.dto.reference.DataDtoReferenceSet; import fr.ird.observe.dto.reference.LazyDataDtoReferenceSet; +import fr.ird.observe.dto.reference.UpdatedDataDtoReferenceSet; +import fr.ird.observe.services.service.data.OpenableDataService; import fr.ird.observe.spi.ServicesProvider; import java.util.Comparator; @@ -59,7 +61,18 @@ public class EmptyChildrenDataReferenceSet<R extends DataDtoReference> extends L @Override protected DataDtoReferenceSet<R> createDelegate() { - DataDtoReferenceSet<R> result = spi.getService(servicesProvider).getChildren(parentId); + DataDtoReferenceSet<R> previousResult = getDelegate(); + DataDtoReferenceSet<R> result; + OpenableDataService<?, R> service = spi.getService(servicesProvider); + if (previousResult == null) { + // first time load all data + result = service.getChildren(parentId); + } else { + // ask an update of data + UpdatedDataDtoReferenceSet<R> updateResult = service.getChildrenUpdate(parentId, previousResult.getLastUpdate()); + // merge it with previous data + result = updateResult.mergeTo(previousResult); + } result.sort(spi.getReferenceComparator()); decoratorService.installDecorator(result); return result; View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/2462e0f4bd8e53079c81533c8… -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/2462e0f4bd8e53079c81533c8… You're receiving this email because of your account on gitlab.com.
1 0
0 0
  • ← Newer
  • 1
  • ...
  • 239
  • 240
  • 241
  • 242
  • 243
  • 244
  • 245
  • ...
  • 720
  • Older →

HyperKitty Powered by HyperKitty version 1.3.12.