ref #7589 Only allow one single default taxon description per taxon
[taxeditor.git] / eu.etaxonomy.taxeditor.editor / src / main / java / eu / etaxonomy / taxeditor / editor / handler / defaultHandler / DefaultOpenTaxonEditorForTaxonNodeHandler.java
index d1dd99333f7f5cd7751d87e685abaa6df2f40b99..de458b8c857c01cba7b63777a006b60c027a40e1 100644 (file)
@@ -1,20 +1,20 @@
 package eu.etaxonomy.taxeditor.editor.handler.defaultHandler;
 import java.util.UUID;
 
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.ui.PartInitException;
+import org.eclipse.e4.ui.workbench.modeling.EPartService;
+import org.eclipse.swt.widgets.Shell;
 
 import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
+import eu.etaxonomy.taxeditor.editor.AppModelId;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
-import eu.etaxonomy.taxeditor.editor.Messages;
-import eu.etaxonomy.taxeditor.editor.TaxonEditorInput;
-import eu.etaxonomy.taxeditor.handler.defaultHandler.DefaultOpenHandlerBase;
+import eu.etaxonomy.taxeditor.editor.l10n.Messages;
+import eu.etaxonomy.taxeditor.handler.defaultHandler.e4.DefaultOpenHandlerBaseE4;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 
-public class DefaultOpenTaxonEditorForTaxonNodeHandler extends DefaultOpenHandlerBase<TaxonNode> {
+public class DefaultOpenTaxonEditorForTaxonNodeHandler extends DefaultOpenHandlerBaseE4<TaxonNode> {
 
     @Override
     protected TaxonNode getEntity(UUID uuid) {
@@ -22,13 +22,25 @@ public class DefaultOpenTaxonEditorForTaxonNodeHandler extends DefaultOpenHandle
     }
 
     @Override
-    protected void open(ExecutionEvent event, TaxonNode entity) {
-        TaxonEditorInput input = TaxonEditorInput.NewInstanceFromTaxonBase(entity.getTaxon().getUuid());
+    protected void open(TaxonNode entity, Shell shell, EPartService partService) {
         try {
-            EditorUtil.open(input);
-        } catch (PartInitException e) {
-            MessagingUtils.error(DefaultOpenTaxonEditorForTaxonNodeHandler.class, Messages.DefaultOpenTaxonEditorForTaxonNodeHandler_COULD_NOT_OPEN+input.getTaxon(), e);
+            EditorUtil.openTaxonNodeE4(entity.getUuid(), modelService, partService, application);
+        } catch (Exception e) {
+            MessagingUtils.error(DefaultOpenTaxonEditorForTaxonNodeHandler.class, Messages.DefaultOpenTaxonEditorForTaxonNodeHandler_COULD_NOT_OPEN+entity.getTaxon(), e);
         }
     }
 
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    protected boolean canExecute(TaxonNode entity) {
+        return entity.getTaxon()!=null ;
+    }
+
+    @Override
+    protected String getPartId() {
+        return AppModelId.PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_NAME_E4_TAXONNAMEEDITORE4;
+    }
+
 }