fix #5801 Make concept relations view work with taxon bulk editor
[taxeditor.git] / eu.etaxonomy.taxeditor.editor / src / main / java / eu / etaxonomy / taxeditor / editor / view / concept / ConceptContentProvider.java
index 2acbc4a017e7970f7bac4baa789fb8b9ff54ab64..2e116e3ef39cf73cf9e47d4abe2ce2989234c751 100644 (file)
@@ -10,8 +10,8 @@
 
 package eu.etaxonomy.taxeditor.editor.view.concept;
 
-import java.util.HashSet;
-import java.util.Set;
+import java.util.HashMap;
+import java.util.Map;
 
 import org.eclipse.jface.viewers.IStructuredContentProvider;
 import org.eclipse.jface.viewers.Viewer;
@@ -28,42 +28,34 @@ import eu.etaxonomy.taxeditor.editor.TaxonEditorInput;
  */
 public class ConceptContentProvider implements IStructuredContentProvider {
 
-       /* (non-Javadoc)
-        * @see org.eclipse.jface.viewers.IContentProvider#dispose()
-        */
        @Override
        public void dispose() {
-               // TODO Auto-generated method stub
                
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
-        */
        @Override
        public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-               // TODO Auto-generated method stub
-               
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-        */
        @Override
        public Object[] getElements(Object inputElement) {
+               Taxon taxon = null;
                if(inputElement instanceof TaxonEditorInput){
-                       Taxon taxon = ((TaxonEditorInput) inputElement).getTaxon();
-                       
-                       Set<TaxonRelationship> filteredTaxonRelations = new HashSet<TaxonRelationship>();
+                       taxon = ((TaxonEditorInput) inputElement).getTaxon();
+               }
+               else if(inputElement instanceof Taxon){
+                       taxon = (Taxon) inputElement;
+               }
+               if(taxon!=null){
+                       Map<TaxonRelationship, Taxon> taxonToTaxonRelationsMap = new HashMap<>();
                        
                        for (TaxonRelationship relationship : taxon.getTaxonRelations()) {
                                if (! relationship.getType().equals(TaxonRelationshipType.MISAPPLIED_NAME_FOR()) ||
                                                 relationship.getType().equals(TaxonRelationshipType.TAXONOMICALLY_INCLUDED_IN())) {
-                                       filteredTaxonRelations.add(relationship);
+                                       taxonToTaxonRelationsMap.put(relationship, taxon);
                                }
                        }
-                       
-                       return filteredTaxonRelations.toArray();
+                       return taxonToTaxonRelationsMap.entrySet().toArray();
                }
                return new Object[0];
        }