private void addChildTermsToMenuManager(List<MMenuElement> items, TermType termType, boolean skipChildren) {
//FIXME : need a better way to find out if a term type can be editable (ticket 3853)
- if(termType.getEmptyDefinedTermBase() != null) {
+ if(termType.getEmptyDefinedTermBase(PreferencesUtil.getGlobalLanguage()) != null) {
Set<TermType> children = termType.getGeneralizationOf();
// term type has no children, so create menu item
if(skipChildren || children.isEmpty()) {
private void addChildTermsToMenuManager(List<MMenuElement> items, TermType termType, boolean skipChildren) {
//FIXME : need a better way to find out if a term type can be editable (ticket 3853)
- if(termType.getEmptyDefinedTermBase() != null) {
+ if(termType.getEmptyDefinedTermBase(PreferencesUtil.getGlobalLanguage()) != null) {
Set<TermType> children = termType.getGeneralizationOf();
// term type has no children, so create menu item
if(skipChildren || children.isEmpty()) {
package eu.etaxonomy.taxeditor.store;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Collection;
import java.util.Comparator;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
+import java.util.Set;
import java.util.UUID;
+import org.apache.commons.lang3.StringUtils;
+
+import eu.etaxonomy.cdm.api.service.ITermService;
import eu.etaxonomy.cdm.model.term.DefinedTermBase;
import eu.etaxonomy.cdm.model.term.TermBase;
import eu.etaxonomy.cdm.model.term.TermType;
filteredTerms.add(type);
}
}
-
+
if(PreferencesUtil.getBooleanValue(getPrefName(term), true)){
filteredTerms.add(term);
}
preferredTerms = cachedTermMap.get(initialTerms.get(0).getVocabulary().getUuid());
}
if (preferredTerms == null){
- preferredTerms = cachedTermMap.get(initialTerms.get(0).getTermType());
+ preferredTerms = cachedTermMap.get(initialTerms.get(0).getTermType().getUuid());
}
if (preferredTerms == null){
return initialTerms;
return filteredTerms;
}
+
+ public <T extends DefinedTermBase>List<T> createTermListFromString(String stringValue, TermType type){
+ String[] listChecked = stringValue.split(";"); //$NON-NLS-1$
+ String[] listCheckedComma = stringValue.split(","); //$NON-NLS-1$
+ List<String> checked = new ArrayList<>();
+ if (listChecked != null ){
+ checked = Arrays.asList(listChecked);
+ }
+ if (listCheckedComma != null && stringValue.contains(",")){ //$NON-NLS-1$
+ checked = Arrays.asList(listCheckedComma);
+ }
+ List<T> termsFromStringValues = getTermsFromStringValues(checked, type);
+ return termsFromStringValues;
+ }
+ protected <T extends DefinedTermBase>List<T> getTermsFromStringValues(List<String> listValue, TermType type) {
+ Collection<DefinedTermBase> termlist = new ArrayList<>();
+ ITermService termService = CdmStore.getService(ITermService.class);
+ Set<UUID> uuidList = new HashSet();
+ for (String s : listValue) {
+ if (!StringUtils.isBlank(s)){
+ UUID uuid = UUID.fromString(s);
+ uuidList.add(uuid);
+ }
+ }
+ if (!uuidList.isEmpty()){
+ termlist = termService.find(uuidList);
+ }
+
+ if (listValue == null || listValue.isEmpty() ){
+ termlist = termService.listByTermType(type, null, null, null, null);
+
+ }
+
+ return new ArrayList(termlist);
+ }
+
/**
* Generic method to get term preferences for a term vocabulary
*
clearTermMapForTermType(type);
List<TermDto> list = new ArrayList<>(preferredTerms);
- cachedTermMap.put(type, list);
+ cachedTermMap.put(type.getUuid(), list);
}
/**
}
public void clearTermMapForTermType(TermType termType){
- cachedTermMap.remove(termType);
+ cachedTermMap.remove(termType.getUuid());
}
/**
import org.eclipse.swt.events.SelectionEvent;
import eu.etaxonomy.cdm.model.common.Language;
+import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
import eu.etaxonomy.cdm.model.name.NameRelationshipType;
+import eu.etaxonomy.cdm.model.name.Rank;
+import eu.etaxonomy.cdm.model.term.DefinedTermBase;
import eu.etaxonomy.cdm.model.term.Representation;
import eu.etaxonomy.cdm.model.term.TermType;
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
Comparator<T> comparator) {
super(cdmFormFactory, parentElement);
// labelString, selection, addEmptyElement, style, comparator
- terms = getTermManager().getPreferredTerms(TermType.NameRelationshipType);
+
+ String availableTypes = PreferencesUtil.getStringValue(PreferencePredicate.AvailableNameRelationshipType.getKey());
+ List<NameRelationshipType> relTypes = CdmStore.getTermManager().createTermListFromString(availableTypes, TermType.NameRelationshipType);
+
+// terms = getTermManager().getPreferredTerms(TermType.NameRelationshipType);
+
+ terms = relTypes;
// PreferencesUtil.get
this.useAbbrevLabel = useAbbrevLabel;
populateTerms();
int style, boolean useAbbrevLabel, Comparator<T> comparator) {
super(formFactory, parentElement);
- this.termType = termType;
+// this.termType = termType;
this.termVocabulary = termVocabulary;
this.termClass = termClass;
this.addEmptyElement = addEmptyElement;
}else if (terms != null){
addTerms(terms);
}
-
+ if (termType == null && terms != null && !terms.isEmpty()){
+ this.termType = terms.get(0).getTermType();
+ }else{
+ this.termType = termType;
+ }
addContentProposalAdapter();
combo.addSelectionListener(this);
int style, boolean useAbbrevLabel, Comparator<T> comparator) {
super(formFactory, parentElement);
- this.termType = termType;
+// this.termType = termType;
this.termVocabulary = termVocabulary;
this.termClass = termClass;
this.addEmptyElement = addEmptyElement;
}
else if(this.termClass!=null){
addTerms(getPreferredTerms());
- }else if (terms != null){
+ }else if (terms != null && !terms.isEmpty()){
addTerms(terms);
+
+ }
+ if (termType == null){
+ this.termType = terms.get(0).getTermType();
+ }else{
+ this.termType = termType;
}
import org.apache.log4j.Logger;
import org.eclipse.swt.SWT;
+import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
import eu.etaxonomy.cdm.model.name.IBacterialName;
import eu.etaxonomy.cdm.model.name.ICultivarPlantName;
import eu.etaxonomy.cdm.model.name.IFungusName;
if (o2 == null){
return -1;
}
- return o1.compareTo(o2);
+ return -1*o1.compareTo(o2);
}
};
}
private List<Rank> getRanks(INonViralName name, NomenclaturalCode code) {
List<Rank> ranks = new ArrayList<>();
- List<DefinedTermBase> allRanks = CdmStore.getTermManager().getPreferredTerms(TermType.Rank);
+ String availableRanks = PreferencesUtil.getStringValue(PreferencePredicate.AvailableRanks.getKey());
+ List<DefinedTermBase> allRanks = CdmStore.getTermManager().createTermListFromString(availableRanks, TermType.Rank);
for(DefinedTermBase term: allRanks){
Rank rank = (Rank)term;
if (rank.isCultivar() == code.equals(NomenclaturalCode.ICNCP)){
package eu.etaxonomy.taxeditor.ui.section.name;
import java.util.Comparator;
+import java.util.List;
import org.eclipse.swt.events.SelectionListener;
+import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
import eu.etaxonomy.cdm.model.name.NomenclaturalStatus;
import eu.etaxonomy.cdm.model.name.NomenclaturalStatusType;
+import eu.etaxonomy.cdm.model.term.DefinedTermBase;
import eu.etaxonomy.cdm.model.term.TermType;
import eu.etaxonomy.taxeditor.preference.NameDetailsConfigurator;
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+import eu.etaxonomy.taxeditor.store.CdmStore;
import eu.etaxonomy.taxeditor.ui.combo.term.TermComboElement;
import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
}
};
- nomenclaturalStatusTypeCombo = formFactory.createDefinedTermComboElement(TermType.NomenclaturalStatusType, this, "Status", null,true, style, true);
- nomenclaturalStatusTypeCombo.setTermComparator(termComparator);
+ String availableStatus = PreferencesUtil.getStringValue(PreferencePredicate.AvailableNomenclaturalStatus.getKey());
+ List<NomenclaturalStatusType> allStatus = CdmStore.getTermManager().createTermListFromString(availableStatus, TermType.NomenclaturalStatusType);
+
+ nomenclaturalStatusTypeCombo = formFactory.createDefinedTermComboElement(allStatus, this, "Status", null,style, termComparator);
+
if (config == null || config.isNomenclaturalStatusRuleConsideredActivated()){
ruleConsidered = formFactory.createRuleConsideredElement(this, "Rule Considered", config == null || config.isNomenclaturalStatusRuleConsideredCodeEditionActivated(), style);
}
*/
package eu.etaxonomy.taxeditor.ui.section.name;
+import java.util.List;
+
import org.eclipse.swt.events.SelectionListener;
import eu.etaxonomy.cdm.compare.name.TypeDesignationStatusComparator;
import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
+import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
+import eu.etaxonomy.cdm.model.name.NameRelationshipType;
import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignation;
import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignationStatus;
import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
import eu.etaxonomy.cdm.model.term.TermType;
import eu.etaxonomy.taxeditor.l10n.Messages;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+import eu.etaxonomy.taxeditor.store.CdmStore;
import eu.etaxonomy.taxeditor.ui.combo.term.TermComboElement;
import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
.createSelectionElement(DerivedUnit.class,
formElement, "Specimen", null,
EntitySelectionElement.ALL, style);
- combo_typeStatus = formFactory.createDefinedTermComboElement(TermType.SpecimenTypeDesignationStatus,
- formElement, "Designation Status", null, style, new TypeDesignationStatusComparator<SpecimenTypeDesignationStatus>());
-
+ String availableTypes = PreferencesUtil.getStringValue(PreferencePredicate.SpecimenTypeDesignationStatus.getKey());
+ List<SpecimenTypeDesignationStatus> relTypes = CdmStore.getTermManager().createTermListFromString(availableTypes, TermType.SpecimenTypeDesignationStatus);
+// combo_typeStatus = formFactory.createDefinedTermComboElement(TermType.SpecimenTypeDesignationStatus,
+// formElement, "Designation Status", null, style, new TypeDesignationStatusComparator<SpecimenTypeDesignationStatus>());
+ combo_typeStatus = formFactory.createDefinedTermComboElement(relTypes, formElement, "Designation Status", null,style, new TypeDesignationStatusComparator<SpecimenTypeDesignationStatus>());
+
super.createControls(formElement, style);
setEntity(entity);
}