branch feature/7616-VerifEcranCaptures created (now abd56b5)
This is an automated email from the git hooks/post-receive script. New change to branch feature/7616-VerifEcranCaptures in repository tutti. See http://git.codelutin.com/tutti.git at abd56b5 correction du binding des tailles et des poids (see #7616). This branch includes the following new commits: new 95af8d1 Ajout de trace dans les appels des services, revoie dans le dto des données de position sur la ligne (see #7616). new 14cecea Ajouter du filtre sur les espèces alimentation des comboBos pour les tableaux de taille et de poids (see #7616). new abd56b5 correction du binding des tailles et des poids (see #7616). The 3 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 abd56b58bc972e3988b8796530c54e52f3b51b6d Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Fri Mar 11 16:09:05 2016 +0100 correction du binding des tailles et des poids (see #7616). commit 14cecea18b6a93aebe92c2788f055695cdfd357e 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 95af8d1f120f6724c0a57ce608dd20b1417b8b90 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/7616-VerifEcranCaptures in repository tutti. See http://git.codelutin.com/tutti.git commit 14cecea18b6a93aebe92c2788f055695cdfd357e 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/7616-VerifEcranCaptures in repository tutti. See http://git.codelutin.com/tutti.git commit abd56b58bc972e3988b8796530c54e52f3b51b6d Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Fri Mar 11 16:09:05 2016 +0100 correction du binding des tailles et des poids (see #7616). --- .../impl/longline/CatchLonglineTableModel.java | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/CatchLonglineTableModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/CatchLonglineTableModel.java index 6b12d37..b400b17 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/CatchLonglineTableModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/CatchLonglineTableModel.java @@ -25,12 +25,15 @@ package fr.ird.observe.ui.content.table.impl.longline; import fr.ird.observe.services.dto.longline.CatchLonglineDto; import fr.ird.observe.services.dto.longline.CatchLonglineDtos; import fr.ird.observe.services.dto.longline.SetLonglineCatchDto; +import fr.ird.observe.services.dto.longline.SizeMeasureDto; +import fr.ird.observe.services.dto.longline.WeightMeasureDto; import fr.ird.observe.ui.content.table.ContentTableMeta; import fr.ird.observe.ui.content.table.ContentTableModel; import fr.ird.observe.ui.content.table.ObserveContentTableUI; import java.util.Collection; import java.util.List; +import java.util.stream.Collectors; /** * Created on 12/4/14. @@ -68,16 +71,31 @@ public class CatchLonglineTableModel extends ContentTableModel<SetLonglineCatchD @Override public void updateRowFromEditBean() { - super.updateRowFromEditBean(); - // store sizes and weights for the selected row int editingRow = getSelectedRow(); CatchLonglineUIModel model = getModel(); + model.getSizeMeasuresTableModel().storeInCacheForRow(editingRow); + + List<SizeMeasureDto> sizeMeasures = model.getSizeMeasuresTableModel().getData().stream() + .filter(sizeMeasureDto -> sizeMeasureDto.getSizeMeasureType() != null) + .collect(Collectors.toList()); + + getRowBean().setSizeMeasure(sizeMeasures); + model.getWeightMeasuresTableModel().storeInCacheForRow(editingRow); + List<WeightMeasureDto> weightMeasures = model.getWeightMeasuresTableModel().getData().stream() + .filter(weightMeasureDto -> weightMeasureDto.getWeightMeasureType() != null) + .collect(Collectors.toList()); + + getRowBean().setWeightMeasure(weightMeasures); + + super.updateRowFromEditBean(); + + } @Override -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
participants (1)
-
codelutin.com scm