diff --git a/CHANGELOG b/CHANGELOG index 815cb0ba9170658b626efc65433b386f7d55643c..ad83b4e59f6af82d503d46ffc0cea483982acf4e 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -3,6 +3,7 @@ minerva (12.3.1~beta.1) unstable; urgency=low name was used * Bug fix: plugin tab header wasn't properly resized after adding plugins that introduced second line for tab selection (#758) + * Bug fix: invisible layer shouldn't be shown in the on th map (#813) minerva (13.1.0~beta.0) unstable; urgency=low * Feature: annotators are more flexible - you can define set of input and diff --git a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/AbstractImageGenerator.java b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/AbstractImageGenerator.java index 002935df68d27758b156b63c358b27ad9c64c726..14c9ca9680cc4be1a639dd1303409865d30bfba8 100644 --- a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/AbstractImageGenerator.java +++ b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/AbstractImageGenerator.java @@ -711,7 +711,9 @@ public abstract class AbstractImageGenerator { List<Drawable> bioEntities = new ArrayList<>(); bioEntities.addAll(params.getModel().getBioEntities()); for (Layer layer : params.getModel().getLayers()) { - bioEntities.addAll(layer.getDrawables()); + if (layer.isVisible()) { + bioEntities.addAll(layer.getDrawables()); + } } bioEntities.sort(BioEntity.Z_INDEX_COMPARATOR); diff --git a/converter-graphics/src/test/java/lcsb/mapviewer/converter/graphics/AbstractImageGeneratorTest.java b/converter-graphics/src/test/java/lcsb/mapviewer/converter/graphics/AbstractImageGeneratorTest.java index 83896981a3c0062286b1f8fc460a018e1472b2b6..977d5ba5d7696a3f5aa20fd629989e3c71fca20d 100644 --- a/converter-graphics/src/test/java/lcsb/mapviewer/converter/graphics/AbstractImageGeneratorTest.java +++ b/converter-graphics/src/test/java/lcsb/mapviewer/converter/graphics/AbstractImageGeneratorTest.java @@ -13,6 +13,8 @@ import org.junit.Before; import org.junit.Test; import org.mockito.Mockito; +import lcsb.mapviewer.model.map.layout.graphics.Layer; +import lcsb.mapviewer.model.map.layout.graphics.LayerRect; import lcsb.mapviewer.model.map.model.Model; import lcsb.mapviewer.model.map.model.ModelFullIndexed; import lcsb.mapviewer.model.map.reaction.Reaction; @@ -68,6 +70,33 @@ public class AbstractImageGeneratorTest extends GraphicsTestFunctions { } } + @Test + public void testDrawMapWithInvisibleLayerNesting() throws Exception { + try { + Graphics2D graphics = createGraphicsMock(); + + Model model = createEmptyModel(); + Layer layer = new Layer(); + layer.setVisible(false); + LayerRect rect = new LayerRect(); + rect.setX(10.0); + rect.setX(10.0); + rect.setWidth(20.); + rect.setHeight(20.); + layer.addLayerRect(rect); + model.addLayer(layer); + + AbstractImageGenerator gen = createAbstractImageGeneratorMock(graphics, model); + gen.setParams(new AbstractImageGenerator.Params().model(model).nested(true)); + gen.draw(); + + // 3 times for proteins and 4 times for reaction + verify(graphics, times(0)).draw(any()); + } catch (Exception e) { + throw e; + } + } + @Test public void testDrawSimpleMapWithWhenNestingHidesElement() throws Exception { try { @@ -88,9 +117,7 @@ public class AbstractImageGeneratorTest extends GraphicsTestFunctions { } private Model createSimpleModel() { - Model model = new ModelFullIndexed(null); - model.setWidth(100); - model.setHeight(100); + Model model = createEmptyModel(); GenericProtein protein1 = createProtein(); model.addElement(protein1); @@ -110,6 +137,13 @@ public class AbstractImageGeneratorTest extends GraphicsTestFunctions { return model; } + private Model createEmptyModel() { + Model model = new ModelFullIndexed(null); + model.setWidth(100); + model.setHeight(100); + return model; + } + private AbstractImageGenerator createAbstractImageGeneratorMock(Graphics2D graphics, Model model) throws Exception { AbstractImageGenerator result = Mockito.mock(AbstractImageGenerator.class, Mockito.CALLS_REAL_METHODS); result.setGraphics(graphics); diff --git a/frontend-js/package-lock.json b/frontend-js/package-lock.json index 17af1d3c74801220445bc910e69128516887d881..2e2d590dfa9b450c8e1d089ea26bac37ab4fc1ea 100644 --- a/frontend-js/package-lock.json +++ b/frontend-js/package-lock.json @@ -87,6 +87,7 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", + "optional": true, "requires": { "kind-of": "^3.0.2", "longest": "^1.0.1", @@ -3309,7 +3310,8 @@ "longest": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", - "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=" + "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", + "optional": true }, "loose-envify": { "version": "1.3.1",