Add scope restrictions to PolytomousKey details view #5280
authorPatrick Plitzner <p.plitzner@bgbm.org>
Wed, 9 Dec 2015 09:50:10 +0000 (10:50 +0100)
committerPatrick Plitzner <p.plitzner@bgbm.org>
Wed, 9 Dec 2015 09:50:10 +0000 (10:50 +0100)
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/section/key/PolytomousKeyDetailElement.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;
        }
 
        /**
index de294870ebe18393972e29494ad4ee6262be2822..d6b4286ed10a960c0fc8da0b8d7503b60fdde2eb 100644 (file)
@@ -26,6 +26,7 @@ public class PolytomousKeyDetailElement extends
     private NumberWithLabelElement numberStartNumber;
     private TaxonomicScopeSection sectionTaxonomicScope;
     private GeoScopePolyKeyDetailSection sectionGeoScopes;
+    private ScopeRestrictionSection sectionScopeRestriction;
 
        public PolytomousKeyDetailElement(CdmFormFactory formFactory,
                        ICdmFormElement formElement) {
@@ -46,6 +47,10 @@ public class PolytomousKeyDetailElement extends
            sectionGeoScopes = formFactory.createGeoScopePolyKeyDetailSection(getConversationHolder(), formElement, SWT.NULL);
            sectionGeoScopes.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
            sectionGeoScopes.setEntity(entity);
+
+           sectionScopeRestriction = formFactory.createScopeRestrictionSection(getConversationHolder(), formElement, SWT.NULL);
+           sectionScopeRestriction.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+           sectionScopeRestriction.setEntity(entity);
        }
 
        public String getText() {