From 7e689eb5b2704fbbb5cc92b81340762689e82686 Mon Sep 17 00:00:00 2001 From: Katja Luther Date: Mon, 1 Mar 2021 16:10:50 +0100 Subject: [PATCH] ref #9488: fix details view for descriptions in character matrix --- .../matrix/CellSelectionListener.java | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/matrix/CellSelectionListener.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/matrix/CellSelectionListener.java index 3b632b01b..177f385f7 100644 --- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/matrix/CellSelectionListener.java +++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/matrix/CellSelectionListener.java @@ -21,7 +21,9 @@ import org.eclipse.nebula.widgets.nattable.selection.SelectionLayer; import org.eclipse.nebula.widgets.nattable.selection.event.CellSelectionEvent; import org.eclipse.nebula.widgets.nattable.selection.event.RowSelectionEvent; +import eu.etaxonomy.cdm.api.service.dto.DescriptionBaseDto; import eu.etaxonomy.cdm.api.service.dto.RowWrapperDTO; +import eu.etaxonomy.cdm.model.description.DescriptionBase; /** * @author pplitzner @@ -56,6 +58,19 @@ final class CellSelectionListener extends E4SelectionListener { return; } } + }else if (columnPosition == 0 ){ + Collection selectedCells = cellSelectionEvent.getSelectionLayer().getSelectedCells(); + if(selectedCells.size()==1){ + ILayerCell cell = selectedCells.iterator().next(); + int rowIndex = cell.getRowIndex(); + + Object dataValue = cell.getDataValue(); + if(dataValue!=null && dataValue instanceof DescriptionBaseDto){ + DescriptionBase descBase = ((DescriptionBaseDto)dataValue).getDescription(); + part.getSelectionService().setSelection(new StructuredSelection(descBase)); + return; + } + } } } else if(event instanceof RowSelectionEvent){ @@ -64,7 +79,7 @@ final class CellSelectionListener extends E4SelectionListener { if(fullySelectedRowPositions.length==1){ Object rowObject = part.getMatrix().getBodyDataProvider().getRowObject(fullySelectedRowPositions[0]); if(rowObject instanceof RowWrapperDTO){ - part.getSelectionService().setSelection(new StructuredSelection(((RowWrapperDTO) rowObject).getDescription())); + part.getSelectionService().setSelection(new StructuredSelection(((RowWrapperDTO) rowObject).getDescription().getDescription())); return; } } -- 2.34.1