Merge branch 'release/5.31.0'
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / ui / section / name / NomenclaturalStatusElement.java
index 511316a9eef673eab3374deaf155625a6439deee..fa852eed7b36ae90e94fef94d38f4f437541adc4 100644 (file)
 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;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.IEntityElement;
 import eu.etaxonomy.taxeditor.ui.element.ISelectableElement;
+import eu.etaxonomy.taxeditor.ui.element.LabelElement;
+import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
 import eu.etaxonomy.taxeditor.ui.element.SelectionArbitrator;
 import eu.etaxonomy.taxeditor.ui.section.supplemental.AbstractSourcedEntityElement;
 
@@ -43,7 +49,7 @@ public class NomenclaturalStatusElement extends AbstractSourcedEntityElement<Nom
 
        public NomenclaturalStatusElement(CdmFormFactory cdmFormFactory, AbstractFormSection formElement,
                        NomenclaturalStatus element, SelectionListener removeListener, int style) {
-               super(cdmFormFactory, formElement, element, removeListener, style);
+               super(cdmFormFactory, formElement, element, removeListener, "Source", style);
                selectionArbitrator = cdmFormFactory.createSelectionArbitrator(this);
        }
 
@@ -79,13 +85,23 @@ public class NomenclaturalStatusElement extends AbstractSourcedEntityElement<Nom
             }
         };
 
-               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);
                }
-
+               setSourceLabel("Source");
+               LabelElement spacer = formFactory.createLabel(this, null);
+        spacer.getLayoutComposite().setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+        addElement(spacer);
                super.createControls(element, style);
+               if (entity != null){
+                       setEntity(entity);
+               }
+
 
        }
 
@@ -93,12 +109,14 @@ public class NomenclaturalStatusElement extends AbstractSourcedEntityElement<Nom
        @Override
        public void setEntity(NomenclaturalStatus entity) {
                super.setEntity(entity);
-               if (entity.getType() != null){
-                   nomenclaturalStatusTypeCombo.setSelection(entity.getType());
-                   nomenclaturalStatusTypeCombo.removeEmptyElement();
-               }
-               if (ruleConsidered != null){
-                   ruleConsidered.setElement(entity);
+               if (nomenclaturalStatusTypeCombo != null){
+                       if (entity.getType() != null){
+                           nomenclaturalStatusTypeCombo.setSelection(entity.getType());
+                           nomenclaturalStatusTypeCombo.removeEmptyElement();
+                       }
+                       if (ruleConsidered != null){
+                           ruleConsidered.setElement(entity);
+                       }
                }
        }