From 6b6354cf6714f0520fe58d0c7a75963fe68fd81d Mon Sep 17 00:00:00 2001 From: Piotr Gawron <piotr.gawron@uni.lu> Date: Thu, 29 Jun 2017 14:49:15 +0200 Subject: [PATCH] fill parameter removed from drawinf parameters (it's computed on demand) --- .../graphics/AbstractImageGenerator.java | 8 ++--- .../converter/graphics/ConverterParams.java | 35 +++---------------- .../bioEntity/BioEntityConverter.java | 8 +++-- .../BottomSquareCompartmentConverter.java | 8 +++-- .../compartment/CompartmentConverter.java | 25 ++++++------- .../LeftSquareCompartmentConverter.java | 9 ++--- .../compartment/OvalCompartmentConverter.java | 5 +-- .../PathwayCompartmentConverter.java | 5 +-- .../RightSquareCompartmentConverter.java | 9 ++--- .../SquareCompartmentConverter.java | 5 +-- .../TopSquareCompartmentConverter.java | 10 +++--- 11 files changed, 54 insertions(+), 73 deletions(-) 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 afd349aacb..e61ab7b630 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 @@ -755,17 +755,13 @@ public abstract class AbstractImageGenerator { ConverterParams compartmentParams = new ConverterParams().textCentered(fill).level(level).nested(params.nested); if (params.nested) { - compartmentParams.fill(fill).scale(Math.max(scale, 1)); + compartmentParams.scale(Math.max(scale, 1)); } // we draw compartment only when we have hierarchical view or it's // standard compartment (not the pathway) if (params.nested || !(compartment instanceof PathwayCompartment)) { - try { - converter.draw(compartment, graphics, compartmentParams, visibleLayouts); - } catch (Exception e) { - throw new DrawingException(eu.getElementTag(compartment) + "Problem with drawing element.", e); - } + converter.draw(compartment, graphics, compartmentParams, visibleLayouts); } // If compartment should be filled, then we could skip drawing the inside 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 7efaa3e51b..91932eae2e 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 @@ -7,45 +7,29 @@ package lcsb.mapviewer.converter.graphics; * */ public class ConverterParams { - /** - * Should the object be filled with the solid color. In other words it tells - * us if the object is not transparent. - */ - private boolean fill = false; /** * At which level the object is visualized. It helps to deterimine font size. * However it's possible that this value is not required. */ - private int level = 0; + private int level = 0; /** * What is the scale. It allows to adjust font size to be readable. */ - private double scale = 1; + private double scale = 1; /** * Should the text describing element be centered or not. */ - private boolean textCentered = false; + private boolean textCentered = false; /** * Should the map be displayed in SBGN format. */ - private boolean sbgnFormat = false; - - private boolean nested = false; + private boolean sbgnFormat = false; - /** - * @param fill - * the fill to set - * @return object with all parameters - * @see #fill - */ - public ConverterParams fill(final boolean fill) { - this.fill = fill; - return this; - } + private boolean nested = false; /** * @param scale @@ -110,14 +94,6 @@ public class ConverterParams { return this; } - /** - * @return the fill - * @see #fill - */ - public boolean isFill() { - return fill; - } - /** * @return the scale * @see #scale @@ -153,7 +129,6 @@ public class ConverterParams { @Override public String toString() { String result = "[" + this.getClass().getSimpleName() + "] " + // - "fill:" + fill + "," + // "level:" + level + "," + // "scale:" + scale + "," + // "textCentered:" + textCentered + "," + // 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 2bf39b74d6..3c0969d891 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 @@ -41,7 +41,7 @@ public abstract class BioEntityConverter<T extends BioEntity> { @SuppressWarnings("unused") private final Logger logger = Logger.getLogger(BioEntityConverter.class); - private SemanticZoomLevelMatcher semanticZoomLevelMatcher = new SemanticZoomLevelMatcher(); + private SemanticZoomLevelMatcher zoomLevelMatcher = new SemanticZoomLevelMatcher(); /** * Alpha value (0..255) used for visualizing overlay data that are normally @@ -160,7 +160,7 @@ public abstract class BioEntityConverter<T extends BioEntity> { */ protected boolean isVisible(BioEntity bioEntity, ConverterParams params) { if (params.isNested()) { - boolean result = semanticZoomLevelMatcher.isVisible(params.getLevel(), bioEntity.getVisibilityLevel()); + boolean result = zoomLevelMatcher.isVisible(params.getLevel(), bioEntity.getVisibilityLevel()); if (bioEntity instanceof Element) { Compartment compartment = ((Element) bioEntity).getCompartment(); if (compartment != null) { @@ -186,6 +186,10 @@ public abstract class BioEntityConverter<T extends BioEntity> { return true; } + protected boolean isTransparent(Element bioEntity, ConverterParams params) { + return zoomLevelMatcher.isTransparent(params.getLevel(), bioEntity.getTransparencyLevel()); + } + /** * Checks if at least one reactant is visible. * diff --git a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/compartment/BottomSquareCompartmentConverter.java b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/compartment/BottomSquareCompartmentConverter.java index c13cdbdaf2..b2af327cf2 100644 --- a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/compartment/BottomSquareCompartmentConverter.java +++ b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/compartment/BottomSquareCompartmentConverter.java @@ -14,6 +14,7 @@ import lcsb.mapviewer.converter.graphics.ConverterParams; import lcsb.mapviewer.model.graphics.LineType; import lcsb.mapviewer.model.map.compartment.BottomSquareCompartment; import lcsb.mapviewer.model.map.layout.ColorSchema; +import lcsb.mapviewer.model.map.species.Element; import lcsb.mapviewer.model.map.species.Species; import org.apache.log4j.Logger; @@ -61,7 +62,8 @@ public class BottomSquareCompartmentConverter extends CompartmentConverter<Botto } // fill the background - if (params.isFill()) { + boolean fill = !isTransparent(alias, params); + if (fill) { graphics.setColor(c1); } else { Color bgAlphaColor = new Color(c1.getRed(), c1.getGreen(), c1.getBlue(), getAlphaLevel()); @@ -76,7 +78,7 @@ public class BottomSquareCompartmentConverter extends CompartmentConverter<Botto graphics.setStroke(LineType.SOLID.getStroke()); graphics.draw(s3); graphics.setColor(c2); - if (params.isFill()) { + if (fill) { graphics.fill(a1); } // restore color and line type @@ -84,7 +86,7 @@ public class BottomSquareCompartmentConverter extends CompartmentConverter<Botto graphics.setStroke(oldStroke); // draw description - if (params.isFill()) { + if (fill) { Point2D tmpPoint = alias.getNamePoint(); alias.setNamePoint(alias.getCenter()); drawText(alias, graphics, params); 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 7e3a88ad40..4db51f040b 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 @@ -35,58 +35,56 @@ import lcsb.mapviewer.model.map.layout.ColorSchema; */ public abstract class CompartmentConverter<T extends Compartment> extends ElementConverter<T> { - private SemanticZoomLevelMatcher zoomLevelMatcher = new SemanticZoomLevelMatcher(); - /** * Default class logger. */ @SuppressWarnings("unused") - private static Logger logger = Logger.getLogger(CompartmentConverter.class.getName()); + private static Logger logger = Logger.getLogger(CompartmentConverter.class.getName()); /** * Default font size. */ - private static final int DEFAULT_FONT_SIZE = 10; + private static final int DEFAULT_FONT_SIZE = 10; /** * Alpha level for inside of the transparent compartments. */ - public static final int DEFAULT_ALPHA_LEVEL = 8; + public static final int DEFAULT_ALPHA_LEVEL = 8; /** * Class used for transformation of lines. */ - private LineTransformation lineTransformation = new LineTransformation(); + private LineTransformation lineTransformation = new LineTransformation(); /** * Class used for transformation of ellipses. */ - private EllipseTransformation ellipseTransformation = new EllipseTransformation(); + private EllipseTransformation ellipseTransformation = new EllipseTransformation(); /** * Default alpha level for transparent compartments. */ - private static int alphaLevel = DEFAULT_ALPHA_LEVEL; + private static int alphaLevel = DEFAULT_ALPHA_LEVEL; /** * Default alpha level for semi-transparent borders. */ - protected static final int HIGH_ALPHA_LEVEL = 127; + protected static final int HIGH_ALPHA_LEVEL = 127; /** * Class used for finding place to draw desciption of the compartment. */ - private PlaceFinder placeFinder; + private PlaceFinder placeFinder; /** * Object used for synchronization when accessing {@link #placeFinder}. */ - private String placeFinderSynchronization = ""; + private String placeFinderSynchronization = ""; /** * Object that helps to convert {@link ColorSchema} values into colors. */ - private ColorExtractor colorExtractor; + private ColorExtractor colorExtractor; /** * Default constructor. @@ -107,8 +105,7 @@ public abstract class CompartmentConverter<T extends Compartment> extends Elemen "Dimension of the alias must be bigger than 0. Alias id: " + alias.getElementId() + " (name: \"" + alias.getName() + "\")"); } Rectangle2D border = alias.getBorder(); - if (zoomLevelMatcher.isVisible(params.getLevel(), alias.getVisibilityLevel()) - && !zoomLevelMatcher.isTransparent(params.getLevel(), alias.getTransparencyLevel())) { + if (isVisible(alias, params) && !isTransparent(alias, params)) { synchronized (placeFinderSynchronization) { if (placeFinder == null || placeFinder.getModel() != alias.getModelData()) { placeFinder = new PlaceFinder(alias.getModelData().getModel()); diff --git a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/compartment/LeftSquareCompartmentConverter.java b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/compartment/LeftSquareCompartmentConverter.java index 513684d8ad..e6767a608f 100644 --- a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/compartment/LeftSquareCompartmentConverter.java +++ b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/compartment/LeftSquareCompartmentConverter.java @@ -29,7 +29,7 @@ public class LeftSquareCompartmentConverter extends CompartmentConverter<LeftSqu * Default class logger. */ @SuppressWarnings("unused") - private static Logger logger = Logger.getLogger(LeftSquareCompartmentConverter.class.getName()); + private static Logger logger = Logger.getLogger(LeftSquareCompartmentConverter.class.getName()); /** * Default constructor. @@ -61,7 +61,8 @@ public class LeftSquareCompartmentConverter extends CompartmentConverter<LeftSqu } // fill the background - if (params.isFill()) { + boolean fill = !isTransparent(alias, params); + if (fill) { graphics.setColor(c1); } else { Color bgAlphaColor = new Color(c1.getRed(), c1.getGreen(), c1.getBlue(), getAlphaLevel()); @@ -76,7 +77,7 @@ public class LeftSquareCompartmentConverter extends CompartmentConverter<LeftSqu graphics.setStroke(LineType.SOLID.getStroke()); graphics.draw(s3); graphics.setColor(c2); - if (params.isFill()) { + if (fill) { graphics.fill(a1); } @@ -85,7 +86,7 @@ public class LeftSquareCompartmentConverter extends CompartmentConverter<LeftSqu graphics.setStroke(oldStroke); // draw description - if (params.isFill()) { + if (fill) { Point2D tmpPoint = alias.getNamePoint(); alias.setNamePoint(alias.getCenter()); drawText(alias, graphics, params); diff --git a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/compartment/OvalCompartmentConverter.java b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/compartment/OvalCompartmentConverter.java index 611eb3dead..ea5a579a5a 100644 --- a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/compartment/OvalCompartmentConverter.java +++ b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/compartment/OvalCompartmentConverter.java @@ -68,7 +68,8 @@ public class OvalCompartmentConverter extends CompartmentConverter<OvalCompartme a1.subtract(new Area(s3)); // fill the background - if (params.isFill()) { + boolean fill = !isTransparent(alias, params); + if (fill) { graphics.setColor(c1); } else { Color bgAlphaColor = new Color(c1.getRed(), c1.getGreen(), c1.getBlue(), getAlphaLevel()); @@ -90,7 +91,7 @@ public class OvalCompartmentConverter extends CompartmentConverter<OvalCompartme graphics.setStroke(oldStroke); // draw description - if (params.isFill()) { + if (fill) { Point2D tmpPoint = alias.getNamePoint(); alias.setNamePoint(alias.getCenter()); drawText(alias, graphics, params); diff --git a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/compartment/PathwayCompartmentConverter.java b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/compartment/PathwayCompartmentConverter.java index 6d691cfab2..b9ff85306f 100644 --- a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/compartment/PathwayCompartmentConverter.java +++ b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/compartment/PathwayCompartmentConverter.java @@ -50,7 +50,8 @@ public class PathwayCompartmentConverter extends CompartmentConverter<PathwayCom Color color = alias.getColor(); // fill the background - if (params.isFill()) { + boolean fill = !isTransparent(alias, params); + if (fill) { graphics.setColor(backgroundColor); } else { Color bgAlphaColor = new Color(0, 0, 0, getAlphaLevel()); @@ -68,7 +69,7 @@ public class PathwayCompartmentConverter extends CompartmentConverter<PathwayCom graphics.setStroke(oldStroke); // draw description of the compartment - if (params.isFill()) { + if (fill) { Point2D tmpPoint = alias.getNamePoint(); alias.setNamePoint(alias.getCenter()); drawText(alias, graphics, params); diff --git a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/compartment/RightSquareCompartmentConverter.java b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/compartment/RightSquareCompartmentConverter.java index c1dbe6fa02..92303a36f8 100644 --- a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/compartment/RightSquareCompartmentConverter.java +++ b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/compartment/RightSquareCompartmentConverter.java @@ -30,7 +30,7 @@ public class RightSquareCompartmentConverter extends CompartmentConverter<RightS * Default class logger. */ @SuppressWarnings("unused") - private static Logger logger = Logger.getLogger(RightSquareCompartmentConverter.class.getName()); + private static Logger logger = Logger.getLogger(RightSquareCompartmentConverter.class.getName()); /** * Default constructor. @@ -61,7 +61,8 @@ public class RightSquareCompartmentConverter extends CompartmentConverter<RightS } // fill the background - if (params.isFill()) { + boolean fill = !isTransparent(alias, params); + if (fill) { graphics.setColor(c1); } else { Color bgAlphaColor = new Color(c1.getRed(), c1.getGreen(), c1.getBlue(), getAlphaLevel()); @@ -76,7 +77,7 @@ public class RightSquareCompartmentConverter extends CompartmentConverter<RightS graphics.setStroke(LineType.SOLID.getStroke()); graphics.draw(s3); graphics.setColor(c2); - if (params.isFill()) { + if (fill) { graphics.fill(a1); } // restore color and line type @@ -89,7 +90,7 @@ public class RightSquareCompartmentConverter extends CompartmentConverter<RightS alias.getNamePoint().setLocation(x, y); // draw description - if (params.isFill()) { + if (fill) { Point2D tmpPoint = alias.getNamePoint(); alias.setNamePoint(alias.getCenter()); drawText(alias, graphics, params); diff --git a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/compartment/SquareCompartmentConverter.java b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/compartment/SquareCompartmentConverter.java index 169950485e..c19e0deb0c 100644 --- a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/compartment/SquareCompartmentConverter.java +++ b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/compartment/SquareCompartmentConverter.java @@ -80,7 +80,8 @@ public class SquareCompartmentConverter extends CompartmentConverter<SquareCompa a1.subtract(new Area(s3)); // fill the background - if (params.isFill()) { + boolean fill = !isTransparent(alias, params); + if (fill) { graphics.setColor(c1); } else { Color bgAlphaColor = new Color(c1.getRed(), c1.getGreen(), c1.getBlue(), getAlphaLevel()); @@ -102,7 +103,7 @@ public class SquareCompartmentConverter extends CompartmentConverter<SquareCompa graphics.setStroke(oldStroke); // draw description - if (params.isFill()) { + if (fill) { Point2D tmpPoint = alias.getNamePoint(); alias.setNamePoint(alias.getCenter()); drawText(alias, graphics, params); diff --git a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/compartment/TopSquareCompartmentConverter.java b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/compartment/TopSquareCompartmentConverter.java index bdc72589df..33a325562f 100644 --- a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/compartment/TopSquareCompartmentConverter.java +++ b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/compartment/TopSquareCompartmentConverter.java @@ -30,7 +30,7 @@ public class TopSquareCompartmentConverter extends CompartmentConverter<TopSquar * Default class logger. */ @SuppressWarnings("unused") - private static Logger logger = Logger.getLogger(TopSquareCompartmentConverter.class.getName()); + private static Logger logger = Logger.getLogger(TopSquareCompartmentConverter.class.getName()); /** * Default constructor. @@ -58,7 +58,9 @@ public class TopSquareCompartmentConverter extends CompartmentConverter<TopSquar c1 = Color.BLACK; } - if (params.isFill()) { + // fill the background + boolean fill = !isTransparent(alias, params); + if (fill) { graphics.setColor(c1); } else { Color bgAlphaColor = new Color(c1.getRed(), c1.getGreen(), c1.getBlue(), getAlphaLevel()); @@ -72,7 +74,7 @@ public class TopSquareCompartmentConverter extends CompartmentConverter<TopSquar graphics.setStroke(LineType.SOLID.getStroke()); graphics.draw(s3); graphics.setColor(c2); - if (params.isFill()) { + if (fill) { graphics.fill(a1); } @@ -80,7 +82,7 @@ public class TopSquareCompartmentConverter extends CompartmentConverter<TopSquar graphics.setColor(oldColor); graphics.setStroke(oldStroke); // draw description - if (params.isFill()) { + if (fill) { Point2D tmpPoint = alias.getNamePoint(); alias.setNamePoint(alias.getCenter()); drawText(alias, graphics, params); -- GitLab