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;
/**
*/
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>
* @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;
}