ref #6595 Another fix for "move synonym to another taxon" handler
authorPatrick Plitzner <p.plitzner@bgbm.org>
Wed, 8 Nov 2017 10:16:34 +0000 (11:16 +0100)
committerPatrick Plitzner <p.plitzner@bgbm.org>
Wed, 8 Nov 2017 10:33:50 +0000 (11:33 +0100)
 - close old editor
 - open new one

eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/EditorUtil.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/handler/MoveSynonymToAnotherAcceptedTaxonHandlerE4.java

index a8652bdeffc340c45fd9b498063440df5ac33e70..3eee87cc7ded7d814d887dba4838ddc6bc3196de 100644 (file)
@@ -120,31 +120,26 @@ public class EditorUtil extends AbstractUtility {
         }
 
         Collection<MPart> parts = partService.getParts();
-        MPart part = null;
         //check if part is already opened
-        for (MPart mPart : parts) {
-            if(mPart.getObject() instanceof TaxonNameEditorE4
-                    && ((TaxonNameEditorE4) mPart.getObject()).getTaxon()!=null
-                    && ((TaxonNameEditorE4) mPart.getObject()).getTaxon().equals(input.getTaxon())){
-                part = mPart;
+        for (MPart part : parts) {
+            if(part.getObject() instanceof TaxonNameEditorE4
+                    && ((TaxonNameEditorE4) part.getObject()).getTaxon()!=null
+                    && ((TaxonNameEditorE4) part.getObject()).getTaxon().equals(input.getTaxon())){
+                //close part to invoke refresh for new part
+                partService.hidePart(part);
                 break;
             }
         }
-        if(part==null){
-            part = partService.createPart(NAME_EDITOR_ID);
-
-            MPartStack editorAreaPartStack = WorkbenchUtility.getEditorAreaPartStack(application, modelService);
-            if(editorAreaPartStack!=null){
-                editorAreaPartStack.getChildren().add(part);
-            }
-            part = partService.showPart(part, PartState.ACTIVATE);
+        MPart part = partService.createPart(NAME_EDITOR_ID);
 
-            TaxonNameEditorE4 editor = (TaxonNameEditorE4) part.getObject();
-            editor.init(input);
-        }
-        else{
-            part = partService.showPart(part, PartState.ACTIVATE);
+        MPartStack editorAreaPartStack = WorkbenchUtility.getEditorAreaPartStack(application, modelService);
+        if(editorAreaPartStack!=null){
+            editorAreaPartStack.getChildren().add(part);
         }
+        part = partService.showPart(part, PartState.ACTIVATE);
+
+        TaxonNameEditorE4 editor = (TaxonNameEditorE4) part.getObject();
+        editor.init(input);
     }
 
        /**
index c9406273209b2c3a8ab1197e3b62e557abafd0a0..2a83ec99964a96d674c12fb02e009692aefd7ce5 100644 (file)
@@ -51,12 +51,16 @@ public class MoveSynonymToAnotherAcceptedTaxonHandlerE4 implements IPostOperatio
     @Inject
     private MApplication application;
 
+    @Inject
+    private MPart activePart;
+
        @Execute
     public void execute(@Named(IServiceConstants.ACTIVE_PART)MPart activePart,
             @Named(IServiceConstants.ACTIVE_SELECTION)IStructuredSelection selection,
             @Named(IServiceConstants.ACTIVE_SHELL)Shell shell, EPartService partService,
             UISynchronize sync) {
 
+           this.activePart = activePart;
            this.partService = partService;
 
         editor = (TaxonNameEditorE4) activePart.getObject();
@@ -110,6 +114,7 @@ public class MoveSynonymToAnotherAcceptedTaxonHandlerE4 implements IPostOperatio
 
        @Override
        public boolean onComplete() {
+           partService.hidePart(activePart);
            EditorUtil.openTaxonNodeE4(newParentNode.getUuid(), modelService, partService, application);
                return true;
        }