Add scope restrictions to PolytomousKey details view #5280
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / ui / combo / TermComboElement.java
index 39993d70ae5ac5f48f296bf4ce127131f73e28c1..02243a6cbad7f7be6c1f6005b2ab0911b4b69261 100644 (file)
@@ -20,7 +20,6 @@ import org.eclipse.swt.widgets.Combo;
 import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.Listener;
 
-import eu.etaxonomy.cdm.model.common.DefinedTerm;
 import eu.etaxonomy.cdm.model.common.DefinedTermBase;
 import eu.etaxonomy.cdm.model.common.TermType;
 import eu.etaxonomy.cdm.model.common.TermVocabulary;
@@ -67,6 +66,8 @@ public class TermComboElement<T extends DefinedTermBase>
 
        private Comparator<T> termComparator;
 
+       private final TermType termType;
+       private final TermVocabulary termVocabulary;
        private final Class<T> termClass;
 
        private List<T> customPreferredTerms;
@@ -96,12 +97,9 @@ public class TermComboElement<T extends DefinedTermBase>
                int style) {
         super(formFactory, parentElement);
 
-        if(termClass!=null){
-            this.termClass = termClass;
-        }
-        else{
-            this.termClass =  (Class<T>) DefinedTerm.class;
-        }
+        this.termType = termType;
+        this.termVocabulary = termVocabulary;
+        this.termClass = termClass;
         this.addEmptyElement = addEmptyElement;
 
         if (labelString != null) {
@@ -265,10 +263,20 @@ public class TermComboElement<T extends DefinedTermBase>
         * @return a {@link java.util.List} object.
         */
        protected List<T> getPreferredTerms(){
+           List<T> preferredTerms = new ArrayList<T>();
                if (customPreferredTerms != null){
                        return customPreferredTerms;
                }
-               return getTermManager().getPreferredTerms(termClass);
+               else if(termType!=null){
+                   preferredTerms = getTermManager().getPreferredTerms(termType);
+               }
+               else if(termVocabulary!=null){
+                   preferredTerms = getTermManager().getPreferredTerms(termVocabulary);
+               }
+               if(termClass!=null){
+                   preferredTerms = getTermManager().getPreferredTerms(termClass);
+               }
+               return preferredTerms;
        }
 
        /**