package eu.etaxonomy.taxeditor.view.supplementaldata;
+import java.util.Set;
+
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.viewers.StructuredViewerInternals;
import org.eclipse.jface.viewers.TreeNode;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.swt.widgets.Composite;
import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
import eu.etaxonomy.cdm.ext.occurrence.gbif.GbifResponse;
import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
+import eu.etaxonomy.cdm.model.taxon.Taxon;
+import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;
+import eu.etaxonomy.taxeditor.editor.ITaxonEditor;
import eu.etaxonomy.taxeditor.l10n.Messages;
import eu.etaxonomy.taxeditor.model.AbstractUtility;
import eu.etaxonomy.taxeditor.model.FeatureNodeContainer;
}
IStructuredSelection structuredSelection = (IStructuredSelection) selection;
-
+
if((partObject instanceof EditorPart || partObject instanceof IPartContentHasSupplementalData)) {
if(structuredSelection.size() != 1){
showEmptyPage();
return;
}
-
+ if (partObject instanceof ITaxonEditor && structuredSelection.getFirstElement() instanceof Taxon ){
+ if (((ITaxonEditor)partObject).getTaxon() != structuredSelection.getFirstElement() && ((Taxon)structuredSelection.getFirstElement()).isMisapplication()){
+ Set<TaxonRelationship> rels =((Taxon)structuredSelection.getFirstElement()).getTaxonRelations(((ITaxonEditor)partObject).getTaxon());
+ if (rels.size() == 1){
+ structuredSelection = new StructuredSelection(rels.iterator().next());
+ }else{
+ showEmptyPage();
+ return;
+ }
+
+ }
+ }
// do not show supplemental data for feature nodes
if(structuredSelection.getFirstElement() instanceof FeatureNodeContainer){
showEmptyPage();
}
else if(structuredSelection.getFirstElement() instanceof GbifResponse){
structuredSelection = new StructuredSelection(((GbifResponse)structuredSelection.getFirstElement()).getDerivedUnitFacade().innerDerivedUnit());
- }
+ }
+
showViewer(partObject, structuredSelection);
}else{
showEmptyPage();