import org.eclipse.swt.events.SelectionEvent;
-import eu.etaxonomy.cdm.model.term.IEnumTerm;
-import eu.etaxonomy.cdm.model.reference.OriginalSourceType;
import eu.etaxonomy.cdm.model.media.ExternalLinkType;
import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
+import eu.etaxonomy.cdm.model.name.NomenclaturalCodeEdition;
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType;
+import eu.etaxonomy.cdm.model.reference.OriginalSourceType;
import eu.etaxonomy.cdm.model.reference.ReferenceType;
+import eu.etaxonomy.cdm.model.term.IEnumTerm;
import eu.etaxonomy.taxeditor.model.AbstractUtility;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
import eu.etaxonomy.taxeditor.ui.element.CdmPropertyChangeEvent;
return OriginalSourceType.class;
}
- }
+ },
+ new CdmEnumDataHolder<NomenclaturalCodeEdition>(){
+
+ @Override
+ public String getName() {
+ return "Nomenclatural Code Edition";
+ }
+
+ @Override
+ public Collection<NomenclaturalCodeEdition> getElements() {
+ return Arrays.asList(NomenclaturalCodeEdition.values());
+ }
+
+ @Override
+ public Class<NomenclaturalCodeEdition> getClazz() {
+ return NomenclaturalCodeEdition.class;
+ }
+
+ }
};
return "Orig. Source Type";
} else if(enumType.equals(SpecimenOrObservationType.class)) {
return "Spec./Obs. Type";
- }
- else if(enumType.equals(ExternalLinkType.class)) {
+ } else if(enumType.equals(ExternalLinkType.class)) {
return "Type";
+ } else if(enumType.equals(NomenclaturalCodeEdition.class)) {
+ return "Nomencl. Code Edition";
}
return "No Label";
}
import eu.etaxonomy.taxeditor.ui.section.name.NonViralNameDetailSection;
import eu.etaxonomy.taxeditor.ui.section.name.ProtologueElement;
import eu.etaxonomy.taxeditor.ui.section.name.ProtologueSection;
+import eu.etaxonomy.taxeditor.ui.section.name.RuleConsideredElement;
import eu.etaxonomy.taxeditor.ui.section.name.SpecimenTypeDesignationElement;
import eu.etaxonomy.taxeditor.ui.section.name.TextTypeDesignationElement;
import eu.etaxonomy.taxeditor.ui.section.name.TypeDesignationSection;
return section;
}
+ /**
+ * <p>
+ * createTextWithLabelElement
+ * </p>
+ *
+ * @param parentElement
+ * a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
+ * object.
+ * @param labelString
+ * a {@link java.lang.String} object.
+ * @param initialText
+ * a {@link java.lang.String} object.
+ * @param textLimit maximal number of characters allowed
+ * @param style
+ * a int.
+ * @return a {@link eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement}
+ * object.
+ */
+ public RuleConsideredElement createRuleConsideredElement(ICdmFormElement parentElement, String labelString,
+ NameRelationship relation, int style) {
+
+ RuleConsideredElement element = new RuleConsideredElement(this, parentElement, labelString, relation, style);
+ adapt(element);
+ parentElement.addElement(element);
+ return element;
+ }
+ /**
+ * <p>
+ * createTextWithLabelElement
+ * </p>
+ *
+ * @param parentElement
+ * a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
+ * object.
+ * @param labelString
+ * a {@link java.lang.String} object.
+ * @param initialText
+ * a {@link java.lang.String} object.
+ * @param textLimit maximal number of characters allowed
+ * @param style
+ * a int.
+ * @return a {@link eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement}
+ * object.
+ */
+ public RuleConsideredElement createRuleConsideredElement(ICdmFormElement parentElement, String labelString,
+ NomenclaturalStatus status, int style) {
+
+
+ RuleConsideredElement element = new RuleConsideredElement(this, parentElement, labelString, status, style);
+ adapt(element);
+ parentElement.addElement(element);
+ return element;
+ }
+ /**
+ * <p>
+ * createTextWithLabelElement
+ * </p>
+ *
+ * @param parentElement
+ * a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
+ * object.
+ * @param labelString
+ * a {@link java.lang.String} object.
+ * @param initialText
+ * a {@link java.lang.String} object.
+ * @param textLimit maximal number of characters allowed
+ * @param style
+ * a int.
+ * @return a {@link eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement}
+ * object.
+ */
+ public RuleConsideredElement createRuleConsideredElement(ICdmFormElement parentElement, String labelString,
+ int style) {
+
+
+ RuleConsideredElement element = new RuleConsideredElement(this, parentElement, labelString, style);
+ adapt(element);
+ parentElement.addElement(element);
+ return element;
+ }
// public RichTextWithLabelElement createRichTextLabelElement(ICdmFormElement parentElement, String labelString, String initialText, int textHeight, int style) {
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
import eu.etaxonomy.taxeditor.ui.element.LabelElement;
-import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
import eu.etaxonomy.taxeditor.ui.section.supplemental.AbstractReferencedEntityElement;
import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
*/
public class NameRelationshipDetailElement extends AbstractReferencedEntityElement<NameRelationship>{
- private TextWithLabelElement text_ruleConsidered;
+ private RuleConsideredElement ruleConsidered;
private EntitySelectionElement selection_toName;
private TermComboElement<NameRelationshipType> combo_relationshipType;
private LabelElement label;
public void createControls(ICdmFormElement element, int style) {
label = formFactory.createLabel(element, null);
- text_ruleConsidered = formFactory.createTextWithLabelElement(element, "Rule Considered", null, SWT.NULL);
+ ruleConsidered = formFactory.createRuleConsideredElement(element, "Rule Considered", SWT.NULL);
super.createControls(element, style);
}
String text = entity.getFromName().getTitleCache() + " is " + entity.getType().getLabel() + " " + entity.getToName().getTitleCache();
label.setText(text);
- text_ruleConsidered.setText(entity.getRuleConsidered());
+ ruleConsidered.setNameRelation(entity);
super.setEntity(entity);
}
/** {@inheritDoc} */
@Override
public void handleEvent(Object eventSource) {
- if(eventSource == combo_relationshipType){
+ if(eventSource == combo_relationshipType){
getEntity().setType(combo_relationshipType.getSelection());
}
else if(eventSource == selection_toName){
MessagingUtils.error(getClass(), "No API call available.", null);
}
- else if(eventSource == text_ruleConsidered){
- getEntity().setRuleConsidered(text_ruleConsidered.getText());
+ else if(eventSource == ruleConsidered.textRuleConsidered){
+ getEntity().setRuleConsidered(ruleConsidered.textRuleConsidered.getText());
}
else if(eventSource == selection_reference){
getEntity().setCitation(selection_reference.getSelection());
private TextWithLabelElement ruleConsideredText;
+
+
private final SelectionArbitrator selectionArbitrator;
public NomenclaturalStatusElement(CdmFormFactory cdmFormFactory, AbstractFormSection formElement,
--- /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.ui.section.name;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+
+import eu.etaxonomy.cdm.model.name.NameRelationship;
+import eu.etaxonomy.cdm.model.name.NomenclaturalCodeEdition;
+import eu.etaxonomy.cdm.model.name.NomenclaturalStatus;
+import eu.etaxonomy.taxeditor.ui.combo.EnumComboElement;
+import eu.etaxonomy.taxeditor.ui.element.AbstractCdmFormElement;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
+
+
+/**
+ * @author k.luther
+ * @since 17.09.2019
+ */
+public class RuleConsideredElement extends AbstractCdmFormElement implements SelectionListener {
+
+ protected TextWithLabelElement textRuleConsidered;
+
+ protected EnumComboElement<NomenclaturalCodeEdition> nomenclaturalCodeEdition;
+
+ Map<String, Integer> nomenclaturalCodeEditionStringMap;
+
+ private NomenclaturalStatus status = null;
+
+
+ private NameRelationship nameRelation = null;
+
+ /**
+ * @param cdmFormFactory
+ * @param parentElement
+ * @param labelString
+ * @param initialRule
+ * @param style
+ */
+ public RuleConsideredElement( CdmFormFactory formFactory, ICdmFormElement formElement, String labelString, int style) {
+ super(formFactory, formElement);
+ this.textRuleConsidered = formFactory.createTextWithLabelElement(formElement, "Rule considered", null, style);
+ this.nomenclaturalCodeEdition = formFactory.createEnumComboElement(NomenclaturalCodeEdition.class, formElement, null, style);
+ nomenclaturalCodeEditionStringMap = new HashMap<>();
+ nomenclaturalCodeEdition.addSelectionListener(this);
+
+ }
+
+
+ /**
+ * @param cdmFormFactory
+ * @param parentElement
+ * @param labelString
+ * @param initialRule
+ * @param style
+ */
+ public RuleConsideredElement( CdmFormFactory formFactory, ICdmFormElement formElement, String labelString, NomenclaturalStatus status, int style) {
+ super(formFactory, formElement);
+ this.textRuleConsidered = formFactory.createTextWithLabelElement(formElement, "Rule considered", null, style);
+ this.nomenclaturalCodeEdition = formFactory.createEnumComboElement(NomenclaturalCodeEdition.class, formElement, null, style);
+
+ nomenclaturalCodeEditionStringMap = new HashMap<>();
+
+
+ this.status = status;
+ textRuleConsidered.setText(status.getRuleConsidered());
+
+ nomenclaturalCodeEdition.addSelectionListener(this);
+
+ }
+
+ /**
+ * @param cdmFormFactory
+ * @param parentElement
+ * @param labelString
+ * @param initialRule
+ * @param style
+ */
+ public RuleConsideredElement( CdmFormFactory formFactory, ICdmFormElement formElement, String labelString, NameRelationship relation, int style) {
+ super(formFactory, formElement);
+ this.textRuleConsidered = formFactory.createTextWithLabelElement(formElement, "Rule considered", null, style);
+
+ this.nomenclaturalCodeEdition = formFactory.createEnumComboElement(NomenclaturalCodeEdition.class, formElement, null, style);
+
+ nomenclaturalCodeEditionStringMap = new HashMap<>();
+
+ this.nameRelation = relation;
+ textRuleConsidered.setText(nameRelation.getRuleConsidered());
+
+ nomenclaturalCodeEdition.addSelectionListener(this);
+
+ }
+
+
+ public NomenclaturalStatus getStatus() {
+ return status;
+ }
+
+
+ public void setStatus(NomenclaturalStatus status) {
+ this.status = status;
+ }
+
+
+ public NameRelationship getNameRelation() {
+ return nameRelation;
+ }
+
+
+ public void setNameRelation(NameRelationship nameRelation) {
+ this.nameRelation = nameRelation;
+ this.textRuleConsidered.setText(getText());
+ this.nomenclaturalCodeEdition.setSelection(getCodeEdition());
+ }
+
+ public String getText(){
+ return this.nameRelation.getRuleConsidered();
+ }
+
+ public NomenclaturalCodeEdition getCodeEdition(){
+ return this.nameRelation.getCodeEdition();
+ }
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ //if (e.getSource().equals(nomenclaturalCodeEdition)){
+ NomenclaturalCodeEdition edition = nomenclaturalCodeEdition.getSelection();
+ if (status != null){
+ this.status.setCodeEdition(edition);
+ }else if (nameRelation != null){
+ this.nameRelation.setCodeEdition(edition);
+ }
+ // }
+
+ }
+
+ @Override
+ public void widgetDefaultSelected(SelectionEvent e) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ public void handleEvent(Object eventSource) {
+ if(eventSource == textRuleConsidered){
+ if (status != null){
+ status.setRuleConsidered(textRuleConsidered.getText());
+ }else if (nameRelation != null){
+ nameRelation.setRuleConsidered(textRuleConsidered.getText());
+ }
+ }
+
+ }
+
+
+}