Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
-
5b30b91c
by Tony Chemit at 2022-12-11T20:43:15+01:00
-
181a2fda
by Tony Chemit at 2022-12-11T20:43:16+01:00
-
b7d77097
by Tony Chemit at 2022-12-11T20:43:17+01:00
-
8a2124ce
by Tony Chemit at 2022-12-11T20:43:17+01:00
-
c6bcf240
by Tony Chemit at 2022-12-11T20:43:35+01:00
16 changed files:
- client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/data/open/ContentOpenableUINavigationInitializer.java
- client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/data/open/ContentOpenableUINavigationNode.java
- client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/logbook/ActivityUIHandler.java
- client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/logbook/ActivityUISavePredicate.java
- client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/observation/ActivityUIHandler.java
- client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/observation/ActivityUISavePredicate.java
- client/datasource/editor/ps/src/main/capabilities/fr/ird/observe/client/datasource/editor/ps/data/logbook/ActivityUI.capabilities
- client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/logbook/ActivityUIHandler.java
- client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/logbook/ActivityUISavePredicate.java
- client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/observation/ActivityUIHandler.java
- client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/observation/ActivityUISavePredicate.java
- client/datasource/editor/spi/src/main/java/fr/ird/observe/client/datasource/editor/spi/content/CapabilityDescriptor.java
- client/datasource/editor/spi/src/main/java/fr/ird/observe/client/datasource/editor/spi/content/helper/ContentUINavigationCapabilityHelper.java
- core/persistence/java/src/main/java/fr/ird/observe/entities/data/ll/logbook/ActivitySpi.java
- core/persistence/java/src/main/java/fr/ird/observe/entities/data/ll/observation/ActivitySpi.java
- core/persistence/java/src/main/java/fr/ird/observe/entities/data/ps/observation/ActivitySpi.java
Changes:
| ... | ... | @@ -135,9 +135,4 @@ public final class ContentOpenableUINavigationInitializer extends NavigationInit |
| 135 | 135 | }
|
| 136 | 136 | getEditNode().setId(id);
|
| 137 | 137 | }
|
| 138 | - |
|
| 139 | - public DataDtoReference updateReference(ContentOpenableUINavigationContext context, String id) {
|
|
| 140 | - this.reference = context.getReference(getReference().getReferenceType(), id, decorator);
|
|
| 141 | - return getReference();
|
|
| 142 | - }
|
|
| 143 | 138 | } |
| ... | ... | @@ -79,13 +79,13 @@ public abstract class ContentOpenableUINavigationNode extends NavigationNode { |
| 79 | 79 | boolean notPersisted = getInitializer().isNotPersisted();
|
| 80 | 80 | NavigationNode parent = getParent();
|
| 81 | 81 | int oldPosition = parent.getIndex(this);
|
| 82 | - DataDtoReference reference = getInitializer().updateReference(getContext(), id);
|
|
| 83 | 82 | if (notPersisted) {
|
| 84 | 83 | getInitializer().updateEditNodeId(id);
|
| 85 | 84 | getInitializer().updateSelectNodeId(id);
|
| 86 | 85 | }
|
| 87 | 86 | // reload node data
|
| 88 | 87 | reloadNodeData();
|
| 88 | + DataDtoReference reference = getInitializer().getReference();
|
|
| 89 | 89 | |
| 90 | 90 | if (notPersisted) {
|
| 91 | 91 | dirty();
|
| ... | ... | @@ -29,6 +29,7 @@ import fr.ird.observe.client.datasource.editor.api.content.data.open.ContentOpen |
| 29 | 29 | import fr.ird.observe.client.datasource.editor.api.content.data.open.actions.SaveContentOpenableUIAdapter;
|
| 30 | 30 | import fr.ird.observe.client.datasource.editor.api.navigation.NavigationTree;
|
| 31 | 31 | import fr.ird.observe.dto.data.ll.logbook.ActivityDto;
|
| 32 | +import fr.ird.observe.dto.data.ll.logbook.ActivityReference;
|
|
| 32 | 33 | |
| 33 | 34 | /**
|
| 34 | 35 | * Created on 8/29/14.
|
| ... | ... | @@ -46,7 +47,9 @@ class ActivityUIHandler extends GeneratedActivityUIHandler { |
| 46 | 47 | .then(new SaveContentOpenableUIAdapter<>(ActivityDto::isSetEnabled, ActivityUI::getAddSet) {
|
| 47 | 48 | @Override
|
| 48 | 49 | protected void afterNodeUpdated(DataSourceEditor dataSourceEditor, ActivityUI ui, NavigationTree tree, ContentOpenableUINavigationNode node, boolean notPersisted, ActivityDto bean) {
|
| 49 | - ActivityUINavigationCapability.fillBuilder(NodeChildrenUpdate.afterUpdate(node, bean)).update();
|
|
| 50 | + ActivityReference reference = (ActivityReference) node.getReference();
|
|
| 51 | + bean.setStatistics(reference.statistics());
|
|
| 52 | + ActivityUINavigationCapability.fillAfterBuilder(NodeChildrenUpdate.afterUpdate(node, bean)).update();
|
|
| 50 | 53 | super.afterNodeUpdated(dataSourceEditor, ui, tree, node, notPersisted, bean);
|
| 51 | 54 | }
|
| 52 | 55 | })
|
| ... | ... | @@ -51,7 +51,7 @@ public class ActivityUISavePredicate extends SavePredicateSupport<ActivityUIMode |
| 51 | 51 | }
|
| 52 | 52 | |
| 53 | 53 | public List<String> generateText(ActivityDto originalBean, ActivityDto editBean) {
|
| 54 | - return ActivityUINavigationCapability.fillBuilder(NodeChildrenUpdate.beforeUpdate(states.source(), originalBean, editBean))
|
|
| 54 | + return ActivityUINavigationCapability.fillBeforeBuilder(NodeChildrenUpdate.beforeUpdate(states.source(), originalBean, editBean))
|
|
| 55 | 55 | .getMessagesForNodesToRemove();
|
| 56 | 56 | }
|
| 57 | 57 | } |
| ... | ... | @@ -29,6 +29,7 @@ import fr.ird.observe.client.datasource.editor.api.content.data.open.ContentOpen |
| 29 | 29 | import fr.ird.observe.client.datasource.editor.api.content.data.open.actions.SaveContentOpenableUIAdapter;
|
| 30 | 30 | import fr.ird.observe.client.datasource.editor.api.navigation.NavigationTree;
|
| 31 | 31 | import fr.ird.observe.dto.data.ll.observation.ActivityDto;
|
| 32 | +import fr.ird.observe.dto.data.ll.observation.ActivityReference;
|
|
| 32 | 33 | |
| 33 | 34 | /**
|
| 34 | 35 | * Created on 8/29/14.
|
| ... | ... | @@ -47,7 +48,9 @@ class ActivityUIHandler extends GeneratedActivityUIHandler { |
| 47 | 48 | .then(new SaveContentOpenableUIAdapter<>(ActivityDto::isSetEnabled, ActivityUI::getAddSet) {
|
| 48 | 49 | @Override
|
| 49 | 50 | protected void afterNodeUpdated(DataSourceEditor dataSourceEditor, ActivityUI ui, NavigationTree tree, ContentOpenableUINavigationNode node, boolean notPersisted, ActivityDto bean) {
|
| 50 | - ActivityUINavigationCapability.fillBuilder(NodeChildrenUpdate.afterUpdate(node, bean)).update();
|
|
| 51 | + ActivityReference reference = (ActivityReference) node.getReference();
|
|
| 52 | + bean.setStatistics(reference.statistics());
|
|
| 53 | + ActivityUINavigationCapability.fillAfterBuilder(NodeChildrenUpdate.afterUpdate(node, bean)).update();
|
|
| 51 | 54 | super.afterNodeUpdated(dataSourceEditor, ui, tree, node, notPersisted, bean);
|
| 52 | 55 | }
|
| 53 | 56 | })
|
| ... | ... | @@ -51,7 +51,7 @@ public class ActivityUISavePredicate extends SavePredicateSupport<ActivityUIMode |
| 51 | 51 | }
|
| 52 | 52 | |
| 53 | 53 | public List<String> generateText(ActivityDto originalBean, ActivityDto editBean) {
|
| 54 | - return ActivityUINavigationCapability.fillBuilder(NodeChildrenUpdate.beforeUpdate(states.source(), originalBean, editBean)).getMessagesForNodesToRemove();
|
|
| 54 | + return ActivityUINavigationCapability.fillBeforeBuilder(NodeChildrenUpdate.beforeUpdate(states.source(), originalBean, editBean)).getMessagesForNodesToRemove();
|
|
| 55 | 55 | }
|
| 56 | 56 | |
| 57 | 57 | } |
| 1 | -0_setEnabled??=fr.ird.observe.client.datasource.editor.ps.data.logbook.ActivityCatchUINavigationNode
|
|
| 1 | +0_catchesEnabled??=fr.ird.observe.client.datasource.editor.ps.data.logbook.ActivityCatchUINavigationNode
|
|
| 2 | 2 | 1*=fr.ird.observe.client.datasource.editor.ps.data.logbook.FloatingObjectUINavigationNode |
| \ No newline at end of file |
| ... | ... | @@ -30,6 +30,7 @@ import fr.ird.observe.client.datasource.editor.api.content.data.open.actions.Sav |
| 30 | 30 | import fr.ird.observe.client.datasource.editor.api.navigation.NavigationTree;
|
| 31 | 31 | import fr.ird.observe.client.datasource.editor.ps.ObservePsKeyStrokes;
|
| 32 | 32 | import fr.ird.observe.dto.data.ps.logbook.ActivityDto;
|
| 33 | +import fr.ird.observe.dto.data.ps.logbook.ActivityReference;
|
|
| 33 | 34 | import fr.ird.observe.dto.referential.ps.common.VesselActivityReference;
|
| 34 | 35 | import io.ultreia.java4all.i18n.I18n;
|
| 35 | 36 | |
| ... | ... | @@ -57,7 +58,9 @@ class ActivityUIHandler extends GeneratedActivityUIHandler { |
| 57 | 58 | |
| 58 | 59 | @Override
|
| 59 | 60 | protected void afterNodeUpdated(DataSourceEditor dataSourceEditor, ActivityUI ui, NavigationTree tree, ContentOpenableUINavigationNode node, boolean notPersisted, ActivityDto bean) {
|
| 60 | - ActivityUINavigationCapability.fillBuilder(NodeChildrenUpdate.afterUpdate(node, bean)).update();
|
|
| 61 | + ActivityReference reference = (ActivityReference) node.getReference();
|
|
| 62 | + bean.setStatistics(reference.statistics());
|
|
| 63 | + ActivityUINavigationCapability.fillAfterBuilder(NodeChildrenUpdate.afterUpdate(node, bean)).update();
|
|
| 61 | 64 | super.afterNodeUpdated(dataSourceEditor, ui, tree, node, notPersisted, bean);
|
| 62 | 65 | }
|
| 63 | 66 | })
|
| ... | ... | @@ -52,7 +52,7 @@ public class ActivityUISavePredicate extends SavePredicateSupport<ActivityUIMode |
| 52 | 52 | }
|
| 53 | 53 | |
| 54 | 54 | public List<String> generateText(ActivityDto originalBean, ActivityDto editBean) {
|
| 55 | - return ActivityUINavigationCapability.fillBuilder(NodeChildrenUpdate.beforeUpdate(states.source(), originalBean, editBean))
|
|
| 55 | + return ActivityUINavigationCapability.fillBeforeBuilder(NodeChildrenUpdate.beforeUpdate(states.source(), originalBean, editBean))
|
|
| 56 | 56 | .getMessagesForNodesToRemove();
|
| 57 | 57 | }
|
| 58 | 58 | } |
| ... | ... | @@ -29,6 +29,7 @@ import fr.ird.observe.client.datasource.editor.api.content.data.open.actions.Sav |
| 29 | 29 | import fr.ird.observe.client.datasource.editor.api.navigation.NavigationTree;
|
| 30 | 30 | import fr.ird.observe.dto.ProtectedIdsPs;
|
| 31 | 31 | import fr.ird.observe.dto.data.ps.observation.ActivityDto;
|
| 32 | +import fr.ird.observe.dto.data.ps.observation.ActivityReference;
|
|
| 32 | 33 | import fr.ird.observe.dto.referential.ps.common.VesselActivityReference;
|
| 33 | 34 | |
| 34 | 35 | import javax.swing.JLabel;
|
| ... | ... | @@ -83,7 +84,9 @@ public class ActivityUIHandler extends GeneratedActivityUIHandler { |
| 83 | 84 | .then(new SaveContentOpenableUIAdapter<>(ActivityDto::isStrongSetOperation, ActivityUI::getAddSet) {
|
| 84 | 85 | @Override
|
| 85 | 86 | protected void afterNodeUpdated(DataSourceEditor dataSourceEditor, ActivityUI ui, NavigationTree tree, ContentOpenableUINavigationNode node, boolean notPersisted, ActivityDto bean) {
|
| 86 | - ActivityUINavigationCapability.fillBuilder(NodeChildrenUpdate.afterUpdate(node, bean)).update();
|
|
| 87 | + ActivityReference reference = (ActivityReference) node.getReference();
|
|
| 88 | + bean.setStatistics(reference.statistics());
|
|
| 89 | + ActivityUINavigationCapability.fillAfterBuilder(NodeChildrenUpdate.afterUpdate(node, bean)).update();
|
|
| 87 | 90 | super.afterNodeUpdated(dataSourceEditor, ui, tree, node, notPersisted, bean);
|
| 88 | 91 | }
|
| 89 | 92 | })
|
| ... | ... | @@ -52,7 +52,7 @@ public class ActivityUISavePredicate extends SavePredicateSupport<ActivityUIMode |
| 52 | 52 | }
|
| 53 | 53 | |
| 54 | 54 | public List<String> generateText(ActivityDto originalBean, ActivityDto editBean) {
|
| 55 | - return ActivityUINavigationCapability.fillBuilder(NodeChildrenUpdate.beforeUpdate(states.source(), originalBean, editBean))
|
|
| 55 | + return ActivityUINavigationCapability.fillBeforeBuilder(NodeChildrenUpdate.beforeUpdate(states.source(), originalBean, editBean))
|
|
| 56 | 56 | .getMessagesForNodesToRemove();
|
| 57 | 57 | }
|
| 58 | 58 | } |
| ... | ... | @@ -367,7 +367,7 @@ public class CapabilityDescriptor { |
| 367 | 367 | }
|
| 368 | 368 | |
| 369 | 369 | |
| 370 | - public String generateCapabilityUpdateNodeMethod(Class<?> mainDtoType, Set<String> availableProperties) {
|
|
| 370 | + public String generateCapabilityOnBeanToUpdateUpdateNodeMethod(Class<?> mainDtoType, Set<String> availableProperties) {
|
|
| 371 | 371 | switch (capacityNodeType) {
|
| 372 | 372 | case STATIC_WITH_PREDICATE: {
|
| 373 | 373 | String beanPropertyName = getOptionalPredicate().orElseThrow();
|
| ... | ... | @@ -384,6 +384,23 @@ public class CapabilityDescriptor { |
| 384 | 384 | return null;
|
| 385 | 385 | }
|
| 386 | 386 | }
|
| 387 | + public String generateCapabilityOnUpdatedBeanNodeUpdateNodeMethod(Class<?> mainDtoType, Set<String> availableProperties) {
|
|
| 388 | + switch (capacityNodeType) {
|
|
| 389 | + case STATIC_WITH_PREDICATE: {
|
|
| 390 | + String beanPropertyName = getOptionalPredicate().orElseThrow();
|
|
| 391 | + return String.format(" .onPredicate(d-> d.is%1$s() && d.get%2$sStatValue() > 0, %3$s.class)\n", beanPropertyName, Strings.removeEnd(beanPropertyName,"Enabled"), getNodeTypeSimpleName());
|
|
| 392 | + }
|
|
| 393 | + case REFERENCE_LIST:
|
|
| 394 | + case REFERENCE: {
|
|
| 395 | + String beanPropertyName = methodName.replace("UINavigationNode", "Enabled");
|
|
| 396 | + if (availableProperties.contains(Introspector.decapitalize(beanPropertyName))) {
|
|
| 397 | + return String.format(" .onPredicate(d-> d.is%1$s() && d.get%2$sStatValue() > 0, %3$s.class)\n", beanPropertyName, Strings.removeEnd(beanPropertyName,"Enabled"), getNodeTypeSimpleName());
|
|
| 398 | + }
|
|
| 399 | + }
|
|
| 400 | + default:
|
|
| 401 | + return null;
|
|
| 402 | + }
|
|
| 403 | + }
|
|
| 387 | 404 | |
| 388 | 405 | protected String getOptionalReferenceTypePackage() {
|
| 389 | 406 | return optionalReferenceType.getPackage().getName();
|
| ... | ... | @@ -55,8 +55,14 @@ public class ContentUINavigationCapabilityHelper extends ContentUIHelperSupport |
| 55 | 55 | " super(node);\n" +
|
| 56 | 56 | " }\n\n" +
|
| 57 | 57 | "}\n";
|
| 58 | - public static final String UPDATE_NODE_METHOD = "" +
|
|
| 59 | - " public static NodeChildrenUpdate fillBuilder(NodeChildrenUpdate.BuilderStepAddPredicate<%1$s> builder) {\n" +
|
|
| 58 | + public static final String ON_BEAN_TO_UPDATE_NODE_METHOD = "" +
|
|
| 59 | + " public static NodeChildrenUpdate fillBeforeBuilder(NodeChildrenUpdate.BuilderOnBeanToUpdate<%1$s> builder) {\n" +
|
|
| 60 | + " return builder\n" +
|
|
| 61 | + "%2$s" +
|
|
| 62 | + " .build();\n" +
|
|
| 63 | + " }\n\n";
|
|
| 64 | + public static final String ON_UPDATED_BEAN_NODE_METHOD = "" +
|
|
| 65 | + " public static NodeChildrenUpdate fillAfterBuilder(NodeChildrenUpdate.BuilderOnUpdatedBean<%1$s> builder) {\n" +
|
|
| 60 | 66 | " return builder\n" +
|
| 61 | 67 | "%2$s" +
|
| 62 | 68 | " .build();\n" +
|
| ... | ... | @@ -139,7 +145,32 @@ public class ContentUINavigationCapabilityHelper extends ContentUIHelperSupport |
| 139 | 145 | return String.format(template, generator.cleanClassName, createChildrenMethodBuilder);
|
| 140 | 146 | }
|
| 141 | 147 | |
| 142 | - public static String generateNodeUpdaterMethod(GenerateJavaFileSupport generator, List<String> imports) {
|
|
| 148 | + public static String generateOnBeanToUpdateNodeUpdaterMethod(GenerateJavaFileSupport generator, List<String> imports) {
|
|
| 149 | + if (generator.capabilitiesDescriptor == null) {
|
|
| 150 | + return "";
|
|
| 151 | + }
|
|
| 152 | + Class<? extends BusinessDto> dtoType = generator.scopeBuilder.dtoType;
|
|
| 153 | + StringBuilder createChildrenMethodBuilder = new StringBuilder();
|
|
| 154 | + JavaBeanDefinition javaBeanDefinition = JavaBeanDefinitionStore.getDefinition(dtoType).orElseThrow();
|
|
| 155 | + Set<String> availableProperties = javaBeanDefinition.readProperties().map(JavaBeanPropertyDefinition::propertyName).collect(Collectors.toSet());
|
|
| 156 | + boolean used = false;
|
|
| 157 | + for (CapabilityDescriptor capabilityDescriptor : generator.capabilitiesDescriptor) {
|
|
| 158 | + String addNodeMethod = capabilityDescriptor.generateCapabilityOnBeanToUpdateUpdateNodeMethod(dtoType, availableProperties);
|
|
| 159 | + if (addNodeMethod != null) {
|
|
| 160 | + used = true;
|
|
| 161 | + createChildrenMethodBuilder.append(addNodeMethod);
|
|
| 162 | + }
|
|
| 163 | + }
|
|
| 164 | + if (used) {
|
|
| 165 | + imports.add(NodeChildrenUpdate.class.getName());
|
|
| 166 | + imports.add(dtoType.getName());
|
|
| 167 | + return String.format(ON_BEAN_TO_UPDATE_NODE_METHOD, dtoType.getSimpleName(), createChildrenMethodBuilder);
|
|
| 168 | + |
|
| 169 | + }
|
|
| 170 | + return "";
|
|
| 171 | + }
|
|
| 172 | + |
|
| 173 | + public static String generateOnUpdatedBeanNodeUpdaterMethod(GenerateJavaFileSupport generator, List<String> imports) {
|
|
| 143 | 174 | if (generator.capabilitiesDescriptor == null) {
|
| 144 | 175 | return "";
|
| 145 | 176 | }
|
| ... | ... | @@ -149,7 +180,7 @@ public class ContentUINavigationCapabilityHelper extends ContentUIHelperSupport |
| 149 | 180 | Set<String> availableProperties = javaBeanDefinition.readProperties().map(JavaBeanPropertyDefinition::propertyName).collect(Collectors.toSet());
|
| 150 | 181 | boolean used = false;
|
| 151 | 182 | for (CapabilityDescriptor capabilityDescriptor : generator.capabilitiesDescriptor) {
|
| 152 | - String addNodeMethod = capabilityDescriptor.generateCapabilityUpdateNodeMethod(dtoType, availableProperties);
|
|
| 183 | + String addNodeMethod = capabilityDescriptor.generateCapabilityOnUpdatedBeanNodeUpdateNodeMethod(dtoType, availableProperties);
|
|
| 153 | 184 | if (addNodeMethod != null) {
|
| 154 | 185 | used = true;
|
| 155 | 186 | createChildrenMethodBuilder.append(addNodeMethod);
|
| ... | ... | @@ -158,7 +189,7 @@ public class ContentUINavigationCapabilityHelper extends ContentUIHelperSupport |
| 158 | 189 | if (used) {
|
| 159 | 190 | imports.add(NodeChildrenUpdate.class.getName());
|
| 160 | 191 | imports.add(dtoType.getName());
|
| 161 | - return String.format(UPDATE_NODE_METHOD, dtoType.getSimpleName(), createChildrenMethodBuilder);
|
|
| 192 | + return String.format(ON_UPDATED_BEAN_NODE_METHOD, dtoType.getSimpleName(), createChildrenMethodBuilder);
|
|
| 162 | 193 | |
| 163 | 194 | }
|
| 164 | 195 | return "";
|
| ... | ... | @@ -214,7 +245,7 @@ public class ContentUINavigationCapabilityHelper extends ContentUIHelperSupport |
| 214 | 245 | }
|
| 215 | 246 | |
| 216 | 247 | public String generateNodeUpdaterMethod(List<String> imports) {
|
| 217 | - return generateNodeUpdaterMethod(generator, imports);
|
|
| 248 | + return generateOnBeanToUpdateNodeUpdaterMethod(generator, imports) + generateOnUpdatedBeanNodeUpdaterMethod(generator, imports);
|
|
| 218 | 249 | }
|
| 219 | 250 | |
| 220 | 251 | public String generateGetModel() {
|
| ... | ... | @@ -33,6 +33,7 @@ import fr.ird.observe.dto.referential.ReferentialLocale; |
| 33 | 33 | import fr.ird.observe.entities.data.ll.common.Trip;
|
| 34 | 34 | import fr.ird.observe.entities.referential.common.DataQuality;
|
| 35 | 35 | import fr.ird.observe.entities.referential.common.Species;
|
| 36 | +import fr.ird.observe.spi.decoration.DecoratorService;
|
|
| 36 | 37 | import fr.ird.observe.spi.service.ServiceContext;
|
| 37 | 38 | import io.ultreia.java4all.util.Dates;
|
| 38 | 39 | import org.apache.logging.log4j.LogManager;
|
| ... | ... | @@ -40,7 +41,6 @@ import org.apache.logging.log4j.Logger; |
| 40 | 41 | |
| 41 | 42 | import java.util.Calendar;
|
| 42 | 43 | import java.util.Date;
|
| 43 | -import java.util.function.BiConsumer;
|
|
| 44 | 44 | import java.util.stream.Collectors;
|
| 45 | 45 | |
| 46 | 46 | /**
|
| ... | ... | @@ -68,6 +68,15 @@ public class ActivitySpi extends GeneratedActivitySpi { |
| 68 | 68 | }
|
| 69 | 69 | }
|
| 70 | 70 | |
| 71 | + @Override
|
|
| 72 | + public ActivityReference toReference(ReferentialLocale referentialLocale, Activity entity, String classifier) {
|
|
| 73 | + ActivityReference reference = super.toReference(referentialLocale, entity, classifier);
|
|
| 74 | + if (entity != null && DecoratorService.WITH_STATS_CLASSIFIER.equals(classifier) && reference.getSet() != null) {
|
|
| 75 | + entity.getSet().buildStatistics(reference.getSet());
|
|
| 76 | + }
|
|
| 77 | + return reference;
|
|
| 78 | + }
|
|
| 79 | + |
|
| 71 | 80 | @Override
|
| 72 | 81 | public Form<ActivityDto> preCreate(ServiceContext context, Trip parent, Activity preCreated) {
|
| 73 | 82 | Activity lastActivity = Iterables.getLast(parent.getActivityLogbook(), null);
|
| ... | ... | @@ -102,13 +111,4 @@ public class ActivitySpi extends GeneratedActivitySpi { |
| 102 | 111 | }
|
| 103 | 112 | super.onSave(context, parent, entity, dto, needCopy);
|
| 104 | 113 | }
|
| 105 | - |
|
| 106 | - @Override
|
|
| 107 | - protected BiConsumer<Activity, ActivityReference> getChildrenExtraConsumer(Trip parent) {
|
|
| 108 | - return (e, r) -> {
|
|
| 109 | - if (r.getSet() != null) {
|
|
| 110 | - e.getSet().buildStatistics(r.getSet());
|
|
| 111 | - }
|
|
| 112 | - };
|
|
| 113 | - }
|
|
| 114 | 114 | } |
| ... | ... | @@ -26,14 +26,15 @@ import com.google.common.collect.Iterables; |
| 26 | 26 | import fr.ird.observe.dto.data.ll.observation.ActivityDto;
|
| 27 | 27 | import fr.ird.observe.dto.data.ll.observation.ActivityReference;
|
| 28 | 28 | import fr.ird.observe.dto.form.Form;
|
| 29 | +import fr.ird.observe.dto.referential.ReferentialLocale;
|
|
| 29 | 30 | import fr.ird.observe.entities.data.ll.common.Trip;
|
| 31 | +import fr.ird.observe.spi.decoration.DecoratorService;
|
|
| 30 | 32 | import fr.ird.observe.spi.service.ServiceContext;
|
| 31 | 33 | import org.apache.logging.log4j.LogManager;
|
| 32 | 34 | import org.apache.logging.log4j.Logger;
|
| 33 | 35 | |
| 34 | 36 | import java.util.Calendar;
|
| 35 | 37 | import java.util.Date;
|
| 36 | -import java.util.function.BiConsumer;
|
|
| 37 | 38 | |
| 38 | 39 | /**
|
| 39 | 40 | * Created on 10/05/2021.
|
| ... | ... | @@ -44,6 +45,15 @@ import java.util.function.BiConsumer; |
| 44 | 45 | public class ActivitySpi extends GeneratedActivitySpi {
|
| 45 | 46 | private static final Logger log = LogManager.getLogger(ActivitySpi.class);
|
| 46 | 47 | |
| 48 | + @Override
|
|
| 49 | + public ActivityReference toReference(ReferentialLocale referentialLocale, Activity entity, String classifier) {
|
|
| 50 | + ActivityReference reference = super.toReference(referentialLocale, entity, classifier);
|
|
| 51 | + if (entity != null && DecoratorService.WITH_STATS_CLASSIFIER.equals(classifier) && reference.getSet() != null) {
|
|
| 52 | + entity.getSet().buildStatistics(reference.getSet());
|
|
| 53 | + }
|
|
| 54 | + return reference;
|
|
| 55 | + }
|
|
| 56 | + |
|
| 47 | 57 | @Override
|
| 48 | 58 | public Form<ActivityDto> preCreate(ServiceContext context, Trip parent, Activity preCreated) {
|
| 49 | 59 | Activity lastActivity = Iterables.getLast(parent.getActivityObs(), null);
|
| ... | ... | @@ -76,12 +86,4 @@ public class ActivitySpi extends GeneratedActivitySpi { |
| 76 | 86 | super.onSave(context, parent, entity, dto, needCopy);
|
| 77 | 87 | }
|
| 78 | 88 | |
| 79 | - @Override
|
|
| 80 | - protected BiConsumer<Activity, ActivityReference> getChildrenExtraConsumer(Trip parent) {
|
|
| 81 | - return (e, r) -> {
|
|
| 82 | - if (r.getSet() != null) {
|
|
| 83 | - e.getSet().buildStatistics(r.getSet());
|
|
| 84 | - }
|
|
| 85 | - };
|
|
| 86 | - }
|
|
| 87 | 89 | } |
| ... | ... | @@ -30,6 +30,7 @@ import fr.ird.observe.dto.referential.ReferentialLocale; |
| 30 | 30 | import fr.ird.observe.dto.referential.common.SpeciesReference;
|
| 31 | 31 | import fr.ird.observe.entities.referential.common.FpaZone;
|
| 32 | 32 | import fr.ird.observe.entities.referential.common.Species;
|
| 33 | +import fr.ird.observe.spi.decoration.DecoratorService;
|
|
| 33 | 34 | import fr.ird.observe.spi.service.ServiceContext;
|
| 34 | 35 | import io.ultreia.java4all.util.Dates;
|
| 35 | 36 | import org.apache.logging.log4j.LogManager;
|
| ... | ... | @@ -67,6 +68,9 @@ public class ActivitySpi extends GeneratedActivitySpi { |
| 67 | 68 | if (entity != null && entity.isFloatingObjectNotEmpty()) {
|
| 68 | 69 | reference.setFloatingObject(FloatingObject.SPI.toReferenceSet(referentialLocale, entity.getFloatingObject(), new Date(), classifier).toList());
|
| 69 | 70 | }
|
| 71 | + if (entity != null && DecoratorService.WITH_STATS_CLASSIFIER.equals(classifier) && reference.getSet() != null) {
|
|
| 72 | + entity.getSet().buildStatistics(reference.getSet());
|
|
| 73 | + }
|
|
| 70 | 74 | return reference;
|
| 71 | 75 | }
|
| 72 | 76 | |
| ... | ... | @@ -111,9 +115,9 @@ public class ActivitySpi extends GeneratedActivitySpi { |
| 111 | 115 | protected BiConsumer<Activity, ActivityReference> getChildrenExtraConsumer(Route parent) {
|
| 112 | 116 | return (entity, reference) -> {
|
| 113 | 117 | reference.setDate(parent.getDate());
|
| 114 | - if (reference.getSet() != null) {
|
|
| 115 | - entity.getSet().buildStatistics(reference.getSet());
|
|
| 116 | - }
|
|
| 118 | +// if (reference.getSet() != null) {
|
|
| 119 | +// entity.getSet().buildStatistics(reference.getSet());
|
|
| 120 | +// }
|
|
| 117 | 121 | };
|
| 118 | 122 | }
|
| 119 | 123 |