Merge branch 'release/5.42.0'
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / ui / section / description / detail / CommonNameDetailElement.java
index 46bb0780818bbc9d45cffa9abb2d6fcf78651fdb..d0dfac0124c0983eb9e6a9a41486895f9833f62d 100644 (file)
@@ -1,73 +1,99 @@
-// $Id$
 /**
 * Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
+* 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.description.detail;
 
+import java.util.List;
+import java.util.UUID;
+
 import org.eclipse.swt.SWT;
 
+import eu.etaxonomy.cdm.common.CdmUtils;
 import eu.etaxonomy.cdm.model.common.Language;
 import eu.etaxonomy.cdm.model.description.CommonTaxonName;
-import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
-import eu.etaxonomy.taxeditor.ui.forms.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.forms.ICdmFormElement;
-import eu.etaxonomy.taxeditor.ui.forms.TextWithLabelElement;
-import eu.etaxonomy.taxeditor.ui.selection.NamedAreaSelectionElement;
+import eu.etaxonomy.cdm.model.location.NamedArea;
+import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
+import eu.etaxonomy.cdm.model.term.TermType;
+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.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
+import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
 
 /**
- * <p>CommonNameDetailElement class.</p>
- *
  * @author n.hoffmann
  * @created Jun 10, 2010
- * @version 1.0
  */
 public class CommonNameDetailElement extends AbstractDetailedDescriptionDetailElement<CommonTaxonName> {
-       
+
        private TermComboElement<Language> combo_language;
-       private NamedAreaSelectionElement selection_namedArea;
+       private EntitySelectionElement<NamedArea> selection_namedArea;
        private TextWithLabelElement commonName;
+       private TextWithLabelElement transliteration;
 
-       
        /**
         * <p>Constructor for CommonNameDetailElement.</p>
-        *
-        * @param formFactory a {@link eu.etaxonomy.taxeditor.ui.forms.CdmFormFactory} object.
-        * @param formElement a {@link eu.etaxonomy.taxeditor.ui.forms.ICdmFormElement} object.
-        * @param entity a {@link eu.etaxonomy.cdm.model.description.CommonTaxonName} object.
-        * @param style a int.
         */
        public CommonNameDetailElement(CdmFormFactory formFactory,
-                       ICdmFormElement formElement, CommonTaxonName entity, int style) {
-               super(formFactory, formElement, entity, style);
+                       ICdmFormElement formElement, CommonTaxonName entity, boolean enabled, int style) {
+               super(formFactory, formElement, entity, enabled, style);
        }
-       
-       /** {@inheritDoc} */
+
        @Override
        protected void createControls(ICdmFormElement formElement,
                        CommonTaxonName entity, int style) {
-               combo_language = formFactory.createTermComboElement(Language.class, this, "Language", entity.getLanguage(), style);
 
-               selection_namedArea = formFactory.createNamedAreaSelectionElement(this, getConversationHolder(), "Area", entity.getArea(), style);
-               
                commonName = formFactory.createTextWithLabelElement(this, "Common Name", entity.getName(), SWT.WRAP);
+               transliteration = formFactory.createTextWithLabelElement(this, "Transliteration", entity.getTransliteration(), SWT.WRAP);
+
+//             combo_language = formFactory.createDefinedTermComboElement(TermType.Language, this, "Language", entity.getLanguage(), style);
+               List<UUID> uuidList = PreferencesUtil.createUUIDListFromStringPref(PreferencePredicate.CommonNameLanguages.getKey(), false);
+               List<Language> languages = CdmStore.getTermManager().getTerms(uuidList, Language.class);
+//        combo_language = formFactory.createDefinedTermComboElement(languages, this, "Language", entity.getLanguage(), style);
+        combo_language = formFactory.createDefinedTermComboElement(TermType.Language, this, "Language", entity.getLanguage(), style);
+        combo_language.setTerms(languages);
+        combo_language.setSelection(entity.getLanguage());
+               selection_namedArea = formFactory.createSelectionElement(NamedArea.class,
+                               formElement, "Area",
+                               entity.getArea(), EntitySelectionElement.NOTHING, style);
+
+               createTimePeriod(formElement, entity, style);
+               if (!(CdmUtils.isNullSafeEmpty(entity.getFeature().getRecommendedModifierEnumeration())) && !entity.getFeature().getRecommendedModifierEnumeration().isEmpty()){
+            createModifier(formElement, entity, style);
+        }else{
+            createFreetextModifier(formElement, entity, style);
+        }
        }
 
-       /** {@inheritDoc} */
        @Override
        public void handleEvent(Object eventSource) {
+           super.handleEvent(eventSource);
                if(eventSource == combo_language){
                        getEntity().setLanguage(combo_language.getSelection());
                }else if(eventSource == selection_namedArea){
                        getEntity().setArea(selection_namedArea.getEntity());
                }else if(eventSource == commonName){
                        getEntity().setName(commonName.getText());
-               }
+               }else if(eventSource == transliteration){
+            getEntity().setTransliteration(transliteration.getText());
+        }
        }
 
-}
+       @Override
+       public void fillFields() {
+               if (getEntity()!= null) {
+                       super.fillFields();
+                       combo_language.setSelection(getEntity().getLanguage());
+                       selection_namedArea.setEntity(getEntity().getArea());
+                       commonName.setText(getEntity().getName());
+                       transliteration.setText(getEntity().getTransliteration());
+               }
+       }
+}
\ No newline at end of file