diff --git a/service/src/main/java/lcsb/mapviewer/services/impl/ProjectService.java b/service/src/main/java/lcsb/mapviewer/services/impl/ProjectService.java index db4b994f6c1b9ca1fc0bbfcdbfccd03734112b28..a00b4eeb22c989378fffaf9e910208d7fddfc3ab 100644 --- a/service/src/main/java/lcsb/mapviewer/services/impl/ProjectService.java +++ b/service/src/main/java/lcsb/mapviewer/services/impl/ProjectService.java @@ -627,7 +627,7 @@ public class ProjectService implements IProjectService { topLayout.setHierarchicalView(buildInLayout.isNested()); topModel.addLayout(0, topLayout); List<Layout> semanticLevelOverlays = new ArrayList<>(); - if (params.isSemanticZoomContainsMultipleLayouts()) { + if (params.isSemanticZoomContainsMultipleLayouts() && buildInLayout == BuildInLayout.NESTED) { for (int i = 0; i <= topModel.getZoomLevels(); i++) { String directory = params.getProjectDir() + "/" + buildInLayout.getDirectorySuffix() + "-" + i + "-" + topModel.getId() + "/"; @@ -651,7 +651,7 @@ public class ProjectService implements IProjectService { connection.getSubmodel().setZoomLevels(generator.computeZoomLevels(connection.getSubmodel().getModel())); connection.getSubmodel().setTileSize(MapGenerator.TILE_SIZE); - if (params.isSemanticZoomContainsMultipleLayouts()) { + if (params.isSemanticZoomContainsMultipleLayouts() && buildInLayout == BuildInLayout.NESTED) { for (int i = 0; i <= topModel.getZoomLevels(); i++) { String directory = params.getProjectDir() + "/" + buildInLayout.getDirectorySuffix() + "-" + i + "-" + submodelId + "/"; diff --git a/service/src/test/java/lcsb/mapviewer/services/impl/ProjectServiceTest.java b/service/src/test/java/lcsb/mapviewer/services/impl/ProjectServiceTest.java index 73d4df551ad3c4985cebf845a492654479b511c4..f2662d31704357f1359dfde340fdf11a30dc1aa5 100644 --- a/service/src/test/java/lcsb/mapviewer/services/impl/ProjectServiceTest.java +++ b/service/src/test/java/lcsb/mapviewer/services/impl/ProjectServiceTest.java @@ -235,10 +235,10 @@ public class ProjectServiceTest extends ServiceTestFunctions { // and now check layouts (check if every submodel have them, and point // into different directory) - // there are 2 levels - int semanticOverlays = 2; + int semanticOverlays = model.getZoomLevels() + 1; + logger.debug(model.getZoomLevels()); // -1 is due to pathways and compartments that is not there - int overlays = BuildInLayout.values().length + semanticOverlays - 1; + int overlays = BuildInLayout.values().length + semanticOverlays; assertEquals(overlays, model.getLayouts().size()); assertEquals(overlays, s1Model.getLayouts().size()); assertEquals(overlays, s2Model.getLayouts().size()); @@ -612,7 +612,7 @@ public class ProjectServiceTest extends ServiceTestFunctions { assertEquals("main", model.getName()); assertEquals(ProjectStatus.DONE, project.getStatus()); assertEquals("Cannot find overview images the model", 2, project.getOverviewImages().size()); - assertEquals("Number of layouts doesn't match", BuildInLayout.values().length - 1, model.getLayouts().size()); + assertEquals("Number of layouts doesn't match", BuildInLayout.values().length, model.getLayouts().size()); assertEquals(BuildInLayout.NESTED.getTitle(), model.getLayouts().get(0).getTitle()); assertEquals(BuildInLayout.NORMAL.getTitle(), model.getLayouts().get(1).getTitle()); projectService.removeProject(project, null, false, adminToken); @@ -663,7 +663,7 @@ public class ProjectServiceTest extends ServiceTestFunctions { assertEquals("main", model.getName()); assertEquals(ProjectStatus.DONE, project.getStatus()); assertEquals("Cannot find overview images the model", 2, project.getOverviewImages().size()); - assertEquals("Number of layouts doesn't match", BuildInLayout.values().length - 1, model.getLayouts().size()); + assertEquals("Number of layouts doesn't match", BuildInLayout.values().length, model.getLayouts().size()); assertEquals(BuildInLayout.NESTED.getTitle(), model.getLayouts().get(1).getTitle()); assertEquals(BuildInLayout.NORMAL.getTitle(), model.getLayouts().get(0).getTitle()); projectService.removeProject(project, null, false, adminToken); @@ -677,13 +677,15 @@ public class ProjectServiceTest extends ServiceTestFunctions { public void testCreateComplexWithLayouts() throws Exception { try { String filename = "testFiles/complexModel/complex_model_with_layouts.zip"; + int overlaysInZipFile = 1; Project project = createComplexProject(projectId, filename); Model model = modelService.getLastModelByProjectId(projectId, adminToken); assertNotNull(model); assertEquals("main", model.getName()); assertEquals(ProjectStatus.DONE, project.getStatus()); - assertEquals("Number of layouts doesn't match", BuildInLayout.values().length, model.getLayouts().size()); + assertEquals("Number of layouts doesn't match", BuildInLayout.values().length + overlaysInZipFile, + model.getLayouts().size()); boolean additionalFound = false; for (Layout layout : model.getLayouts()) { @@ -712,7 +714,7 @@ public class ProjectServiceTest extends ServiceTestFunctions { assertNotNull(model); assertEquals("main", model.getName()); assertEquals(ProjectStatus.DONE, project.getStatus()); - assertEquals("Number of layouts doesn't match", BuildInLayout.values().length - 1, model.getLayouts().size()); + assertEquals("Number of layouts doesn't match", BuildInLayout.values().length, model.getLayouts().size()); projectService.removeProject(project, null, false, adminToken); } catch (Exception e) { e.printStackTrace();