From 263343592f06c8b39797ee453cb244be49f9bc70 Mon Sep 17 00:00:00 2001 From: Patrick Plitzner Date: Wed, 7 Sep 2016 15:47:58 +0200 Subject: [PATCH] fix #5801 Fix exceptions during selection propagation for concept relationship view - the internal model of the view has changed from a list of TaxonRelationShip objects to a Map --- .../editor/view/concept/ConceptViewPart.java | 39 +++++++++++++++++-- 1 file changed, 36 insertions(+), 3 deletions(-) diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/concept/ConceptViewPart.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/concept/ConceptViewPart.java index 074094054..015600a06 100644 --- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/concept/ConceptViewPart.java +++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/concept/ConceptViewPart.java @@ -10,9 +10,12 @@ package eu.etaxonomy.taxeditor.editor.view.concept; +import java.util.Map.Entry; + import org.eclipse.jface.action.GroupMarker; import org.eclipse.jface.action.MenuManager; import org.eclipse.jface.viewers.ISelection; +import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.viewers.ListViewer; import org.eclipse.jface.viewers.StructuredSelection; import org.eclipse.jface.viewers.Viewer; @@ -26,6 +29,7 @@ import org.eclipse.ui.IWorkbenchActionConstants; import org.eclipse.ui.IWorkbenchPart; import eu.etaxonomy.cdm.model.taxon.Taxon; +import eu.etaxonomy.cdm.model.taxon.TaxonRelationship; import eu.etaxonomy.taxeditor.bulkeditor.BulkEditor; import eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor; import eu.etaxonomy.taxeditor.editor.key.AbstractGraphKeyEditor; @@ -40,14 +44,18 @@ import eu.etaxonomy.taxeditor.view.AbstractCdmEditorViewPart; * @created Jan 24, 2011 * @version 1.0 */ -public class ConceptViewPart extends AbstractCdmEditorViewPart implements IPartContentHasDetails, IPartContentHasSupplementalData{ +public class ConceptViewPart extends AbstractCdmEditorViewPart +implements IPartContentHasDetails, IPartContentHasSupplementalData{ public static final String ID = "eu.etaxonomy.taxeditor.editor.view.concept"; - private ListViewer viewer; + private ConceptRelationViewer viewer; @Override protected void selectionChanged_internal(IWorkbenchPart part, ISelection selection) { + if(part == this){ + return; + } if(AbstractUtility.getActiveEditor() == null){ showEmptyPage(); return; @@ -95,7 +103,7 @@ public class ConceptViewPart extends AbstractCdmEditorViewPart implements IPartC @Override public void createViewer(Composite parent) { - viewer = new ListViewer(parent); + viewer = new ConceptRelationViewer(parent); viewer.setContentProvider(new ConceptContentProvider()); viewer.setLabelProvider(new ConceptLabelProvider()); @@ -126,4 +134,29 @@ public class ConceptViewPart extends AbstractCdmEditorViewPart implements IPartC super.changed(object); } + private class ConceptRelationViewer extends ListViewer { + + public ConceptRelationViewer(Composite parent) { + super(parent); + } + + @Override + public ISelection getSelection() { + ISelection selection = super.getSelection(); + if(selection instanceof IStructuredSelection && !selection.isEmpty()){ + Object firstElement = ((IStructuredSelection) selection).getFirstElement(); + TaxonRelationship taxonRelationship = ((Entry)firstElement).getKey(); + return new StructuredSelection(taxonRelationship); + + } + return selection; + } + + @Override + public void setSelection(ISelection selection) { + super.setSelection(selection); + } + + } + } -- 2.34.1