Merging r14494 through r15285 into /home/andreas/workspaces/_svn-trunk/taxeditor...
[taxeditor.git] / eu.etaxonomy.taxeditor.editor / src / main / java / eu / etaxonomy / taxeditor / editor / view / descriptive / DescriptiveContentProvider.java
index d76d6e575911d8b785ae05123c96e5b6274f10af..fce0faf8e592fc5ec687eb383a97af673547b092 100644 (file)
@@ -6,19 +6,25 @@ package eu.etaxonomy.taxeditor.editor.view.descriptive;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
 import org.eclipse.jface.viewers.ITreeContentProvider;
 import org.eclipse.jface.viewers.Viewer;
 
+import eu.etaxonomy.cdm.api.service.ITermService;
+import eu.etaxonomy.cdm.model.common.Marker;
+import eu.etaxonomy.cdm.model.common.MarkerType;
 import eu.etaxonomy.cdm.model.description.DescriptionBase;
 import eu.etaxonomy.cdm.model.description.Feature;
 import eu.etaxonomy.cdm.model.description.FeatureTree;
 import eu.etaxonomy.cdm.model.description.TaxonDescription;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.taxeditor.editor.TaxonEditorInput;
+import eu.etaxonomy.taxeditor.editor.UsageTermCollection;
 import eu.etaxonomy.taxeditor.model.FeatureNodeContainer;
 import eu.etaxonomy.taxeditor.model.FeatureNodeContainerTree;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.store.TermStore;
 
 /**
@@ -30,8 +36,8 @@ import eu.etaxonomy.taxeditor.store.TermStore;
  */
 public class DescriptiveContentProvider implements ITreeContentProvider {
        
-       private static final Object[] NO_CHILDREN = new Object[0];
-       private Map<TaxonDescription, FeatureNodeContainerTree> featureNodeContainerCache;
+       protected static final Object[] NO_CHILDREN = new Object[0];
+       protected Map<TaxonDescription, FeatureNodeContainerTree> featureNodeContainerCache;
        
        /**
         * <p>Constructor for DescriptiveContentProvider.</p>
@@ -125,13 +131,25 @@ public class DescriptiveContentProvider implements ITreeContentProvider {
         * @param parentElement
         * @return
         */
-       private List<DescriptionBase> getDescriptions(TaxonEditorInput parentElement) {
+       protected List<DescriptionBase> getDescriptions(TaxonEditorInput parentElement) {
                Taxon taxon = parentElement.getTaxon();
                List<DescriptionBase> descriptions = new ArrayList<DescriptionBase>();
                for(DescriptionBase description : taxon.getDescriptions()){
                        if(! description.isImageGallery()){
-                               descriptions.add(description);
+                               MarkerType useMarkertype = (MarkerType) CdmStore.getService(ITermService.class).find(UsageTermCollection.uuidUseMarkerType);
+                               Set<Marker> descriptionMarkers = description.getMarkers();
+                               if(descriptionMarkers != null && !descriptionMarkers.isEmpty()) {
+                                       for (Marker marker: descriptionMarkers) {
+                                               if(!(marker.getMarkerType().equals(useMarkertype))) {
+                                                       descriptions.add(description);
+                                               }
+                                       }
+                               }
+                               else {
+                                       descriptions.add(description);
+                               }
                        }
+                       
                }                       
                return descriptions;
        }