This is an automated email from the git hooks/post-receive script. New change to branch feature/7617-LL-VerifEnregistreursDeProfondeur in repository tutti. See http://git.codelutin.com/tutti.git at 41d62ac Ajouter du filtre sur les espèces (see #7617). This branch includes the following new commits: new 439f9af Ajout de trace dans les appels des services, revoie dans le dto des données de position sur la ligne (see #7616). new 1f181a5 Ajouter du filtre sur les espèces alimentation des comboBos pour les tableaux de taille et de poids (see #7616). new 4076f1c Ajout de trace dans les appels des services, revoie dans le dto des données de position sur la ligne (see #7617). new 32bfd35 correction du binding des TDR (see #7617). new 41d62ac Ajouter du filtre sur les espèces (see #7617). The 5 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: commit 41d62ac9770d3cef01595106b90e8b0d6559b176 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Mon Mar 14 09:21:36 2016 +0100 Ajouter du filtre sur les espèces (see #7617). commit 32bfd35e6b06c8c1b7bf06777cd422b354779cd8 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Mon Mar 14 09:19:51 2016 +0100 correction du binding des TDR (see #7617). commit 4076f1c2211b60be06120a0be4e872724f341bf2 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Mon Mar 14 09:19:02 2016 +0100 Ajout de trace dans les appels des services, revoie dans le dto des données de position sur la ligne (see #7617). commit 1f181a52fe2d76b4d4e00d13336e277a4020bc29 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Fri Mar 11 14:44:39 2016 +0100 Ajouter du filtre sur les espèces alimentation des comboBos pour les tableaux de taille et de poids (see #7616). commit 439f9afeea61f2f27443bf2632c2e1ed09a3a191 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Fri Mar 11 10:00:57 2016 +0100 Ajout de trace dans les appels des services, revoie dans le dto des données de position sur la ligne (see #7616). -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/7617-LL-VerifEnregistreursDeProfondeur in repository tutti. See http://git.codelutin.com/tutti.git commit 439f9afeea61f2f27443bf2632c2e1ed09a3a191 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Fri Mar 11 10:00:57 2016 +0100 Ajout de trace dans les appels des services, revoie dans le dto des données de position sur la ligne (see #7616). --- .../impl/longline/CatchLonglineUIHandler.java | 12 +- .../impl/longline/LonglinePositionHelper.java | 51 ++++--- .../content/table/impl/longline/TdrUIHandler.java | 22 ++- .../dto/reference/DataReferenceSetDefinitions.java | 12 +- .../xmi/observe-services-dto-longline.properties | 4 + .../main/xmi/observe-services-dto-longline.zargo | Bin 63930 -> 64556 bytes .../longline/SetLonglineCatchServiceTopia.java | 158 +++++++++++++++------ 7 files changed, 176 insertions(+), 83 deletions(-) diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/CatchLonglineUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/CatchLonglineUIHandler.java index 124c1a7..cb5e467 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/CatchLonglineUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/CatchLonglineUIHandler.java @@ -26,7 +26,6 @@ import com.google.common.collect.Lists; import fr.ird.observe.ObserveSwingApplicationContext; import fr.ird.observe.db.constants.DataContextType; import fr.ird.observe.services.dto.DataReference; -import fr.ird.observe.services.dto.DataReferenceSet; import fr.ird.observe.services.dto.Form; import fr.ird.observe.services.dto.longline.BasketDto; import fr.ird.observe.services.dto.longline.BranchlineDto; @@ -611,13 +610,12 @@ public class CatchLonglineUIHandler extends ContentTableUIHandler<SetLonglineCat model.setForm(form); - - DataReferenceSet<SectionDto> sections= model.getDataReferenceSet(CatchLonglineDto.PROPERTY_SECTION); - DataReferenceSet<BasketDto> baskets = model.getDataReferenceSet(CatchLonglineDto.PROPERTY_BASKET); - DataReferenceSet<BranchlineDto> branchlines = model.getDataReferenceSet(CatchLonglineDto.PROPERTY_BRANCHLINE); - LonglinePositionHelper<CatchLonglineDto> positionHelper = POSITION_HELPER_ENTRY.getContextValue(getUi()); - positionHelper.initSections(sections, baskets, branchlines, form.getObject().getCatchLongline()); + positionHelper.initSections( + form.getObject().getSections(), + form.getObject().getBaskets(), + form.getObject().getBranchlines(), + form.getObject().getCatchLongline()); SetLonglineCatchDtos.copySetLonglineCatchDto(form.getObject(), getBean()); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/LonglinePositionHelper.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/LonglinePositionHelper.java index 306d302..8ccb724 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/LonglinePositionHelper.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/LonglinePositionHelper.java @@ -22,10 +22,8 @@ package fr.ird.observe.ui.content.table.impl.longline; * #L% */ -import com.google.common.collect.Iterables; import com.google.common.collect.Lists; import fr.ird.observe.services.dto.DataReference; -import fr.ird.observe.services.dto.DataReferenceSet; import fr.ird.observe.services.dto.longline.BasketDto; import fr.ird.observe.services.dto.longline.BranchlineDto; import fr.ird.observe.services.dto.longline.CatchLonglineDto; @@ -38,6 +36,7 @@ import java.beans.PropertyChangeListener; import java.util.Collection; import java.util.Collections; import java.util.List; +import java.util.stream.Collectors; /** * Created on 1/6/15. @@ -56,11 +55,11 @@ public class LonglinePositionHelper<D extends LonglinePositionAwareDto> { // To avoid any propagation when doing some works on locations protected boolean locationIsAdjusting; - protected DataReferenceSet<SectionDto> sectionUniverse; + protected Collection<DataReference<SectionDto>> sectionUniverse; - protected DataReferenceSet<BasketDto> basketUniverse; + protected Collection<DataReference<BasketDto>> basketUniverse; - protected DataReferenceSet<BranchlineDto> branchlineUniverse; + protected Collection<DataReference<BranchlineDto>> branchlineUniverse; public LonglinePositionHelper(BeanComboBox<DataReference<SectionDto>> uiSection, BeanComboBox<DataReference<BasketDto>> uiBasket, @@ -91,9 +90,9 @@ public class LonglinePositionHelper<D extends LonglinePositionAwareDto> { } - public void initSections(DataReferenceSet<SectionDto> sectionUniverse, - DataReferenceSet<BasketDto> basketUniverse, - DataReferenceSet<BranchlineDto> branchlineUniverse, + public void initSections(Collection<DataReference<SectionDto>> sectionUniverse, + Collection<DataReference<BasketDto>> basketUniverse, + Collection<DataReference<BranchlineDto>> branchlineUniverse, Collection<D> dtos) { this.sectionUniverse = sectionUniverse; @@ -180,7 +179,7 @@ public class LonglinePositionHelper<D extends LonglinePositionAwareDto> { if (sectionUniverse != null) { - sections.addAll(sectionUniverse.getReferences()); + sections.addAll(sectionUniverse); } @@ -281,7 +280,14 @@ public class LonglinePositionHelper<D extends LonglinePositionAwareDto> { protected DataReference<SectionDto> getSection(DataReference<BasketDto> basket) { String sectionId = (String) basket.getPropertyValue(BasketDto.PROPERTY_SECTION); - DataReference<SectionDto> section = sectionUniverse.getReferenceById(sectionId); + + DataReference<SectionDto> section = sectionUniverse.stream() + // TODO sbavencoff 11/03/2016 utiliser le prédicat AbstractReference.newIdPredicate() + // A la migartion vers les prédicats JAVA8 + .filter(s -> sectionId.equals(s.getId())) + .findFirst() + .get(); + return section; } @@ -289,25 +295,36 @@ public class LonglinePositionHelper<D extends LonglinePositionAwareDto> { protected DataReference<BasketDto> getBasket(DataReference<BranchlineDto> branchline) { String basketId = (String) branchline.getPropertyValue(BranchlineDto.PROPERTY_BASKET); - DataReference<BasketDto> basket = basketUniverse.getReferenceById(basketId); + + DataReference<BasketDto> basket = basketUniverse.stream() + // TODO sbavencoff 11/03/2016 utiliser le prédicat DataReference.newLabelValuePredicate + // A la migartion vers les prédicats JAVA8 + .filter(b -> basketId.equals(b.getId())) + .findFirst() + .get(); + return basket; } protected List<DataReference<BasketDto>> getBaskets(DataReference<SectionDto> section) { - List<DataReference<BasketDto>> baskets = Lists.newArrayList(Iterables.filter( - basketUniverse.getReferences(), - DataReference.newLabelValuePredicate(BasketDto.PROPERTY_SECTION, section.getId()))); + List<DataReference<BasketDto>> baskets = basketUniverse.stream() + // TODO sbavencoff 11/03/2016 utiliser le prédicat DataReference.newLabelValuePredicate + // A la migartion vers les prédicat JAVA8 + .filter(b -> section.getId().equals(b.getPropertyValue(BasketDto.PROPERTY_SECTION))) + .collect(Collectors.toList()); return baskets; } protected List<DataReference<BranchlineDto>> getBranchlines(DataReference<BasketDto> basket) { - List<DataReference<BranchlineDto>> branchlines = Lists.newArrayList(Iterables.filter( - branchlineUniverse.getReferences(), - DataReference.newLabelValuePredicate(BranchlineDto.PROPERTY_BASKET, basket.getId()))); + List<DataReference<BranchlineDto>> branchlines = branchlineUniverse.stream() + // TODO sbavencoff 11/03/2016 utilise le prédicat DataReference.newLabelValuePredicate + // A la migartion vers les prédicat JAVA8 + .filter(b -> basket.getId().equals(b.getPropertyValue(BranchlineDto.PROPERTY_BASKET))) + .collect(Collectors.toList()); return branchlines; } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/TdrUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/TdrUIHandler.java index b72ee1d..9ffccf9 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/TdrUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/TdrUIHandler.java @@ -28,12 +28,7 @@ import com.google.common.io.Files; import fr.ird.observe.ObserveSwingApplicationContext; import fr.ird.observe.ObserveSwingTechnicalException; import fr.ird.observe.db.constants.DataContextType; -import fr.ird.observe.services.dto.DataReferenceSet; import fr.ird.observe.services.dto.Form; -import fr.ird.observe.services.dto.longline.BasketDto; -import fr.ird.observe.services.dto.longline.BranchlineDto; -import fr.ird.observe.services.dto.longline.CatchLonglineDto; -import fr.ird.observe.services.dto.longline.SectionDto; import fr.ird.observe.services.dto.longline.SetLonglineTdrDto; import fr.ird.observe.services.dto.longline.SetLonglineTdrDtos; import fr.ird.observe.services.dto.longline.TdrDto; @@ -478,16 +473,17 @@ public class TdrUIHandler extends ContentTableUIHandler<SetLonglineTdrDto, TdrDt ContentTableUIModel<SetLonglineTdrDto, TdrDto> model = getModel(); loadReferentialReferenceSetsInModel(form); model.setForm(form); - - DataReferenceSet<SectionDto> sections = model.getDataReferenceSet(CatchLonglineDto.PROPERTY_SECTION); - DataReferenceSet<BasketDto> baskets = model.getDataReferenceSet(CatchLonglineDto.PROPERTY_BASKET); - DataReferenceSet<BranchlineDto> branchlines = model.getDataReferenceSet(CatchLonglineDto.PROPERTY_BRANCHLINE); +//TODO sbavencoff a traité dans le ticket sur l'ecran TDR +// DataReferenceSet<SectionDto> sections = model.getDataReferenceSet(CatchLonglineDto.PROPERTY_SECTION); +// DataReferenceSet<BasketDto> baskets = model.getDataReferenceSet(CatchLonglineDto.PROPERTY_BASKET); +// DataReferenceSet<BranchlineDto> branchlines = model.getDataReferenceSet(CatchLonglineDto.PROPERTY_BRANCHLINE); LonglinePositionHelper<TdrDto> positionHelper = POSITION_HELPER_ENTRY.getContextValue(getUi()); - positionHelper.initSections(sections, - baskets, - branchlines, - form.getObject().getTdr()); +//TODO sbavencoff a traité dans le ticket sur l'ecran TDR +// positionHelper.initSections(sections, +// baskets, +// branchlines, +// form.getObject().getTdr()); SetLonglineTdrDtos.copySetLonglineTdrDto(form.getObject(), getBean()); diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/DataReferenceSetDefinitions.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/DataReferenceSetDefinitions.java index 78704e2..d524f35 100644 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/DataReferenceSetDefinitions.java +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/DataReferenceSetDefinitions.java @@ -120,7 +120,17 @@ public enum DataReferenceSetDefinitions { BRANCHLINE(newDefinitionBuilder(BranchlineDto.class) .addProperty(Integer.class, BranchlineDto.PROPERTY_HAULING_IDENTIFIER) - .addProperty(Integer.class, BranchlineDto.PROPERTY_SETTING_IDENTIFIER)),; + .addProperty(Integer.class, BranchlineDto.PROPERTY_SETTING_IDENTIFIER)), + + BASKET_WITH_SECTION(newDefinitionBuilder(BasketDto.class) + .addProperty(Integer.class, BasketDto.PROPERTY_HAULING_IDENTIFIER) + .addProperty(Integer.class, BasketDto.PROPERTY_SETTING_IDENTIFIER) + .addProperty(String.class, BasketDto.PROPERTY_SECTION)), + + BRANCHLINE_WITH_BASKET(newDefinitionBuilder(BranchlineDto.class) + .addProperty(Integer.class, BranchlineDto.PROPERTY_HAULING_IDENTIFIER) + .addProperty(Integer.class, BranchlineDto.PROPERTY_SETTING_IDENTIFIER) + .addProperty(String.class, BranchlineDto.PROPERTY_BASKET)),; public static final Map<String, ReferenceSetDefinition> MAPPING = new TreeMap<>(); diff --git a/observe-services-model/src/main/xmi/observe-services-dto-longline.properties b/observe-services-model/src/main/xmi/observe-services-dto-longline.properties index abcd155..63d8b19 100644 --- a/observe-services-model/src/main/xmi/observe-services-dto-longline.properties +++ b/observe-services-model/src/main/xmi/observe-services-dto-longline.properties @@ -66,6 +66,10 @@ fr.ird.observe.services.dto.longline.FloatlinesComposition.attribute.lineType.ta fr.ird.observe.services.dto.longline.Encounter.attribute.species.tagValue.attributeGeneric=fr.ird.observe.services.dto.referential.SpeciesDto fr.ird.observe.services.dto.longline.Encounter.attribute.encounterType.tagValue.attributeGeneric=fr.ird.observe.services.dto.referential.longline.EncounterTypeDto +fr.ird.observe.services.dto.longline.SetLonglineCatch.attribute.baskets.tagValue.attributeGeneric=fr.ird.observe.services.dto.longline.BasketDto +fr.ird.observe.services.dto.longline.SetLonglineCatch.attribute.branchlines.tagValue.attributeGeneric=fr.ird.observe.services.dto.longline.BranchlineDto +fr.ird.observe.services.dto.longline.SetLonglineCatch.attribute.sections.tagValue.attributeGeneric=fr.ird.observe.services.dto.longline.SectionDto + fr.ird.observe.services.dto.longline.CatchLongline.attribute.basket.tagValue.attributeGeneric=fr.ird.observe.services.dto.longline.BasketDto fr.ird.observe.services.dto.longline.CatchLongline.attribute.branchline.tagValue.attributeGeneric=fr.ird.observe.services.dto.longline.BranchlineDto fr.ird.observe.services.dto.longline.CatchLongline.attribute.catchFateLongline.tagValue.attributeGeneric=fr.ird.observe.services.dto.referential.longline.CatchFateLonglineDto diff --git a/observe-services-model/src/main/xmi/observe-services-dto-longline.zargo b/observe-services-model/src/main/xmi/observe-services-dto-longline.zargo index 5747114..e13bb9e 100644 Binary files a/observe-services-model/src/main/xmi/observe-services-dto-longline.zargo and b/observe-services-model/src/main/xmi/observe-services-dto-longline.zargo differ diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/service/longline/SetLonglineCatchServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/service/longline/SetLonglineCatchServiceTopia.java index 76b3e04..29bfab7 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/service/longline/SetLonglineCatchServiceTopia.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/service/longline/SetLonglineCatchServiceTopia.java @@ -22,20 +22,37 @@ package fr.ird.observe.services.service.longline; * #L% */ +import fr.ird.observe.entities.longline.Basket; +import fr.ird.observe.entities.longline.Branchline; +import fr.ird.observe.entities.longline.Section; import fr.ird.observe.entities.longline.SetLongline; import fr.ird.observe.services.ObserveServiceTopia; +import fr.ird.observe.services.dto.DataReference; import fr.ird.observe.services.dto.Form; +import fr.ird.observe.services.dto.longline.BasketDto; +import fr.ird.observe.services.dto.longline.BranchlineDto; +import fr.ird.observe.services.dto.longline.CatchLonglineDto; +import fr.ird.observe.services.dto.longline.SectionDto; import fr.ird.observe.services.dto.longline.SetLonglineCatchDto; +import fr.ird.observe.services.dto.reference.DataReferenceSetDefinitions; +import fr.ird.observe.services.dto.reference.ReferenceSetDefinition; import fr.ird.observe.services.dto.reference.request.ReferenceSetRequestDefinitions; import fr.ird.observe.services.dto.result.SaveResultDto; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; /** * @author Sylvain Bavencoff - bavencoff@codelutin.com */ public class SetLonglineCatchServiceTopia extends ObserveServiceTopia implements SetLonglineCatchService { + private static final Log log = LogFactory.getLog(SetLonglineCatchServiceTopia.class); + @Override public Form<SetLonglineCatchDto> loadForm(String setLonglineId) { + if (log.isTraceEnabled()) { + log.trace("loadForm(" + setLonglineId + ")"); + } SetLongline setLongline = loadEntity(SetLonglineCatchDto.class, setLonglineId); @@ -43,59 +60,110 @@ public class SetLonglineCatchServiceTopia extends ObserveServiceTopia implements SetLonglineCatchDto.class, setLongline, ReferenceSetRequestDefinitions.SET_LONGLINE_CATCH_FORM - //ImmutableMap.<String, Object>of(Section.PROPERTY_SET_LONGLINE, setLongline), //FIXME context ); - //FIXME Faire ça dans l'ui -// for(Section section : setLongline.getSection()) { -// -// for (Basket basket : section.getBasket()) { -// -// ReferenceDto<BasketDto> basketRef = form.getReferenceById(BasketDto.class, SectionDto.PROPERTY_BASKET, basket.getTopiaId()); -// -// basketRef.addPropertyValue(BasketDto.PROPERTY_SECTION, section.getTopiaId()); -// -// for (Branchline branchline : basket.getBranchline()) { -// -// ReferenceDto<BranchlineDto> branchlineRef = form.getReferenceById(BranchlineDto.class, BasketDto.PROPERTY_BRANCHLINE, branchline.getTopiaId()); -// -// branchlineRef.addPropertyValue(BranchlineDto.PROPERTY_BASKET, basket.getTopiaId()); -// -// } -// -// } -// -// } -// -// for (CatchLonglineDto catchLonglineDto : form.getForm().getCatchLongline()) { -// -// ReferenceDto<BasketDto> basketRef = catchLonglineDto.getBasket(); -// -// if (basketRef != null) { -// -// ReferenceDto<BasketDto> basketRefLabel = form.getReferenceById(BasketDto.class, basketRef.getId()); -// -// basketRef.addPropertyValue(BasketDto.PROPERTY_SECTION, basketRefLabel.getPropertyValue(BasketDto.PROPERTY_SECTION)); -// -// } -// -// ReferenceDto<BranchlineDto> branchlineRef = catchLonglineDto.getBranchline(); -// -// if (branchlineRef != null) { -// -// ReferenceDto<BranchlineDto> branchlineRefLabel = form.getReferenceById(BranchlineDto.class, branchlineRef.getId()); -// -// branchlineRef.addPropertyValue(BranchlineDto.PROPERTY_BASKET, branchlineRefLabel.getPropertyValue(BranchlineDto.PROPERTY_BASKET)); -// -// } -// -// } + // constitution des références des position sur la ligne + for(Section section : setLongline.getSection()) { + + DataReference<SectionDto> sectionRef = toReference(section); + + form.getObject().addSections(sectionRef); + + for (Basket basket : section.getBasket()) { + + DataReference<BasketDto> basketRef = toBasketReference(basket, section); + + form.getObject().addBaskets(basketRef); + + for (Branchline branchline : basket.getBranchline()) { + + DataReference<BranchlineDto> branchlineRef = toBranchlineReference(branchline, basket); + + form.getObject().addBranchlines(branchlineRef); + + } + + } + + } + + // remplacement des références de position avec ces référence complété avec l'id du parent + for (CatchLonglineDto catchLonglineDto : form.getObject().getCatchLongline()) { + + DataReference<BasketDto> basketRef = catchLonglineDto.getBasket(); + + if (basketRef != null) { + + DataReference<BasketDto> basketRefWithSection = form.getObject().getBaskets().stream() + .filter(b -> basketRef.getId().equals(b.getId())) + .findFirst() + .get(); + + catchLonglineDto.setBasket(basketRefWithSection); + + } + + DataReference<BranchlineDto> branchlineRef = catchLonglineDto.getBranchline(); + + if (branchlineRef != null) { + + DataReference<BranchlineDto> branchlineRefWithSection = form.getObject().getBranchlines().stream() + .filter(b -> branchlineRef.getId().equals(b.getId())) + .findFirst() + .get(); + + catchLonglineDto.setBranchline(branchlineRefWithSection); + + } + + } return form; } + protected DataReference<BasketDto> toBasketReference(Basket basket, Section section) { + + DataReference<BasketDto> reference = new DataReference<>(); + + reference.setId(basket.getTopiaId()); + reference.setCreateDate(basket.getTopiaCreateDate()); + reference.setVersion(basket.getTopiaVersion()); + + ReferenceSetDefinition<BasketDto> definition = DataReferenceSetDefinitions.BASKET_WITH_SECTION.getDefinition(); + reference.init(definition.getType(), + definition.getPropertyNames(), + basket.getSettingIdentifier(), + basket.getHaulingIdentifier(), + section.getTopiaId()); + + return reference; + } + + protected DataReference<BranchlineDto> toBranchlineReference(Branchline branchline, Basket basket) { + + DataReference<BranchlineDto> reference = new DataReference<>(); + + reference.setId(branchline.getTopiaId()); + reference.setCreateDate(branchline.getTopiaCreateDate()); + reference.setVersion(branchline.getTopiaVersion()); + + ReferenceSetDefinition<BranchlineDto> definition = DataReferenceSetDefinitions.BRANCHLINE_WITH_BASKET.getDefinition(); + reference.init(definition.getType(), + definition.getPropertyNames(), + branchline.getSettingIdentifier(), + branchline.getHaulingIdentifier(), + basket.getTopiaId()); + + return reference; + } + + @Override public SaveResultDto save(SetLonglineCatchDto dto) { + if (log.isTraceEnabled()) { + log.trace("save(" + dto.getId() + ")"); + } + SetLongline entity = loadOrCreateEntityAndCheckLastUpdate(dto); copyDataDtoToEntity(dto, entity); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/7617-LL-VerifEnregistreursDeProfondeur in repository tutti. See http://git.codelutin.com/tutti.git commit 1f181a52fe2d76b4d4e00d13336e277a4020bc29 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Fri Mar 11 14:44:39 2016 +0100 Ajouter du filtre sur les espèces alimentation des comboBos pour les tableaux de taille et de poids (see #7616). --- .../impl/longline/CatchLonglineUIHandler.java | 63 ++++++++++++++++++---- .../v1/longline/TripLonglineServiceController.java | 8 +++ .../service/longline/TripLonglineService.java | 5 ++ .../service/longline/TripLonglineServiceTopia.java | 41 ++++++++++++++ 4 files changed, 106 insertions(+), 11 deletions(-) diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/CatchLonglineUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/CatchLonglineUIHandler.java index cb5e467..82efc1b 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/CatchLonglineUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/CatchLonglineUIHandler.java @@ -36,7 +36,9 @@ import fr.ird.observe.services.dto.longline.SetLonglineCatchDto; import fr.ird.observe.services.dto.longline.SetLonglineCatchDtos; import fr.ird.observe.services.dto.longline.SizeMeasureDto; import fr.ird.observe.services.dto.longline.WeightMeasureDto; +import fr.ird.observe.services.dto.referential.ReferentialDto; import fr.ird.observe.services.dto.referential.ReferentialReference; +import fr.ird.observe.services.dto.referential.ReferentialReferences; import fr.ird.observe.services.dto.referential.SpeciesDto; import fr.ird.observe.services.dto.referential.longline.CatchFateLonglineDto; import fr.ird.observe.services.dto.referential.longline.HealthnessDto; @@ -45,6 +47,7 @@ import fr.ird.observe.services.dto.referential.longline.WeightMeasureTypeDto; import fr.ird.observe.services.dto.result.SaveResultDto; import fr.ird.observe.services.service.longline.BranchlineService; import fr.ird.observe.services.service.longline.SetLonglineCatchService; +import fr.ird.observe.services.service.longline.TripLonglineService; import fr.ird.observe.ui.DecoratorService; import fr.ird.observe.ui.UIHelper; import fr.ird.observe.ui.content.ContentUIInitializer; @@ -68,8 +71,10 @@ import javax.swing.event.TableModelListener; import javax.swing.table.DefaultTableCellRenderer; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; +import java.util.Collection; import java.util.Collections; import java.util.HashSet; +import java.util.LinkedList; import java.util.List; import java.util.Set; @@ -240,10 +245,13 @@ public class CatchLonglineUIHandler extends ContentTableUIHandler<SetLonglineCat BranchlineDto branchline = ui.getBranchlineBean(); - String openSetLonglineId = getDataContext().getOpenSetLonglineId(); + String openSetLonglineId = getDataContext().getSelectedSetLonglineId(); SaveResultDto saveResult = getBranchLineService().save(openSetLonglineId, branchline); saveResult.toDto(branchline); + // on recopie le last update car c'est le laste update de SetLongline qui est renvoyé. + getBean().setLastUpdateDate(saveResult.getLastUpdateDate()); + getUi().getBranchlineValidator().setChanged(false); } @@ -534,12 +542,10 @@ public class CatchLonglineUIHandler extends ContentTableUIHandler<SetLonglineCat ReferentialReferenceDecorator<SizeMeasureTypeDto> decorator = getReferentialReferenceDecorator(SizeMeasureTypeDto.class); - //FIXME Load data on init -// ReferentialService referentialService = ObserveSwingApplicationContext.get().newService(ReferentialService.class); -// ReferenceSetDto<SizeMeasureTypeDto> sizeMeasureTypeDtoRefSet = referentialService.getReferenceSet(SizeMeasureTypeDto.class); -// ArrayList<ReferenceDto<SizeMeasureTypeDto>> sizeMeasureTypes = Lists.newArrayList(sizeMeasureTypeDtoRefSet.getReferences()); + List<ReferentialReference<SizeMeasureTypeDto>> sizeMeasureTypes = + Lists.newArrayList(getDataSource().getReferentialReferences(SizeMeasureTypeDto.class)); - UIHelper.setTableColumnEditor(table, 0, ContentUIInitializer.newDataColumnEditor(Collections.<ReferentialReference<SizeMeasureTypeDto>>emptyList(), decorator)); + UIHelper.setTableColumnEditor(table, 0, ContentUIInitializer.newDataColumnEditor(sizeMeasureTypes, decorator)); UIHelper.setTableColumnEditor(table, 1, ContentUIInitializer.newFloatColumnEditor(table)); SizeMeasuresTableModel tableModel = getModel().getSizeMeasuresTableModel(); @@ -563,12 +569,10 @@ public class CatchLonglineUIHandler extends ContentTableUIHandler<SetLonglineCat ReferentialReferenceDecorator<WeightMeasureTypeDto> decorator = getReferentialReferenceDecorator(WeightMeasureTypeDto.class); - //FIXME Load data on init -// ReferentialService referentialService = ObserveSwingApplicationContext.get().newService(ReferentialService.class); -// ReferenceSetDto<WeightMeasureTypeDto> weightMeasureTypeDtoRefSet = referentialService.getReferenceSet(WeightMeasureTypeDto.class); -// ArrayList<ReferenceDto<WeightMeasureTypeDto>> weightMeasureTypes = Lists.newArrayList(weightMeasureTypeDtoRefSet.getReferences()); + List<ReferentialReference<WeightMeasureTypeDto>> weightMeasureTypes = + Lists.newArrayList(getDataSource().getReferentialReferences(WeightMeasureTypeDto.class)); - UIHelper.setTableColumnEditor(table, 0, ContentUIInitializer.newDataColumnEditor(Collections.<ReferentialReference<WeightMeasureTypeDto>>emptyList(), decorator)); + UIHelper.setTableColumnEditor(table, 0, ContentUIInitializer.newDataColumnEditor(weightMeasureTypes, decorator)); UIHelper.setTableColumnEditor(table, 1, ContentUIInitializer.newFloatColumnEditor(table)); WeightMeasuresTableModel tableModel = getModel().getWeightMeasuresTableModel(); @@ -622,6 +626,43 @@ public class CatchLonglineUIHandler extends ContentTableUIHandler<SetLonglineCat } @Override + protected <D extends ReferentialDto> Collection<ReferentialReference<D>> filterReferentialReferences(Class<D> dtoType, String propertyName, LinkedList<ReferentialReference<D>> incomingReferences) { + + Collection<ReferentialReference<D>> result = super.filterReferentialReferences(dtoType, propertyName, incomingReferences); + + switch (propertyName) { + + case CatchLonglineDto.PROPERTY_SPECIES_CATCH: + case CatchLonglineDto.PROPERTY_PREDATOR: { + String speciesListId; + + if (CatchLonglineDto.PROPERTY_SPECIES_CATCH.equals(propertyName)) { + speciesListId = ObserveSwingApplicationContext.get().getConfig().getSpeciesListLonglineCatchId(); + } else { + speciesListId = ObserveSwingApplicationContext.get().getConfig().getSpeciesListLonglineDepredatorId(); + } + + String tripLonglineId = getDataContext().getSelectedTripLonglineId(); + + TripLonglineService tripLonglineService = ObserveSwingApplicationContext.get().newService(TripLonglineService.class); + result = (List) tripLonglineService.getSpeciesByListAndTrip(tripLonglineId, speciesListId); + + result = ReferentialReferences.filterEnabled(result); + + if (log.isDebugEnabled()) { + log.debug(String.format("Filter referential references (type %s - property %s), final size: %d", dtoType.getSimpleName(), propertyName, incomingReferences.size())); + } + + break; + } + + } + + return result; + + } + + @Override protected void closeSafeUI() { if (log.isInfoEnabled()) { diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/longline/TripLonglineServiceController.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/longline/TripLonglineServiceController.java index 08968a9..0556a7b 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/longline/TripLonglineServiceController.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/longline/TripLonglineServiceController.java @@ -22,12 +22,15 @@ package fr.ird.observe.application.web.controller.v1.longline; * #L% */ +import com.google.common.collect.ImmutableList; import fr.ird.observe.application.web.controller.v1.ObserveAuthenticatedServiceControllerSupport; import fr.ird.observe.services.dto.DataReference; import fr.ird.observe.services.dto.DataReferenceSet; import fr.ird.observe.services.dto.Form; import fr.ird.observe.services.dto.TripMapDto; import fr.ird.observe.services.dto.longline.TripLonglineDto; +import fr.ird.observe.services.dto.referential.ReferentialReference; +import fr.ird.observe.services.dto.referential.SpeciesDto; import fr.ird.observe.services.dto.result.SaveResultDto; import fr.ird.observe.services.service.longline.TripLonglineService; @@ -106,4 +109,9 @@ public class TripLonglineServiceController extends ObserveAuthenticatedServiceCo public List<Integer> moveTripLonglinesToProgram(List<String> tripLonglineIds, String programId) { return service.moveTripLonglinesToProgram(tripLonglineIds, programId); } + + @Override + public ImmutableList<ReferentialReference<SpeciesDto>> getSpeciesByListAndTrip(String tripLonglineId, String speciesListId) { + return service.getSpeciesByListAndTrip(tripLonglineId, speciesListId); + } } diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/TripLonglineService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/TripLonglineService.java index 9e39a0a..4afa84f 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/TripLonglineService.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/TripLonglineService.java @@ -22,12 +22,15 @@ package fr.ird.observe.services.service.longline; * #L% */ +import com.google.common.collect.ImmutableList; import fr.ird.observe.services.ObserveService; import fr.ird.observe.services.dto.DataReference; import fr.ird.observe.services.dto.DataReferenceSet; import fr.ird.observe.services.dto.Form; import fr.ird.observe.services.dto.TripMapDto; import fr.ird.observe.services.dto.longline.TripLonglineDto; +import fr.ird.observe.services.dto.referential.ReferentialReference; +import fr.ird.observe.services.dto.referential.SpeciesDto; import fr.ird.observe.services.dto.result.SaveResultDto; import fr.ird.observe.services.spi.DeleteRequest; import fr.ird.observe.services.spi.PostRequest; @@ -89,4 +92,6 @@ public interface TripLonglineService extends ObserveService { @PostRequest List<Integer> moveTripLonglinesToProgram(List<String> tripLonglineIds, String programId); + @ReadDataPermission + ImmutableList<ReferentialReference<SpeciesDto>> getSpeciesByListAndTrip(String tripLonglineId, String speciesListId); } \ No newline at end of file diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/service/longline/TripLonglineServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/service/longline/TripLonglineServiceTopia.java index d207c24..6e7435a 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/service/longline/TripLonglineServiceTopia.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/service/longline/TripLonglineServiceTopia.java @@ -23,19 +23,29 @@ package fr.ird.observe.services.service.longline; */ import com.google.common.base.Joiner; +import com.google.common.collect.ImmutableList; import fr.ird.observe.ObserveTopiaPersistenceContext; import fr.ird.observe.entities.TripMapPoint; import fr.ird.observe.entities.longline.TripLongline; import fr.ird.observe.entities.longline.TripLonglineTopiaDao; +import fr.ird.observe.entities.referentiel.Ocean; import fr.ird.observe.entities.referentiel.Program; +import fr.ird.observe.entities.referentiel.Species; +import fr.ird.observe.entities.referentiel.Species2; +import fr.ird.observe.entities.referentiel.SpeciesList; import fr.ird.observe.services.ObserveServiceTopia; +import fr.ird.observe.services.binder.referential.ReferentialBinderSupport; import fr.ird.observe.services.dto.DataReference; import fr.ird.observe.services.dto.DataReferenceSet; import fr.ird.observe.services.dto.Form; import fr.ird.observe.services.dto.TripMapDto; +import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.longline.TripLonglineDto; import fr.ird.observe.services.dto.reference.request.ReferenceSetRequestDefinitions; import fr.ird.observe.services.dto.referential.ProgramDto; +import fr.ird.observe.services.dto.referential.ReferentialReference; +import fr.ird.observe.services.dto.referential.SpeciesDto; +import fr.ird.observe.services.dto.referential.SpeciesListDto; import fr.ird.observe.services.dto.result.SaveResultDto; import fr.ird.observe.services.entity.TripMapDtoFactory; import org.apache.commons.logging.Log; @@ -259,6 +269,37 @@ public class TripLonglineServiceTopia extends ObserveServiceTopia implements Tri } + @Override + public ImmutableList<ReferentialReference<SpeciesDto>> getSpeciesByListAndTrip(String tripLonglineId, String speciesListId) { + if (log.isTraceEnabled()) { + log.trace("getSpeciesByListAndTrip(" + tripLonglineId + ", " + speciesListId + ")"); + } + + // find Ocean + TripLongline tripLongline = loadEntity(TripLonglineDto.class, tripLonglineId); + + Ocean ocean = tripLongline.getOcean(); + + SpeciesList speciesList = loadEntity(SpeciesListDto.class, speciesListId); + + List<Species> species2 = Species2.filterByOcean(speciesList.getSpecies(), ocean); + + ReferentialBinderSupport<Species, SpeciesDto> binder = getReferentialBinder(SpeciesDto.class); + + ReferentialLocale referentialLocale = getReferentialLocale(); + + ImmutableList.Builder<ReferentialReference<SpeciesDto>> references = ImmutableList.builder(); + + for (Species species : species2) { + + ReferentialReference<SpeciesDto> reference = binder.toReferentialReference(referentialLocale, species); + references.add(reference); + + } + + return references.build(); + } + protected TripLonglineTopiaDao getDao() { return (TripLonglineTopiaDao) serviceContext.getTopiaPersistenceContext().getDao(TripLongline.class); } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/7617-LL-VerifEnregistreursDeProfondeur in repository tutti. See http://git.codelutin.com/tutti.git commit 4076f1c2211b60be06120a0be4e872724f341bf2 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Mon Mar 14 09:19:02 2016 +0100 Ajout de trace dans les appels des services, revoie dans le dto des données de position sur la ligne (see #7617). --- .../impl/longline/CatchLonglineUIHandler.java | 4 +- .../impl/longline/LonglinePositionHelper.java | 11 +- .../content/table/impl/longline/TdrUIHandler.java | 11 +- .../dto/longline/LonglinePositionSetDto.java | 77 ++++++++++++ .../xmi/observe-services-dto-longline.properties | 4 + .../main/xmi/observe-services-dto-longline.zargo | Bin 64556 -> 66083 bytes .../longline/LonglinePositionSetDtoHelper.java | 132 +++++++++++++++++++++ .../longline/SetLonglineCatchServiceTopia.java | 98 +-------------- .../services/service/longline/TdrServiceTopia.java | 62 +++------- 9 files changed, 240 insertions(+), 159 deletions(-) diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/CatchLonglineUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/CatchLonglineUIHandler.java index 82efc1b..bbaa57b 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/CatchLonglineUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/CatchLonglineUIHandler.java @@ -616,9 +616,7 @@ public class CatchLonglineUIHandler extends ContentTableUIHandler<SetLonglineCat LonglinePositionHelper<CatchLonglineDto> positionHelper = POSITION_HELPER_ENTRY.getContextValue(getUi()); positionHelper.initSections( - form.getObject().getSections(), - form.getObject().getBaskets(), - form.getObject().getBranchlines(), + form.getObject(), form.getObject().getCatchLongline()); SetLonglineCatchDtos.copySetLonglineCatchDto(form.getObject(), getBean()); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/LonglinePositionHelper.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/LonglinePositionHelper.java index 8ccb724..d16a103 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/LonglinePositionHelper.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/LonglinePositionHelper.java @@ -28,6 +28,7 @@ import fr.ird.observe.services.dto.longline.BasketDto; import fr.ird.observe.services.dto.longline.BranchlineDto; import fr.ird.observe.services.dto.longline.CatchLonglineDto; import fr.ird.observe.services.dto.longline.LonglinePositionAwareDto; +import fr.ird.observe.services.dto.longline.LonglinePositionSetDto; import fr.ird.observe.services.dto.longline.SectionDto; import jaxx.runtime.swing.editor.bean.BeanComboBox; @@ -90,14 +91,12 @@ public class LonglinePositionHelper<D extends LonglinePositionAwareDto> { } - public void initSections(Collection<DataReference<SectionDto>> sectionUniverse, - Collection<DataReference<BasketDto>> basketUniverse, - Collection<DataReference<BranchlineDto>> branchlineUniverse, + public void initSections(LonglinePositionSetDto positionSetDto, Collection<D> dtos) { - this.sectionUniverse = sectionUniverse; - this.basketUniverse = basketUniverse; - this.branchlineUniverse = branchlineUniverse; + this.sectionUniverse = positionSetDto.getSections(); + this.basketUniverse = positionSetDto.getBaskets(); + this.branchlineUniverse = positionSetDto.getBranchlines(); for (D dto : dtos) { diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/TdrUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/TdrUIHandler.java index 9ffccf9..e6f031c 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/TdrUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/TdrUIHandler.java @@ -473,17 +473,10 @@ public class TdrUIHandler extends ContentTableUIHandler<SetLonglineTdrDto, TdrDt ContentTableUIModel<SetLonglineTdrDto, TdrDto> model = getModel(); loadReferentialReferenceSetsInModel(form); model.setForm(form); -//TODO sbavencoff a traité dans le ticket sur l'ecran TDR -// DataReferenceSet<SectionDto> sections = model.getDataReferenceSet(CatchLonglineDto.PROPERTY_SECTION); -// DataReferenceSet<BasketDto> baskets = model.getDataReferenceSet(CatchLonglineDto.PROPERTY_BASKET); -// DataReferenceSet<BranchlineDto> branchlines = model.getDataReferenceSet(CatchLonglineDto.PROPERTY_BRANCHLINE); LonglinePositionHelper<TdrDto> positionHelper = POSITION_HELPER_ENTRY.getContextValue(getUi()); -//TODO sbavencoff a traité dans le ticket sur l'ecran TDR -// positionHelper.initSections(sections, -// baskets, -// branchlines, -// form.getObject().getTdr()); + positionHelper.initSections(form.getObject(), + form.getObject().getTdr()); SetLonglineTdrDtos.copySetLonglineTdrDto(form.getObject(), getBean()); diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/longline/LonglinePositionSetDto.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/longline/LonglinePositionSetDto.java new file mode 100644 index 0000000..72757da --- /dev/null +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/longline/LonglinePositionSetDto.java @@ -0,0 +1,77 @@ +package fr.ird.observe.services.dto.longline; + +import fr.ird.observe.services.dto.DataReference; + +import java.util.Collection; + +/** + * @author Sylvain Bavencoff - bavencoff@codelutin.com + */ +public interface LonglinePositionSetDto { + + DataReference<SectionDto> getSections(int index); + + boolean isSectionsEmpty(); + + int sizeSections(); + + void addSections(DataReference<SectionDto> sections); + + void addAllSections(Collection<DataReference<SectionDto>> sections); + + boolean removeSections(DataReference<SectionDto> sections); + + boolean removeAllSections(Collection<DataReference<SectionDto>> sections); + + boolean containsSections(DataReference<SectionDto> sections); + + boolean containsAllSections(Collection<DataReference<SectionDto>> sections); + + Collection<DataReference<SectionDto>> getSections(); + + void setSections(Collection<DataReference<SectionDto>> sections); + + DataReference<BasketDto> getBaskets(int index); + + boolean isBasketsEmpty(); + + int sizeBaskets(); + + void addBaskets(DataReference<BasketDto> baskets); + + void addAllBaskets(Collection<DataReference<BasketDto>> baskets); + + boolean removeBaskets(DataReference<BasketDto> baskets); + + boolean removeAllBaskets(Collection<DataReference<BasketDto>> baskets); + + boolean containsBaskets(DataReference<BasketDto> baskets); + + boolean containsAllBaskets(Collection<DataReference<BasketDto>> baskets); + + Collection<DataReference<BasketDto>> getBaskets(); + + void setBaskets(Collection<DataReference<BasketDto>> baskets); + + DataReference<BranchlineDto> getBranchlines(int index); + + boolean isBranchlinesEmpty(); + + int sizeBranchlines(); + + void addBranchlines(DataReference<BranchlineDto> branchlines); + + void addAllBranchlines(Collection<DataReference<BranchlineDto>> branchlines); + + boolean removeBranchlines(DataReference<BranchlineDto> branchlines); + + boolean removeAllBranchlines(Collection<DataReference<BranchlineDto>> branchlines); + + boolean containsBranchlines(DataReference<BranchlineDto> branchlines); + + boolean containsAllBranchlines(Collection<DataReference<BranchlineDto>> branchlines); + + Collection<DataReference<BranchlineDto>> getBranchlines(); + + void setBranchlines(Collection<DataReference<BranchlineDto>> branchlines); +} diff --git a/observe-services-model/src/main/xmi/observe-services-dto-longline.properties b/observe-services-model/src/main/xmi/observe-services-dto-longline.properties index 63d8b19..9f150eb 100644 --- a/observe-services-model/src/main/xmi/observe-services-dto-longline.properties +++ b/observe-services-model/src/main/xmi/observe-services-dto-longline.properties @@ -43,6 +43,10 @@ fr.ird.observe.services.dto.longline.SensorUsed.attribute.sensorBrand.tagValue.a fr.ird.observe.services.dto.longline.SizeMeasure.attribute.sizeMeasureType.tagValue.attributeGeneric=fr.ird.observe.services.dto.referential.longline.SizeMeasureTypeDto +fr.ird.observe.services.dto.longline.SetLonglineTdr.attribute.baskets.tagValue.attributeGeneric=fr.ird.observe.services.dto.longline.BasketDto +fr.ird.observe.services.dto.longline.SetLonglineTdr.attribute.branchlines.tagValue.attributeGeneric=fr.ird.observe.services.dto.longline.BranchlineDto +fr.ird.observe.services.dto.longline.SetLonglineTdr.attribute.sections.tagValue.attributeGeneric=fr.ird.observe.services.dto.longline.SectionDto + fr.ird.observe.services.dto.longline.Tdr.attribute.branchline.tagValue.attributeGeneric=fr.ird.observe.services.dto.longline.BranchlineDto fr.ird.observe.services.dto.longline.Tdr.attribute.sensorBrand.tagValue.attributeGeneric=fr.ird.observe.services.dto.referential.longline.SensorBrandDto fr.ird.observe.services.dto.longline.Tdr.attribute.species.tagValue.attributeGeneric=fr.ird.observe.services.dto.referential.SpeciesDto diff --git a/observe-services-model/src/main/xmi/observe-services-dto-longline.zargo b/observe-services-model/src/main/xmi/observe-services-dto-longline.zargo index e13bb9e..c84ce77 100644 Binary files a/observe-services-model/src/main/xmi/observe-services-dto-longline.zargo and b/observe-services-model/src/main/xmi/observe-services-dto-longline.zargo differ diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/service/longline/LonglinePositionSetDtoHelper.java b/observe-services-topia/src/main/java/fr/ird/observe/services/service/longline/LonglinePositionSetDtoHelper.java new file mode 100644 index 0000000..b54c876 --- /dev/null +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/service/longline/LonglinePositionSetDtoHelper.java @@ -0,0 +1,132 @@ +package fr.ird.observe.services.service.longline; + +import fr.ird.observe.entities.longline.Basket; +import fr.ird.observe.entities.longline.Branchline; +import fr.ird.observe.entities.longline.Section; +import fr.ird.observe.entities.longline.SetLongline; +import fr.ird.observe.services.dto.DataReference; +import fr.ird.observe.services.dto.longline.BasketDto; +import fr.ird.observe.services.dto.longline.BranchlineDto; +import fr.ird.observe.services.dto.longline.LonglinePositionAwareDto; +import fr.ird.observe.services.dto.longline.LonglinePositionSetDto; +import fr.ird.observe.services.dto.longline.SectionDto; +import fr.ird.observe.services.dto.reference.DataReferenceSetDefinitions; +import fr.ird.observe.services.dto.reference.ReferenceSetDefinition; + +/** + * @author Sylvain Bavencoff - bavencoff@codelutin.com + */ +public class LonglinePositionSetDtoHelper { + + // constitution des références des position sur la ligne + public static void loadPositionSet(SetLongline setLongline, LonglinePositionSetDto target) { + + for(Section section : setLongline.getSection()) { + + DataReference<SectionDto> sectionRef = toSectionReference(section); + + target.addSections(sectionRef); + + for (Basket basket : section.getBasket()) { + + DataReference<BasketDto> basketRef = toBasketReference(basket, section); + + target.addBaskets(basketRef); + + for (Branchline branchline : basket.getBranchline()) { + + DataReference<BranchlineDto> branchlineRef = toBranchlineReference(branchline, basket); + + target.addBranchlines(branchlineRef); + + } + + } + + } + + } + + // remplacement des références de position avec ces référence complété avec l'id du parent + public static void updatePosition(LonglinePositionSetDto positionSetDto, LonglinePositionAwareDto positionDto) { + DataReference<BasketDto> basketRef = positionDto.getBasket(); + + if (basketRef != null) { + + DataReference<BasketDto> basketRefWithSection = positionSetDto.getBaskets().stream() + .filter(b -> basketRef.getId().equals(b.getId())) + .findFirst() + .get(); + + positionDto.setBasket(basketRefWithSection); + + } + + DataReference<BranchlineDto> branchlineRef = positionDto.getBranchline(); + + if (branchlineRef != null) { + + DataReference<BranchlineDto> branchlineRefWithSection = positionSetDto.getBranchlines().stream() + .filter(b -> branchlineRef.getId().equals(b.getId())) + .findFirst() + .get(); + + positionDto.setBranchline(branchlineRefWithSection); + + } + } + + static protected DataReference<SectionDto> toSectionReference(Section section) { + + DataReference<SectionDto> reference = new DataReference<>(); + + reference.setId(section.getTopiaId()); + reference.setCreateDate(section.getTopiaCreateDate()); + reference.setVersion(section.getTopiaVersion()); + + ReferenceSetDefinition<SectionDto> definition = DataReferenceSetDefinitions.SECTION.getDefinition(); + reference.init(definition.getType(), + definition.getPropertyNames(), + section.getSettingIdentifier(), + section.getHaulingIdentifier()); + + return reference; + } + + static protected DataReference<BasketDto> toBasketReference(Basket basket, Section section) { + + DataReference<BasketDto> reference = new DataReference<>(); + + reference.setId(basket.getTopiaId()); + reference.setCreateDate(basket.getTopiaCreateDate()); + reference.setVersion(basket.getTopiaVersion()); + + ReferenceSetDefinition<BasketDto> definition = DataReferenceSetDefinitions.BASKET_WITH_SECTION.getDefinition(); + reference.init(definition.getType(), + definition.getPropertyNames(), + basket.getSettingIdentifier(), + basket.getHaulingIdentifier(), + section.getTopiaId()); + + return reference; + } + + static protected DataReference<BranchlineDto> toBranchlineReference(Branchline branchline, Basket basket) { + + DataReference<BranchlineDto> reference = new DataReference<>(); + + reference.setId(branchline.getTopiaId()); + reference.setCreateDate(branchline.getTopiaCreateDate()); + reference.setVersion(branchline.getTopiaVersion()); + + ReferenceSetDefinition<BranchlineDto> definition = DataReferenceSetDefinitions.BRANCHLINE_WITH_BASKET.getDefinition(); + reference.init(definition.getType(), + definition.getPropertyNames(), + branchline.getSettingIdentifier(), + branchline.getHaulingIdentifier(), + basket.getTopiaId()); + + return reference; + } + +} diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/service/longline/SetLonglineCatchServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/service/longline/SetLonglineCatchServiceTopia.java index 29bfab7..afbcd14 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/service/longline/SetLonglineCatchServiceTopia.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/service/longline/SetLonglineCatchServiceTopia.java @@ -22,20 +22,11 @@ package fr.ird.observe.services.service.longline; * #L% */ -import fr.ird.observe.entities.longline.Basket; -import fr.ird.observe.entities.longline.Branchline; -import fr.ird.observe.entities.longline.Section; import fr.ird.observe.entities.longline.SetLongline; import fr.ird.observe.services.ObserveServiceTopia; -import fr.ird.observe.services.dto.DataReference; import fr.ird.observe.services.dto.Form; -import fr.ird.observe.services.dto.longline.BasketDto; -import fr.ird.observe.services.dto.longline.BranchlineDto; import fr.ird.observe.services.dto.longline.CatchLonglineDto; -import fr.ird.observe.services.dto.longline.SectionDto; import fr.ird.observe.services.dto.longline.SetLonglineCatchDto; -import fr.ird.observe.services.dto.reference.DataReferenceSetDefinitions; -import fr.ird.observe.services.dto.reference.ReferenceSetDefinition; import fr.ird.observe.services.dto.reference.request.ReferenceSetRequestDefinitions; import fr.ird.observe.services.dto.result.SaveResultDto; import org.apache.commons.logging.Log; @@ -62,102 +53,17 @@ public class SetLonglineCatchServiceTopia extends ObserveServiceTopia implements ReferenceSetRequestDefinitions.SET_LONGLINE_CATCH_FORM ); - // constitution des références des position sur la ligne - for(Section section : setLongline.getSection()) { + LonglinePositionSetDtoHelper.loadPositionSet(setLongline, form.getObject()); - DataReference<SectionDto> sectionRef = toReference(section); - - form.getObject().addSections(sectionRef); - - for (Basket basket : section.getBasket()) { - - DataReference<BasketDto> basketRef = toBasketReference(basket, section); - - form.getObject().addBaskets(basketRef); - - for (Branchline branchline : basket.getBranchline()) { - - DataReference<BranchlineDto> branchlineRef = toBranchlineReference(branchline, basket); - - form.getObject().addBranchlines(branchlineRef); - - } - - } - - } - - // remplacement des références de position avec ces référence complété avec l'id du parent for (CatchLonglineDto catchLonglineDto : form.getObject().getCatchLongline()) { - DataReference<BasketDto> basketRef = catchLonglineDto.getBasket(); - - if (basketRef != null) { - - DataReference<BasketDto> basketRefWithSection = form.getObject().getBaskets().stream() - .filter(b -> basketRef.getId().equals(b.getId())) - .findFirst() - .get(); - - catchLonglineDto.setBasket(basketRefWithSection); - - } - - DataReference<BranchlineDto> branchlineRef = catchLonglineDto.getBranchline(); - - if (branchlineRef != null) { - - DataReference<BranchlineDto> branchlineRefWithSection = form.getObject().getBranchlines().stream() - .filter(b -> branchlineRef.getId().equals(b.getId())) - .findFirst() - .get(); - - catchLonglineDto.setBranchline(branchlineRefWithSection); - - } + LonglinePositionSetDtoHelper.updatePosition(form.getObject(), catchLonglineDto); } return form; } - protected DataReference<BasketDto> toBasketReference(Basket basket, Section section) { - - DataReference<BasketDto> reference = new DataReference<>(); - - reference.setId(basket.getTopiaId()); - reference.setCreateDate(basket.getTopiaCreateDate()); - reference.setVersion(basket.getTopiaVersion()); - - ReferenceSetDefinition<BasketDto> definition = DataReferenceSetDefinitions.BASKET_WITH_SECTION.getDefinition(); - reference.init(definition.getType(), - definition.getPropertyNames(), - basket.getSettingIdentifier(), - basket.getHaulingIdentifier(), - section.getTopiaId()); - - return reference; - } - - protected DataReference<BranchlineDto> toBranchlineReference(Branchline branchline, Basket basket) { - - DataReference<BranchlineDto> reference = new DataReference<>(); - - reference.setId(branchline.getTopiaId()); - reference.setCreateDate(branchline.getTopiaCreateDate()); - reference.setVersion(branchline.getTopiaVersion()); - - ReferenceSetDefinition<BranchlineDto> definition = DataReferenceSetDefinitions.BRANCHLINE_WITH_BASKET.getDefinition(); - reference.init(definition.getType(), - definition.getPropertyNames(), - branchline.getSettingIdentifier(), - branchline.getHaulingIdentifier(), - basket.getTopiaId()); - - return reference; - } - - @Override public SaveResultDto save(SetLonglineCatchDto dto) { if (log.isTraceEnabled()) { diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/service/longline/TdrServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/service/longline/TdrServiceTopia.java index c0ecda1..c57d9c2 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/service/longline/TdrServiceTopia.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/service/longline/TdrServiceTopia.java @@ -26,16 +26,24 @@ import fr.ird.observe.entities.longline.SetLongline; import fr.ird.observe.services.ObserveServiceTopia; import fr.ird.observe.services.dto.Form; import fr.ird.observe.services.dto.longline.SetLonglineTdrDto; +import fr.ird.observe.services.dto.longline.TdrDto; import fr.ird.observe.services.dto.reference.request.ReferenceSetRequestDefinitions; import fr.ird.observe.services.dto.result.SaveResultDto; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; /** * @author Sylvain Bavencoff - bavencoff@codelutin.com */ public class TdrServiceTopia extends ObserveServiceTopia implements TdrService { + private static final Log log = LogFactory.getLog(TdrServiceTopia.class); + @Override public Form<SetLonglineTdrDto> loadForm(String setLonglineId) { + if (log.isTraceEnabled()) { + log.trace("loadForm(" + setLonglineId + ")"); + } SetLongline setLongline = loadEntity(SetLonglineTdrDto.class, setLonglineId); @@ -43,60 +51,24 @@ public class TdrServiceTopia extends ObserveServiceTopia implements TdrService { SetLonglineTdrDto.class, setLongline, ReferenceSetRequestDefinitions.SET_LONGLINE_TDR_FORM - //ImmutableMap.<String, Object>of(Section.PROPERTY_SET_LONGLINE, setLongline), //FIXME context ); - //FIXME Faire ça dans l'ui -// for(Section section : setLongline.getSection()) { -// -// for (Basket basket : section.getBasket()) { -// -// ReferenceDto<BasketDto> basketRef = form.getReferenceById(BasketDto.class, basket.getTopiaId()); -// -// basketRef.addPropertyValue(BasketDto.PROPERTY_SECTION, section.getTopiaId()); -// -// for (Branchline branchline : basket.getBranchline()) { -// -// ReferenceDto<BranchlineDto> branchlineRef = form.getReferenceById(BranchlineDto.class, branchline.getTopiaId()); -// -// branchlineRef.addPropertyValue(BranchlineDto.PROPERTY_BASKET, basket.getTopiaId()); -// -// } -// -// } -// -// } -// -// for (TdrDto tdrDto : form.getForm().getTdr()) { -// -// ReferenceDto<BasketDto> basketRef = tdrDto.getBasket(); -// -// if (basketRef != null) { -// -// ReferenceDto<BasketDto> basketRefLabel = form.getReferenceById(BasketDto.class, basketRef.getId()); -// -// basketRef.addPropertyValue(BasketDto.PROPERTY_SECTION, basketRefLabel.getPropertyValue(BasketDto.PROPERTY_SECTION)); -// -// } -// -// ReferenceDto<BranchlineDto> branchlineRef = tdrDto.getBranchline(); -// -// if (branchlineRef != null) { -// -// ReferenceDto<BranchlineDto> branchlineRefLabel = form.getReferenceById(BranchlineDto.class, branchlineRef.getId()); -// -// branchlineRef.addPropertyValue(BranchlineDto.PROPERTY_BASKET, branchlineRefLabel.getPropertyValue(BranchlineDto.PROPERTY_BASKET)); -// -// } -// -// } + LonglinePositionSetDtoHelper.loadPositionSet(setLongline, form.getObject()); + + for (TdrDto tdrDto : form.getObject().getTdr()) { + + LonglinePositionSetDtoHelper.updatePosition(form.getObject(), tdrDto); + } return form; } @Override public SaveResultDto save(SetLonglineTdrDto dto) { + if (log.isTraceEnabled()) { + log.trace("save(" + dto.getId() + ")"); + } SetLongline entity = loadOrCreateEntityAndCheckLastUpdate(dto); copyDataDtoToEntity(dto, entity); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/7617-LL-VerifEnregistreursDeProfondeur in repository tutti. See http://git.codelutin.com/tutti.git commit 32bfd35e6b06c8c1b7bf06777cd422b354779cd8 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Mon Mar 14 09:19:51 2016 +0100 correction du binding des TDR (see #7617). --- .../fr/ird/observe/services/binder/data/SetLonglineTdrDtoBinder.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/binder/data/SetLonglineTdrDtoBinder.java b/observe-services-topia/src/main/java/fr/ird/observe/services/binder/data/SetLonglineTdrDtoBinder.java index c4f3253..1c415c4 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/binder/data/SetLonglineTdrDtoBinder.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/binder/data/SetLonglineTdrDtoBinder.java @@ -1,8 +1,10 @@ package fr.ird.observe.services.binder.data; import fr.ird.observe.entities.longline.SetLongline; +import fr.ird.observe.entities.longline.Tdr; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.longline.SetLonglineTdrDto; +import fr.ird.observe.services.dto.longline.TdrDto; /** * Created on 24/11/15. @@ -20,6 +22,7 @@ public class SetLonglineTdrDtoBinder extends DataBinderSupport<SetLongline, SetL copyDtoDataFieldsToEntity(dto, entity); + entity.setTdr(toEntityCollection(referentialLocale, dto.getTdr(), Tdr.class, entity.getTdr())); entity.setSettingStartTimeStamp(dto.getSettingStartTimeStamp()); } @@ -29,6 +32,7 @@ public class SetLonglineTdrDtoBinder extends DataBinderSupport<SetLongline, SetL copyEntityDataFieldsToDto(entity, dto); + dto.setTdr(toLinkedHashSetData(referentialLocale, entity.getTdr(), TdrDto.class)); dto.setSettingStartTimeStamp(entity.getSettingStartTimeStamp()); } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/7617-LL-VerifEnregistreursDeProfondeur in repository tutti. See http://git.codelutin.com/tutti.git commit 41d62ac9770d3cef01595106b90e8b0d6559b176 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Mon Mar 14 09:21:36 2016 +0100 Ajouter du filtre sur les espèces (see #7617). --- .../content/table/impl/longline/TdrUIHandler.java | 37 ++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/TdrUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/TdrUIHandler.java index e6f031c..2e36c24 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/TdrUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/TdrUIHandler.java @@ -32,9 +32,13 @@ import fr.ird.observe.services.dto.Form; import fr.ird.observe.services.dto.longline.SetLonglineTdrDto; import fr.ird.observe.services.dto.longline.SetLonglineTdrDtos; import fr.ird.observe.services.dto.longline.TdrDto; +import fr.ird.observe.services.dto.referential.ReferentialDto; +import fr.ird.observe.services.dto.referential.ReferentialReference; +import fr.ird.observe.services.dto.referential.ReferentialReferences; import fr.ird.observe.services.dto.referential.longline.SensorBrandDto; import fr.ird.observe.services.dto.result.SaveResultDto; import fr.ird.observe.services.service.longline.TdrService; +import fr.ird.observe.services.service.longline.TripLonglineService; import fr.ird.observe.ui.ObserveMainUI; import fr.ird.observe.ui.UIHelper; import fr.ird.observe.ui.content.table.ContentTableModel; @@ -66,8 +70,11 @@ import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.sql.SQLException; +import java.util.Collection; import java.util.Date; import java.util.HashSet; +import java.util.LinkedList; +import java.util.List; import java.util.Set; import static org.nuiton.i18n.I18n.n; @@ -466,6 +473,36 @@ public class TdrUIHandler extends ContentTableUIHandler<SetLonglineTdrDto, TdrDt } @Override + protected <D extends ReferentialDto> Collection<ReferentialReference<D>> filterReferentialReferences(Class<D> dtoType, String propertyName, LinkedList<ReferentialReference<D>> incomingReferences) { + + Collection<ReferentialReference<D>> result = super.filterReferentialReferences(dtoType, propertyName, incomingReferences); + + switch (propertyName) { + + case TdrDto.PROPERTY_SPECIES: { + String speciesListId = ObserveSwingApplicationContext.get().getConfig().getSpeciesListLonglineCatchId(); + + String tripLonglineId = getDataContext().getSelectedTripLonglineId(); + + TripLonglineService tripLonglineService = ObserveSwingApplicationContext.get().newService(TripLonglineService.class); + result = (List) tripLonglineService.getSpeciesByListAndTrip(tripLonglineId, speciesListId); + + result = ReferentialReferences.filterEnabled(result); + + if (log.isDebugEnabled()) { + log.debug(String.format("Filter referential references (type %s - property %s), final size: %d", dtoType.getSimpleName(), propertyName, incomingReferences.size())); + } + + break; + } + + } + + return result; + + } + + @Override protected void loadEditBean(String beanId) { Form<SetLonglineTdrDto> form = getTdrService().loadForm(beanId); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
participants (1)
-
codelutin.com scm