ref #7854: close factual data view when opening distribution editor and open it when...
authorKatja Luther <k.luther@bgbm.org>
Mon, 14 Jan 2019 13:54:18 +0000 (14:54 +0100)
committerKatja Luther <k.luther@bgbm.org>
Mon, 14 Jan 2019 13:54:18 +0000 (14:54 +0100)
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/EditorUtil.java

index 016fb61fbf52d8e6672dc7f2468f62802316855b..f198d42673b804f705d102165f19b894e7682f1f 100644 (file)
@@ -96,6 +96,10 @@ public class EditorUtil extends AbstractUtility {
     public static void openDistributionEditor(UUID parentTaxonUuid, EModelService modelService, EPartService partService, MApplication application){
         Collection<MPart> parts = partService.getParts();
         String partId = AppModelId.PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_CHECKLIST_E4_DISTRIBUTIONEDITORPART;
+        String partIdFactualData = AppModelId.PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_DESCRIPTIVE_E4_FACTUALDATAPARTE4;
+        String partIdMedia = AppModelId.PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_MEDIA_E4_MEDIAVIEWPARTE4;
+        closePart(partIdMedia, partService);
+        closePart(partIdFactualData, partService);
         MPart part = showPart(partId, modelService, partService, application);
         DistributionEditorPart editor = (DistributionEditorPart) part.getObject();
         editor.init(parentTaxonUuid);
@@ -136,6 +140,18 @@ public class EditorUtil extends AbstractUtility {
         return partService.showPart(part, PartState.ACTIVATE);
     }
 
+    public static MPart showPart(String partId, EModelService modelService, EPartService partService){
+        MPart part = partService.findPart(partId);
+        if(part==null || modelService.getPartDescriptor(partId).isAllowMultiple()){
+            part = partService.createPart(partId);
+            partService.activate(part);
+        }else{
+            partService.activate(part);
+        }
+
+       return part;
+    }
+
        public static void openTaxonNodeE4(UUID taxonNodeUuid, EModelService modelService, EPartService partService, MApplication application) {
            TaxonEditorInputE4 input = TaxonEditorInputE4.NewInstance(taxonNodeUuid);
            openNameEditor_internal(input, modelService, partService, application);
@@ -188,6 +204,10 @@ public class EditorUtil extends AbstractUtility {
 
         TaxonNameEditorE4 editor = (TaxonNameEditorE4) part.getObject();
         editor.init(input);
+        String partIdFactualData = AppModelId.PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_DESCRIPTIVE_E4_FACTUALDATAPARTE4;
+        String partIdMedia = AppModelId.PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_MEDIA_E4_MEDIAVIEWPARTE4;
+        showPart(partIdMedia, modelService, partService);
+        showPart(partIdFactualData, modelService, partService);
     }
 
     public static MPart checkForChanges(UUID taxonUUID, EPartService partService ){
@@ -370,6 +390,18 @@ public class EditorUtil extends AbstractUtility {
         }
     }
 
+
+    public static void closePart(String partID, EPartService partService){
+
+        Collection<MPart> parts = partService.getParts();
+        for (MPart part : parts) {
+            String elementId = part.getElementId();
+            if (elementId.equals(partID)){
+                partService.hidePart(part);
+            }
+        }
+    }
+
     public static void updateEditor(TaxonNode taxonNode, TaxonNameEditorE4 editor){
         String treeIndex = taxonNode.treeIndex();
         TaxonNode node = editor.getEditorInput().getTaxonNode();