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 b2ac57a7e553a6786ed8a11931fe380a511c1b82..002935df68d27758b156b63c358b27ad9c64c726 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 @@ -8,7 +8,6 @@ import java.awt.geom.Rectangle2D; import java.io.IOException; import java.io.OutputStream; import java.util.ArrayList; -import java.util.Collections; import java.util.List; import java.util.Map; @@ -18,11 +17,20 @@ import lcsb.mapviewer.commands.ColorExtractor; import lcsb.mapviewer.commands.SemanticZoomLevelMatcher; import lcsb.mapviewer.common.MimeType; import lcsb.mapviewer.converter.graphics.bioEntity.BioEntityConverterImpl; -import lcsb.mapviewer.converter.graphics.layer.LayerConverter; +import lcsb.mapviewer.converter.graphics.layer.LayerLineConverter; +import lcsb.mapviewer.converter.graphics.layer.LayerOvalConverter; +import lcsb.mapviewer.converter.graphics.layer.LayerRectConverter; +import lcsb.mapviewer.converter.graphics.layer.LayerTextConverter; +import lcsb.mapviewer.model.graphics.PolylineData; +import lcsb.mapviewer.model.map.BioEntity; +import lcsb.mapviewer.model.map.Drawable; import lcsb.mapviewer.model.map.compartment.Compartment; import lcsb.mapviewer.model.map.compartment.PathwayCompartment; import lcsb.mapviewer.model.map.layout.ColorSchema; import lcsb.mapviewer.model.map.layout.graphics.Layer; +import lcsb.mapviewer.model.map.layout.graphics.LayerOval; +import lcsb.mapviewer.model.map.layout.graphics.LayerRect; +import lcsb.mapviewer.model.map.layout.graphics.LayerText; import lcsb.mapviewer.model.map.model.Model; import lcsb.mapviewer.model.map.reaction.Reaction; import lcsb.mapviewer.model.map.species.Complex; @@ -606,7 +614,7 @@ public abstract class AbstractImageGenerator { /** * Default class logger. */ - private Logger logger = Logger.getLogger(AbstractImageGenerator.class); + private static Logger logger = Logger.getLogger(AbstractImageGenerator.class); /** * Graphics object which allows to draw objects. @@ -641,7 +649,7 @@ public abstract class AbstractImageGenerator { * params}. * * @param params - * list of all params to create apropriate image + * list of all params to create appropriate image * @throws DrawingException * thrown when there was a problem with drawing a map * @@ -700,59 +708,58 @@ public abstract class AbstractImageGenerator { // Get the SBGN display format option from the model this.sbgnFormat = params.isSbgn(); - // Correct order of displaying is: elements, reactions, compartments, - // layers. - // In this way we can display all reactions and overlay them by compartments - // or layers if they should be solid and hide complexity behind it + List<Drawable> bioEntities = new ArrayList<>(); + bioEntities.addAll(params.getModel().getBioEntities()); + for (Layer layer : params.getModel().getLayers()) { + bioEntities.addAll(layer.getDrawables()); + } + bioEntities.sort(BioEntity.Z_INDEX_COMPARATOR); // draw all elements - for (Element element : params.getModel().getSortedSpeciesList()) { - // draw only elements that don't have parents (aren't included in any - // compartment/complexes) + for (Drawable element : bioEntities) { if (element instanceof Species) { - if (((Species) element).getComplex() == null && element.getCompartment() == null) { - drawSpecies((Species) element); - } - } - } - // draw all reactions - for (Reaction reaction : params.getModel().getSortedReactions()) { - drawReaction(reaction); - } - // draw all compartments - for (Compartment compartment : params.getModel().getSortedCompartments()) { - // draw only compartment that don't have parents (aren't included in any - // compartment/complexes) - if (compartment.getCompartment() == null) { - drawCompartment(compartment); + drawSpecies((Species) element); + } else if (element instanceof Reaction) { + drawReaction((Reaction) element); + } else if (element instanceof Compartment) { + drawCompartment((Compartment) element); + } else if (element instanceof LayerText) { + drawText((LayerText) element); + } else if (element instanceof LayerOval) { + drawOval((LayerOval) element); + } else if (element instanceof LayerRect) { + drawRect((LayerRect) element); + } else if (element instanceof PolylineData) { + drawLine((PolylineData) element); + } else { + throw new DrawingException("Unknown class type: " + element); } } - - // draw all layers - for (Layer layer : params.getModel().getLayers()) { - drawLayer(layer); - } closeImageObject(); setDrawn(true); } + private void drawText(LayerText element) { + new LayerTextConverter().draw(element, graphics); + } + + private void drawRect(LayerRect element) { + new LayerRectConverter().draw(element, graphics); + } + + private void drawOval(LayerOval element) { + new LayerOvalConverter().draw(element, graphics); + } + + private void drawLine(PolylineData element) { + new LayerLineConverter().draw(element, graphics); + } + /** * Method called after drawing. It should close drawing canvas properly. */ protected abstract void closeImageObject(); - /** - * This method draw layer on the graphics. - * - * @param layer - * layer to be drawn - */ - private void drawLayer(final Layer layer) { - // get a converter nad set text borders to no - LayerConverter converter = new LayerConverter(false); - converter.drawLayer(layer, graphics); - } - /** * Don't allow to create default public constructors with empty list of * parameters. @@ -780,28 +787,7 @@ public abstract class AbstractImageGenerator { converter.draw(compartment, graphics, compartmentParams, params.getVisibleLayoutsForElement(compartment)); - // If compartment should be filled, then we could skip drawing the inside - // compartments. - 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 child : result) { - // if a child is a standard species - if (child instanceof Species) { - drawSpecies((Species) child); - } else if (child instanceof Compartment) { - drawCompartment((Compartment) child); - } else { - // if a child is not a compartment or a species then we have a - // problem - throw new DrawingException(eu.getElementTag(child) + "Unknown Element type"); - } - - } if (!compartment.containsIdenticalSpecies()) { if (!(compartment instanceof PathwayCompartment)) { converter.drawText(compartment, graphics, compartmentParams); @@ -848,21 +834,6 @@ public abstract class AbstractImageGenerator { new ConverterParams().scale(customScale).level(level).sbgnFormat(sbgnFormat).nested(params.nested), params.getVisibleLayoutsForElement(species)); - // if the species is a complex then we may want to draw children - // objects - if (species instanceof Complex) { - Complex complex = (Complex) species; - // before drawing children check if the view is not set to brief - // mode - if (!complex.getState().equalsIgnoreCase("brief")) { - // depending on current zoom level, children are drawn or not - if (zoomLevelMatcher.isTransparent(level, complex.getTransparencyLevel()) || !params.nested) { - for (Species child : complex.getElements()) { - drawSpecies(child); - } - } - } - } } /** diff --git a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/layer/LayerConverter.java b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/layer/LayerConverter.java index 02b225525a3c5612dcd3d5aace0b6c4537298ada..75f7cc5ab545888984505b0b809325cb9cc2cbeb 100644 --- a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/layer/LayerConverter.java +++ b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/layer/LayerConverter.java @@ -1,19 +1,15 @@ package lcsb.mapviewer.converter.graphics.layer; -import java.awt.Color; import java.awt.Graphics2D; -import java.awt.geom.Ellipse2D; -import java.awt.geom.Rectangle2D; -import lcsb.mapviewer.converter.graphics.geometry.ArrowTransformation; +import org.apache.log4j.Logger; + import lcsb.mapviewer.model.graphics.PolylineData; import lcsb.mapviewer.model.map.layout.graphics.Layer; import lcsb.mapviewer.model.map.layout.graphics.LayerOval; import lcsb.mapviewer.model.map.layout.graphics.LayerRect; import lcsb.mapviewer.model.map.layout.graphics.LayerText; -import org.apache.log4j.Logger; - /** * This class allows to draw layer on Graphics2D. * @@ -22,134 +18,53 @@ import org.apache.log4j.Logger; */ public class LayerConverter { - /** - * Default class logger. - */ - @SuppressWarnings("unused") - private static Logger logger = Logger.getLogger(LayerConverter.class.getName()); - - /** - * Color used for text frames. - */ - private static final Color FRAME_COLOR = Color.LIGHT_GRAY; - - /** - * Should the border around text be visible. - */ - private boolean visibleTextBorder = true; - - /** - * This objects helps drawing arrows. - */ - private ArrowTransformation arrowTransformation = new ArrowTransformation(); - - /** - * Default constructor. - * - * @param visibleTextBorder - * should the text hav border - */ - public LayerConverter(final boolean visibleTextBorder) { - this.visibleTextBorder = visibleTextBorder; - } - - /** - * Draw the whole layer on the Graphics2D. - * - * @param layer - * object to be drawn - * @param graphics - * where we want to draw the object - */ - public void drawLayer(final Layer layer, final Graphics2D graphics) { - if (layer.isVisible()) { - for (LayerText text : layer.getTexts()) { - drawLayerText(text, graphics); - } - for (LayerRect rect : layer.getRectangles()) { - drawLayerRect(rect, graphics); - } - for (LayerOval oval : layer.getOvals()) { - drawLayerOval(oval, graphics); - } - for (PolylineData line : layer.getLines()) { - drawLayerLine(line, graphics); - } - } - - } - - /** - * Draw text on the Graphics2D. - * - * @param text - * object to be drawn - * @param graphics - * where we want to draw the object - */ - private void drawLayerText(final LayerText text, final Graphics2D graphics) { - if (visibleTextBorder) { - Color tmpColor = graphics.getColor(); - graphics.setColor(FRAME_COLOR); - Rectangle2D rect = new Rectangle2D.Double(text.getX(), text.getY(), text.getWidth(), text.getHeight()); - graphics.draw(rect); - graphics.setColor(tmpColor); - } - int x = text.getX().intValue() + 2; - int y = text.getY().intValue(); - y += graphics.getFontMetrics().getHeight(); - graphics.drawString(text.getNotes(), x, y); - - } - - /** - * Draws rectangle on the Graphics2D. - * - * @param rect - * object to be drawn - * @param graphics - * where we want to draw the object - */ - private void drawLayerRect(final LayerRect rect, final Graphics2D graphics) { - Color tmpColor = graphics.getColor(); - graphics.setColor(rect.getColor()); - Rectangle2D rectangle = new Rectangle2D.Double(rect.getX(), rect.getY(), rect.getWidth(), rect.getHeight()); - graphics.draw(rectangle); - graphics.setColor(tmpColor); - - } - - /** - * Draws line on the Graphics2D. - * - * @param line - * object to be drawn - * @param graphics - * where we want to draw the object - */ - private void drawLayerLine(final PolylineData line, final Graphics2D graphics) { - Color tmpColor = graphics.getColor(); - graphics.setColor(line.getColor()); - arrowTransformation.drawLine(line, graphics); - - graphics.setColor(tmpColor); - - } - - /** - * Draws oval on the Graphics2D. - * - * @param oval - * object to be drawn - * @param graphics - * where we want to draw the object - */ - private void drawLayerOval(final LayerOval oval, final Graphics2D graphics) { - Color tmpColor = graphics.getColor(); - graphics.setColor(oval.getColor()); - Ellipse2D o = new Ellipse2D.Double(oval.getX(), oval.getY(), oval.getWidth(), oval.getHeight()); - graphics.draw(o); - graphics.setColor(tmpColor); - - } + /** + * Default class logger. + */ + @SuppressWarnings("unused") + private static Logger logger = Logger.getLogger(LayerConverter.class.getName()); + + LayerLineConverter lineConverter; + LayerRectConverter rectConverter; + LayerOvalConverter ovalConverter; + LayerTextConverter textConverter; + + /** + * Default constructor. + * + * @param visibleTextBorder + * should the text have border + */ + public LayerConverter(final boolean visibleTextBorder) { + this.lineConverter = new LayerLineConverter(); + this.ovalConverter = new LayerOvalConverter(); + this.rectConverter = new LayerRectConverter(); + this.textConverter = new LayerTextConverter(visibleTextBorder); + } + + /** + * Draw the whole layer on the Graphics2D. + * + * @param layer + * object to be drawn + * @param graphics + * where we want to draw the object + */ + public void drawLayer(final Layer layer, final Graphics2D graphics) { + if (layer.isVisible()) { + for (LayerText text : layer.getTexts()) { + textConverter.draw(text, graphics); + } + for (LayerRect rect : layer.getRectangles()) { + rectConverter.draw(rect, graphics); + } + for (LayerOval oval : layer.getOvals()) { + ovalConverter.draw(oval, graphics); + } + for (PolylineData line : layer.getLines()) { + lineConverter.draw(line, graphics); + } + } + + } } \ No newline at end of file diff --git a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/layer/LayerLineConverter.java b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/layer/LayerLineConverter.java new file mode 100644 index 0000000000000000000000000000000000000000..db4382e3158dca277a9e60f39e3dbde841f5bf29 --- /dev/null +++ b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/layer/LayerLineConverter.java @@ -0,0 +1,46 @@ +package lcsb.mapviewer.converter.graphics.layer; + +import java.awt.Color; +import java.awt.Graphics2D; + +import org.apache.log4j.Logger; + +import lcsb.mapviewer.converter.graphics.geometry.ArrowTransformation; +import lcsb.mapviewer.model.graphics.PolylineData; + +/** + * This class allows to draw {@link PolylineData} on Graphics2D. + * + * @author Piotr Gawron + * + */ +public class LayerLineConverter { + + /** + * Default class logger. + */ + @SuppressWarnings("unused") + private static Logger logger = Logger.getLogger(LayerLineConverter.class.getName()); + + /** + * This objects helps drawing arrows. + */ + private ArrowTransformation arrowTransformation = new ArrowTransformation(); + + /** + * Draws line on the Graphics2D. + * + * @param line + * object to be drawn + * @param graphics + * where we want to draw the object + */ + public void draw(final PolylineData line, final Graphics2D graphics) { + Color tmpColor = graphics.getColor(); + graphics.setColor(line.getColor()); + arrowTransformation.drawLine(line, graphics); + + graphics.setColor(tmpColor); + + } +} \ No newline at end of file diff --git a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/layer/LayerOvalConverter.java b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/layer/LayerOvalConverter.java new file mode 100644 index 0000000000000000000000000000000000000000..92fc819dbc9a8ec4ad45e6c930aec3041936e871 --- /dev/null +++ b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/layer/LayerOvalConverter.java @@ -0,0 +1,40 @@ +package lcsb.mapviewer.converter.graphics.layer; + +import java.awt.Color; +import java.awt.Graphics2D; +import java.awt.geom.Ellipse2D; + +import org.apache.log4j.Logger; + +import lcsb.mapviewer.model.map.layout.graphics.LayerOval; + +/** + * This class allows to draw {@link LayerOval} on Graphics2D. + * + * @author Piotr Gawron + * + */ +public class LayerOvalConverter { + + /** + * Default class logger. + */ + @SuppressWarnings("unused") + private static Logger logger = Logger.getLogger(LayerOvalConverter.class.getName()); + + /** + * Draws oval on the Graphics2D. + * + * @param oval + * object to be drawn + * @param graphics + * where we want to draw the object + */ + public void draw(final LayerOval oval, final Graphics2D graphics) { + Color tmpColor = graphics.getColor(); + graphics.setColor(oval.getColor()); + Ellipse2D o = new Ellipse2D.Double(oval.getX(), oval.getY(), oval.getWidth(), oval.getHeight()); + graphics.draw(o); + graphics.setColor(tmpColor); + } +} \ No newline at end of file diff --git a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/layer/LayerRectConverter.java b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/layer/LayerRectConverter.java new file mode 100644 index 0000000000000000000000000000000000000000..c448d58c10419f762cbca49c83bd50ceccd05d49 --- /dev/null +++ b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/layer/LayerRectConverter.java @@ -0,0 +1,42 @@ +package lcsb.mapviewer.converter.graphics.layer; + +import java.awt.Color; +import java.awt.Graphics2D; +import java.awt.geom.Rectangle2D; + +import org.apache.log4j.Logger; + +import lcsb.mapviewer.model.map.layout.graphics.LayerRect; + +/** + * This class allows to draw layer on Graphics2D. + * + * @author Piotr Gawron + * + */ +public class LayerRectConverter { + + /** + * Default class logger. + */ + @SuppressWarnings("unused") + private static Logger logger = Logger.getLogger(LayerRectConverter.class.getName()); + + /** + * Draws rectangle on the Graphics2D. + * + * @param rect + * object to be drawn + * @param graphics + * where we want to draw the object + */ + public void draw(final LayerRect rect, final Graphics2D graphics) { + Color tmpColor = graphics.getColor(); + graphics.setColor(rect.getColor()); + Rectangle2D rectangle = new Rectangle2D.Double(rect.getX(), rect.getY(), rect.getWidth(), rect.getHeight()); + graphics.draw(rectangle); + graphics.setColor(tmpColor); + + } + +} \ No newline at end of file diff --git a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/layer/LayerTextConverter.java b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/layer/LayerTextConverter.java new file mode 100644 index 0000000000000000000000000000000000000000..3d5d5f99f4e071c78a8fefcf960b3cc52aa747b4 --- /dev/null +++ b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/layer/LayerTextConverter.java @@ -0,0 +1,71 @@ +package lcsb.mapviewer.converter.graphics.layer; + +import java.awt.Color; +import java.awt.Graphics2D; +import java.awt.geom.Rectangle2D; + +import org.apache.log4j.Logger; + +import lcsb.mapviewer.model.map.layout.graphics.LayerText; + +/** + * This class allows to draw {@link LayerText} on Graphics2D. + * + * @author Piotr Gawron + * + */ +public class LayerTextConverter { + + /** + * Default class logger. + */ + @SuppressWarnings("unused") + private static Logger logger = Logger.getLogger(LayerTextConverter.class.getName()); + + /** + * Color used for text frames. + */ + private static final Color FRAME_COLOR = Color.LIGHT_GRAY; + + /** + * Should the border around text be visible. + */ + private boolean visibleTextBorder = false; + + /** + * Default constructor. + * + * @param visibleTextBorder + * should the text have border + */ + public LayerTextConverter(final boolean visibleTextBorder) { + this.visibleTextBorder = visibleTextBorder; + } + + public LayerTextConverter() { + } + + /** + * Draw text on the Graphics2D. + * + * @param text + * object to be drawn + * @param graphics + * where we want to draw the object + */ + public void draw(final LayerText text, final Graphics2D graphics) { + if (visibleTextBorder) { + Color tmpColor = graphics.getColor(); + graphics.setColor(FRAME_COLOR); + Rectangle2D rect = new Rectangle2D.Double(text.getX(), text.getY(), text.getWidth(), text.getHeight()); + graphics.draw(rect); + graphics.setColor(tmpColor); + } + int x = text.getX().intValue() + 2; + int y = text.getY().intValue(); + y += graphics.getFontMetrics().getHeight(); + graphics.drawString(text.getNotes(), x, y); + + } + +} \ No newline at end of file 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 93381deaa9787e5c87ea07b6f23dfe0b9e078b72..83896981a3c0062286b1f8fc460a018e1472b2b6 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 @@ -1,11 +1,10 @@ package lcsb.mapviewer.converter.graphics; -import static org.mockito.Matchers.any; +import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import java.awt.Graphics2D; -import java.awt.geom.Point2D; import org.apache.log4j.Logger; import org.junit.After; @@ -14,138 +13,109 @@ import org.junit.Before; import org.junit.Test; import org.mockito.Mockito; -import lcsb.mapviewer.model.graphics.PolylineData; import lcsb.mapviewer.model.map.model.Model; import lcsb.mapviewer.model.map.model.ModelFullIndexed; -import lcsb.mapviewer.model.map.modifier.Catalysis; -import lcsb.mapviewer.model.map.reaction.Modifier; -import lcsb.mapviewer.model.map.reaction.Product; -import lcsb.mapviewer.model.map.reaction.Reactant; import lcsb.mapviewer.model.map.reaction.Reaction; import lcsb.mapviewer.model.map.species.GenericProtein; public class AbstractImageGeneratorTest extends GraphicsTestFunctions { - Logger logger = Logger.getLogger(AbstractImageGeneratorTest.class); - - @AfterClass - public static void tearDownAfterClass() throws Exception { - } - - @Before - public void setUp() throws Exception { - } - - @After - public void tearDown() throws Exception { - } - - @Test - public void testDrawSimpleMap() throws Exception { - try { - Graphics2D graphics = createGraphicsMock(); - - Model model = createSimpleModel(); - - AbstractImageGenerator gen = createAbstractImageGeneratorMock(graphics, model); - gen.draw(); - - //3 times for proteins and 4 times for reaction - verify(graphics, times(7)).draw(any()); - } catch (Exception e) { - throw e; - } - } - - @Test - public void testDrawSimpleMapWithNesting() throws Exception { - try { - Graphics2D graphics = createGraphicsMock(); - - Model model = createSimpleModel(); - - 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(7)).draw(any()); - } catch (Exception e) { - throw e; - } - } - - @Test - public void testDrawSimpleMapWithWhenNestingHidesElement() throws Exception { - try { - Graphics2D graphics = createGraphicsMock(); - - Model model = createSimpleModel(); - model.getElementByElementId("s1").setVisibilityLevel(2); - - AbstractImageGenerator gen = createAbstractImageGeneratorMock(graphics, model); - gen.setParams(new AbstractImageGenerator.Params().model(model).nested(true).level(0)); - gen.draw(); - - //2 times for proteins and 3 times for reaction - verify(graphics, times(5)).draw(any()); - } catch (Exception e) { - throw e; - } - } - - private Model createSimpleModel() { - Model model = new ModelFullIndexed(null); - model.setWidth(100); - model.setHeight(100); - - GenericProtein protein1 = new GenericProtein("s1"); - protein1.setX(10); - protein1.setY(10); - protein1.setWidth(10); - protein1.setHeight(10); - model.addElement(protein1); - - GenericProtein protein2 = new GenericProtein("s2"); - protein2.setX(30); - protein2.setY(10); - protein2.setWidth(10); - protein2.setHeight(10); - model.addElement(protein2); - - GenericProtein protein3 = new GenericProtein("s3"); - protein3.setX(40); - protein3.setY(10); - protein3.setWidth(10); - protein3.setHeight(10); - model.addElement(protein3); - - Reaction reaction = new Reaction(); - - Modifier modifier = new Catalysis(protein1); - modifier.setLine(new PolylineData(new Point2D.Double(100, 20), new Point2D.Double(100, 80))); - modifier.getLine().setWidth(1.0); - - Reactant reactant = new Reactant(protein2); - reactant.setLine(new PolylineData(new Point2D.Double(90, 90), new Point2D.Double(10, 90))); - reactant.getLine().setWidth(1.0); - Product product = new Product(protein3); - product.setLine(new PolylineData(new Point2D.Double(200, 90), new Point2D.Double(110, 90))); - product.getLine().setWidth(1.0); - reaction.addModifier(modifier); - reaction.addProduct(product); - reaction.addReactant(reactant); - - model.addReaction(reaction); - - return model; - } - - private AbstractImageGenerator createAbstractImageGeneratorMock(Graphics2D graphics, Model model) throws Exception { - AbstractImageGenerator result = Mockito.mock(AbstractImageGenerator.class, Mockito.CALLS_REAL_METHODS); - result.setGraphics(graphics); - result.setParams(new AbstractImageGenerator.Params().model(model).level(0)); - return result; - - } + Logger logger = Logger.getLogger(AbstractImageGeneratorTest.class); + + @AfterClass + public static void tearDownAfterClass() throws Exception { + } + + @Before + public void setUp() throws Exception { + } + + @After + public void tearDown() throws Exception { + } + + @Test + public void testDrawSimpleMap() throws Exception { + try { + Graphics2D graphics = createGraphicsMock(); + + Model model = createSimpleModel(); + + AbstractImageGenerator gen = createAbstractImageGeneratorMock(graphics, model); + gen.draw(); + + // 3 times for proteins and 4 times for reaction + verify(graphics, times(7)).draw(any()); + } catch (Exception e) { + throw e; + } + } + + @Test + public void testDrawSimpleMapWithNesting() throws Exception { + try { + Graphics2D graphics = createGraphicsMock(); + + Model model = createSimpleModel(); + + 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(7)).draw(any()); + } catch (Exception e) { + throw e; + } + } + + @Test + public void testDrawSimpleMapWithWhenNestingHidesElement() throws Exception { + try { + Graphics2D graphics = createGraphicsMock(); + + Model model = createSimpleModel(); + model.getElementByElementId("s1").setVisibilityLevel(2); + + AbstractImageGenerator gen = createAbstractImageGeneratorMock(graphics, model); + gen.setParams(new AbstractImageGenerator.Params().model(model).nested(true).level(0)); + gen.draw(); + + // 2 times for proteins and 3 times for reaction + verify(graphics, times(5)).draw(any()); + } catch (Exception e) { + throw e; + } + } + + private Model createSimpleModel() { + Model model = new ModelFullIndexed(null); + model.setWidth(100); + model.setHeight(100); + + GenericProtein protein1 = createProtein(); + model.addElement(protein1); + + GenericProtein protein2 = createProtein(); + protein2.setX(30); + model.addElement(protein2); + + GenericProtein protein3 = createProtein(); + protein3.setX(40); + model.addElement(protein3); + + Reaction reaction = createReaction(protein1, protein2, protein3); + + model.addReaction(reaction); + + return model; + } + + private AbstractImageGenerator createAbstractImageGeneratorMock(Graphics2D graphics, Model model) throws Exception { + AbstractImageGenerator result = Mockito.mock(AbstractImageGenerator.class, Mockito.CALLS_REAL_METHODS); + result.setGraphics(graphics); + result.setParams(new AbstractImageGenerator.Params().model(model).level(0)); + return result; + + } } diff --git a/converter-graphics/src/test/java/lcsb/mapviewer/converter/graphics/GraphicsTestFunctions.java b/converter-graphics/src/test/java/lcsb/mapviewer/converter/graphics/GraphicsTestFunctions.java index fb2537c840ee66a28cd0f0fb47f49057813c6270..049deae9211e5b769d7b5021e3e4f197b2f3dccd 100644 --- a/converter-graphics/src/test/java/lcsb/mapviewer/converter/graphics/GraphicsTestFunctions.java +++ b/converter-graphics/src/test/java/lcsb/mapviewer/converter/graphics/GraphicsTestFunctions.java @@ -6,11 +6,24 @@ import static org.mockito.Mockito.when; import java.awt.FontMetrics; import java.awt.Graphics; import java.awt.Graphics2D; +import java.awt.geom.Point2D; import java.awt.geom.Rectangle2D; import org.mockito.Mockito; +import lcsb.mapviewer.model.graphics.PolylineData; +import lcsb.mapviewer.model.map.modifier.Catalysis; +import lcsb.mapviewer.model.map.reaction.Modifier; +import lcsb.mapviewer.model.map.reaction.Product; +import lcsb.mapviewer.model.map.reaction.Reactant; +import lcsb.mapviewer.model.map.reaction.Reaction; +import lcsb.mapviewer.model.map.species.Complex; +import lcsb.mapviewer.model.map.species.GenericProtein; + public abstract class GraphicsTestFunctions { + + int elementCounter = 1; + protected Graphics2D createGraphicsMock() { Graphics2D graphics = Mockito.mock(Graphics2D.class); FontMetrics fontMetrics = Mockito.mock(FontMetrics.class); @@ -20,4 +33,49 @@ public abstract class GraphicsTestFunctions { return graphics; } + protected Reaction createReaction(GenericProtein modifierElement, GenericProtein reactantElement, + GenericProtein productElement) { + Reaction reaction = new Reaction("r" + elementCounter++); + + Point2D center = new Point2D.Double((reactantElement.getCenterX() + productElement.getCenterX()) / 2, + (reactantElement.getCenterY() + productElement.getCenterY()) / 2); + + Modifier modifier = new Catalysis(modifierElement); + modifier.setLine(new PolylineData(modifierElement.getCenter(), center)); + modifier.getLine().setWidth(1.0); + + Reactant reactant = new Reactant(reactantElement); + reactant.setLine(new PolylineData(reactantElement.getCenter(), center)); + reactant.getLine().setWidth(1.0); + Product product = new Product(productElement); + product.setLine(new PolylineData(productElement.getCenter(), center)); + product.getLine().setWidth(1.0); + reaction.addModifier(modifier); + reaction.addProduct(product); + reaction.addReactant(reactant); + reaction.setZ(elementCounter); + return reaction; + } + + protected GenericProtein createProtein() { + GenericProtein result = new GenericProtein("s" + elementCounter++); + result.setZ(elementCounter); + result.setX(10); + result.setY(10); + result.setWidth(10); + result.setHeight(10); + return result; + } + + protected Complex createComplex() { + Complex complex = new Complex("c"+elementCounter++); + complex.setName("a"); + complex.setX(300); + complex.setY(90); + complex.setWidth(100); + complex.setHeight(50); + complex.setZ(elementCounter); + return complex; + } + } diff --git a/converter-graphics/src/test/java/lcsb/mapviewer/converter/graphics/PdfImageGeneratorTest.java b/converter-graphics/src/test/java/lcsb/mapviewer/converter/graphics/PdfImageGeneratorTest.java index f9a9f36ed0415a61ec9683dd56aba9c683488147..ebee061191155f19eb1f417b3be8b17ab24c4026 100644 --- a/converter-graphics/src/test/java/lcsb/mapviewer/converter/graphics/PdfImageGeneratorTest.java +++ b/converter-graphics/src/test/java/lcsb/mapviewer/converter/graphics/PdfImageGeneratorTest.java @@ -55,6 +55,10 @@ public class PdfImageGeneratorTest extends GraphicsTestFunctions { layer.addLayerText(new LayerText(new Rectangle2D.Double(10, 10, 500, 500), "X asd")); layer.addLayerText(new LayerText(new Rectangle2D.Double(20, 20, 200, 200), "Y qwe ret")); layer.addLayerText(new LayerText(new Rectangle2D.Double(100, 100, 199, 220), "Z dgf fsd aaewq ret")); + + for (LayerText text: layer.getTexts()) { + text.setZ(0); + } new CreateHierarchyCommand(model, 1, 8).execute(); model.getCompartments().get(1).setTransparencyLevel("2"); @@ -103,17 +107,13 @@ public class PdfImageGeneratorTest extends GraphicsTestFunctions { layer.addLayerLine(new PolylineData(new Point2D.Double(0, 0), new Point2D.Double(100, 100))); - Complex alias = new Complex("1"); - alias.setName("a"); - alias.setX(300); - alias.setY(90); - alias.setWidth(100); - alias.setHeight(50); + Complex alias = createComplex(); model.addElement(alias); return model; } + @Test public void testDrawPathwayWithoutNesting() throws Exception { try { diff --git a/converter/src/main/java/lcsb/mapviewer/converter/ZIndexPopulator.java b/converter/src/main/java/lcsb/mapviewer/converter/ZIndexPopulator.java index e5d2e1773ef2912ff04051e8f026d84d9bcffc0f..e206f7ad3abd7f3d6ce48e3a826325424402c4dd 100644 --- a/converter/src/main/java/lcsb/mapviewer/converter/ZIndexPopulator.java +++ b/converter/src/main/java/lcsb/mapviewer/converter/ZIndexPopulator.java @@ -9,8 +9,9 @@ import org.apache.log4j.Logger; import lcsb.mapviewer.common.Configuration; import lcsb.mapviewer.common.comparator.DoubleComparator; import lcsb.mapviewer.common.comparator.StringComparator; -import lcsb.mapviewer.model.map.BioEntity; +import lcsb.mapviewer.model.map.Drawable; import lcsb.mapviewer.model.map.compartment.Compartment; +import lcsb.mapviewer.model.map.layout.graphics.Layer; import lcsb.mapviewer.model.map.model.Model; import lcsb.mapviewer.model.map.reaction.Reaction; import lcsb.mapviewer.model.map.species.Complex; @@ -41,36 +42,43 @@ public class ZIndexPopulator { public void populateZIndex(Model model) { int maxZIndex = 0; - List<BioEntity> bioEntities = new ArrayList<>(); + List<Drawable> bioEntities = new ArrayList<>(); bioEntities.addAll(model.getBioEntities()); - bioEntities.sort(new Comparator<BioEntity>() { + for (Layer layer : model.getLayers()) { + bioEntities.addAll(layer.getOvals()); + bioEntities.addAll(layer.getRectangles()); + bioEntities.addAll(layer.getTexts()); + } + bioEntities.addAll(model.getBioEntities()); + bioEntities.sort(new Comparator<Drawable>() { @Override - public int compare(BioEntity o1, BioEntity o2) { + public int compare(Drawable o1, Drawable o2) { if (o1 instanceof Reaction) { if (o2 instanceof Reaction) { - return stringComparator.compare(o1.getElementId(), o2.getElementId()); + return stringComparator.compare(((Reaction) o1).getElementId(), ((Reaction) o2).getElementId()); } return -1; } if (o2 instanceof Reaction) { return 1; } - Element e1 = (Element) o1; - Element e2 = (Element) o2; - - if (isChildren(e1, e2)) { - return -1; - } - if (isChildren(e2, e1)) { - return 1; - } + if (o1 instanceof Element && o2 instanceof Element) { + Element e1 = (Element) o1; + Element e2 = (Element) o2; - int result = -doubleComparator.compare(e1.getSize(), e2.getSize()); - if (result == 0) { - result = stringComparator.compare(e1.getElementId(), e2.getElementId()); + if (isChildren(e1, e2)) { + return -1; + } + if (isChildren(e2, e1)) { + return 1; + } + int result = -doubleComparator.compare(o1.getSize(), o2.getSize()); + if (result == 0) { + return stringComparator.compare(e1.getElementId(), e2.getElementId()); + } } - return result; + return -doubleComparator.compare(o1.getSize(), o2.getSize()); } private boolean isChildren(Element e1, Element e2) { @@ -87,7 +95,7 @@ public class ZIndexPopulator { } }); - for (BioEntity bioEntity : bioEntities) { + for (Drawable bioEntity : bioEntities) { if (bioEntity.getZ() == null) { bioEntity.setZ(++maxZIndex); } diff --git a/converter/src/test/java/lcsb/mapviewer/converter/ZIndexPopulatorTest.java b/converter/src/test/java/lcsb/mapviewer/converter/ZIndexPopulatorTest.java index d26ad8d1f051c4f17573a6abe1db21dfdec43a71..6d2f340d0b08e62049dfbf4d5a2afdde9cfb2a6a 100644 --- a/converter/src/test/java/lcsb/mapviewer/converter/ZIndexPopulatorTest.java +++ b/converter/src/test/java/lcsb/mapviewer/converter/ZIndexPopulatorTest.java @@ -7,6 +7,8 @@ import org.apache.log4j.Logger; import org.junit.Test; import lcsb.mapviewer.model.map.compartment.Compartment; +import lcsb.mapviewer.model.map.layout.graphics.Layer; +import lcsb.mapviewer.model.map.layout.graphics.LayerText; import lcsb.mapviewer.model.map.model.Model; import lcsb.mapviewer.model.map.model.ModelFullIndexed; import lcsb.mapviewer.model.map.reaction.Reaction; @@ -64,6 +66,37 @@ public class ZIndexPopulatorTest { assertTrue(smallerSpecies.getZ() < microSpecies.getZ()); } + @Test + public void testZIndexSpeciesAndText() { + Model model = new ModelFullIndexed(null); + Species microSpecies = createProtein(); + microSpecies.setWidth(1); + microSpecies.setHeight(1); + model.addElement(microSpecies); + + Layer layer = new Layer(); + model.addLayer(layer); + LayerText biggerText = createText(); + biggerText.setWidth(10.0); + biggerText.setHeight(10.0); + layer.addLayerText(biggerText); + + LayerText smallerText = createText(); + smallerText.setWidth(5.0); + smallerText.setHeight(5.0); + layer.addLayerText(smallerText); + + ZIndexPopulator populator = new ZIndexPopulator(); + populator.populateZIndex(model); + + assertTrue(biggerText.getZ() < smallerText.getZ()); + assertTrue(smallerText.getZ() < microSpecies.getZ()); + } + + private LayerText createText() { + return new LayerText(); + } + @Test public void testZIndexReactionShouldBeBeforeElement() { Model model = new ModelFullIndexed(null); diff --git a/frontend-js/package-lock.json b/frontend-js/package-lock.json index 71a6ee42c3325f6165141b02c007deadaac49a0b..17af1d3c74801220445bc910e69128516887d881 100644 --- a/frontend-js/package-lock.json +++ b/frontend-js/package-lock.json @@ -87,7 +87,6 @@ "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", @@ -3307,17 +3306,10 @@ } } }, - "log4js-memory-appender": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/log4js-memory-appender/-/log4js-memory-appender-1.0.5.tgz", - "integrity": "sha1-e4I2NDpCuLEgidjX+kebD22aNME=", - "dev": true - }, "longest": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", - "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", - "optional": true + "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=" }, "loose-envify": { "version": "1.3.1", @@ -5078,6 +5070,15 @@ } } }, + "stream-to-blob": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stream-to-blob/-/stream-to-blob-1.0.1.tgz", + "integrity": "sha512-aRy4neA4rf+qMtLT9fCRLPGWdrsIKtCx4kUdNTIPgPQ2hkHkdxbViVAvABMx9oRM6yCWfngHx6pwXfbYkVuPuw==", + "dev": true, + "requires": { + "once": "^1.3.3" + } + }, "streamroller": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-1.0.4.tgz", diff --git a/model-command/src/main/java/lcsb/mapviewer/commands/CreateHierarchyCommand.java b/model-command/src/main/java/lcsb/mapviewer/commands/CreateHierarchyCommand.java index dd651eba1bf644a26e7d6dc00b6dba3bcfb2dd74..adb5061425f39f5a07d72c0728ee30ace2141be7 100644 --- a/model-command/src/main/java/lcsb/mapviewer/commands/CreateHierarchyCommand.java +++ b/model-command/src/main/java/lcsb/mapviewer/commands/CreateHierarchyCommand.java @@ -165,6 +165,7 @@ public class CreateHierarchyCommand extends ModelCommand { compartment.setFontColor(rect.getColor()); compartment.setNamePoint(new Point2D.Double(rect.getX() + DEFAULT_TITLE_X_COORD_IN_ARTIFITIAL_COMPARTMENT, rect.getY() + DEFAULT_TITLE_Y_COORD_IN_ARTIFITIAL_COMPARTMENT)); + compartment.setZ(rect.getZ()); model.addElement(compartment); } @@ -178,6 +179,7 @@ public class CreateHierarchyCommand extends ModelCommand { compartment.setColor(text.getBackgroundColor()); compartment.setName(extractNameFromText(text.getNotes())); compartment.setNotes(extractNotesFromText(text.getNotes())); + compartment.setZ(text.getZ()); rap.processNotes(compartment); compartment.setNamePoint(new Point2D.Double(text.getX() + DEFAULT_TITLE_X_COORD_IN_ARTIFITIAL_COMPARTMENT, diff --git a/model/src/main/java/lcsb/mapviewer/model/graphics/PolylineData.java b/model/src/main/java/lcsb/mapviewer/model/graphics/PolylineData.java index 4c5479327a78b9d6ea9398e702599db03c4b5a8e..c6579e150b94c859e75ddff66aa45aa4e9a8e1d8 100644 --- a/model/src/main/java/lcsb/mapviewer/model/graphics/PolylineData.java +++ b/model/src/main/java/lcsb/mapviewer/model/graphics/PolylineData.java @@ -30,6 +30,7 @@ import lcsb.mapviewer.common.Configuration; import lcsb.mapviewer.common.exception.InvalidArgumentException; import lcsb.mapviewer.common.exception.NotImplementedException; import lcsb.mapviewer.common.geometry.PointTransformation; +import lcsb.mapviewer.model.map.Drawable; /** * This class represents general line structure. Line can contain several @@ -40,7 +41,7 @@ import lcsb.mapviewer.common.geometry.PointTransformation; * */ @Entity -public class PolylineData implements Serializable { +public class PolylineData implements Serializable, Drawable { /** * */ @@ -535,4 +536,19 @@ public class PolylineData implements Serializable { return sb.toString(); } + @Override + public Integer getZ() { + return 0; + } + + @Override + public void setZ(Integer z) { + logger.warn("Not implemented"); + } + + @Override + public double getSize() { + return 0; + } + } diff --git a/model/src/main/java/lcsb/mapviewer/model/map/BioEntity.java b/model/src/main/java/lcsb/mapviewer/model/map/BioEntity.java index e147071fdafafc2e16a69bb4f359e5d16f340b92..b7ab37bcb5cc006682bd19585a6593ea7658e0df 100644 --- a/model/src/main/java/lcsb/mapviewer/model/map/BioEntity.java +++ b/model/src/main/java/lcsb/mapviewer/model/map/BioEntity.java @@ -15,7 +15,7 @@ import lcsb.mapviewer.model.map.reaction.Reaction; * @author Piotr Gawron * */ -public interface BioEntity extends Serializable { +public interface BioEntity extends Serializable, Drawable { Comparator<? super BioEntity> ID_COMPARATOR = new Comparator<BioEntity>() { @Override @@ -200,19 +200,4 @@ public interface BioEntity extends Serializable { BioEntity copy(); - /** - * Returns z-index of the graphical representation. - * - * @return z-index of the graphical representation - */ - Integer getZ(); - - /** - * Sets z-index of the graphical representation. - * - * @param z - * z-index of the graphical representation - */ - void setZ(Integer z); - } diff --git a/model/src/main/java/lcsb/mapviewer/model/map/Drawable.java b/model/src/main/java/lcsb/mapviewer/model/map/Drawable.java new file mode 100644 index 0000000000000000000000000000000000000000..72c198d18107e8ea33a8f69d58d3540a345d9ec6 --- /dev/null +++ b/model/src/main/java/lcsb/mapviewer/model/map/Drawable.java @@ -0,0 +1,41 @@ +package lcsb.mapviewer.model.map; + +import java.util.Comparator; + +import org.apache.log4j.Logger; + +import lcsb.mapviewer.common.comparator.IntegerComparator; + +public interface Drawable { + + Comparator<? super Drawable> Z_INDEX_COMPARATOR = new Comparator<Drawable>() { + private IntegerComparator integerComparator = new IntegerComparator(); + + @Override + public int compare(Drawable o1, Drawable o2) { + Logger.getLogger(Drawable.class).debug(o1); + Logger.getLogger(Drawable.class).debug(o2); + int id1 = o1.getZ(); + int id2 = o2.getZ(); + return integerComparator.compare(id1, id2); + } + }; + + + /** + * Returns z-index of the graphical representation. + * + * @return z-index of the graphical representation + */ + Integer getZ(); + + /** + * Sets z-index of the graphical representation. + * + * @param z + * z-index of the graphical representation + */ + void setZ(Integer z); + + double getSize(); +} diff --git a/model/src/main/java/lcsb/mapviewer/model/map/layout/graphics/Layer.java b/model/src/main/java/lcsb/mapviewer/model/map/layout/graphics/Layer.java index a44fad8785ef94feef83faaeff904759e69110ff..7b397afc3a648759fdd13391c641a5fcc5ebccef 100644 --- a/model/src/main/java/lcsb/mapviewer/model/map/layout/graphics/Layer.java +++ b/model/src/main/java/lcsb/mapviewer/model/map/layout/graphics/Layer.java @@ -3,7 +3,9 @@ package lcsb.mapviewer.model.map.layout.graphics; import java.io.Serializable; import java.util.ArrayList; import java.util.Collection; +import java.util.HashSet; import java.util.List; +import java.util.Set; import javax.persistence.Entity; import javax.persistence.FetchType; @@ -22,6 +24,7 @@ import org.hibernate.annotations.CascadeType; import lcsb.mapviewer.common.exception.NotImplementedException; import lcsb.mapviewer.model.graphics.PolylineData; +import lcsb.mapviewer.model.map.Drawable; import lcsb.mapviewer.model.map.model.ModelData; /** @@ -408,4 +411,13 @@ public class Layer implements Serializable { public boolean isEmpty() { return this.getOvals().size() == 0 && this.getRectangles().size() == 0 && this.getTexts().size() == 0 && this.getLines().size()==0; } + + public Set<Drawable> getDrawables() { + Set<Drawable> result = new HashSet<>(); + result.addAll(lines); + result.addAll(ovals); + result.addAll(rectangles); + result.addAll(texts); + return result; + } } diff --git a/model/src/main/java/lcsb/mapviewer/model/map/layout/graphics/LayerOval.java b/model/src/main/java/lcsb/mapviewer/model/map/layout/graphics/LayerOval.java index 6b3c59cad42b57616e63700cc24f0a26e852a782..4361ed2adaa048c67b8057dd8b768a3099fe9833 100644 --- a/model/src/main/java/lcsb/mapviewer/model/map/layout/graphics/LayerOval.java +++ b/model/src/main/java/lcsb/mapviewer/model/map/layout/graphics/LayerOval.java @@ -12,6 +12,7 @@ import org.apache.log4j.Logger; import lcsb.mapviewer.common.exception.InvalidArgumentException; import lcsb.mapviewer.common.exception.NotImplementedException; +import lcsb.mapviewer.model.map.Drawable; /** * This class describes ellipse in the layer. @@ -20,7 +21,7 @@ import lcsb.mapviewer.common.exception.NotImplementedException; * */ @Entity -public class LayerOval implements Serializable { +public class LayerOval implements Serializable, Drawable { /** * @@ -65,6 +66,11 @@ public class LayerOval implements Serializable { */ private Double height = 0.0; + /** + * Z index. + */ + private Integer z; + /** * Default constructor. */ @@ -82,6 +88,7 @@ public class LayerOval implements Serializable { this.color = layerOval.getColor(); this.x = layerOval.getX(); this.y = layerOval.getX(); + this.z = layerOval.getZ(); this.width = layerOval.getWidth(); this.height = layerOval.getHeight(); } @@ -257,4 +264,19 @@ public class LayerOval implements Serializable { this.height = height; } + @Override + public Integer getZ() { + return z; + } + + @Override + public void setZ(Integer z) { + this.z = z; + } + + @Override + public double getSize() { + return width*height; + } + } diff --git a/model/src/main/java/lcsb/mapviewer/model/map/layout/graphics/LayerOvalComparator.java b/model/src/main/java/lcsb/mapviewer/model/map/layout/graphics/LayerOvalComparator.java index 4e036b93c7606ee2233009eeac03b2bba9158a82..28e0d8ca5051488d2f8e4dc9a21b912e3846bba9 100644 --- a/model/src/main/java/lcsb/mapviewer/model/map/layout/graphics/LayerOvalComparator.java +++ b/model/src/main/java/lcsb/mapviewer/model/map/layout/graphics/LayerOvalComparator.java @@ -4,6 +4,7 @@ import lcsb.mapviewer.common.Comparator; import lcsb.mapviewer.common.Configuration; import lcsb.mapviewer.common.comparator.ColorComparator; import lcsb.mapviewer.common.comparator.DoubleComparator; +import lcsb.mapviewer.common.comparator.IntegerComparator; /** * Comparator of {@link LayerOval} class. @@ -41,6 +42,7 @@ public class LayerOvalComparator extends Comparator<LayerOval> { protected int internalCompare(LayerOval arg0, LayerOval arg1) { DoubleComparator doubleComparator = new DoubleComparator(epsilon); ColorComparator colorComparator = new ColorComparator(); + IntegerComparator integerComparator = new IntegerComparator(); if (doubleComparator.compare(arg0.getWidth(), arg1.getWidth()) != 0) { return doubleComparator.compare(arg0.getWidth(), arg1.getWidth()); @@ -58,6 +60,10 @@ public class LayerOvalComparator extends Comparator<LayerOval> { return doubleComparator.compare(arg0.getY(), arg1.getY()); } + if (integerComparator.compare(arg0.getZ(), arg1.getZ()) != 0) { + return integerComparator.compare(arg0.getZ(), arg1.getZ()); + } + if (colorComparator.compare(arg0.getColor(), arg1.getColor()) != 0) { return colorComparator.compare(arg0.getColor(), arg1.getColor()); } diff --git a/model/src/main/java/lcsb/mapviewer/model/map/layout/graphics/LayerRect.java b/model/src/main/java/lcsb/mapviewer/model/map/layout/graphics/LayerRect.java index fb50c27a8915fc3f721d4dbb75c773d1fd2eb598..493d3ab9e76bb89a372ded30a9e2ff14085e1bb4 100644 --- a/model/src/main/java/lcsb/mapviewer/model/map/layout/graphics/LayerRect.java +++ b/model/src/main/java/lcsb/mapviewer/model/map/layout/graphics/LayerRect.java @@ -12,6 +12,7 @@ import org.apache.log4j.Logger; import lcsb.mapviewer.common.exception.InvalidArgumentException; import lcsb.mapviewer.common.exception.NotImplementedException; +import lcsb.mapviewer.model.map.Drawable; /** * This class describes rectangle in the layer. @@ -20,7 +21,7 @@ import lcsb.mapviewer.common.exception.NotImplementedException; * */ @Entity -public class LayerRect implements Serializable { +public class LayerRect implements Serializable, Drawable { /** * @@ -87,6 +88,7 @@ public class LayerRect implements Serializable { color = layerRect.getColor(); x = layerRect.getX(); y = layerRect.getY(); + z = layerRect.getZ(); width = layerRect.getWidth(); height = layerRect.getHeight(); } @@ -245,11 +247,18 @@ public class LayerRect implements Serializable { this.height = height; } + @Override public Integer getZ() { return z; } + @Override public void setZ(Integer z) { this.z = z; } + + @Override + public double getSize() { + return width * height; + } } diff --git a/model/src/main/java/lcsb/mapviewer/model/map/layout/graphics/LayerRectComparator.java b/model/src/main/java/lcsb/mapviewer/model/map/layout/graphics/LayerRectComparator.java index d9c00d40bb4ac4024b1f0752126b7dea7ad700ac..90c3453f38276f6727a210ad9bd37629d00a1c31 100644 --- a/model/src/main/java/lcsb/mapviewer/model/map/layout/graphics/LayerRectComparator.java +++ b/model/src/main/java/lcsb/mapviewer/model/map/layout/graphics/LayerRectComparator.java @@ -4,6 +4,7 @@ import lcsb.mapviewer.common.Comparator; import lcsb.mapviewer.common.Configuration; import lcsb.mapviewer.common.comparator.ColorComparator; import lcsb.mapviewer.common.comparator.DoubleComparator; +import lcsb.mapviewer.common.comparator.IntegerComparator; /** * Compparator of {@link LayerRect} class. @@ -41,6 +42,7 @@ public class LayerRectComparator extends Comparator<LayerRect> { protected int internalCompare(LayerRect arg0, LayerRect arg1) { DoubleComparator doubleComparator = new DoubleComparator(epsilon); ColorComparator colorComparator = new ColorComparator(); + IntegerComparator integerComparator = new IntegerComparator(); if (doubleComparator.compare(arg0.getWidth(), arg1.getWidth()) != 0) { return doubleComparator.compare(arg0.getWidth(), arg1.getWidth()); @@ -62,6 +64,11 @@ public class LayerRectComparator extends Comparator<LayerRect> { return colorComparator.compare(arg0.getColor(), arg1.getColor()); } + if (integerComparator.compare(arg0.getZ(), arg1.getZ()) != 0) { + return integerComparator.compare(arg0.getZ(), arg1.getZ()); + } + + return 0; } diff --git a/model/src/main/java/lcsb/mapviewer/model/map/layout/graphics/LayerText.java b/model/src/main/java/lcsb/mapviewer/model/map/layout/graphics/LayerText.java index 1a09e69c59d45be149d355e080307003d8ae31e9..af87c2ee02a97d8a8fbba75da6db259464ad1f2a 100644 --- a/model/src/main/java/lcsb/mapviewer/model/map/layout/graphics/LayerText.java +++ b/model/src/main/java/lcsb/mapviewer/model/map/layout/graphics/LayerText.java @@ -13,6 +13,7 @@ import org.apache.log4j.Logger; import lcsb.mapviewer.common.exception.InvalidArgumentException; import lcsb.mapviewer.common.exception.NotImplementedException; +import lcsb.mapviewer.model.map.Drawable; /** * This class describes single text in the layer. @@ -21,7 +22,7 @@ import lcsb.mapviewer.common.exception.NotImplementedException; * */ @Entity -public class LayerText implements Serializable { +public class LayerText implements Serializable, Drawable { /** * @@ -124,6 +125,7 @@ public class LayerText implements Serializable { color = layerText.getColor(); x = layerText.getX(); y = layerText.getY(); + z = layerText.getZ(); width = layerText.getWidth(); height = layerText.getHeight(); notes = layerText.getNotes(); @@ -355,12 +357,19 @@ public class LayerText implements Serializable { return "[" + this.getClass().getSimpleName() + ": " + this.getNotes() + "]"; } + @Override public Integer getZ() { return z; } + @Override public void setZ(Integer z) { this.z = z; } + @Override + public double getSize() { + return width * height; + } + } diff --git a/model/src/main/java/lcsb/mapviewer/model/map/layout/graphics/LayerTextComparator.java b/model/src/main/java/lcsb/mapviewer/model/map/layout/graphics/LayerTextComparator.java index 44870e9533a5edcd84981e19d5c0339d4c2b6223..385f5679fa03c1f3e8fd4d84df06e43a0fca0f1f 100644 --- a/model/src/main/java/lcsb/mapviewer/model/map/layout/graphics/LayerTextComparator.java +++ b/model/src/main/java/lcsb/mapviewer/model/map/layout/graphics/LayerTextComparator.java @@ -4,10 +4,11 @@ import lcsb.mapviewer.common.Comparator; import lcsb.mapviewer.common.Configuration; import lcsb.mapviewer.common.comparator.ColorComparator; import lcsb.mapviewer.common.comparator.DoubleComparator; +import lcsb.mapviewer.common.comparator.IntegerComparator; import lcsb.mapviewer.common.comparator.StringComparator; /** - * Compparator of {@link LayerText} class. + * Comparator of {@link LayerText} class. * * @author Piotr Gawron * @@ -43,6 +44,7 @@ public class LayerTextComparator extends Comparator<LayerText> { DoubleComparator doubleComparator = new DoubleComparator(epsilon); StringComparator stringComparator = new StringComparator(); ColorComparator colorComparator = new ColorComparator(); + IntegerComparator integerComparator = new IntegerComparator(); if (doubleComparator.compare(arg0.getWidth(), arg1.getWidth()) != 0) { return doubleComparator.compare(arg0.getWidth(), arg1.getWidth()); @@ -72,6 +74,10 @@ public class LayerTextComparator extends Comparator<LayerText> { return doubleComparator.compare(arg0.getFontSize(), arg1.getFontSize()); } + if (integerComparator.compare(arg0.getZ(), arg1.getZ()) != 0) { + return integerComparator.compare(arg0.getZ(), arg1.getZ()); + } + return 0; } diff --git a/model/src/main/java/lcsb/mapviewer/model/map/model/Model.java b/model/src/main/java/lcsb/mapviewer/model/map/model/Model.java index f7d388b2bef3e34edab7de55306851a273655a0a..f9df9d1113e7e79bffc0ee321fe8137ac39acb2c 100644 --- a/model/src/main/java/lcsb/mapviewer/model/map/model/Model.java +++ b/model/src/main/java/lcsb/mapviewer/model/map/model/Model.java @@ -255,20 +255,6 @@ public interface Model { */ void removeElement(Element element); - /** - * Returns list of reactions sorted by reaction id. - * - * @return list of reactions sorted by reaction id - */ - List<Reaction> getSortedReactions(); - - /** - * Return list of elements sorted by the size. - * - * @return list of elements sorted by the size - */ - List<Element> getSortedSpeciesList(); - /** * Returns collection of all {@link Species} excluding {@link Complex}. * diff --git a/model/src/main/java/lcsb/mapviewer/model/map/model/ModelFullIndexed.java b/model/src/main/java/lcsb/mapviewer/model/map/model/ModelFullIndexed.java index 673691677bc092b290167dba9806caa7056b3638..43480ff428104085b1484ddd2d4b84da5d836c43 100644 --- a/model/src/main/java/lcsb/mapviewer/model/map/model/ModelFullIndexed.java +++ b/model/src/main/java/lcsb/mapviewer/model/map/model/ModelFullIndexed.java @@ -331,22 +331,6 @@ public class ModelFullIndexed implements Model { } } - @Override - public List<Element> getSortedSpeciesList() { - List<Element> result = new ArrayList<>(); - result.addAll(getElements()); - Collections.sort(result, Element.SIZE_COMPARATOR); - return result; - } - - @Override - public List<Reaction> getSortedReactions() { - List<Reaction> result = new ArrayList<>(); - result.addAll(getReactions()); - Collections.sort(result, Reaction.ID_COMPARATOR); - return result; - } - @Override public void addElementGroup(ElementGroup elementGroup) { modelData.addElementGroup(elementGroup); diff --git a/model/src/main/java/lcsb/mapviewer/model/map/reaction/Reaction.java b/model/src/main/java/lcsb/mapviewer/model/map/reaction/Reaction.java index 4ecb9bafec0e060372e3345ecf3f5871c80398fb..02a9d8b2e9e0f37470d13f90aec51918c77d8c3c 100644 --- a/model/src/main/java/lcsb/mapviewer/model/map/reaction/Reaction.java +++ b/model/src/main/java/lcsb/mapviewer/model/map/reaction/Reaction.java @@ -920,4 +920,9 @@ public class Reaction implements BioEntity { public void setZ(Integer z) { this.z = z; } + + @Override + public double getSize() { + return 0; + } } diff --git a/model/src/test/java/lcsb/mapviewer/model/map/layout/graphics/LayerOvalComparatorTest.java b/model/src/test/java/lcsb/mapviewer/model/map/layout/graphics/LayerOvalComparatorTest.java index 468210ea8e474db497234a2209ba0f5117a9d8fa..f95ddfcac4fbb95ac860e852d516ad4b71284510 100644 --- a/model/src/test/java/lcsb/mapviewer/model/map/layout/graphics/LayerOvalComparatorTest.java +++ b/model/src/test/java/lcsb/mapviewer/model/map/layout/graphics/LayerOvalComparatorTest.java @@ -1,6 +1,8 @@ package lcsb.mapviewer.model.map.layout.graphics; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; import java.awt.Color; @@ -11,132 +13,148 @@ import org.junit.Test; import lcsb.mapviewer.common.exception.NotImplementedException; public class LayerOvalComparatorTest { - LayerOvalComparator comparator = new LayerOvalComparator(); - - @Before - public void setUp() throws Exception { - } - - @After - public void tearDown() throws Exception { - } - - @Test - public void testEquals() { - try { - LayerOval layer1 = getLayerOval(); - LayerOval layer2 = getLayerOval(); - - assertEquals(0, comparator.compare(new LayerOval(), new LayerOval())); - assertEquals(0, comparator.compare(layer1, layer2)); - assertEquals(0, comparator.compare(layer1, layer1)); - assertEquals(0, comparator.compare(null,null)); - - } catch (Exception e) { - e.printStackTrace(); - fail("Unknown exception"); - } - } - - private LayerOval getLayerOval() { - - LayerOval line = new LayerOval(); - line.setColor(Color.YELLOW); - line.setWidth(4.3); - - - return line; - } - - @Test - public void testDifferent() { - try { - LayerOval layer1 = getLayerOval(); - LayerOval layer2 = getLayerOval(); - - assertTrue(comparator.compare(layer1, new LayerOval())!=0); - - assertTrue(comparator.compare(layer1, null)!=0); - assertTrue(comparator.compare(null,layer1)!=0); - - layer1 = getLayerOval(); - layer2 = getLayerOval(); - - layer1.setColor(Color.GREEN); - - assertTrue(comparator.compare(layer1, layer2)!=0); - assertTrue(comparator.compare(layer2, layer1)!=0); - - layer1 = getLayerOval(); - layer2 = getLayerOval(); - - layer1.setHeight(78.0); - - assertTrue(comparator.compare(layer1, layer2)!=0); - assertTrue(comparator.compare(layer2, layer1)!=0); - - layer1 = getLayerOval(); - layer2 = getLayerOval(); - - layer1.setHeight(1.2); - - assertTrue(comparator.compare(layer1, layer2)!=0); - assertTrue(comparator.compare(layer2, layer1)!=0); - - layer1 = getLayerOval(); - layer2 = getLayerOval(); - - layer1.setX(33.4); - - assertTrue(comparator.compare(layer1, layer2)!=0); - assertTrue(comparator.compare(layer2, layer1)!=0); - - layer1 = getLayerOval(); - layer2 = getLayerOval(); - - layer1.setY(33.4); - - assertTrue(comparator.compare(layer1, layer2)!=0); - assertTrue(comparator.compare(layer2, layer1)!=0); - - } catch (Exception e) { - e.printStackTrace(); - fail("Unknown exception"); - } - } - - @Test - public void testDifferent2() { - try { - LayerOval layer1 = getLayerOval(); - - assertTrue(comparator.compare(layer1, new LayerOval() { - private static final long serialVersionUID = 1L; - }) != 0); - - } catch (Exception e) { - e.printStackTrace(); - fail("Unknown exception"); - } - } - - @Test - public void testInvalid() { - try { - class Tmp extends LayerOval { - private static final long serialVersionUID = 1L; - } - Tmp layer1 = new Tmp(); - Tmp layer2 = new Tmp(); - - comparator.compare(layer1, layer2); - fail("Exception expected"); - - } catch (NotImplementedException e) { - } catch (Exception e) { - e.printStackTrace(); - fail("Unknown exception"); - } - } - + LayerOvalComparator comparator = new LayerOvalComparator(); + + @Before + public void setUp() throws Exception { + } + + @After + public void tearDown() throws Exception { + } + + @Test + public void testEquals() { + try { + LayerOval layer1 = getLayerOval(); + LayerOval layer2 = getLayerOval(); + + assertEquals(0, comparator.compare(new LayerOval(), new LayerOval())); + assertEquals(0, comparator.compare(layer1, layer2)); + assertEquals(0, comparator.compare(layer1, layer1)); + assertEquals(0, comparator.compare(null, null)); + + } catch (Exception e) { + e.printStackTrace(); + fail("Unknown exception"); + } + } + + private LayerOval getLayerOval() { + + LayerOval line = new LayerOval(); + line.setColor(Color.YELLOW); + line.setWidth(4.3); + + return line; + } + + @Test + public void testDifferent() { + try { + LayerOval layer1 = getLayerOval(); + LayerOval layer2 = getLayerOval(); + + assertTrue(comparator.compare(layer1, new LayerOval()) != 0); + + assertTrue(comparator.compare(layer1, null) != 0); + assertTrue(comparator.compare(null, layer1) != 0); + + layer1 = getLayerOval(); + layer2 = getLayerOval(); + + layer1.setColor(Color.GREEN); + + assertTrue(comparator.compare(layer1, layer2) != 0); + assertTrue(comparator.compare(layer2, layer1) != 0); + + layer1 = getLayerOval(); + layer2 = getLayerOval(); + + layer1.setHeight(78.0); + + assertTrue(comparator.compare(layer1, layer2) != 0); + assertTrue(comparator.compare(layer2, layer1) != 0); + + layer1 = getLayerOval(); + layer2 = getLayerOval(); + + layer1.setHeight(1.2); + + assertTrue(comparator.compare(layer1, layer2) != 0); + assertTrue(comparator.compare(layer2, layer1) != 0); + + layer1 = getLayerOval(); + layer2 = getLayerOval(); + + layer1.setX(33.4); + + assertTrue(comparator.compare(layer1, layer2) != 0); + assertTrue(comparator.compare(layer2, layer1) != 0); + + layer1 = getLayerOval(); + layer2 = getLayerOval(); + + layer1.setY(33.4); + + assertTrue(comparator.compare(layer1, layer2) != 0); + assertTrue(comparator.compare(layer2, layer1) != 0); + + } catch (Exception e) { + e.printStackTrace(); + fail("Unknown exception"); + } + } + + @Test + public void testDifferentZIndex() { + try { + LayerOval layer1 = getLayerOval(); + LayerOval layer2 = getLayerOval(); + + layer1.setZ(12); + + assertTrue(comparator.compare(layer1, layer2) != 0); + assertTrue(comparator.compare(layer2, layer1) != 0); + + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testDifferent2() { + try { + LayerOval layer1 = getLayerOval(); + + assertTrue(comparator.compare(layer1, new LayerOval() { + private static final long serialVersionUID = 1L; + }) != 0); + + } catch (Exception e) { + e.printStackTrace(); + fail("Unknown exception"); + } + } + + @Test + public void testInvalid() { + try { + class Tmp extends LayerOval { + private static final long serialVersionUID = 1L; + } + Tmp layer1 = new Tmp(); + Tmp layer2 = new Tmp(); + + comparator.compare(layer1, layer2); + fail("Exception expected"); + + } catch (NotImplementedException e) { + } catch (Exception e) { + e.printStackTrace(); + fail("Unknown exception"); + } + } + } diff --git a/model/src/test/java/lcsb/mapviewer/model/map/layout/graphics/LayerOvalTest.java b/model/src/test/java/lcsb/mapviewer/model/map/layout/graphics/LayerOvalTest.java index ee96a805c25a7518710bd589632340672955518b..8eb3193486a26e659dd425feb204d90ed8ed5222 100644 --- a/model/src/test/java/lcsb/mapviewer/model/map/layout/graphics/LayerOvalTest.java +++ b/model/src/test/java/lcsb/mapviewer/model/map/layout/graphics/LayerOvalTest.java @@ -18,148 +18,155 @@ import lcsb.mapviewer.common.exception.NotImplementedException; public class LayerOvalTest { - @Before - public void setUp() throws Exception { - } - - @After - public void tearDown() throws Exception { - } - - @Test - public void testSerialization() { - try { - SerializationUtils.serialize(new LayerOval()); - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - public void testConstructor1() { - try { - LayerOval layerOval = new LayerOval(); - - LayerOval copy = new LayerOval(layerOval); - - assertNotNull(copy); - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - public void testCopy() { - try { - LayerOval copy = new LayerOval().copy(); - - assertNotNull(copy); - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - public void testInvalidCopy() { - try { - new LayerOval() { - - /** - * - */ - private static final long serialVersionUID = 1L; - }.copy(); - - fail("Exception expected"); - } catch (NotImplementedException e) { - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - public void testGetters() { - try { - LayerOval oval = new LayerOval(); - - String yParam = "1.2"; - Double y = 1.2; - - String xParam = "2.2"; - Double x = 2.2; - - String widthParam = "10.2"; - Double width = 10.2; - - String heightParam = "72.2"; - Double height = 72.2; - - String invalidNumberStr = "xxd"; - - int id = 52; - Color color = Color.BLACK; - - oval.setY(yParam); - assertEquals(y, oval.getY(), Configuration.EPSILON); - try { - oval.setY(invalidNumberStr); - fail("Exception expected"); - } catch (InvalidArgumentException e) { - } - oval.setY((Double) null); - assertNull(oval.getY()); - oval.setY(y); - assertEquals(y, oval.getY(), Configuration.EPSILON); - - oval.setX(xParam); - assertEquals(x, oval.getX(), Configuration.EPSILON); - try { - oval.setX(invalidNumberStr); - fail("Exception expected"); - } catch (InvalidArgumentException e) { - } - oval.setX((Double) null); - assertNull(oval.getX()); - oval.setX(x); - assertEquals(x, oval.getX(), Configuration.EPSILON); - - oval.setWidth(widthParam); - assertEquals(width, oval.getWidth(), Configuration.EPSILON); - try { - oval.setWidth(invalidNumberStr); - fail("Exception expected"); - } catch (InvalidArgumentException e) { - } - oval.setWidth((Double) null); - assertNull(oval.getWidth()); - oval.setWidth(width); - assertEquals(width, oval.getWidth(), Configuration.EPSILON); - - oval.setHeight(heightParam); - assertEquals(height, oval.getHeight(), Configuration.EPSILON); - try { - oval.setHeight(invalidNumberStr); - fail("Exception expected"); - } catch (InvalidArgumentException e) { - } - oval.setHeight((Double) null); - assertNull(oval.getHeight()); - oval.setHeight(height); - assertEquals(height, oval.getHeight(), Configuration.EPSILON); - - oval.setId(id); - assertEquals(id, oval.getId()); - oval.setColor(color); - assertEquals(color, oval.getColor()); - - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } + @Before + public void setUp() throws Exception { + } + + @After + public void tearDown() throws Exception { + } + + @Test + public void testSerialization() { + try { + SerializationUtils.serialize(createOval()); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testConstructor1() { + try { + LayerOval layerOval = createOval(); + + LayerOval copy = new LayerOval(layerOval); + + assertNotNull(copy); + assertEquals(0, new LayerOvalComparator().compare(layerOval, copy)); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + private LayerOval createOval() { + LayerOval result = new LayerOval(); + result.setZ(14); + return result; + } + + @Test + public void testCopy() { + try { + LayerOval copy = createOval().copy(); + + assertNotNull(copy); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testInvalidCopy() { + try { + new LayerOval() { + + /** + * + */ + private static final long serialVersionUID = 1L; + }.copy(); + + fail("Exception expected"); + } catch (NotImplementedException e) { + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testGetters() { + try { + LayerOval oval = createOval(); + + String yParam = "1.2"; + Double y = 1.2; + + String xParam = "2.2"; + Double x = 2.2; + + String widthParam = "10.2"; + Double width = 10.2; + + String heightParam = "72.2"; + Double height = 72.2; + + String invalidNumberStr = "xxd"; + + int id = 52; + Color color = Color.BLACK; + + oval.setY(yParam); + assertEquals(y, oval.getY(), Configuration.EPSILON); + try { + oval.setY(invalidNumberStr); + fail("Exception expected"); + } catch (InvalidArgumentException e) { + } + oval.setY((Double) null); + assertNull(oval.getY()); + oval.setY(y); + assertEquals(y, oval.getY(), Configuration.EPSILON); + + oval.setX(xParam); + assertEquals(x, oval.getX(), Configuration.EPSILON); + try { + oval.setX(invalidNumberStr); + fail("Exception expected"); + } catch (InvalidArgumentException e) { + } + oval.setX((Double) null); + assertNull(oval.getX()); + oval.setX(x); + assertEquals(x, oval.getX(), Configuration.EPSILON); + + oval.setWidth(widthParam); + assertEquals(width, oval.getWidth(), Configuration.EPSILON); + try { + oval.setWidth(invalidNumberStr); + fail("Exception expected"); + } catch (InvalidArgumentException e) { + } + oval.setWidth((Double) null); + assertNull(oval.getWidth()); + oval.setWidth(width); + assertEquals(width, oval.getWidth(), Configuration.EPSILON); + + oval.setHeight(heightParam); + assertEquals(height, oval.getHeight(), Configuration.EPSILON); + try { + oval.setHeight(invalidNumberStr); + fail("Exception expected"); + } catch (InvalidArgumentException e) { + } + oval.setHeight((Double) null); + assertNull(oval.getHeight()); + oval.setHeight(height); + assertEquals(height, oval.getHeight(), Configuration.EPSILON); + + oval.setId(id); + assertEquals(id, oval.getId()); + oval.setColor(color); + assertEquals(color, oval.getColor()); + + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } } diff --git a/model/src/test/java/lcsb/mapviewer/model/map/layout/graphics/LayerRectComparatorTest.java b/model/src/test/java/lcsb/mapviewer/model/map/layout/graphics/LayerRectComparatorTest.java index e3a3ebe5d9ded0ffa76e8af0e2453b911a61ab28..1e7d8685f34c26057bc83ea83cb062d39aa8a82b 100644 --- a/model/src/test/java/lcsb/mapviewer/model/map/layout/graphics/LayerRectComparatorTest.java +++ b/model/src/test/java/lcsb/mapviewer/model/map/layout/graphics/LayerRectComparatorTest.java @@ -1,6 +1,8 @@ package lcsb.mapviewer.model.map.layout.graphics; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; import java.awt.Color; @@ -11,131 +13,149 @@ import org.junit.Test; import lcsb.mapviewer.common.exception.NotImplementedException; public class LayerRectComparatorTest { - LayerRectComparator comparator = new LayerRectComparator(); - - @Before - public void setUp() throws Exception { - } - - @After - public void tearDown() throws Exception { - } - - @Test - public void testEquals() { - try { - LayerRect layer1 = getLayerRect(); - LayerRect layer2 = getLayerRect(); - - assertEquals(0, comparator.compare(new LayerRect(), new LayerRect())); - assertEquals(0, comparator.compare(layer1, layer2)); - assertEquals(0, comparator.compare(layer1, layer1)); - assertEquals(0, comparator.compare(null,null)); - - } catch (Exception e) { - e.printStackTrace(); - fail("Unknown exception"); - } - } - - private LayerRect getLayerRect() { - - LayerRect line = new LayerRect(); - line.setColor(Color.YELLOW); - line.setWidth(4.3); - - - return line; - } - - @Test - public void testDifferent() { - try { - LayerRect layer1 = getLayerRect(); - LayerRect layer2 = getLayerRect(); - - assertTrue(comparator.compare(layer1, new LayerRect())!=0); - - assertTrue(comparator.compare(layer1, null)!=0); - assertTrue(comparator.compare(null,layer1)!=0); - - layer1 = getLayerRect(); - layer2 = getLayerRect(); - - layer1.setColor(Color.GREEN); - - assertTrue(comparator.compare(layer1, layer2)!=0); - assertTrue(comparator.compare(layer2, layer1)!=0); - - layer1 = getLayerRect(); - layer2 = getLayerRect(); - - layer1.setHeight("23"); - - assertTrue(comparator.compare(layer1, layer2)!=0); - assertTrue(comparator.compare(layer2, layer1)!=0); - - layer1 = getLayerRect(); - layer2 = getLayerRect(); - - layer1.setHeight(1.2); - - assertTrue(comparator.compare(layer1, layer2)!=0); - assertTrue(comparator.compare(layer2, layer1)!=0); - - layer1 = getLayerRect(); - layer2 = getLayerRect(); - - layer1.setX(33.4); - - assertTrue(comparator.compare(layer1, layer2)!=0); - assertTrue(comparator.compare(layer2, layer1)!=0); - - layer1 = getLayerRect(); - layer2 = getLayerRect(); - - layer1.setY(33.4); - - assertTrue(comparator.compare(layer1, layer2)!=0); - assertTrue(comparator.compare(layer2, layer1)!=0); - - } catch (Exception e) { - e.printStackTrace(); - fail("Unknown exception"); - } - } - @Test - public void testDifferent2() { - try { - LayerRect layer1 = getLayerRect(); - - assertTrue(comparator.compare(layer1, new LayerRect() { - private static final long serialVersionUID = 1L; - }) != 0); - - } catch (Exception e) { - e.printStackTrace(); - fail("Unknown exception"); - } - } - - @Test - public void testInvalid() { - try { - class Tmp extends LayerRect { - private static final long serialVersionUID = 1L; - } - Tmp layer1 = new Tmp(); - Tmp layer2 = new Tmp(); - - comparator.compare(layer1, layer2); - fail("Exception expected"); - - } catch (NotImplementedException e) { - } catch (Exception e) { - e.printStackTrace(); - fail("Unknown exception"); - } - } + LayerRectComparator comparator = new LayerRectComparator(); + + @Before + public void setUp() throws Exception { + } + + @After + public void tearDown() throws Exception { + } + + @Test + public void testEquals() { + try { + LayerRect layer1 = getLayerRect(); + LayerRect layer2 = getLayerRect(); + + assertEquals(0, comparator.compare(new LayerRect(), new LayerRect())); + assertEquals(0, comparator.compare(layer1, layer2)); + assertEquals(0, comparator.compare(layer1, layer1)); + assertEquals(0, comparator.compare(null, null)); + + } catch (Exception e) { + e.printStackTrace(); + fail("Unknown exception"); + } + } + + private LayerRect getLayerRect() { + + LayerRect line = new LayerRect(); + line.setColor(Color.YELLOW); + line.setWidth(4.3); + + return line; + } + + @Test + public void testDifferent() { + try { + LayerRect layer1 = getLayerRect(); + LayerRect layer2 = getLayerRect(); + + assertTrue(comparator.compare(layer1, new LayerRect()) != 0); + + assertTrue(comparator.compare(layer1, null) != 0); + assertTrue(comparator.compare(null, layer1) != 0); + + layer1 = getLayerRect(); + layer2 = getLayerRect(); + + layer1.setColor(Color.GREEN); + + assertTrue(comparator.compare(layer1, layer2) != 0); + assertTrue(comparator.compare(layer2, layer1) != 0); + + layer1 = getLayerRect(); + layer2 = getLayerRect(); + + layer1.setHeight("23"); + + assertTrue(comparator.compare(layer1, layer2) != 0); + assertTrue(comparator.compare(layer2, layer1) != 0); + + layer1 = getLayerRect(); + layer2 = getLayerRect(); + + layer1.setHeight(1.2); + + assertTrue(comparator.compare(layer1, layer2) != 0); + assertTrue(comparator.compare(layer2, layer1) != 0); + + layer1 = getLayerRect(); + layer2 = getLayerRect(); + + layer1.setX(33.4); + + assertTrue(comparator.compare(layer1, layer2) != 0); + assertTrue(comparator.compare(layer2, layer1) != 0); + + layer1 = getLayerRect(); + layer2 = getLayerRect(); + + layer1.setY(33.4); + + assertTrue(comparator.compare(layer1, layer2) != 0); + assertTrue(comparator.compare(layer2, layer1) != 0); + + } catch (Exception e) { + e.printStackTrace(); + fail("Unknown exception"); + } + } + + @Test + public void testDifferent2() { + try { + LayerRect layer1 = getLayerRect(); + + assertTrue(comparator.compare(layer1, new LayerRect() { + private static final long serialVersionUID = 1L; + }) != 0); + + } catch (Exception e) { + e.printStackTrace(); + fail("Unknown exception"); + } + } + + @Test + public void testInvalid() { + try { + class Tmp extends LayerRect { + private static final long serialVersionUID = 1L; + } + Tmp layer1 = new Tmp(); + Tmp layer2 = new Tmp(); + + comparator.compare(layer1, layer2); + fail("Exception expected"); + + } catch (NotImplementedException e) { + } catch (Exception e) { + e.printStackTrace(); + fail("Unknown exception"); + } + } + + @Test + public void testDifferentZIndex() { + try { + LayerRect layer1 = getLayerRect(); + LayerRect layer2 = getLayerRect(); + + layer1.setZ(12); + + assertTrue(comparator.compare(layer1, layer2) != 0); + assertTrue(comparator.compare(layer2, layer1) != 0); + + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + } diff --git a/model/src/test/java/lcsb/mapviewer/model/map/layout/graphics/LayerRectTest.java b/model/src/test/java/lcsb/mapviewer/model/map/layout/graphics/LayerRectTest.java index ed02f6ef577508bc733ea50767d2c2dfccd3e653..b11a8d351a1cbbf2862436bfbb138d88d5544284 100644 --- a/model/src/test/java/lcsb/mapviewer/model/map/layout/graphics/LayerRectTest.java +++ b/model/src/test/java/lcsb/mapviewer/model/map/layout/graphics/LayerRectTest.java @@ -18,145 +18,152 @@ import lcsb.mapviewer.common.exception.NotImplementedException; public class LayerRectTest { - @Before - public void setUp() throws Exception { - } - - @After - public void tearDown() throws Exception { - } - - @Test - public void testSerialization() { - try { - SerializationUtils.serialize(new LayerRect()); - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - public void testConstructor1() { - try { - LayerRect layerRect = new LayerRect(); - - LayerRect copy = new LayerRect(layerRect); - - assertNotNull(copy); - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - public void testCopy() { - try { - LayerRect copy = new LayerRect().copy(); - - assertNotNull(copy); - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - public void testInvalidCopy() { - try { - new LayerRect() { - - /** - * - */ - private static final long serialVersionUID = 1L; - }.copy(); - - fail("Exception expected"); - } catch (NotImplementedException e) { - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - public void testGetters() { - try { - LayerRect rect = new LayerRect(); - - String yParam = "1.2"; - Double y = 1.2; - - String xParam = "2.2"; - Double x = 2.2; - - String widthParam = "10.2"; - Double width = 10.2; - - String heightParam = "72.2"; - Double height = 72.2; - - String invalidNumberStr = "xxd"; - - Color color = Color.BLACK; - - rect.setY(yParam); - assertEquals(y, rect.getY(), Configuration.EPSILON); - try { - rect.setY(invalidNumberStr); - fail("Exception expected"); - } catch (InvalidArgumentException e) { - } - rect.setY((Double) null); - assertNull(rect.getY()); - rect.setY(y); - assertEquals(y, rect.getY(), Configuration.EPSILON); - - rect.setX(xParam); - assertEquals(x, rect.getX(), Configuration.EPSILON); - try { - rect.setX(invalidNumberStr); - fail("Exception expected"); - } catch (InvalidArgumentException e) { - } - rect.setX((Double) null); - assertNull(rect.getX()); - rect.setX(x); - assertEquals(x, rect.getX(), Configuration.EPSILON); - - rect.setWidth(widthParam); - assertEquals(width, rect.getWidth(), Configuration.EPSILON); - try { - rect.setWidth(invalidNumberStr); - fail("Exception expected"); - } catch (InvalidArgumentException e) { - } - rect.setWidth((Double) null); - assertNull(rect.getWidth()); - rect.setWidth(width); - assertEquals(width, rect.getWidth(), Configuration.EPSILON); - - rect.setHeight(heightParam); - assertEquals(height, rect.getHeight(), Configuration.EPSILON); - try { - rect.setHeight(invalidNumberStr); - fail("Exception expected"); - } catch (InvalidArgumentException e) { - } - rect.setHeight((Double) null); - assertNull(rect.getHeight()); - rect.setHeight(height); - assertEquals(height, rect.getHeight(), Configuration.EPSILON); - - rect.setColor(color); - assertEquals(color, rect.getColor()); - - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } + @Before + public void setUp() throws Exception { + } + + @After + public void tearDown() throws Exception { + } + + @Test + public void testSerialization() { + try { + SerializationUtils.serialize(createRect()); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testConstructor1() { + try { + LayerRect layerRect = createRect(); + + LayerRect copy = new LayerRect(layerRect); + + assertNotNull(copy); + assertEquals(0, new LayerRectComparator().compare(layerRect, copy)); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + private LayerRect createRect() { + LayerRect result = new LayerRect(); + result.setZ(14); + return result; + } + + @Test + public void testCopy() { + try { + LayerRect copy = createRect().copy(); + + assertNotNull(copy); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testInvalidCopy() { + try { + new LayerRect() { + + /** + * + */ + private static final long serialVersionUID = 1L; + }.copy(); + + fail("Exception expected"); + } catch (NotImplementedException e) { + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testGetters() { + try { + LayerRect rect = createRect(); + + String yParam = "1.2"; + Double y = 1.2; + + String xParam = "2.2"; + Double x = 2.2; + + String widthParam = "10.2"; + Double width = 10.2; + + String heightParam = "72.2"; + Double height = 72.2; + + String invalidNumberStr = "xxd"; + + Color color = Color.BLACK; + + rect.setY(yParam); + assertEquals(y, rect.getY(), Configuration.EPSILON); + try { + rect.setY(invalidNumberStr); + fail("Exception expected"); + } catch (InvalidArgumentException e) { + } + rect.setY((Double) null); + assertNull(rect.getY()); + rect.setY(y); + assertEquals(y, rect.getY(), Configuration.EPSILON); + + rect.setX(xParam); + assertEquals(x, rect.getX(), Configuration.EPSILON); + try { + rect.setX(invalidNumberStr); + fail("Exception expected"); + } catch (InvalidArgumentException e) { + } + rect.setX((Double) null); + assertNull(rect.getX()); + rect.setX(x); + assertEquals(x, rect.getX(), Configuration.EPSILON); + + rect.setWidth(widthParam); + assertEquals(width, rect.getWidth(), Configuration.EPSILON); + try { + rect.setWidth(invalidNumberStr); + fail("Exception expected"); + } catch (InvalidArgumentException e) { + } + rect.setWidth((Double) null); + assertNull(rect.getWidth()); + rect.setWidth(width); + assertEquals(width, rect.getWidth(), Configuration.EPSILON); + + rect.setHeight(heightParam); + assertEquals(height, rect.getHeight(), Configuration.EPSILON); + try { + rect.setHeight(invalidNumberStr); + fail("Exception expected"); + } catch (InvalidArgumentException e) { + } + rect.setHeight((Double) null); + assertNull(rect.getHeight()); + rect.setHeight(height); + assertEquals(height, rect.getHeight(), Configuration.EPSILON); + + rect.setColor(color); + assertEquals(color, rect.getColor()); + + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } } diff --git a/model/src/test/java/lcsb/mapviewer/model/map/layout/graphics/LayerTextComparatorTest.java b/model/src/test/java/lcsb/mapviewer/model/map/layout/graphics/LayerTextComparatorTest.java index ad94f9b49a8b0bfeefe962ace4d2731149e1d21d..71047387d9329ea490ac0f4850d4161e8dd7630f 100644 --- a/model/src/test/java/lcsb/mapviewer/model/map/layout/graphics/LayerTextComparatorTest.java +++ b/model/src/test/java/lcsb/mapviewer/model/map/layout/graphics/LayerTextComparatorTest.java @@ -13,139 +13,157 @@ import org.junit.Test; import lcsb.mapviewer.common.exception.NotImplementedException; public class LayerTextComparatorTest { - LayerTextComparator comparator = new LayerTextComparator(); + LayerTextComparator comparator = new LayerTextComparator(); - @Before - public void setUp() throws Exception { - } + @Before + public void setUp() throws Exception { + } - @After - public void tearDown() throws Exception { - } + @After + public void tearDown() throws Exception { + } - @Test - public void testEquals() { - try { - LayerText layer1 = getLayerText(); - LayerText layer2 = getLayerText(); + @Test + public void testEquals() { + try { + LayerText layer1 = getLayerText(); + LayerText layer2 = getLayerText(); - assertEquals(0, comparator.compare(new LayerText(), new LayerText())); - assertEquals(0, comparator.compare(layer1, layer2)); - assertEquals(0, comparator.compare(layer1, layer1)); - assertEquals(0, comparator.compare(null, null)); + assertEquals(0, comparator.compare(new LayerText(), new LayerText())); + assertEquals(0, comparator.compare(layer1, layer2)); + assertEquals(0, comparator.compare(layer1, layer1)); + assertEquals(0, comparator.compare(null, null)); - } catch (Exception e) { - e.printStackTrace(); - fail("Unknown exception"); - } - } + } catch (Exception e) { + e.printStackTrace(); + fail("Unknown exception"); + } + } - @Test - public void testDifferent2() { - try { - LayerText layer1 = getLayerText(); + @Test + public void testDifferent2() { + try { + LayerText layer1 = getLayerText(); - assertTrue(comparator.compare(layer1, new LayerText() { - private static final long serialVersionUID = 1L; - }) != 0); + assertTrue(comparator.compare(layer1, new LayerText() { + private static final long serialVersionUID = 1L; + }) != 0); - } catch (Exception e) { - e.printStackTrace(); - fail("Unknown exception"); - } - } + } catch (Exception e) { + e.printStackTrace(); + fail("Unknown exception"); + } + } - @Test - public void testInvalid() { - try { - class Tmp extends LayerText { - private static final long serialVersionUID = 1L; - } - Tmp layer1 = new Tmp(); - Tmp layer2 = new Tmp(); + @Test + public void testInvalid() { + try { + class Tmp extends LayerText { + private static final long serialVersionUID = 1L; + } + Tmp layer1 = new Tmp(); + Tmp layer2 = new Tmp(); - comparator.compare(layer1, layer2); + comparator.compare(layer1, layer2); - fail("Exception expected"); - } catch (NotImplementedException e) { - } catch (Exception e) { - e.printStackTrace(); - fail("Unknown exception"); - } - } + fail("Exception expected"); + } catch (NotImplementedException e) { + } catch (Exception e) { + e.printStackTrace(); + fail("Unknown exception"); + } + } - private LayerText getLayerText() { + private LayerText getLayerText() { - LayerText line = new LayerText(); - line.setColor(Color.YELLOW); - line.setNotes(":asd"); - line.setFontSize(4.3); + LayerText line = new LayerText(); + line.setColor(Color.YELLOW); + line.setNotes(":asd"); + line.setFontSize(4.3); - return line; - } + return line; + } - @Test - public void testDifferent() { - try { - LayerText layer1 = getLayerText(); - LayerText layer2 = getLayerText(); + @Test + public void testDifferent() { + try { + LayerText layer1 = getLayerText(); + LayerText layer2 = getLayerText(); - assertTrue(comparator.compare(layer1, new LayerText()) != 0); + assertTrue(comparator.compare(layer1, new LayerText()) != 0); - assertTrue(comparator.compare(layer1, null) != 0); - assertTrue(comparator.compare(null, layer1) != 0); + assertTrue(comparator.compare(layer1, null) != 0); + assertTrue(comparator.compare(null, layer1) != 0); - layer1 = getLayerText(); - layer2 = getLayerText(); + layer1 = getLayerText(); + layer2 = getLayerText(); - layer1.setColor(Color.GREEN); + layer1.setColor(Color.GREEN); - assertTrue(comparator.compare(layer1, layer2) != 0); - assertTrue(comparator.compare(layer2, layer1) != 0); + assertTrue(comparator.compare(layer1, layer2) != 0); + assertTrue(comparator.compare(layer2, layer1) != 0); - layer1 = getLayerText(); - layer2 = getLayerText(); + layer1 = getLayerText(); + layer2 = getLayerText(); - layer1.setNotes("asd"); + layer1.setNotes("asd"); - assertTrue(comparator.compare(layer1, layer2) != 0); - assertTrue(comparator.compare(layer2, layer1) != 0); + assertTrue(comparator.compare(layer1, layer2) != 0); + assertTrue(comparator.compare(layer2, layer1) != 0); - layer1 = getLayerText(); - layer2 = getLayerText(); + layer1 = getLayerText(); + layer2 = getLayerText(); - layer1.setHeight(1.2); + layer1.setHeight(1.2); - assertTrue(comparator.compare(layer1, layer2) != 0); - assertTrue(comparator.compare(layer2, layer1) != 0); + assertTrue(comparator.compare(layer1, layer2) != 0); + assertTrue(comparator.compare(layer2, layer1) != 0); - layer1 = getLayerText(); - layer2 = getLayerText(); + layer1 = getLayerText(); + layer2 = getLayerText(); - layer1.setX(33.4); + layer1.setX(33.4); - assertTrue(comparator.compare(layer1, layer2) != 0); - assertTrue(comparator.compare(layer2, layer1) != 0); + assertTrue(comparator.compare(layer1, layer2) != 0); + assertTrue(comparator.compare(layer2, layer1) != 0); - layer1 = getLayerText(); - layer2 = getLayerText(); + layer1 = getLayerText(); + layer2 = getLayerText(); - layer1.setY(33.4); + layer1.setY(33.4); - assertTrue(comparator.compare(layer1, layer2) != 0); - assertTrue(comparator.compare(layer2, layer1) != 0); + assertTrue(comparator.compare(layer1, layer2) != 0); + assertTrue(comparator.compare(layer2, layer1) != 0); - layer1 = getLayerText(); - layer2 = getLayerText(); + layer1 = getLayerText(); + layer2 = getLayerText(); - layer1.setFontSize(64.1); + layer1.setFontSize(64.1); - assertTrue(comparator.compare(layer1, layer2) != 0); - assertTrue(comparator.compare(layer2, layer1) != 0); + assertTrue(comparator.compare(layer1, layer2) != 0); + assertTrue(comparator.compare(layer2, layer1) != 0); + + } catch (Exception e) { + e.printStackTrace(); + fail("Unknown exception"); + } + } + + @Test + public void testDifferentZIndex() { + try { + LayerText layer1 = getLayerText(); + LayerText layer2 = getLayerText(); + + layer1.setZ(12); + + assertTrue(comparator.compare(layer1, layer2) != 0); + assertTrue(comparator.compare(layer2, layer1) != 0); + + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } - } catch (Exception e) { - e.printStackTrace(); - fail("Unknown exception"); - } - } } diff --git a/model/src/test/java/lcsb/mapviewer/model/map/layout/graphics/LayerTextTest.java b/model/src/test/java/lcsb/mapviewer/model/map/layout/graphics/LayerTextTest.java index a9bd36d8da913fd0789532206161700f40892325..3dc6b454cb67a34e1a0f75a0eef1674a6956b0c8 100644 --- a/model/src/test/java/lcsb/mapviewer/model/map/layout/graphics/LayerTextTest.java +++ b/model/src/test/java/lcsb/mapviewer/model/map/layout/graphics/LayerTextTest.java @@ -18,179 +18,186 @@ import lcsb.mapviewer.common.exception.NotImplementedException; public class LayerTextTest { - @Before - public void setUp() throws Exception { - } - - @After - public void tearDown() throws Exception { - } - - @Test - public void testSerialization() { - try { - SerializationUtils.serialize(new LayerText()); - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - public void testConstructor1() { - try { - LayerText layerText = new LayerText(); - - LayerText copy = new LayerText(layerText); - - assertNotNull(copy); - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - public void testConstructor2() { - try { - - LayerText copy = new LayerText(new Rectangle2D.Double(), "text"); - - assertNotNull(copy); - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - public void testCopy() { - try { - LayerText copy = new LayerText().copy(); - - assertNotNull(copy); - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - public void testInvalidCopy() { - try { - new LayerText() { - - /** - * - */ - private static final long serialVersionUID = 1L; - }.copy(); - - fail("Exception expected"); - } catch (NotImplementedException e) { - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - public void testGetBorder() { - try { - LayerText copy = new LayerText().copy(); - assertNotNull(copy.getBorder()); - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - public void testGetters() { - try { - LayerText text = new LayerText(); - - String yParam = "1.2"; - Double y = 1.2; - - String xParam = "2.2"; - Double x = 2.2; - - String widthParam = "10.2"; - Double width = 10.2; - - String heightParam = "72.2"; - Double height = 72.2; - - String fontSizeParam = "5.0"; - Double fontSize = 5.0; - - String invalidNumberStr = "xxd"; - - text.setY(yParam); - assertEquals(y, text.getY(), Configuration.EPSILON); - try { - text.setY(invalidNumberStr); - fail("Exception expected"); - } catch (InvalidArgumentException e) { - } - assertEquals(y, text.getY(), Configuration.EPSILON); - text.setY((Double) null); - assertNull(text.getY()); - text.setY(y); - assertEquals(y, text.getY(), Configuration.EPSILON); - - text.setX(xParam); - assertEquals(x, text.getX(), Configuration.EPSILON); - try { - text.setX(invalidNumberStr); - fail("Exception expected"); - } catch (InvalidArgumentException e) { - } - text.setX((Double) null); - assertNull(text.getX()); - text.setX(x); - assertEquals(x, text.getX(), Configuration.EPSILON); - - text.setFontSize(fontSizeParam); - assertEquals(fontSize, text.getFontSize(), Configuration.EPSILON); - try { - text.setFontSize(invalidNumberStr); - fail("Exception expected"); - } catch (InvalidArgumentException e) { - } - text.setFontSize((Double) null); - assertNull(text.getFontSize()); - text.setFontSize(fontSize); - assertEquals(fontSize, text.getFontSize(), Configuration.EPSILON); - - text.setWidth(widthParam); - assertEquals(width, text.getWidth(), Configuration.EPSILON); - try { - text.setWidth(invalidNumberStr); - fail("Exception expected"); - } catch (InvalidArgumentException e) { - } - text.setWidth((Double) null); - assertNull(text.getWidth()); - text.setWidth(width); - assertEquals(width, text.getWidth(), Configuration.EPSILON); - - text.setHeight(heightParam); - assertEquals(height, text.getHeight(), Configuration.EPSILON); - try { - text.setHeight(invalidNumberStr); - fail("Exception expected"); - } catch (InvalidArgumentException e) { - } - text.setHeight((Double) null); - assertNull(text.getHeight()); - text.setHeight(height); - assertEquals(height, text.getHeight(), Configuration.EPSILON); - - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } + @Before + public void setUp() throws Exception { + } + + @After + public void tearDown() throws Exception { + } + + @Test + public void testSerialization() { + try { + SerializationUtils.serialize(createText()); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testConstructor1() { + try { + LayerText layerText = createText(); + + LayerText copy = new LayerText(layerText); + + assertNotNull(copy); + assertEquals(0, new LayerTextComparator().compare(layerText, copy)); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + private LayerText createText() { + LayerText result = new LayerText(); + result.setZ(16); + return result; + } + + @Test + public void testConstructor2() { + try { + + LayerText copy = new LayerText(new Rectangle2D.Double(), "text"); + + assertNotNull(copy); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testCopy() { + try { + LayerText copy = createText().copy(); + + assertNotNull(copy); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testInvalidCopy() { + try { + new LayerText() { + + /** + * + */ + private static final long serialVersionUID = 1L; + }.copy(); + + fail("Exception expected"); + } catch (NotImplementedException e) { + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testGetBorder() { + try { + LayerText copy = createText().copy(); + assertNotNull(copy.getBorder()); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testGetters() { + try { + LayerText text = createText(); + + String yParam = "1.2"; + Double y = 1.2; + + String xParam = "2.2"; + Double x = 2.2; + + String widthParam = "10.2"; + Double width = 10.2; + + String heightParam = "72.2"; + Double height = 72.2; + + String fontSizeParam = "5.0"; + Double fontSize = 5.0; + + String invalidNumberStr = "xxd"; + + text.setY(yParam); + assertEquals(y, text.getY(), Configuration.EPSILON); + try { + text.setY(invalidNumberStr); + fail("Exception expected"); + } catch (InvalidArgumentException e) { + } + assertEquals(y, text.getY(), Configuration.EPSILON); + text.setY((Double) null); + assertNull(text.getY()); + text.setY(y); + assertEquals(y, text.getY(), Configuration.EPSILON); + + text.setX(xParam); + assertEquals(x, text.getX(), Configuration.EPSILON); + try { + text.setX(invalidNumberStr); + fail("Exception expected"); + } catch (InvalidArgumentException e) { + } + text.setX((Double) null); + assertNull(text.getX()); + text.setX(x); + assertEquals(x, text.getX(), Configuration.EPSILON); + + text.setFontSize(fontSizeParam); + assertEquals(fontSize, text.getFontSize(), Configuration.EPSILON); + try { + text.setFontSize(invalidNumberStr); + fail("Exception expected"); + } catch (InvalidArgumentException e) { + } + text.setFontSize((Double) null); + assertNull(text.getFontSize()); + text.setFontSize(fontSize); + assertEquals(fontSize, text.getFontSize(), Configuration.EPSILON); + + text.setWidth(widthParam); + assertEquals(width, text.getWidth(), Configuration.EPSILON); + try { + text.setWidth(invalidNumberStr); + fail("Exception expected"); + } catch (InvalidArgumentException e) { + } + text.setWidth((Double) null); + assertNull(text.getWidth()); + text.setWidth(width); + assertEquals(width, text.getWidth(), Configuration.EPSILON); + + text.setHeight(heightParam); + assertEquals(height, text.getHeight(), Configuration.EPSILON); + try { + text.setHeight(invalidNumberStr); + fail("Exception expected"); + } catch (InvalidArgumentException e) { + } + text.setHeight((Double) null); + assertNull(text.getHeight()); + text.setHeight(height); + assertEquals(height, text.getHeight(), Configuration.EPSILON); + + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } } diff --git a/model/src/test/java/lcsb/mapviewer/model/map/model/ModelFullIndexedTest.java b/model/src/test/java/lcsb/mapviewer/model/map/model/ModelFullIndexedTest.java index 185f8638c4de921d48f2325613abc5a2759ca255..bb36ace8271dc52cdd8960c49262925e374471ae 100644 --- a/model/src/test/java/lcsb/mapviewer/model/map/model/ModelFullIndexedTest.java +++ b/model/src/test/java/lcsb/mapviewer/model/map/model/ModelFullIndexedTest.java @@ -408,12 +408,6 @@ public class ModelFullIndexedTest { assertEquals(1, model.getComplexList().size()); assertEquals(1, model.getNotComplexSpeciesList().size()); - List<Element> sortedSpecies = model.getSortedSpeciesList(); - - assertEquals(compartment, sortedSpecies.get(0)); - assertEquals(species, sortedSpecies.get(1)); - assertEquals(complex, sortedSpecies.get(2)); - } catch (Exception e) { e.printStackTrace(); throw e; @@ -634,9 +628,6 @@ public class ModelFullIndexedTest { assertTrue(model.getReactions().contains(reaction)); - assertEquals(reaction2, model.getSortedReactions().get(0)); - assertEquals(reaction, model.getSortedReactions().get(1)); - model.removeReaction(reaction2); assertEquals(1, model.getReactions().size()); diff --git a/persist/src/test/java/lcsb/mapviewer/persist/dao/map/CommentDaoTest.java b/persist/src/test/java/lcsb/mapviewer/persist/dao/map/CommentDaoTest.java index 33215a9c4f6a4be751ff3623d8e358010f699601..52497d0bf85dfacfc522ecccbdb58a7194b0efb1 100644 --- a/persist/src/test/java/lcsb/mapviewer/persist/dao/map/CommentDaoTest.java +++ b/persist/src/test/java/lcsb/mapviewer/persist/dao/map/CommentDaoTest.java @@ -2,8 +2,6 @@ package lcsb.mapviewer.persist.dao.map; import static org.junit.Assert.assertEquals; -import java.awt.Color; - import org.junit.After; import org.junit.Before; import org.junit.Test; diff --git a/persist/src/test/java/lcsb/mapviewer/persist/dao/map/LayoutDaoTest.java b/persist/src/test/java/lcsb/mapviewer/persist/dao/map/LayoutDaoTest.java index 1f919494d857c1b2905fd7e3b4e807665c6228b8..b5ef2da1d92622080d39538512f19218be02795f 100644 --- a/persist/src/test/java/lcsb/mapviewer/persist/dao/map/LayoutDaoTest.java +++ b/persist/src/test/java/lcsb/mapviewer/persist/dao/map/LayoutDaoTest.java @@ -4,7 +4,6 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; -import java.awt.Color; import java.nio.charset.StandardCharsets; import org.apache.log4j.Logger; @@ -22,7 +21,6 @@ import lcsb.mapviewer.model.map.compartment.Compartment; import lcsb.mapviewer.model.map.layout.DataOverlayImageLayer; import lcsb.mapviewer.model.map.layout.Layout; 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.Product; diff --git a/persist/src/test/java/lcsb/mapviewer/persist/dao/map/ModelDaoTest.java b/persist/src/test/java/lcsb/mapviewer/persist/dao/map/ModelDaoTest.java index 3e56245fbd75818d146a6292bf0746c5b515cf13..ef22436b5fe44e8e57b1c68ebe0a4af32a2955d1 100644 --- a/persist/src/test/java/lcsb/mapviewer/persist/dao/map/ModelDaoTest.java +++ b/persist/src/test/java/lcsb/mapviewer/persist/dao/map/ModelDaoTest.java @@ -6,7 +6,6 @@ import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; -import java.awt.Color; import java.awt.geom.Point2D; import org.apache.log4j.Logger; @@ -26,7 +25,6 @@ import lcsb.mapviewer.model.map.kinetics.SbmlUnit; import lcsb.mapviewer.model.map.kinetics.SbmlUnitType; import lcsb.mapviewer.model.map.kinetics.SbmlUnitTypeFactor; import lcsb.mapviewer.model.map.layout.graphics.Layer; -import lcsb.mapviewer.model.map.layout.graphics.LayerRect; import lcsb.mapviewer.model.map.model.Author; import lcsb.mapviewer.model.map.model.Model; import lcsb.mapviewer.model.map.model.ModelComparator;