import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
import eu.etaxonomy.cdm.model.description.DescriptionElementSource;
import eu.etaxonomy.cdm.model.description.Distribution;
-import eu.etaxonomy.cdm.model.description.PresenceAbsenceTerm;
import eu.etaxonomy.cdm.model.description.TaxonDescription;
import eu.etaxonomy.cdm.model.location.NamedArea;
import eu.etaxonomy.taxeditor.event.EventUtility;
*/
@Override
public void setDataValue(TaxonDistributionDTO taxonWrapper, int columnIndex, Object newValue) {
- if (newValue instanceof PresenceAbsenceTerm){
+ if (newValue instanceof StatusHelper){
NamedArea area =editor.getAreaToColumnIndexMap().get(columnIndex);
Map<NamedArea, Set<DescriptionElementBase>> distributionMap = editor.taxonDistributionMap.get(taxonWrapper.getTaxonUuid());
if (distributionMap == null){
if (distributions != null && !distributions.isEmpty()){
DescriptionElementBase desc = distributions.iterator().next();
if (desc instanceof Distribution){
- if (((PresenceAbsenceTerm)newValue).getId() == 0){
+ if (((StatusHelper)newValue).term.getId() == 0){
desc.getInDescription().removeElement(desc);
distributions.remove(desc);
}else {
- ((Distribution)desc).setStatus((PresenceAbsenceTerm)newValue);
+ ((Distribution)desc).setStatus(((StatusHelper)newValue).term);
}
}
}else{
- if (((PresenceAbsenceTerm)newValue).getId() == 0){
+ if (((StatusHelper)newValue).term.getId() == 0){
return;
}
if (distributions == null){
distributions = new HashSet();
distributionMap.put(area, distributions);
}
- dist = Distribution.NewInstance(area, (PresenceAbsenceTerm)newValue);
+ dist = Distribution.NewInstance(area, ((StatusHelper)newValue).term);
Set<TaxonDescription> descs = taxonWrapper.getDescriptionsWrapper().getDescriptions();
TaxonDescription desc;
if (descs.size() >= 1){
public static List<?> getValues(CdmPreference pref){
- List<DefinedTermBase> inputAll = new ArrayList<>();
+ List<StatusHelper> inputAll = new ArrayList<>();
PresenceAbsenceTerm noneTerm = PresenceAbsenceTerm.NewInstance();
noneTerm.setTitleCache(" - ", true);
noneTerm.addRepresentation(Representation.NewInstance(" - ", " ", " ", CdmStore.getDefaultLanguage()));
- inputAll.add(noneTerm);
+ inputAll.add(new StatusHelper(noneTerm));
String statusString = pref.getValue();
List<PresenceAbsenceTerm> inputList;
Comparator<DefinedTermBase> comp = new OrderedTermComparator<>();
Collections.sort(inputList, comp);
Collections.sort(inputList, Collections.reverseOrder());
-
- inputAll.addAll(1, inputList);
+ int index = 1;
+ for (PresenceAbsenceTerm term: inputList){
+ inputAll.add(index, new StatusHelper(term));
+ }
+ // inputAll.addAll(1, inputList);
return inputAll;
}
--- /dev/null
+/**
+* Copyright (C) 2019 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.editor.view.checklist.e4;
+
+import eu.etaxonomy.cdm.model.description.PresenceAbsenceTerm;
+import eu.etaxonomy.cdm.model.metadata.TermDisplayEnum;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+
+/**
+ * @author k.luther
+ * @since 27.05.2019
+ *
+ */
+public class StatusHelper {
+ PresenceAbsenceTerm term;
+ String label;
+
+ public StatusHelper(PresenceAbsenceTerm term){
+ this.term = term;
+ TermDisplayEnum display = TermDisplayEnum.valueOf(PreferencesUtil.displayStatusInChecklistEditor());
+ if (display.equals(TermDisplayEnum.IdInVocabulary) && term.getIdInVocabulary() != null){
+ label = "[" + term.getIdInVocabulary()+ "] " + term.getTitleCache();
+ }else if (display.equals(TermDisplayEnum.Symbol1) && term.getSymbol() != null){
+ label = "[" + term.getSymbol()+ "] " + term.getTitleCache();
+ } else if (display.equals(TermDisplayEnum.Symbol2) && term.getSymbol2() != null){
+ label = "[" + term.getSymbol2()+ "] " + term.getTitleCache();
+ } else{
+ label = term.getTitleCache();
+ }
+ }
+ @Override
+ public String toString(){
+ return label;
+ }
+
+}