branch feature/7586 updated (9d449cb -> 35287ed)
This is an automated email from the git hooks/post-receive script. New change to branch feature/7586 in repository observe. See http://git.codelutin.com/observe.git from 9d449cb correction du remplissage des données referentielles des combo et listes new 35287ed correction de l'ouverture de l'écran de marée (refs #7586) The 1 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 35287edf1e4391e355cfbbee40a67bb603dd0f1e Author: Kevin Morin <morin@codelutin.com> Date: Tue Oct 6 12:17:54 2015 +0200 correction de l'ouverture de l'écran de marée (refs #7586) Summary of changes: .../business/db/model/DataSelectionModel.java | 345 +++++++++++---------- .../observe/ui/content/ContentUIInitializer.java | 2 +- .../content/open/impl/longline/TripLonglineUI.css | 7 +- .../ui/content/open/impl/seine/TripSeineUI.css | 6 +- .../ui/storage/tabs/StorageTabUIHandler.java | 3 +- .../ui/tree/DataSelectionTreeSelectionModel.java | 14 +- .../services/dto/referential/PersonDtos.java | 48 +++ .../services/dto/referential/ReferentialDtos.java | 40 +++ .../services/dto/ObserveDtosInitializer.java | 6 +- 9 files changed, 286 insertions(+), 185 deletions(-) create mode 100644 observe-services-model/src/main/java/fr/ird/observe/services/dto/referential/PersonDtos.java -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/7586 in repository observe. See http://git.codelutin.com/observe.git commit 35287edf1e4391e355cfbbee40a67bb603dd0f1e Author: Kevin Morin <morin@codelutin.com> Date: Tue Oct 6 12:17:54 2015 +0200 correction de l'ouverture de l'écran de marée (refs #7586) --- .../business/db/model/DataSelectionModel.java | 345 +++++++++++---------- .../observe/ui/content/ContentUIInitializer.java | 2 +- .../content/open/impl/longline/TripLonglineUI.css | 7 +- .../ui/content/open/impl/seine/TripSeineUI.css | 6 +- .../ui/storage/tabs/StorageTabUIHandler.java | 3 +- .../ui/tree/DataSelectionTreeSelectionModel.java | 14 +- .../services/dto/referential/PersonDtos.java | 48 +++ .../services/dto/referential/ReferentialDtos.java | 40 +++ .../services/dto/ObserveDtosInitializer.java | 6 +- 9 files changed, 286 insertions(+), 185 deletions(-) diff --git a/observe-application-swing/src/main/java/fr/ird/observe/business/db/model/DataSelectionModel.java b/observe-application-swing/src/main/java/fr/ird/observe/business/db/model/DataSelectionModel.java index f51b7f8..41e4382 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/business/db/model/DataSelectionModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/business/db/model/DataSelectionModel.java @@ -6,12 +6,14 @@ package fr.ird.observe.business.db.model; */ import fr.ird.observe.services.dto.ReferenceDto; +import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import java.beans.PropertyChangeListener; import java.beans.PropertyChangeSupport; import java.io.Serializable; +import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; @@ -205,28 +207,28 @@ public class DataSelectionModel implements Serializable { return selectedReferentiel.isEmpty(); } -// public boolean isReferentielFull() { -// return selectedReferentiel.size() == nbReferentiels; -// } + public boolean isReferentielFull() { + return selectedReferentiel.size() == nbReferentiels; + } public boolean isDataEmpty() { return selectedData == null || selectedData.isEmpty(); } -// public boolean isDataFull() { -// return selectedData != null && selectedData.size() == nbTrips; -// } + public boolean isDataFull() { + return selectedData != null && selectedData.size() == nbTrips; + } public Set<Class<?>> getSelectedReferentiel() { return selectedReferentiel; } -// public Map<String, List<String>> getDatas() { -// if (datas == null) { -// datas = new HashMap<String, List<String>>(); -// } -// return datas; -// } + public Map<String, List<String>> getDatas() { + if (datas == null) { + datas = new HashMap<String, List<String>>(); + } + return datas; + } public Set<String> getSelectedData() { if (selectedData == null) { @@ -259,47 +261,47 @@ public class DataSelectionModel implements Serializable { // } // return result; // } -// -// public boolean isSelectedData(String id) { -// -// if (Trips.isTripId(id)) { -// -// // recherche directe sur les ids de marees -// return getSelectedData().contains(id); -// } -// -// if (id.startsWith(Program.class.getName())) { -// // on doit verifier que toutes les marees du program sont sélectionnées -// List<String> tripIds = datas.get(id); -// if (CollectionUtils.isEmpty(tripIds)) { -// -// // pas de marées -// return false; -// } -// -// for (String tripId : tripIds) { -// if (!isSelectedData(tripId)) { -// -// // au moins une marée non sélectionnée -// -// return false; -// } -// } -// -// // toutes les marées sont sélectionnée -// return true; -// } -// -// // ne devrait pas arrivée -// return false; -// -// } -// -// public boolean isSelectedReferentiel(Class<?> type) { -// checkReferentielType(type); -// return getSelectedReferentiel().contains(type); -// } -// + + public boolean isSelectedData(String id) { + + if (isTripId(id)) { + + // recherche directe sur les ids de marees + return getSelectedData().contains(id); + } + + if (isProgramId(id)) { + // on doit verifier que toutes les marees du program sont sélectionnées + List<String> tripIds = datas.get(id); + if (CollectionUtils.isEmpty(tripIds)) { + + // pas de marées + return false; + } + + for (String tripId : tripIds) { + if (!isSelectedData(tripId)) { + + // au moins une marée non sélectionnée + + return false; + } + } + + // toutes les marées sont sélectionnée + return true; + } + + // ne devrait pas arrivée + return false; + + } + + public boolean isSelectedReferentiel(Class<?> type) { + checkReferentielType(type); + return getSelectedReferentiel().contains(type); + } + // public void setUseReferentiel(boolean useReferentiel) { // this.useReferentiel = useReferentiel; // firePropertyChange(PROPERTY_USE_REFERENTIEL, useReferentiel); @@ -314,29 +316,29 @@ public class DataSelectionModel implements Serializable { // this.useOpenData = useOpenData; // firePropertyChange(PROPERTY_USE_OPEN_DATA, useOpenData); // } -// -// public void addSelectedReferentiel(Class<?> type) { -// checkReferentielType(type); -// if (log.isDebugEnabled()) { -// log.debug("Add referentiel type " + type); -// } -// getSelectedReferentiel().add(type); -// firePropertyChange(PROPERTY_SELECTED_REFERENTIEL, selectedReferentiel); -// } -// -// public void addAllSelectedReferentiel() { -// getSelectedReferentiel().addAll(referentiel); -// firePropertyChange(PROPERTY_SELECTED_REFERENTIEL, selectedReferentiel); -// } -// -// public void removeSelectedReferentiel(Class<?> type) { -// checkReferentielType(type); -// if (log.isDebugEnabled()) { -// log.debug("remove referentiel type " + type); -// } -// getSelectedReferentiel().remove(type); -// firePropertyChange(PROPERTY_SELECTED_REFERENTIEL, selectedReferentiel); -// } + + public void addSelectedReferentiel(Class<?> type) { + checkReferentielType(type); + if (log.isDebugEnabled()) { + log.debug("Add referentiel type " + type); + } + getSelectedReferentiel().add(type); + firePropertyChange(PROPERTY_SELECTED_REFERENTIEL, selectedReferentiel); + } + + public void addAllSelectedReferentiel() { + getSelectedReferentiel().addAll(referentiel); + firePropertyChange(PROPERTY_SELECTED_REFERENTIEL, selectedReferentiel); + } + + public void removeSelectedReferentiel(Class<?> type) { + checkReferentielType(type); + if (log.isDebugEnabled()) { + log.debug("remove referentiel type " + type); + } + getSelectedReferentiel().remove(type); + firePropertyChange(PROPERTY_SELECTED_REFERENTIEL, selectedReferentiel); + } public void removeAll() { getSelectedReferentiel().clear(); @@ -345,89 +347,90 @@ public class DataSelectionModel implements Serializable { firePropertyChange(PROPERTY_SELECTED_DATA, selectedData); } -// public void removeAllSelectedReferentiel() { -// getSelectedReferentiel().clear(); -// firePropertyChange(PROPERTY_SELECTED_REFERENTIEL, selectedReferentiel); -// } -// -// public void setDatas(Map<String, List<String>> datas) { -// this.datas = datas; -// -// // on compte le count de marées totale -// int nbTrips = 0; -// if (datas != null) { -// for (List<String> marees : datas.values()) { -// nbTrips += marees.size(); -// } -// } -// this.nbTrips = nbTrips; -// -// if (log.isDebugEnabled()) { -// log.debug("Nb program registred : " + (datas == null ? 0 : datas.size())); -// log.debug("Nb trip registred : " + this.nbTrips); -// } -// firePropertyChange(PROPERTY_DATAS, datas); -// } -// -// public void addSelectedData(String id) { -// -// if (Trips.isTripId(id)) { -// -// // ajout d'une marée -// if (log.isDebugEnabled()) { -// log.debug("Add Trip " + id); -// } -// getSelectedData().add(id); -// } else if (id.startsWith(Program.class.getName())) { -// -// // ajout de toutes les marées du program -// -// if (log.isDebugEnabled()) { -// log.debug("Add all trips of program " + id); -// } -// getSelectedData().addAll(datas.get(id)); -// } -// -// -// firePropertyChange(PROPERTY_SELECTED_DATA, selectedData); -// } -// -// public void addAllSelectedData() { -// if (log.isDebugEnabled()) { -// log.debug("All all data."); -// } -// for (List<String> p : datas.values()) { -// getSelectedData().addAll(p); -// } -// firePropertyChange(PROPERTY_SELECTED_DATA, selectedData); -// } -// -// public void removeSelectedData(String id) { -// if (Trips.isTripId(id)) { -// -// // ajout d'une marée -// if (log.isDebugEnabled()) { -// log.debug("Remove maree " + id); -// } -// getSelectedData().remove(id); -// } else if (id.startsWith(Program.class.getName())) { -// -// // ajout de toutes les marées du program -// -// if (log.isDebugEnabled()) { -// log.debug("Remove all marees of program " + id); -// } -// getSelectedData().removeAll(datas.get(id)); -// } -// firePropertyChange(PROPERTY_SELECTED_DATA, selectedData); -// } -// -// public void removeAllSelectedData() { -// if (selectedData != null) { -// selectedData.clear(); -// } -// firePropertyChange(PROPERTY_SELECTED_DATA, selectedData); -// } + public void removeAllSelectedReferentiel() { + getSelectedReferentiel().clear(); + firePropertyChange(PROPERTY_SELECTED_REFERENTIEL, selectedReferentiel); + } + + public void setDatas(Map<String, List<String>> datas) { + this.datas = datas; + + // on compte le count de marées totale + int nbTrips = 0; + if (datas != null) { + for (List<String> marees : datas.values()) { + nbTrips += marees.size(); + } + } + this.nbTrips = nbTrips; + + if (log.isDebugEnabled()) { + log.debug("Nb program registred : " + (datas == null ? 0 : datas.size())); + log.debug("Nb trip registred : " + this.nbTrips); + } + firePropertyChange(PROPERTY_DATAS, datas); + } + + public void addSelectedData(String id) { + + if (isTripId(id)) { + + // ajout d'une marée + if (log.isDebugEnabled()) { + log.debug("Add Trip " + id); + } + getSelectedData().add(id); + + } else if (isProgramId(id)) { + + // ajout de toutes les marées du program + + if (log.isDebugEnabled()) { + log.debug("Add all trips of program " + id); + } + getSelectedData().addAll(datas.get(id)); + } + + + firePropertyChange(PROPERTY_SELECTED_DATA, selectedData); + } + + public void addAllSelectedData() { + if (log.isDebugEnabled()) { + log.debug("All all data."); + } + for (List<String> p : datas.values()) { + getSelectedData().addAll(p); + } + firePropertyChange(PROPERTY_SELECTED_DATA, selectedData); + } + + public void removeSelectedData(String id) { + if (isTripId(id)) { + + // ajout d'une marée + if (log.isDebugEnabled()) { + log.debug("Remove maree " + id); + } + getSelectedData().remove(id); + } else if (isProgramId(id)) { + + // ajout de toutes les marées du program + + if (log.isDebugEnabled()) { + log.debug("Remove all marees of program " + id); + } + getSelectedData().removeAll(datas.get(id)); + } + firePropertyChange(PROPERTY_SELECTED_DATA, selectedData); + } + + public void removeAllSelectedData() { + if (selectedData != null) { + selectedData.clear(); + } + firePropertyChange(PROPERTY_SELECTED_DATA, selectedData); + } public void addPropertyChangeListener(PropertyChangeListener listener) { pcs.addPropertyChangeListener(listener); @@ -457,13 +460,23 @@ public class DataSelectionModel implements Serializable { pcs.firePropertyChange(propertyName, oldValue, newValue); } -// protected void checkReferentielType(Class<?> type) { -// if (!referentiel.contains(type)) { -// throw new IllegalArgumentException( -// "given <" + type + "> is not in referentiel universe : " + -// referentiel); -// } -// } + protected void checkReferentielType(Class<?> type) { + if (!referentiel.contains(type)) { + throw new IllegalArgumentException( + "given <" + type + "> is not in referentiel universe : " + + referentiel); + } + } + + protected boolean isTripId(String id) { + String[] entityFullClass = id.split("#")[0].split("\\."); + return entityFullClass[entityFullClass.length - 1].startsWith("Trip"); + } + + private boolean isProgramId(String id) { + String[] entityFullClass = id.split("#")[0].split("\\."); + return entityFullClass[entityFullClass.length - 1].equals("Program"); + } public void destroy() { removeAll(); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ContentUIInitializer.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ContentUIInitializer.java index 1b2c5fc..97ddd8a 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ContentUIInitializer.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ContentUIInitializer.java @@ -863,7 +863,7 @@ public class ContentUIInitializer<E extends IdDto, UI extends ObserveContentUI<E if (referentialEntity) { //TC-20100208 : on ne veut pas voir les elements du referentiel non actif - ReferentialDtos.filterReferentialListByStatus((List) data); + ReferentialDtos.filterReferentialReferenceListByStatus((List) data); } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/longline/TripLonglineUI.css b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/longline/TripLonglineUI.css index ce0baaf..17ed886 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/longline/TripLonglineUI.css +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/longline/TripLonglineUI.css @@ -48,8 +48,7 @@ NumberEditor { #observer { property:{TripLonglineDto.PROPERTY_OBSERVER}; selectedItem:{bean.getObserver()}; - //FIXME - //_listPredicate:{PersonDtos.newObserverPredicate()}; + _listPredicate:{PersonDtos.newObserverReferencePredicate(true)}; } #captainLabel { @@ -60,7 +59,7 @@ NumberEditor { #captain { property:{TripLonglineDto.PROPERTY_CAPTAIN}; selectedItem:{bean.getCaptain()}; - _listPredicate:{PersonDtos.newCaptainPredicate(true)}; + _listPredicate:{PersonDtos.newCaptainReferencePredicate(true)}; } #dataEntryOperatorLabel { @@ -71,7 +70,7 @@ NumberEditor { #dataEntryOperator { property:{TripLonglineDto.PROPERTY_DATA_ENTRY_OPERATOR}; selectedItem:{bean.getDataEntryOperator()}; - _listPredicate:{PersonDtos.newDataEntryOperatorPredicate(true)}; + _listPredicate:{PersonDtos.newDataEntryOperatorReferencePredicate(true)}; } #tripTypeLabel{ diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/TripSeineUI.css b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/TripSeineUI.css index c125cc0..7eba914 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/TripSeineUI.css +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/TripSeineUI.css @@ -52,7 +52,7 @@ NumberEditor { #observer { property:{TripSeineDto.PROPERTY_OBSERVER}; selectedItem:{bean.getObserver()}; - _listPredicate:{PersonDtos.newObserverPredicate(true)}; + _listPredicate:{PersonDtos.newObserverReferencePredicate(true)}; } #captainLabel { @@ -63,7 +63,7 @@ NumberEditor { #captain { property:{TripSeineDto.PROPERTY_CAPTAIN}; selectedItem:{bean.getCaptain()}; - _listPredicate:{PersonDtos.newCaptainPredicate(true)}; + _listPredicate:{PersonDtos.newCaptainReferencePredicate(true)}; } #dataEntryOperatorLabel { @@ -74,7 +74,7 @@ NumberEditor { #dataEntryOperator { property:{TripSeineDto.PROPERTY_DATA_ENTRY_OPERATOR}; selectedItem:{bean.getDataEntryOperator()}; - _listPredicate:{PersonDtos.newDataEntryOperatorPredicate(true)}; + _listPredicate:{PersonDtos.newDataEntryOperatorReferencePredicate(true)}; } #vesselLabel { diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/tabs/StorageTabUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/tabs/StorageTabUIHandler.java index 5efc71e..3332fbe 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/tabs/StorageTabUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/tabs/StorageTabUIHandler.java @@ -390,7 +390,8 @@ public class StorageTabUIHandler { DataSelectionTreeSelectionModel selectionModel = ui.getSelectionModel(); selectionModel.initUI(tree); - selectionModel.setDataModel(dataModel); +// FIXME +// selectionModel.setDataModel(dataModel); } } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/DataSelectionTreeSelectionModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/DataSelectionTreeSelectionModel.java index 8ba4944..182a665 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/DataSelectionTreeSelectionModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/DataSelectionTreeSelectionModel.java @@ -21,14 +21,14 @@ */ package fr.ird.observe.ui.tree; +import fr.ird.observe.business.db.model.DataSelectionModel; import fr.ird.observe.services.dto.referential.ProgramDto; import fr.ird.observe.services.dto.referential.ReferentialDto; import fr.ird.observe.services.dto.seine.TripSeineDto; -import fr.ird.observe.ui.storage.tabs.DataSelectionModel; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import javax.swing.JTree; +import javax.swing.*; import javax.swing.event.EventListenerList; import javax.swing.event.TreeSelectionEvent; import javax.swing.event.TreeSelectionListener; @@ -342,9 +342,7 @@ public class DataSelectionTreeSelectionModel implements TreeSelectionModel, Prop log.trace("begin data node " + node); } - //FIXME -// boolean result = dataModel.isSelectedData(node.getId()); - boolean result = false; + boolean result = dataModel.isSelectedData(node.getId()); if (log.isTraceEnabled()) { log.trace("selectModel contains the program ? " + result); } @@ -590,8 +588,7 @@ public class DataSelectionTreeSelectionModel implements TreeSelectionModel, Prop if (log.isTraceEnabled()) { log.trace("selectModel add " + id); } - //FIXME -// dataModel.addSelectedData(id); + dataModel.addSelectedData(id); } @@ -599,8 +596,7 @@ public class DataSelectionTreeSelectionModel implements TreeSelectionModel, Prop if (log.isTraceEnabled()) { log.trace("selectModel remove " + id); } - //FIXME -// dataModel.removeSelectedData(id); + dataModel.removeSelectedData(id); } @Override diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/referential/PersonDtos.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/referential/PersonDtos.java new file mode 100644 index 0000000..6636735 --- /dev/null +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/referential/PersonDtos.java @@ -0,0 +1,48 @@ +package fr.ird.observe.services.dto.referential; + +import com.google.common.base.Predicate; + +import java.util.Objects; + +public class PersonDtos extends AbstractPersonDtos { + + public static <BeanType extends PersonDto> Predicate<ReferentialReferenceDto<BeanType>> newCaptainReferencePredicate(boolean captain) { + final boolean $tmp = captain; + return new Predicate<ReferentialReferenceDto<BeanType>>() { + + @Override + public boolean apply(ReferentialReferenceDto<BeanType> input) { + return input.getPropertyNames().contains(PersonDto.PROPERTY_CAPTAIN) + && Objects.equals($tmp, input.getPropertyValue(PersonDto.PROPERTY_CAPTAIN)); + } + }; + + } + + public static <BeanType extends PersonDto> Predicate<ReferentialReferenceDto<BeanType>> newDataEntryOperatorReferencePredicate(boolean dataEntryOperator) { + final boolean $tmp = dataEntryOperator; + return new Predicate<ReferentialReferenceDto<BeanType>>() { + + @Override + public boolean apply(ReferentialReferenceDto<BeanType> input) { + return input.getPropertyNames().contains(PersonDto.PROPERTY_DATA_ENTRY_OPERATOR) + && Objects.equals($tmp, input.getPropertyValue(PersonDto.PROPERTY_DATA_ENTRY_OPERATOR)); + } + }; + + } + + public static <BeanType extends PersonDto> Predicate<ReferentialReferenceDto<BeanType>> newObserverReferencePredicate(boolean observer) { + final boolean $tmp = observer; + return new Predicate<ReferentialReferenceDto<BeanType>>() { + + @Override + public boolean apply(ReferentialReferenceDto<BeanType> input) { + return input.getPropertyNames().contains(PersonDto.PROPERTY_OBSERVER) + && Objects.equals($tmp, input.getPropertyValue(PersonDto.PROPERTY_OBSERVER)); + } + }; + + } + +} //PersonDtos diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/referential/ReferentialDtos.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/referential/ReferentialDtos.java index 44747cf..cc9b4b1 100644 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/referential/ReferentialDtos.java +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/referential/ReferentialDtos.java @@ -2,6 +2,7 @@ package fr.ird.observe.services.dto.referential; import com.google.common.base.Predicate; import com.google.common.collect.ImmutableSet; +import fr.ird.observe.services.dto.ReferenceDto; import fr.ird.observe.services.dto.constants.ReferenceStatus; import fr.ird.observe.services.dto.referential.longline.BaitHaulingStatusDto; import fr.ird.observe.services.dto.referential.longline.BaitSettingStatusDto; @@ -137,7 +138,10 @@ public class ReferentialDtos extends AbstractReferentialDtos { */ public static <E extends ReferentialDto> void filterReferentialListByStatus(List<E> list) { filterReferentielList(list, (Predicate<E>) IS_ACTIF_PREDICATE); + } + public static <E extends ReferentialDto> void filterReferentialReferenceListByStatus(List<ReferentialReferenceDto<E>> list) { + filterReferentialReferenceList(list, IS_REFERENCE_ACTIF_PREDICATE); } /** @@ -167,6 +171,33 @@ public class ReferentialDtos extends AbstractReferentialDtos { } } + /** + * Filter une liste d'entités d'un référentiel en supprimant toutes les + * entités qui ne rspeciesnt pas le précidat donné. + * + * @param list la liste des entitées à filtrer + * @param predicate le prédicate à appliquer pour conserver les valeurs + * @param <E> le type des entites du référentiel + */ + public static <E extends ReferentialDto> void filterReferentialReferenceList( + List<ReferentialReferenceDto<E>> list, + Predicate<ReferentialReferenceDto> predicate) { + Iterator<ReferentialReferenceDto<E>> itr = list.iterator(); + while (itr.hasNext()) { + ReferentialReferenceDto<E> e = itr.next(); + if (!predicate.apply(e)) { + + // l'entite n'est pas retenue, on ne l'affiche pas + + if (log.isDebugEnabled()) { + log.debug("remove disabled entity " + e.getId()); + } + + itr.remove(); + } + } + } + public static final Predicate<ReferentialDto> IS_ACTIF_PREDICATE = new Predicate<ReferentialDto>() { @Override @@ -175,4 +206,13 @@ public class ReferentialDtos extends AbstractReferentialDtos { } }; + public static final Predicate<ReferentialReferenceDto> IS_REFERENCE_ACTIF_PREDICATE = + new Predicate<ReferentialReferenceDto>() { + + @Override + public boolean apply(ReferentialReferenceDto input) { + return ReferenceStatus.disabled != input.getStatus(); + } + }; + } diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/dto/ObserveDtosInitializer.java b/observe-services-topia/src/main/java/fr/ird/observe/services/dto/ObserveDtosInitializer.java index f6927b1..b48db33 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/dto/ObserveDtosInitializer.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/dto/ObserveDtosInitializer.java @@ -828,7 +828,11 @@ public class ObserveDtosInitializer implements ObserveModelInitializer { PersonDto.PROPERTY_DATA_ENTRY_OPERATOR, PersonDto.PROPERTY_COUNTRY); registerReferentialReferenceDtoBinder(PersonDto.class, Person.class, false, - PersonDto.PROPERTY_FIRST_NAME, PersonDto.PROPERTY_LAST_NAME); + PersonDto.PROPERTY_FIRST_NAME, + PersonDto.PROPERTY_LAST_NAME, + PersonDto.PROPERTY_CAPTAIN, + PersonDto.PROPERTY_DATA_ENTRY_OPERATOR, + PersonDto.PROPERTY_OBSERVER); } @Override -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
participants (1)
-
codelutin.com scm