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