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