* @author n.hoffmann
* @created Nov 30, 2011
*/
-public class TaxonRelationshipTypeInverseContainer extends DefinedTermBase<DefinedTermBase> {
+public class TaxonRelationshipTypeInverseContainer {
private static final long serialVersionUID = 7225140304186547675L;
private boolean inverse;
* @param language
* @return representation
*/
- @Override
+// @Override
public Representation getRepresentation(Language language){
Representation result;
result = inverse ? type.getInverseRepresentation(language) : type.getRepresentation(language);
* @param language
* @return label
*/
- @Override
+// @Override
public String getLabel(Language language){
return getRepresentation(language).getLabel();
}
- @Override
+// @Override
public String getDescription(Language language){
return getRepresentation(language).getDescription();
}
this.type = type;
}
- @Override
+// @Override
public String getTitleCache() {
return String.format("%s (%s)", getLabel(CdmStore.getDefaultLanguage()), getAbbreviatedLabel());
}
- @Override
+// @Override
public void resetTerms() {
throw new NotImplementedException();
}
- @Override
+// @Override
protected void setDefaultTerms(
TermVocabulary<DefinedTermBase> termVocabulary) {
throw new NotImplementedException();
import eu.etaxonomy.taxeditor.model.DefaultTermComparator;
import eu.etaxonomy.taxeditor.model.TaxonRelationshipTypeInverseContainer;
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+import eu.etaxonomy.taxeditor.ui.combo.InverseTermWrapper;
/**
* @author n.hoffmann
}
for (T term : initialTerms){
- if (term instanceof TaxonRelationshipTypeInverseContainer){
- if(!PreferencesUtil.getBooleanValue(getPrefName(term), true)){
- T type = (T)((TaxonRelationshipTypeInverseContainer) term).getType();
- filteredTerms.add(type);
- }
- }
+// if (term instanceof InverseTermWrapper){
+// if(!PreferencesUtil.getBooleanValue(getPrefName(term), true)){
+// T type = (T)((TaxonRelationshipTypeInverseContainer) term).getType();
+// filteredTerms.add(type);
+// }
+// }
if(PreferencesUtil.getBooleanValue(getPrefName(term), true)){
filteredTerms.add(term);
return presenceAbsenceTerms;
}
});
- termStoreEdgeCases.add(new ITermStoreEdgeCase<TaxonRelationshipTypeInverseContainer>() {
- @Override
- public Class<TaxonRelationshipTypeInverseContainer> getTermClass() {
- return TaxonRelationshipTypeInverseContainer.class;
- }
- @Override
- public List<TaxonRelationshipTypeInverseContainer> getTerms() {
- List<TaxonRelationshipType> excludeTaxonRelationshipTypes = Arrays.asList(new TaxonRelationshipType[]{
- TaxonRelationshipType.TAXONOMICALLY_INCLUDED_IN(),
- TaxonRelationshipType.MISAPPLIED_NAME_FOR(),
- TaxonRelationshipType.ALL_RELATIONSHIPS()
- });
-
- List<TaxonRelationshipTypeInverseContainer> relationshipTypeInverseContainers = new ArrayList<>();
-
- List<TaxonRelationshipType> relationshipTypes = TermStore.getTerms(TaxonRelationshipType.class);
-
- relationshipTypes.removeAll(excludeTaxonRelationshipTypes);
-
- for (TaxonRelationshipType relationshipType : relationshipTypes){
- if(!relationshipType.isSymmetric()){
- TaxonRelationshipTypeInverseContainer inverseContainer = new TaxonRelationshipTypeInverseContainer(relationshipType, true);
- relationshipTypeInverseContainers.add(inverseContainer);
- }
- TaxonRelationshipTypeInverseContainer container = new TaxonRelationshipTypeInverseContainer(relationshipType, false);
- relationshipTypeInverseContainers.add(container);
- }
-
- return relationshipTypeInverseContainers;
- }
- });
+// termStoreEdgeCases.add(new ITermStoreEdgeCase<TaxonRelationshipTypeInverseContainer>() {
+// @Override
+// public Class<TaxonRelationshipTypeInverseContainer> getTermClass() {
+// return TaxonRelationshipTypeInverseContainer.class;
+// }
+// @Override
+// public List<TaxonRelationshipTypeInverseContainer> getTerms() {
+// List<TaxonRelationshipType> excludeTaxonRelationshipTypes = Arrays.asList(new TaxonRelationshipType[]{
+// TaxonRelationshipType.TAXONOMICALLY_INCLUDED_IN(),
+// TaxonRelationshipType.MISAPPLIED_NAME_FOR(),
+// TaxonRelationshipType.ALL_RELATIONSHIPS()
+// });
+//
+// List<TaxonRelationshipTypeInverseContainer> relationshipTypeInverseContainers = new ArrayList<>();
+//
+// List<TaxonRelationshipType> relationshipTypes = TermStore.getTerms(TaxonRelationshipType.class);
+//
+// relationshipTypes.removeAll(excludeTaxonRelationshipTypes);
+//
+// for (TaxonRelationshipType relationshipType : relationshipTypes){
+// if(!relationshipType.isSymmetric()){
+// TaxonRelationshipTypeInverseContainer inverseContainer = new TaxonRelationshipTypeInverseContainer(relationshipType, true);
+// relationshipTypeInverseContainers.add(inverseContainer);
+// }
+// TaxonRelationshipTypeInverseContainer container = new TaxonRelationshipTypeInverseContainer(relationshipType, false);
+// relationshipTypeInverseContainers.add(container);
+// }
+//
+// return relationshipTypeInverseContainers;
+// }
+// });
}
private static <T extends DefinedTermBase> ITermStoreEdgeCase<T> getEdgeCase(Class<T> termClass) {
import java.util.List;
import eu.etaxonomy.cdm.model.common.Language;
-import eu.etaxonomy.cdm.model.name.NameRelationshipType;
+import eu.etaxonomy.cdm.model.common.RelationshipTermBase;
import eu.etaxonomy.cdm.model.term.Representation;
import eu.etaxonomy.taxeditor.preference.IPreferenceKeys;
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
public class InverseTermWrapper {
private String label;
- private NameRelationshipType term;
+ private RelationshipTermBase term;
boolean isInverse;
boolean useAbbrevLabel;
- InverseTermWrapper(NameRelationshipType term, boolean isInverse, boolean useAbbrevLabel){
+ InverseTermWrapper(RelationshipTermBase term, boolean isInverse, boolean useAbbrevLabel){
this.term = term;
this.isInverse = isInverse;
this.useAbbrevLabel = useAbbrevLabel;
}
}
- public NameRelationshipType getTerm() {
+ public RelationshipTermBase getTerm() {
return term;
}
- public void setTerm(NameRelationshipType term) {
+ public void setTerm(RelationshipTermBase term) {
this.term = term;
}
this.isInverse = isInverse;
}
- private String getInverseLabel(NameRelationshipType term) {
+ private String getInverseLabel(RelationshipTermBase term) {
if (term == null){
return "";
}else{
* a T object.
* @return a {@link java.lang.String} object.
*/
- protected String getLabel(NameRelationshipType term) {
+ protected String getLabel(RelationshipTermBase term) {
if (term == null){
return "";
}else{
import org.eclipse.swt.events.SelectionEvent;
import eu.etaxonomy.cdm.model.common.Language;
+import eu.etaxonomy.cdm.model.common.RelationshipTermBase;
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.TermRelationshipType;
import eu.etaxonomy.cdm.model.term.TermType;
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
import eu.etaxonomy.taxeditor.store.CdmStore;
* @since 08.10.2018
*
*/
-public class NameRelationshipTypeCombo<T extends InverseTermWrapper> extends AbstractComboElement<T> {
+public class RelationshipTypeCombo<T extends InverseTermWrapper> extends AbstractComboElement<T> {
List<InverseTermWrapper> wrapperList = new ArrayList<>();
T wrapperSelection;
- List<NameRelationshipType> terms = new ArrayList();
+ List<RelationshipTermBase> terms = new ArrayList();
boolean useAbbrevLabel;
* @param useAbbrevLabel
* @param comparator
*/
- public NameRelationshipTypeCombo(CdmFormFactory cdmFormFactory, ICdmFormElement parentElement,
+ public RelationshipTypeCombo(CdmFormFactory cdmFormFactory, ICdmFormElement parentElement, TermType type,
String labelString, boolean addEmptyElement, int style, boolean useAbbrevLabel,
Comparator<T> comparator) {
super(cdmFormFactory, parentElement);
// labelString, selection, addEmptyElement, style, comparator
- String availableTypes = PreferencesUtil.getStringValue(PreferencePredicate.AvailableNameRelationshipType.getKey());
- List<NameRelationshipType> relTypes = CdmStore.getTermManager().createTermListFromString(availableTypes, TermType.NameRelationshipType);
+ String availableTypes;
+ List<RelationshipTermBase> relTypes;
+ if (TermType.TaxonRelationshipType.equals(type )) {
+ availableTypes = PreferencesUtil.getStringValue(PreferencePredicate.ConceptRelationshipType.getKey());
+ relTypes = CdmStore.getTermManager().createTermListFromString(availableTypes, TermType.TaxonRelationshipType);
+ }else if (TermType.NameRelationshipType.equals(type)) {
+ availableTypes = PreferencesUtil.getStringValue(PreferencePredicate.AvailableNameRelationshipType.getKey());
+ relTypes = CdmStore.getTermManager().createTermListFromString(availableTypes, TermType.NameRelationshipType);
+ }else {
+//this should not happen.
+ return;
+ }
// terms = getTermManager().getPreferredTerms(TermType.NameRelationshipType);
*
*/
private void fillInverseTermWrapperList() {
- for (NameRelationshipType term: terms){
+ for (RelationshipTermBase term: terms){
wrapperList.add(new InverseTermWrapper(term, false, useAbbrevLabel));
List<Language> languages = new ArrayList();
languages.add(CdmStore.getDefaultLanguage());
import eu.etaxonomy.cdm.model.term.TermTree;
import eu.etaxonomy.cdm.model.term.TermType;
import eu.etaxonomy.cdm.model.term.TermVocabulary;
+import eu.etaxonomy.cdm.persistence.dto.AbstractTermDto;
import eu.etaxonomy.cdm.persistence.dto.FeatureStateDto;
import eu.etaxonomy.cdm.persistence.dto.TermDto;
import eu.etaxonomy.cdm.persistence.dto.TermVocabularyDto;
import eu.etaxonomy.taxeditor.ui.combo.EnumComboElement;
import eu.etaxonomy.taxeditor.ui.combo.InverseTermWrapper;
import eu.etaxonomy.taxeditor.ui.combo.MisappliedRelationshipComboElement;
-import eu.etaxonomy.taxeditor.ui.combo.NameRelationshipTypeCombo;
+import eu.etaxonomy.taxeditor.ui.combo.RelationshipTypeCombo;
import eu.etaxonomy.taxeditor.ui.combo.VocabularyComboElement;
import eu.etaxonomy.taxeditor.ui.combo.term.TermComboElement;
import eu.etaxonomy.taxeditor.ui.dialog.CloneClassificationDetailElement;
parentElement.addElement(element);
return element;
}
+
+ public RepresentationElement createRepresentationElement(ICdmFormElement parentElement, Representation representation, AbstractTermDto term,int textHeight, int style, boolean fillDetails) {
+ RepresentationElement element = new RepresentationElement(this, parentElement, representation, term, textHeight, style, fillDetails);
+ adapt(element);
+ parentElement.addElement(element);
+ return element;
+ }
/**
* createMultiLanguageTextElement
return element;
}
- public TranslatableRepresentationElement createTranslatableRepresentationElementDto(ICdmFormElement parentElement, Representation representation, TermDto term,int textHeight, int style, boolean fillDetails) {
+ public TranslatableRepresentationElement createTranslatableRepresentationElementDto(ICdmFormElement parentElement, Representation representation, AbstractTermDto term,int textHeight, int style, boolean fillDetails) {
TranslatableRepresentationElement element = new TranslatableRepresentationElement(this, parentElement, representation, term, textHeight, style, fillDetails);
adapt(element);
parentElement.addElement(element);
}
}
- public NameRelationshipTypeCombo createNameRelationshipTypeCombo(ICdmFormElement parentElement,
+ public RelationshipTypeCombo createNameRelationshipTypeCombo(ICdmFormElement parentElement,
String labelString,
int style,
boolean useAbbrevLabel,
Comparator<NameRelationshipType> comparator) {
- NameRelationshipTypeCombo<InverseTermWrapper> element = new NameRelationshipTypeCombo(this, parentElement, labelString, true, style, useAbbrevLabel, comparator);
+ RelationshipTypeCombo<InverseTermWrapper> element = new RelationshipTypeCombo(this, parentElement, TermType.NameRelationshipType, labelString, true, style, useAbbrevLabel, comparator);
+ adapt(element);
+ parentElement.addElement(element);
+ return element;
+ }
+
+ public RelationshipTypeCombo createTaxonRelationshipTypeCombo(ICdmFormElement parentElement,
+ String labelString,
+ int style,
+ boolean useAbbrevLabel,
+ Comparator<TaxonRelationshipType> comparator) {
+
+ RelationshipTypeCombo<InverseTermWrapper> element = new RelationshipTypeCombo(this, parentElement, TermType.TaxonRelationshipType, labelString, true, style, useAbbrevLabel, comparator);
adapt(element);
parentElement.addElement(element);
return element;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
+import eu.etaxonomy.cdm.model.common.RelationshipTermBase;
import eu.etaxonomy.cdm.model.name.NameRelationship;
import eu.etaxonomy.cdm.model.name.NameRelationshipType;
import eu.etaxonomy.cdm.model.name.TaxonName;
+import eu.etaxonomy.cdm.model.term.TermRelationshipType;
import eu.etaxonomy.taxeditor.l10n.Messages;
import eu.etaxonomy.taxeditor.ui.AbstractEntityCollectionElementWizardPage;
-import eu.etaxonomy.taxeditor.ui.combo.NameRelationshipTypeCombo;
+import eu.etaxonomy.taxeditor.ui.combo.RelationshipTypeCombo;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
private EntitySelectionElement<TaxonName> selection_relatedTo;
- private NameRelationshipTypeCombo combo_relationshipType;
+ private RelationshipTypeCombo combo_relationshipType;
private final TaxonName entity;
- private NameRelationshipType type;
+ private RelationshipTermBase type;
private TaxonName relatedName;
boolean inverse;
public NameRelationship getNameRelationship() {
NameRelationship rel;
if (inverse){
- rel = entity.addRelationshipFromName(relatedName, type, null, null, null, null);
+ rel = entity.addRelationshipFromName(relatedName, (NameRelationshipType)type, null, null, null, null);
}else{
- rel = entity.addRelationshipToName(relatedName, type, null, null, null, null);
+ rel = entity.addRelationshipToName(relatedName, (NameRelationshipType)type, null, null, null, null);
}
return rel;
}
*/
package eu.etaxonomy.taxeditor.ui.section.taxon;
+import java.util.Comparator;
+
import org.eclipse.jface.util.PropertyChangeEvent;
import org.eclipse.swt.SWT;
import eu.etaxonomy.cdm.model.reference.Reference;
import eu.etaxonomy.cdm.model.taxon.Taxon;
import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;
+import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
+import eu.etaxonomy.cdm.model.term.TermRelationshipType;
+import eu.etaxonomy.cdm.model.term.TermType;
import eu.etaxonomy.taxeditor.event.EventUtility;
import eu.etaxonomy.taxeditor.event.WorkbenchEventConstants;
import eu.etaxonomy.taxeditor.model.TaxonRelationshipTypeInverseContainer;
import eu.etaxonomy.taxeditor.store.StoreUtil;
+import eu.etaxonomy.taxeditor.ui.combo.InverseTermWrapper;
import eu.etaxonomy.taxeditor.ui.combo.MisappliedRelationshipComboElement;
+import eu.etaxonomy.taxeditor.ui.combo.RelationshipTypeCombo;
import eu.etaxonomy.taxeditor.ui.combo.term.TermComboElement;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
import eu.etaxonomy.taxeditor.ui.element.CdmPropertyChangeEvent;
*/
public class TaxonRelationshipDetailElement extends AbstractSingleSourceElement<TaxonRelationship> {//TODO: use AbstractSingleSourcedElement
- private TermComboElement<TaxonRelationshipTypeInverseContainer> combo_taxonRelationshipType;
+ private RelationshipTypeCombo<InverseTermWrapper> combo_taxonRelationshipType;
private MisappliedRelationshipComboElement combo_misappliedRelationshipType;
private EntitySelectionElement<Taxon> selection_relatedTaxon;
private CheckboxElement checkBoxDoubtful;
protected ToggleableTextElement toggleable_cache;
-// private EntitySelectionElement<Reference> secReference;
private EntitySelectionElement<Reference> sensuReference;
private TextWithLabelElement text_sensu_microreference;
-
-// private TextWithLabelElement text_secundum_microreference;
-
private TextWithLabelElement text_appendedPhrase;
private CheckboxElement checkbox_published;
checkBoxDoubtful = formFactory.createCheckbox(formElement, "Syn. Doubtful", entity.isDoubtful(), style);
}else{
- combo_taxonRelationshipType = formFactory.createTermComboElement(
- TaxonRelationshipTypeInverseContainer.class,
- formElement, "Relationship Type",
- getTaxonRelationshipTypeInverseContainer(), style);
-
+ combo_taxonRelationshipType = formFactory.createTaxonRelationshipTypeCombo(
+ formElement,
+ "Relationship Type",
+ style,
+ false,
+ null);
+
combo_taxonRelationshipType.setEnabled(false);
selection_relatedTaxon = formFactory.createSelectionElement(
Taxon.class, //getConversationHolder(),
@Override
public void handleEvent(Object eventSource) {
if (getEntity().getType().isAnyMisappliedName() || getEntity().getType().isAnySynonym()){
- /* if (eventSource == secReference) {
- getEntity().setCitation(secReference.getSelection());
- } else if (eventSource == text_secundum_microreference) {
- getEntity().setCitationMicroReference(text_secundum_microreference.getText());
- } else
- */
- if (eventSource == text_sensu_microreference) {
+ if (eventSource == text_sensu_microreference) {
taxon.setSecMicroReference(text_sensu_microreference.getText());
} else if (eventSource == sensuReference) {
taxon.setSec(sensuReference.getSelection());
} else if (eventSource == combo_taxonRelationshipType ) {
- getEntity().setType(combo_taxonRelationshipType.getSelection().getType());
+ getEntity().setType((TaxonRelationshipType) combo_taxonRelationshipType.getSelection().getTerm());
} else if ( eventSource == combo_misappliedRelationshipType) {
getEntity().setType(combo_misappliedRelationshipType.getSelection());
} else if (eventSource == text_appendedPhrase) {