ref #8058: add common name language preference
authorKatja Luther <k.luther@bgbm.org>
Thu, 21 Mar 2019 13:41:55 +0000 (14:41 +0100)
committerKatja Luther <k.luther@bgbm.org>
Thu, 21 Mar 2019 13:43:53 +0000 (14:43 +0100)
eu.etaxonomy.taxeditor.store/plugin.xml
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/ChecklistEditorGeneralPreference.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/NameDetailsViewConfiguration.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/PreferencesUtil.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/menu/AbstractMenuPreferences.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/menu/CdmPreferencePage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/menu/CommonNameLanguagePreferences.java [new file with mode: 0755]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/combo/TermComboElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/CdmFormFactory.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/detail/CommonNameDetailElement.java

index 72992d78a41c24dc6abeb6e91132f2aea34e22a8..4f669f7305b8c13057aaca738f39c68c84327ee9 100755 (executable)
          id="eu.etaxonomy.taxeditor.preference.taxonSearchPreferences"
          name="%page.name.57">
    </page>
+    <page
+          category="eu.etaxonomy.taxeditor.preference.defaultlanguagepditorpreferencePage"
+          class="eu.etaxonomy.taxeditor.preference.menu.CommonNameLanguagePreferences"
+          id="eu.etaxonomy.taxeditor.preferences.commonnamelanguages"
+          name="Common Name Languages">
+    </page>
    
    
 </extension>
index 19c1de67bc12ccf182b7cf8e014459ed2e1842c8..831c8fd1b619afbbb2426932cd81223741dfc4e1 100644 (file)
@@ -76,8 +76,8 @@ public class ChecklistEditorGeneralPreference extends CdmPreferencePage implemen
     Composite child ;
     protected boolean isAllowOverride;
 
-    protected Button activateCheckButton;
-    protected Button allowOverrideActivatedButton;
+    protected Combo activateCombo;
+   // protected Button allowOverrideActivatedButton;
 
     protected Button activateRankButton;
     protected Button allowOverrideRankButton;
@@ -95,54 +95,64 @@ public class ChecklistEditorGeneralPreference extends CdmPreferencePage implemen
         if(!isAdminPreference && !isEditorActivated && !isAllowOverride){
             Label label = new Label(composite, SWT.NONE);
             label.setText("The CDM settings don't allow to set the preferences for using the distribution editor locally. If you need to make local settings, please ask an administrator.");
-
+            this.setDefaultButtonActivated(false);
          }else{
             Composite activateComp = createComposite(composite);
             Label separator= new Label(activateComp, SWT.HORIZONTAL | SWT.SEPARATOR);
             GridData sepGrid = createTextGridData();
             separator.setLayoutData(sepGrid);
             separator.setVisible(false);
-            activateCheckButton = new Button(activateComp, SWT.CHECK);
-            activateCheckButton.setText(Messages.ChecklistEditorGeneralPreference_enable);
-            activateCheckButton.setSelection(isEditorActivated);
-            activateCheckButton.addSelectionListener(new SelectionAdapter(){
-                @Override
-                public void widgetSelected(SelectionEvent e) {
-                    setApply(true);
-                    isEditorActivated = activateCheckButton.getSelection();
-                    if(!isAdminPreference){
-                        overrideActivated = true;
-                        child.setEnabled(isEditorActivated);
-                        PreferencesUtil.recursiveSetEnabled(child, isEditorActivated);
-                    }
-
-
-
-
+            activateCombo = new Combo(activateComp, SWT.BORDER| SWT.READ_ONLY);
+            CdmPreference dbPref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.DistributionEditorActivated);
+            if (dbPref != null){
+                if (Boolean.valueOf(dbPref.getValue())){
+                    activateCombo.add("Enable (default)");
+                    activateCombo.add("Disable");
+                }else{
+                    activateCombo.add("Enable");
+                    activateCombo.add("Disable (default)");
                 }
-            });
-            allowOverrideActivatedButton = createAllowOverrideButton(activateComp);
-            if (isAdminPreference){
-                allowOverrideActivatedButton.setSelection(allowOverrideActivated);
-                allowOverrideActivatedButton.addSelectionListener(new SelectionAdapter(){
-                    @Override
-                    public void widgetSelected(SelectionEvent e) {
-                        setApply(true);
-                        allowOverrideActivated = allowOverrideActivatedButton.getSelection();
-                    }
-                });
             }else{
-                allowOverrideActivatedButton.setSelection(overrideActivated);
-                allowOverrideActivatedButton.addSelectionListener(new SelectionAdapter(){
-                    @Override
-                    public void widgetSelected(SelectionEvent e) {
-                        setApply(true);
-                        overrideActivated = allowOverrideActivatedButton.getSelection();
-                    }
-                });
+                boolean defaultValue = (Boolean)PreferencePredicate.DistributionEditorActivated.getDefaultValue();
+                if (defaultValue){
+                    activateCombo.add("Enable (default)");
+                    activateCombo.add("Disable");
+                }else{
+                    activateCombo.add("Enable");
+                    activateCombo.add("Disable (default)");
+                }
+            }
+
+            if (isEditorActivated){
+                activateCombo.select(0);
+            }else{
+                activateCombo.select(1);
             }
 
 
+            activateCombo.addSelectionListener(this);
+//            allowOverrideActivatedButton = createAllowOverrideButton(activateComp);
+//            if (isAdminPreference){
+//                allowOverrideActivatedButton.setSelection(allowOverrideActivated);
+//                allowOverrideActivatedButton.addSelectionListener(new SelectionAdapter(){
+//                    @Override
+//                    public void widgetSelected(SelectionEvent e) {
+//                        setApply(true);
+//                        allowOverrideActivated = allowOverrideActivatedButton.getSelection();
+//                    }
+//                });
+//            }else{
+//                allowOverrideActivatedButton.setSelection(overrideActivated);
+//                allowOverrideActivatedButton.addSelectionListener(new SelectionAdapter(){
+//                    @Override
+//                    public void widgetSelected(SelectionEvent e) {
+//                        setApply(true);
+//                        overrideActivated = allowOverrideActivatedButton.getSelection();
+//                    }
+//                });
+//            }
+
+
             child  = createComposite(composite);
 
             if(!isAdminPreference){
@@ -689,7 +699,11 @@ public class ChecklistEditorGeneralPreference extends CdmPreferencePage implemen
     @Override
     protected void performDefaults() {
         isEditorActivated = (Boolean)PreferencePredicate.DistributionEditorActivated.getDefaultValue();
-        activateCheckButton.setSelection(isEditorActivated);
+        if (isEditorActivated){
+            activateCombo.select(0);
+        }else{
+            activateCombo.select(1);
+        }
 
         displayArea = ((TermDisplayEnum)PreferencePredicate.DisplayOfAreasInDistributionEditor.getDefaultValue()).getKey();
         TermDisplayEnum areaDisplay;
@@ -762,7 +776,7 @@ public class ChecklistEditorGeneralPreference extends CdmPreferencePage implemen
         ownDescriptionForDistributionEditor = Boolean.valueOf(PreferencePredicate.OwnDescriptionForDistributionEditor.getDefaultValue().toString());
 
         allowOverrideActivated = true;
-        allowOverrideActivatedButton.setSelection(allowOverrideActivated);
+      //  allowOverrideActivatedButton.setSelection(allowOverrideActivated);
         overrideActivated = true;
         allowOverrideAreaDisplay = true;
         overrideAreaDisplay = true;
index 90e8c3bf7b356d181a0f4f045c68c255f79ac554..92ff20eb61a426ce0463f5b3981660a15544a857 100644 (file)
@@ -383,6 +383,7 @@ public class NameDetailsViewConfiguration extends CdmPreferencePage {
         }else{
             final CLabel description = new CLabel(parent, SWT.NULL);
             description.setText(Messages.NameDetailsViewConfiguration_description_not_available);
+            this.setDefaultButtonActivated(false);
         }
 
 
index bfe7150f95ca351deae42584f2342bc826399c78..372226f812a3a22fd3adae0266be26fc86c525bf 100644 (file)
@@ -45,12 +45,8 @@ import eu.etaxonomy.cdm.common.CdmUtils;
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.io.specimen.abcd206.in.Abcd206ImportConfigurator;
 import eu.etaxonomy.cdm.model.common.ICdmBase;
-import eu.etaxonomy.cdm.model.term.IDefinedTerm;
-import eu.etaxonomy.cdm.model.term.ISimpleTerm;
 import eu.etaxonomy.cdm.model.common.Language;
 import eu.etaxonomy.cdm.model.common.MarkerType;
-import eu.etaxonomy.cdm.model.term.TermBase;
-import eu.etaxonomy.cdm.model.term.FeatureTree;
 import eu.etaxonomy.cdm.model.metadata.CdmPreference;
 import eu.etaxonomy.cdm.model.metadata.CdmPreference.PrefKey;
 import eu.etaxonomy.cdm.model.metadata.IPreferencePredicate;
@@ -58,6 +54,10 @@ import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
 import eu.etaxonomy.cdm.model.metadata.PreferenceSubject;
 import eu.etaxonomy.cdm.model.metadata.TermDisplayEnum;
 import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
+import eu.etaxonomy.cdm.model.term.FeatureTree;
+import eu.etaxonomy.cdm.model.term.IDefinedTerm;
+import eu.etaxonomy.cdm.model.term.ISimpleTerm;
+import eu.etaxonomy.cdm.model.term.TermBase;
 import eu.etaxonomy.cdm.strategy.match.DefaultMatchStrategy;
 import eu.etaxonomy.cdm.strategy.match.FieldMatcher;
 import eu.etaxonomy.cdm.strategy.match.IMatchStrategy;
@@ -1809,8 +1809,6 @@ public static void setPreferredVocabulariesForDistributionEditor(String saveChec
 }
 
 
-
-
 /**
  * @param saveCheckedElements
  * @param saveCheckedElements2
@@ -1832,9 +1830,16 @@ public static String getPreferredVocabulariesForDistributionEditor(boolean local
         }
 
     }
+}
 
-
-
+public static List<UUID> createUUIDListFromStringPref(String prefKey) {
+    String prefValue = PreferencesUtil.getStringValue(prefKey);
+    String[] stringArray = prefValue.split(";");
+    List<UUID> uuidList = new ArrayList();
+    for (String uuid: stringArray){
+        uuidList.add(UUID.fromString(uuid));
+    }
+    return uuidList;
 }
 
 public static boolean getFilterCommonNameReferences(){
index 9763ca601addb4cd3015bb73edf12b3eefc0ae26..de74143877c5f0d90d29673989332902a7711ab4 100644 (file)
@@ -266,7 +266,7 @@ public abstract class AbstractMenuPreferences<T extends DefinedTermBase> extends
                return super.performOk();
        }
 
-       private boolean checkNoneChecked(){
+       protected boolean checkNoneChecked(){
 
                if(tableViewer!=null && tableViewer.getCheckedElements().length == 0){
                        setMessage("Please check at least one item", WARNING);
index 5708255ef4c713cca9b1aacf3a5eba05223ee29d..d71b00101c349db7bead0b5d880c249d07015bdd 100644 (file)
@@ -28,6 +28,7 @@ import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 public abstract class CdmPreferencePage extends PreferencePage implements IE4PreferencePage {
 
     private boolean isApply = false;
+    private boolean isDefaultButtonActivated = true;
 
     protected boolean isAdminPreference;
 
@@ -58,6 +59,9 @@ public abstract class CdmPreferencePage extends PreferencePage implements IE4Pre
         if (getApplyButton() != null){
             this.getApplyButton().setEnabled(false);
         }
+        if (getDefaultsButton() != null){
+            this.getDefaultsButton().setEnabled(isDefaultButtonActivated);
+        }
 
     }
 
@@ -132,6 +136,14 @@ public abstract class CdmPreferencePage extends PreferencePage implements IE4Pre
         }
     }
 
+    public boolean isDefaultButtonActivated() {
+        return isDefaultButtonActivated;
+    }
+
+    public void setDefaultButtonActivated(boolean isDefaultButtonActivated) {
+        this.isDefaultButtonActivated = isDefaultButtonActivated;
+    }
+
 
 
 
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/menu/CommonNameLanguagePreferences.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/menu/CommonNameLanguagePreferences.java
new file mode 100755 (executable)
index 0000000..9b6d8f5
--- /dev/null
@@ -0,0 +1,143 @@
+/**
+* Copyright (C) 2007 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.preference.menu;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.UUID;
+
+import org.apache.commons.lang.StringUtils;
+import org.eclipse.jface.viewers.ITableLabelProvider;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.jface.viewers.ViewerComparator;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+
+import eu.etaxonomy.cdm.model.common.Language;
+import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
+import eu.etaxonomy.cdm.model.term.TermType;
+import eu.etaxonomy.taxeditor.l10n.Messages;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+/**
+ * <p>LanguageMenuPreferences class.</p>
+ *
+ * @author p.ciardelli
+ * @created 24.08.2009
+ * @version 1.0
+ */
+public class CommonNameLanguagePreferences extends AbstractMenuPreferences<Language> {
+
+       /** Constant <code>ID="eu.etaxonomy.taxeditor.preferences.lang"{trunked}</code> */
+       public final static String ID = "eu.etaxonomy.taxeditor.preferences.languages"; //$NON-NLS-1$
+
+       /**
+        * <p>Constructor for LanguageMenuPreferences.</p>
+        */
+       public CommonNameLanguagePreferences() {
+               super("Language Preferences", //$NON-NLS-1$
+                               Messages.LanguageMenuPreferences_configure,
+                               false);
+       }
+
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.taxeditor.preference.AbstractMenuPreferences#createContents(org.eclipse.swt.widgets.Composite)
+        */
+       /** {@inheritDoc} */
+       @Override
+       public Control createContents(Composite parent) {
+               Control control = super.createContents(parent);
+
+               tableViewer.setLabelProvider(new LanguagePreferenceLabelProvider());
+               tableViewer.setComparator(new ViewerComparator());
+
+               return control;
+       }
+
+       class LanguagePreferenceLabelProvider extends LabelProvider implements ITableLabelProvider{
+
+               /* (non-Javadoc)
+                * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnImage(java.lang.Object, int)
+                */
+               @Override
+        public Image getColumnImage(Object element, int columnIndex) {
+                       return null;
+               }
+
+               /* (non-Javadoc)
+                * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnText(java.lang.Object, int)
+                */
+               @Override
+        public String getColumnText(Object element, int columnIndex) {
+                       String description = ((Language)element).getDescription();
+                       if (description == null) {
+                               description = ((Language)element).getLabel() + Messages.LanguageMenuPreferences_warning;
+                       }
+                       return description;
+               }
+
+               }
+
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.taxeditor.preference.menu.AbstractMenuPreferences#getTermClass()
+        */
+       /** {@inheritDoc} */
+       @Override
+       protected TermType getTermType() {
+               return TermType.Language;
+       }
+
+
+       @Override
+       protected void refresh(List<Language> definedTerms) {
+        tableViewer.setInput(definedTerms);
+        String prefValue = PreferencesUtil.getStringValue(PreferencePredicate.CommonNameLanguages.getKey());
+        String[] prefArray = prefValue.split(";");
+        List<UUID> uuids = new ArrayList();
+        for (String uuid: prefArray){
+            uuids.add(UUID.fromString(uuid));
+        }
+        List<Language> preferedTerms = CdmStore.getTermManager().getTerms(uuids, Language.class);
+
+        tableViewer.setCheckedElements(preferedTerms.toArray());
+    }
+
+
+
+       @Override
+    public boolean performOk() {
+        if(!CdmStore.isActive()) {
+            return true;
+        }
+
+        if(super.checkNoneChecked()){
+            return false;
+        }
+
+        getConversationHolder().commit(true);
+
+        if(tableViewer!=null){
+            List<UUID> preferredTermUuids = new ArrayList<UUID>();
+            for (Object element : tableViewer.getCheckedElements()){
+                preferredTermUuids.add(((Language)element).getUuid());
+            }
+
+            String preferredLanguagesString = StringUtils.join(preferredTermUuids, ";");
+            PreferencesUtil.setStringValue(PreferencePredicate.CommonNameLanguages.getKey(), preferredLanguagesString);
+
+
+            PreferencesUtil.firePreferencesChanged(this.getClass());
+        }
+
+        return super.performOk();
+    }
+}
index 1ab72202290d5194daab72db4629566b688ebc5b..250d11e1e9064c5e1eafc085b34180d7583037e1 100644 (file)
@@ -66,29 +66,36 @@ public class TermComboElement<T extends DefinedTermBase>
        public TermComboElement(CdmFormFactory formFactory,
                        ICdmFormElement parentElement, TermType termType, String labelString, T selection, boolean addEmptyElement,
                        int style, boolean useAbbrevLabel, Comparator<T> comparator) {
-               this(formFactory, parentElement, null, termType, null, labelString, selection, addEmptyElement, style, useAbbrevLabel, comparator);
+               this(formFactory, parentElement, null, termType, null, null, labelString, selection, addEmptyElement, style, useAbbrevLabel, comparator);
        }
 
        public TermComboElement(CdmFormFactory formFactory,
                ICdmFormElement parentElement, TermVocabulary<?> termVocabulary, String labelString, T selection, boolean addEmptyElement,
                int style, boolean useAbbrevLabel, Comparator<T> comparator) {
-           this(formFactory, parentElement, null, null, termVocabulary, labelString, selection, addEmptyElement, style, useAbbrevLabel, comparator);
+           this(formFactory, parentElement, null, null, termVocabulary, null,labelString, selection, addEmptyElement, style, useAbbrevLabel, comparator);
        }
 
     public TermComboElement(CdmFormFactory formFactory,
             ICdmFormElement parentElement, Class<T> termClass, String labelString, T selection, boolean addEmptyElement,
             int style) {
-        this(formFactory, parentElement, termClass, null, null, labelString, selection, addEmptyElement, style, false, null);
+        this(formFactory, parentElement, termClass, null, null, null, labelString, selection, addEmptyElement, style, false, null);
     }
     public TermComboElement(CdmFormFactory formFactory,
             ICdmFormElement parentElement, Class<T> termClass, String labelString, T selection, boolean addEmptyElement,
             int style, boolean useAbbrevLabel) {
-        this(formFactory, parentElement, termClass, null, null, labelString, selection, addEmptyElement, style, useAbbrevLabel, null);
+        this(formFactory, parentElement, termClass, null, null, null,labelString, selection, addEmptyElement, style, useAbbrevLabel, null);
+
+    }
+
+    public TermComboElement(CdmFormFactory formFactory,
+            ICdmFormElement parentElement, List<T> terms, String labelString, T selection, boolean addEmptyElement,
+            int style, boolean useAbbrevLabel) {
+        this(formFactory, parentElement, null, null, null, terms,labelString, selection, addEmptyElement, style, useAbbrevLabel, null);
 
     }
 
        private TermComboElement(CdmFormFactory formFactory,
-               ICdmFormElement parentElement, Class<T> termClass, TermType termType, TermVocabulary<?> termVocabulary, String labelString, T selection, boolean addEmptyElement,
+               ICdmFormElement parentElement, Class<T> termClass, TermType termType, TermVocabulary<?> termVocabulary, List<T> terms,String labelString, T selection, boolean addEmptyElement,
                int style, boolean useAbbrevLabel, Comparator<T> comparator) {
         super(formFactory, parentElement);
 
@@ -111,6 +118,8 @@ public class TermComboElement<T extends DefinedTermBase>
         }
         else if(this.termClass!=null){
             populateTerms(getPreferredTerms());
+        }else if (terms != null){
+            populateTerms(terms);
         }
 
         combo.addSelectionListener(this);
index 24b23056e990ff87d71dd4a1fd2e4350aeecc436..61f55e559e3be15746d0da0f4cf669717ed73893 100644 (file)
@@ -56,23 +56,16 @@ import eu.etaxonomy.cdm.model.agent.Team;
 import eu.etaxonomy.cdm.model.common.Annotation;
 import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.common.Credit;
-import eu.etaxonomy.cdm.model.term.DefinedTerm;
-import eu.etaxonomy.cdm.model.term.DefinedTermBase;
 import eu.etaxonomy.cdm.model.common.Extension;
 import eu.etaxonomy.cdm.model.common.GrantedAuthorityImpl;
 import eu.etaxonomy.cdm.model.common.Group;
 import eu.etaxonomy.cdm.model.common.ICdmBase;
-import eu.etaxonomy.cdm.model.term.IEnumTerm;
 import eu.etaxonomy.cdm.model.common.IdentifiableSource;
 import eu.etaxonomy.cdm.model.common.Identifier;
 import eu.etaxonomy.cdm.model.common.LSID;
 import eu.etaxonomy.cdm.model.common.Language;
 import eu.etaxonomy.cdm.model.common.LanguageString;
 import eu.etaxonomy.cdm.model.common.Marker;
-import eu.etaxonomy.cdm.model.term.Representation;
-import eu.etaxonomy.cdm.model.term.TermBase;
-import eu.etaxonomy.cdm.model.term.TermType;
-import eu.etaxonomy.cdm.model.term.TermVocabulary;
 import eu.etaxonomy.cdm.model.common.TimePeriod;
 import eu.etaxonomy.cdm.model.common.User;
 import eu.etaxonomy.cdm.model.common.VerbatimTimePeriod;
@@ -116,6 +109,13 @@ import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.cdm.model.taxon.TaxonNodeAgentRelation;
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
+import eu.etaxonomy.cdm.model.term.DefinedTerm;
+import eu.etaxonomy.cdm.model.term.DefinedTermBase;
+import eu.etaxonomy.cdm.model.term.IEnumTerm;
+import eu.etaxonomy.cdm.model.term.Representation;
+import eu.etaxonomy.cdm.model.term.TermBase;
+import eu.etaxonomy.cdm.model.term.TermType;
+import eu.etaxonomy.cdm.model.term.TermVocabulary;
 import eu.etaxonomy.cdm.strategy.parser.ParserProblem;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.ui.combo.EnumComboElement;
@@ -903,7 +903,7 @@ public class CdmFormFactory extends FormToolkit {
             T selection,
             int style,
             Comparator<T> comparator) {
-        return this.createDefinedTermComboElement(termType, null, parentElement, labelString, selection, true, style, false, comparator);
+        return this.createDefinedTermComboElement(termType, null, null, parentElement, labelString, selection, true, style, false, comparator);
     }
 
     public <T extends DefinedTermBase> TermComboElement<T> createDefinedTermComboElement(
@@ -913,7 +913,7 @@ public class CdmFormFactory extends FormToolkit {
                        T selection,
                        boolean addEmptyElement,
                        int style) {
-        return this.createDefinedTermComboElement(termType, null, parentElement, labelString, selection, addEmptyElement, style, false, null);
+        return this.createDefinedTermComboElement(termType, null, null, parentElement, labelString, selection, addEmptyElement, style, false, null);
        }
 
        public <T extends DefinedTermBase> TermComboElement<T> createDefinedTermComboElement(
@@ -922,8 +922,17 @@ public class CdmFormFactory extends FormToolkit {
                        String labelString,
                        T selection,
                        int style) {
-               return  this.createDefinedTermComboElement(termType, null, parentElement, labelString, selection, true, style, false, null);
+               return  this.createDefinedTermComboElement(termType, null, null, parentElement, labelString, selection, true, style, false, null);
        }
+
+       public <T extends DefinedTermBase> TermComboElement<T> createDefinedTermComboElement(
+            List<T> terms,
+            ICdmFormElement parentElement,
+            String labelString,
+            T selection,
+            int style) {
+        return  this.createDefinedTermComboElement(null, null, terms, parentElement, labelString, selection, true, style, false, null);
+    }
     public <T extends DefinedTermBase> TermComboElement<T> createDefinedTermComboElement(
                        TermType termType,
                        ICdmFormElement parentElement,
@@ -932,7 +941,7 @@ public class CdmFormFactory extends FormToolkit {
                        boolean addEmptyElement,
                        int style,
                        boolean useAbbrevLabel) {
-               return createDefinedTermComboElement(termType, null, parentElement, labelString, selection, addEmptyElement, style, useAbbrevLabel, null);
+               return createDefinedTermComboElement(termType, null, null, parentElement, labelString, selection, addEmptyElement, style, useAbbrevLabel, null);
        }
 
 
@@ -942,7 +951,7 @@ public class CdmFormFactory extends FormToolkit {
             String labelString,
             T selection,
             int style) {
-        return this.createDefinedTermComboElement(null, termVocabulary, parentElement, labelString, selection, true, style, false, null);
+        return this.createDefinedTermComboElement(null, termVocabulary, null, parentElement, labelString, selection, true, style, false, null);
     }
 
        public <T extends DefinedTermBase> TermComboElement<T> createDefinedTermComboElement(
@@ -953,12 +962,13 @@ public class CdmFormFactory extends FormToolkit {
                boolean addEmptyElement,
                int style,
                boolean useAbbrevLabel) {
-           return createDefinedTermComboElement(null, termVocabulary, parentElement, labelString, selection, addEmptyElement, style, useAbbrevLabel, null);
+           return createDefinedTermComboElement(null, termVocabulary, null, parentElement, labelString, selection, addEmptyElement, style, useAbbrevLabel, null);
        }
 
        private <T extends DefinedTermBase> TermComboElement<T> createDefinedTermComboElement(
                TermType termType,
                TermVocabulary<?> termVocabulary,
+               List<T> terms,
                ICdmFormElement parentElement,
                String labelString,
                T selection,
@@ -980,6 +990,15 @@ public class CdmFormFactory extends FormToolkit {
                adapt(element);
                parentElement.addElement(element);
                return element;
+           }else if (terms != null){
+
+               TermComboElement<T> element = new TermComboElement<T>(this, parentElement, terms, labelString, selection, addEmptyElement, style, useAbbrevLabel);
+            if (comparator!= null){
+                element.setTermComparator(comparator);
+            }
+            adapt(element);
+            parentElement.addElement(element);
+            return element;
            }
            else {
                //this should never happen
@@ -1276,6 +1295,8 @@ public class CdmFormFactory extends FormToolkit {
         return element;
     }
 
+
+
        /**
         * <p>
         * createGatheringEventUnitElement
index 45af7744ff92f599c44ae8fc97bbd7ed1bb9ccb1..25bc711a57c4427d213fb8cfbf0d30859d30bbd2 100644 (file)
@@ -9,12 +9,17 @@
 
 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.model.common.Language;
 import eu.etaxonomy.cdm.model.description.CommonTaxonName;
 import eu.etaxonomy.cdm.model.location.NamedArea;
-import eu.etaxonomy.cdm.model.term.TermType;
+import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
@@ -54,8 +59,9 @@ public class CommonNameDetailElement extends AbstractDetailedDescriptionDetailEl
                        CommonTaxonName entity, int style) {
 
                commonName = formFactory.createTextWithLabelElement(this, "Common Name", entity.getName(), SWT.WRAP);
-
-               combo_language = formFactory.createDefinedTermComboElement(TermType.Language, this, "Language", entity.getLanguage(), style);
+               List<UUID> uuidList = PreferencesUtil.createUUIDListFromStringPref(PreferencePredicate.CommonNameLanguages.getKey());
+               List<Language> languages = CdmStore.getTermManager().getTerms(uuidList, Language.class);
+               combo_language = formFactory.createDefinedTermComboElement(languages, this, "Language", entity.getLanguage(), style);
 
                selection_namedArea = formFactory.createSelectionElement(NamedArea.class, //getConversationHolder(),
                                formElement, "Area",
@@ -65,6 +71,8 @@ public class CommonNameDetailElement extends AbstractDetailedDescriptionDetailEl
                createModifier(formElement, entity, style);
        }
 
+
+
        /** {@inheritDoc} */
        @Override
        public void handleEvent(Object eventSource) {