ref #9800: add open in menu to character matrix
authorKatja Luther <k.luther@bgbm.org>
Mon, 8 Nov 2021 11:02:59 +0000 (12:02 +0100)
committerKatja Luther <k.luther@bgbm.org>
Mon, 8 Nov 2021 11:02:59 +0000 (12:02 +0100)
eu.etaxonomy.taxeditor.editor/fragment.e4xmi
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/CdmViewerUtil.java

index cb4198ff82fa262321dd8d69b07311e2b5fee915..8b2fae3f8b764cb8b115fcd75a94e1057321276d 100644 (file)
       </menus>
       <menus xsi:type="menu:PopupMenu" xmi:id="__10yYLKREeikjKoOnLFm2w" elementId="eu.etaxonomy.taxeditor.editor.popupmenu.charactermatrix">
         <children xsi:type="menu:HandledMenuItem" xmi:id="_AyHbgLKSEeikjKoOnLFm2w" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.createdefaultdescription" label="%handledmenuitem.label.19" command="_ZHC3oLKVEeikjKoOnLFm2w"/>
+        <children xsi:type="menu:DynamicMenuContribution" xmi:id="_zHbhUEB_EeySSdtyqU8-Hw" elementId="eu.etaxonomy.taxeditor.editor.dynamicmenucontribution.openInCdmViewer" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.view.CdmViewerContextMenuE4"/>
+        <children xsi:type="menu:MenuSeparator" xmi:id="_MhHQYLIfEeqvn5lIFwyIRw" elementId="eu.etaxonomy.taxeditor.editor.menuseparator.29"/>
         <children xsi:type="menu:HandledMenuItem" xmi:id="_DYlHcLKSEeikjKoOnLFm2w" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.createliteraturedescription" label="%handledmenuitem.label.20" command="_fkPkkLKVEeikjKoOnLFm2w"/>
         <children xsi:type="menu:HandledMenuItem" xmi:id="_ARo78KSvEeq8Gc-K2nsNRg" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.adddescription" label="%command.commandname.25" command="_zCGQ8JN1EeqyUKRuXQ8miw"/>
-        <children xsi:type="menu:MenuSeparator" xmi:id="_MhHQYLIfEeqvn5lIFwyIRw" elementId="eu.etaxonomy.taxeditor.editor.menuseparator.29"/>
+        <children xsi:type="menu:MenuSeparator" xmi:id="_Pu6CELIfEeqvn5lIFwyIRw" elementId="eu.etaxonomy.taxeditor.editor.menuseparator.30"/>
         <children xsi:type="menu:HandledMenuItem" xmi:id="_vBrWQKY-Eeq8Gc-K2nsNRg" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.aggregate" label="%command.commandname.26" command="_K2C_oKZAEeq8Gc-K2nsNRg"/>
         <children xsi:type="menu:HandledMenuItem" xmi:id="_wkVAMKotEeqBXdGXVmg_xA" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.create_key" label="%command.commandname.27" command="_vWxB4KoiEeqBXdGXVmg_xA"/>
-        <children xsi:type="menu:MenuSeparator" xmi:id="_Pu6CELIfEeqvn5lIFwyIRw" elementId="eu.etaxonomy.taxeditor.editor.menuseparator.30"/>
+        <children xsi:type="menu:MenuSeparator" xmi:id="__Ff10EB_EeySSdtyqU8-Hw" elementId="eu.etaxonomy.taxeditor.editor.menuseparator.2"/>
         <children xsi:type="menu:HandledMenuItem" xmi:id="__SlnwI97EeqyUKRuXQ8miw" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.deletedescription" label="%handledmenuitem.label.27" command="_MYd44I98EeqyUKRuXQ8miw"/>
       </menus>
     </elements>
index 99b9599d25bf1b88a4d9ed591a22051745796eb5..f24763f552934385ef60b31711dc4dff803161d5 100644 (file)
@@ -26,9 +26,14 @@ import org.eclipse.jface.viewers.TreeNode;
 import org.eclipse.ui.PlatformUI;
 import org.eclipse.ui.commands.ICommandService;
 
+import eu.etaxonomy.cdm.api.service.dto.DescriptionBaseDto;
 import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.common.ICdmBase;
+import eu.etaxonomy.cdm.model.description.DescriptionBase;
 import eu.etaxonomy.cdm.model.name.NomenclaturalSource;
+import eu.etaxonomy.cdm.model.name.TaxonName;
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
+import eu.etaxonomy.cdm.model.taxon.TaxonBase;
 import eu.etaxonomy.cdm.model.term.DefinedTermBase;
 import eu.etaxonomy.cdm.persistence.dto.ReferencingObjectDto;
 import eu.etaxonomy.cdm.persistence.dto.TermNodeDto;
@@ -197,6 +202,14 @@ public class CdmViewerUtil {
                 uuidAndTitleCache = (UuidAndTitleCache<CdmBase>)o;
             }else if (o instanceof TermNodeDto){
                 uuidAndTitleCache = new UuidAndTitleCache<>(DefinedTermBase.class, ((TermNodeDto)o).getTerm().getUuid(), null, ((TermNodeDto)o).getTerm().getTitleCache());
+            }else if (o instanceof DescriptionBaseDto){
+               if ( ((DescriptionBaseDto)o).getSpecimenDto() != null){
+                       uuidAndTitleCache = new UuidAndTitleCache<>(SpecimenOrObservationBase.class, ((DescriptionBaseDto)o).getSpecimenDto().getUuid(), null, ((DescriptionBaseDto)o).getTitleCache());
+               }else if (((DescriptionBaseDto)o).getTaxonDto() != null){
+                       uuidAndTitleCache = new UuidAndTitleCache<>(TaxonBase.class, ((DescriptionBaseDto)o).getTaxonDto().getUuid(), null, ((DescriptionBaseDto)o).getTitleCache());
+               }else {
+                       uuidAndTitleCache = new UuidAndTitleCache<>(TaxonName.class, ((DescriptionBaseDto)o).getNameDto().getUuid(), null, ((DescriptionBaseDto)o).getTitleCache());
+               }
             }else{
                 continue;
             }