fix #6785 Enable multiple opening of the same part
authorPatrick Plitzner <p.plitzner@bgbm.org>
Mon, 10 Jul 2017 13:37:28 +0000 (15:37 +0200)
committerPatrick Plitzner <p.plitzner@bgbm.org>
Mon, 10 Jul 2017 13:37:28 +0000 (15:37 +0200)
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/OpenDerivateViewHandler.java
eu.etaxonomy.taxeditor.workbench/src/main/java/eu/etaxonomy/taxeditor/workbench/OpenPartHandler.java

index 646f4160b4fdba07afb3b660aa21174af334529a..ed764a4d635b9bcdb7db483707375887efa6aff5 100644 (file)
@@ -16,8 +16,9 @@ public class OpenDerivateViewHandler extends AbstractHandler {
 
     @Override
     public Object execute(ExecutionEvent event) throws ExecutionException {
-        MPart part = TaxeditorStorePlugin.getDefault().getWorkbench().getService(EPartService.class).showPart(
-                AppModelId.PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_DERIVATE_DERIVATEVIEW, PartState.ACTIVATE);
+        EPartService partService = TaxeditorStorePlugin.getDefault().getWorkbench().getService(EPartService.class);
+        MPart part = partService.createPart(AppModelId.PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_DERIVATE_DERIVATEVIEW);
+        partService.showPart(part, PartState.ACTIVATE);
         DerivateView derivateView = (DerivateView) part.getObject();
         derivateView.init(new DerivateViewEditorInput());
         return null;
index a9079dbe96218236c503512d66118cb7b4d7d806..26f2e7dadf39ef799ea4106332fd27a91a0e0d2c 100644 (file)
@@ -6,6 +6,7 @@ import java.util.Map;
 import org.eclipse.core.commands.ParameterizedCommand;
 import org.eclipse.e4.core.di.annotations.CanExecute;
 import org.eclipse.e4.core.di.annotations.Execute;
+import org.eclipse.e4.ui.model.application.ui.basic.MPart;
 import org.eclipse.e4.ui.workbench.modeling.EPartService;
 import org.eclipse.e4.ui.workbench.modeling.EPartService.PartState;
 
@@ -19,7 +20,8 @@ public class OpenPartHandler {
         }
         Map parameterMap = commandParameters.getParameterMap();
         String partId = parameterMap.get(AppModelId.COMMANDPARAMETER_EU_ETAXONOMY_TAXEDITOR_WORKBENCH_COMMANDPARAMETER_PARTNAME).toString();
-        partService.showPart(partId, PartState.ACTIVATE);
+        MPart part = partService.createPart(partId);
+        partService.showPart(part, PartState.ACTIVATE);
     }
 
     @CanExecute