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 e61ab7b63071f338d189a46a389a724e0b78d37e..16b964e447a801c55e68f95a9b1695d102b4722c 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 @@ -739,20 +739,9 @@ public abstract class AbstractImageGenerator { * thrown when there was a problem with drawing {@link Compartment} */ protected void drawCompartment(final Compartment compartment, List<ColorSchema> visibleLayouts, Params params) throws DrawingException { - /** - * This part is responsible for transparency of compartments. Compartment - * should be transparent if the field of it is big enough, its visibility - * level is sufficient. - */ - - boolean fill = true; - if (zoomLevelMatcher.isTransparent(level, compartment.getTransparencyLevel()) || !params.nested) { - fill = false; - } - // get a converter for this compartment BioEntityConverterImpl converter = new BioEntityConverterImpl(compartment, colorExtractor); - ConverterParams compartmentParams = new ConverterParams().textCentered(fill).level(level).nested(params.nested); + ConverterParams compartmentParams = new ConverterParams().level(level).nested(params.nested); if (params.nested) { compartmentParams.scale(Math.max(scale, 1)); @@ -767,30 +756,29 @@ public abstract class AbstractImageGenerator { // If compartment should be filled, then we could skip drawing the inside // compartments. - if (fill) { - return; - } - List<Element> result = new ArrayList<>(); - result.addAll(compartment.getElements()); - Collections.sort(result, Element.SIZE_COMPARATOR); + if (zoomLevelMatcher.isTransparent(level, compartment.getTransparencyLevel()) || !params.nested) { + List<Element> result = new ArrayList<>(); + result.addAll(compartment.getElements()); + Collections.sort(result, Element.SIZE_COMPARATOR); + + // draw all children of this compartment + for (Element element : result) { + // if a child is a standard species + if (element instanceof Species) { + drawSpecies((Species) element, params.getVisibleLayoutsForElement(element), params); + } else if (element instanceof Compartment) { + drawCompartment((Compartment) element, params.getVisibleLayoutsForElement(element), params); + } else { + // if a child is not a compartment or a species then we have a + // problem + throw new DrawingException(eu.getElementTag(compartment) + "Unknown Element type"); + } - // draw all children of this compartment - for (Element element : result) { - // if a child is a standard species - if (element instanceof Species) { - drawSpecies((Species) element, params.getVisibleLayoutsForElement(element), params); - } else if (element instanceof Compartment) { - drawCompartment((Compartment) element, params.getVisibleLayoutsForElement(element), params); - } else { - // if a child is not a compartment or a species then we have a - // problem - throw new DrawingException(eu.getElementTag(compartment) + "Unknown Element type"); } - - } - if (!compartment.containsIdenticalSpecies()) { - if (!(compartment instanceof PathwayCompartment)) { - converter.drawText(compartment, graphics, compartmentParams); + if (!compartment.containsIdenticalSpecies()) { + if (!(compartment instanceof PathwayCompartment)) { + converter.drawText(compartment, graphics, compartmentParams); + } } } } @@ -839,9 +827,7 @@ public abstract class AbstractImageGenerator { if (rescale) { customScale = scale; } - converter.draw( - species, graphics, new ConverterParams().scale(customScale).textCentered(rescale).level(level).sbgnFormat(sbgnFormat).nested(params.nested), - visibleLayouts); + converter.draw(species, graphics, new ConverterParams().scale(customScale).level(level).sbgnFormat(sbgnFormat).nested(params.nested), visibleLayouts); // if the species is a complex then we may want to draw children // objects diff --git a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/ConverterParams.java b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/ConverterParams.java index 91932eae2e22f58cef9c22b16d29cde913c69f1c..18c165403acb5c3cca33d02833de307aa617d4e0 100644 --- a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/ConverterParams.java +++ b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/ConverterParams.java @@ -19,11 +19,6 @@ public class ConverterParams { */ private double scale = 1; - /** - * Should the text describing element be centered or not. - */ - private boolean textCentered = false; - /** * Should the map be displayed in SBGN format. */ @@ -53,17 +48,6 @@ public class ConverterParams { return this; } - /** - * @param textCentered - * the textCentered to set - * @return object with all parameters - * @see #textCentered - */ - public ConverterParams textCentered(final boolean textCentered) { - this.textCentered = textCentered; - return this; - } - /** * @return the level * @see #level @@ -102,14 +86,6 @@ public class ConverterParams { return scale; } - /** - * @return the textCentered - * @see #textCentered - */ - public boolean isTextCentered() { - return textCentered; - } - /** * @return the sbgnFormat * @see #sbgnFormat @@ -131,7 +107,6 @@ public class ConverterParams { String result = "[" + this.getClass().getSimpleName() + "] " + // "level:" + level + "," + // "scale:" + scale + "," + // - "textCentered:" + textCentered + "," + // "nested:" + nested + "," + // "sbgnFormat:" + sbgnFormat; return result; diff --git a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/BioEntityConverter.java b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/BioEntityConverter.java index 7f85a9f5e76f309a1d654980f0a0bfe83e6c0a80..373ee420b1edf78f27fd734ae765b7c164e2a64f 100644 --- a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/BioEntityConverter.java +++ b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/BioEntityConverter.java @@ -206,7 +206,7 @@ public abstract class BioEntityConverter<T extends BioEntity> { * otherwise */ protected boolean isTransparent(Element bioEntity, ConverterParams params) { - return zoomLevelMatcher.isTransparent(params.getLevel(), bioEntity.getTransparencyLevel()); + return zoomLevelMatcher.isTransparent(params.getLevel(), bioEntity.getTransparencyLevel()) || !params.isNested(); } /** diff --git a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/compartment/CompartmentConverter.java b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/compartment/CompartmentConverter.java index d9194ae326a28a7476ce04eb7dcc219003aefd79..f04d9ef0f035ac91c1a51e30e728d0b4da824784 100644 --- a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/compartment/CompartmentConverter.java +++ b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/compartment/CompartmentConverter.java @@ -102,19 +102,15 @@ public abstract class CompartmentConverter<T extends Compartment> extends Elemen if (compartment.getWidth() < Configuration.EPSILON || compartment.getHeight() < Configuration.EPSILON) { throw new DrawingException(new ElementUtils().getElementTag(compartment) + "Dimension of the alias must be bigger than 0."); } + boolean textCentered = !isTransparent(compartment, params); Rectangle2D border = compartment.getBorder(); - if (isVisible(compartment, params) && !isTransparent(compartment, params)) { + if (textCentered) { synchronized (placeFinderSynchronization) { if (placeFinder == null || placeFinder.getModel() != compartment.getModelData()) { placeFinder = new PlaceFinder(compartment.getModelData().getModel()); } border = placeFinder.getRetangle(compartment, params.getLevel()); } - } else if (!params.isTextCentered()) { - border = new Rectangle2D.Double( - compartment.getNamePoint().getX(), compartment.getNamePoint().getY(), - compartment.getWidth() - (compartment.getNamePoint().getX() - compartment.getX()), - compartment.getHeight() - (compartment.getNamePoint().getY() - compartment.getY())); } double fontSize = DEFAULT_FONT_SIZE * params.getScale(); if (compartment.getFontSize() != null) { @@ -123,7 +119,7 @@ public abstract class CompartmentConverter<T extends Compartment> extends Elemen String fontName = Font.SANS_SERIF; try { fontSize = FontFinder.findMaxFontSize((int) Math.round(fontSize), fontName, graphics, border, compartment.getName()); - FontFinder.drawText((int) fontSize, fontName, graphics, border, compartment.getName(), params.isTextCentered()); + FontFinder.drawText((int) fontSize, fontName, graphics, border, compartment.getName(), textCentered); } catch (RectangleTooSmallException e) { // if it's too small then don't draw return; diff --git a/converter-graphics/src/test/java/lcsb/mapviewer/converter/graphics/NormalImageGeneratorTest.java b/converter-graphics/src/test/java/lcsb/mapviewer/converter/graphics/NormalImageGeneratorTest.java index 864c939598c6397310c505a20948283409e75dc3..fbb7a6f4c728ddaab9646ba18553ca9565ff7b06 100644 --- a/converter-graphics/src/test/java/lcsb/mapviewer/converter/graphics/NormalImageGeneratorTest.java +++ b/converter-graphics/src/test/java/lcsb/mapviewer/converter/graphics/NormalImageGeneratorTest.java @@ -35,17 +35,12 @@ public class NormalImageGeneratorTest { } Double scale; - Boolean centered; private Boolean artifitialCalled; public void setScale(Double sc) { scale = sc; } - public void setCentered(Boolean ce) { - centered = ce; - } - class TmpComplexConverter extends ComplexConverter { public TmpComplexConverter(ColorExtractor colorExtractor) { super(colorExtractor); @@ -54,7 +49,6 @@ public class NormalImageGeneratorTest { @Override public void drawText(Complex compAlias, Graphics2D graphics, ConverterParams params) { setScale(params.getScale()); - setCentered(params.isTextCentered()); super.drawText(compAlias, graphics, params); }