Double click on taxon search opens Name Editor #5689
authorPatrick Plitzner <p.plitzner@bgbm.org>
Tue, 12 Apr 2016 12:19:03 +0000 (14:19 +0200)
committerPatrick Plitzner <p.plitzner@bgbm.org>
Tue, 12 Apr 2016 12:19:03 +0000 (14:19 +0200)
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/NavigationUtil.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/search/SearchResultView.java

index a6d5975fe9491aae808c267699f90bbd46ad0e1f..0995da311773c6e75f4774bf9693d94c35353c31 100644 (file)
@@ -25,6 +25,7 @@ import org.eclipse.ui.PartInitException;
 import org.eclipse.ui.PlatformUI;
 import org.eclipse.ui.navigator.CommonViewer;
 
+import eu.etaxonomy.cdm.api.service.ITaxonService;
 import eu.etaxonomy.cdm.model.common.ICdmBase;
 import eu.etaxonomy.cdm.model.description.PolytomousKey;
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;
@@ -33,6 +34,7 @@ import eu.etaxonomy.cdm.model.taxon.Synonym;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
+import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
 import eu.etaxonomy.taxeditor.editor.TaxonEditorInput;
 import eu.etaxonomy.taxeditor.editor.internal.TaxeditorEditorPlugin;
@@ -41,6 +43,7 @@ import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.navigation.internal.TaxeditorNavigationPlugin;
 import eu.etaxonomy.taxeditor.navigation.navigator.TaxonNavigator;
 import eu.etaxonomy.taxeditor.newWizard.NewClassificationWizard;
+import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
 
 /**
@@ -58,6 +61,14 @@ public class NavigationUtil extends AbstractUtility{
         *
         * @param selectedObject a {@link eu.etaxonomy.cdm.model.common.CdmBase} object.
         */
+       public static void openEditor(UuidAndTitleCache uuidAndTitleCache){
+           TaxonBase taxonBase = CdmStore.getService(ITaxonService.class).load(uuidAndTitleCache.getUuid());
+           if(taxonBase==null){
+               MessagingUtils.warn(NavigationUtil.class, "No taxon stored with UUID "+uuidAndTitleCache.getUuid());
+               return;
+           }
+           openEditor(taxonBase);
+       }
        public static void openEditor(ICdmBase selectedObject){
                UUID entityUuid = selectedObject.getUuid();
                try {
index 45925d809591d68e4ab0437062a4925ca7bc3379..18760f5c0c227ac33c33ddcfe034e6ef77d86ddd 100644 (file)
@@ -21,6 +21,7 @@ import org.eclipse.jface.action.MenuManager;
 import org.eclipse.jface.viewers.ArrayContentProvider;
 import org.eclipse.jface.viewers.DoubleClickEvent;
 import org.eclipse.jface.viewers.IDoubleClickListener;
+import org.eclipse.jface.viewers.ISelection;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.viewers.TableViewer;
 import org.eclipse.swt.SWT;
@@ -46,9 +47,9 @@ import eu.etaxonomy.cdm.persistence.query.MatchMode;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.model.ContextListenerAdapter;
 import eu.etaxonomy.taxeditor.model.IContextListener;
+import eu.etaxonomy.taxeditor.navigation.NavigationUtil;
 import eu.etaxonomy.taxeditor.navigation.search.SearchBar.SearchOption;
 import eu.etaxonomy.taxeditor.store.CdmStore;
-import eu.etaxonomy.taxeditor.view.CdmViewerChooser;
 
 /**
  * <p>SearchResultView class.</p>
@@ -117,10 +118,12 @@ public class SearchResultView extends ViewPart implements IConversationEnabled{
                resultViewer.addDoubleClickListener(new IDoubleClickListener() {
                        @Override
             public void doubleClick(DoubleClickEvent event) {
-                           if(event.getSelection() instanceof IStructuredSelection){
-                               Object selectedObject = ((IStructuredSelection) event.getSelection()).getFirstElement();
-                               CdmViewerChooser chooser = new CdmViewerChooser(getSite().getShell());
-                               chooser.chooseViewer(selectedObject);
+                           ISelection selection = event.getSelection();
+                           if(selection instanceof IStructuredSelection){
+                               Object firstElement = ((IStructuredSelection) selection).getFirstElement();
+                               if(firstElement instanceof UuidAndTitleCache){
+                                   NavigationUtil.openEditor((UuidAndTitleCache) firstElement);
+                               }
                            }
                        }
                });