From 2ae42db37f49969e762c42adcbc64b3314ab00c1 Mon Sep 17 00:00:00 2001
From: Piotr Gawron <piotr.gawron@uni.lu>
Date: Tue, 7 May 2019 19:17:41 +0200
Subject: [PATCH] when parsing sbgn file z-index is automatically assigned

---
 .../model/sbgnml/SbgnmlXmlParser.java         |  3 ++
 .../model/sbgnml/SbgnmlXmlParserTest2.java    | 37 ++++++++++++++-----
 2 files changed, 30 insertions(+), 10 deletions(-)

diff --git a/converter-SBGNML/src/main/java/lcsb/mapviewer/converter/model/sbgnml/SbgnmlXmlParser.java b/converter-SBGNML/src/main/java/lcsb/mapviewer/converter/model/sbgnml/SbgnmlXmlParser.java
index 0808b4ec81..2161a4a2ea 100644
--- a/converter-SBGNML/src/main/java/lcsb/mapviewer/converter/model/sbgnml/SbgnmlXmlParser.java
+++ b/converter-SBGNML/src/main/java/lcsb/mapviewer/converter/model/sbgnml/SbgnmlXmlParser.java
@@ -24,6 +24,7 @@ import org.sbgn.bindings.Sbgn;
 import lcsb.mapviewer.common.comparator.DoubleComparator;
 import lcsb.mapviewer.common.exception.InvalidArgumentException;
 import lcsb.mapviewer.converter.InvalidInputDataExecption;
+import lcsb.mapviewer.converter.ZIndexPopulator;
 import lcsb.mapviewer.converter.graphics.bioEntity.element.species.SpeciesConverter;
 import lcsb.mapviewer.converter.model.celldesigner.geometry.CellDesignerAliasConverter;
 import lcsb.mapviewer.converter.model.celldesigner.types.ModifierType;
@@ -185,6 +186,8 @@ public class SbgnmlXmlParser {
         }
       }
     }
+    
+    new ZIndexPopulator().populateZIndex(model);
 
     return model;
   }
diff --git a/converter-SBGNML/src/test/java/lcsb/mapviewer/converter/model/sbgnml/SbgnmlXmlParserTest2.java b/converter-SBGNML/src/test/java/lcsb/mapviewer/converter/model/sbgnml/SbgnmlXmlParserTest2.java
index 1bdffa18e7..1c8a70fb12 100644
--- a/converter-SBGNML/src/test/java/lcsb/mapviewer/converter/model/sbgnml/SbgnmlXmlParserTest2.java
+++ b/converter-SBGNML/src/test/java/lcsb/mapviewer/converter/model/sbgnml/SbgnmlXmlParserTest2.java
@@ -43,16 +43,33 @@ public class SbgnmlXmlParserTest2 {
   @Test
   public void createModelWithCompartmentsTest() throws Exception {
     try {
-        Converter converter = new SbgnmlXmlConverter();
-
-        Model model = converter
-            .createModel(new ConverterParams().filename("testFiles/sbgnmlParserTestFiles/sbgnmlFiles/elements_inside_compartment.xml"));
-        Complex complexInsideCompartment = model.getElementByElementId("csa1830");
-        assertNotNull("Complex inside compartment has undefined compartment", complexInsideCompartment.getCompartment());
-        Complex complexOutsideCompartment = model.getElementByElementId("csa1831");
-        assertNull("Complex outside compartment has not null compartment",complexOutsideCompartment.getCompartment());
-        Compartment compartment = model.getElementByElementId("ca107");
-        assertNull("Top compartment has not null compartment", compartment.getCompartment());
+      Converter converter = new SbgnmlXmlConverter();
+
+      Model model = converter
+          .createModel(new ConverterParams()
+              .filename("testFiles/sbgnmlParserTestFiles/sbgnmlFiles/elements_inside_compartment.xml"));
+      Complex complexInsideCompartment = model.getElementByElementId("csa1830");
+      assertNotNull("Complex inside compartment has undefined compartment", complexInsideCompartment.getCompartment());
+      Complex complexOutsideCompartment = model.getElementByElementId("csa1831");
+      assertNull("Complex outside compartment has not null compartment", complexOutsideCompartment.getCompartment());
+      Compartment compartment = model.getElementByElementId("ca107");
+      assertNull("Top compartment has not null compartment", compartment.getCompartment());
+    } catch (Exception e) {
+      e.printStackTrace();
+      throw e;
+    }
+  }
+
+  @Test
+  public void createModelWithZIndex() throws Exception {
+    try {
+      Converter converter = new SbgnmlXmlConverter();
+
+      Model model = converter
+          .createModel(new ConverterParams()
+              .filename("testFiles/sbgnmlParserTestFiles/sbgnmlFiles/elements_inside_compartment.xml"));
+      Complex complex = model.getElementByElementId("csa1830");
+      assertNotNull(complex.getZ());
     } catch (Exception e) {
       e.printStackTrace();
       throw e;
-- 
GitLab