diff --git a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/CellDesignerXmlParser.java b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/CellDesignerXmlParser.java index 26d31a3941386a7545fc221aa979668439e0ae4f..28bd63f9ebe024a218496be69f8512fe1d6d6fa3 100644 --- a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/CellDesignerXmlParser.java +++ b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/CellDesignerXmlParser.java @@ -621,7 +621,7 @@ public class CellDesignerXmlParser extends Converter { result.append(functionCollectionXmlParser.toXml(model.getFunctions())); result.append(unitCollectionXmlParser.toXml(model.getUnits())); - //notes must be inserted here, but we don't know the warnings yet + // notes must be inserted here, but we don't know the warnings yet int notesPosition = result.length(); result.append(annotationToXml(model, elements)); @@ -633,7 +633,7 @@ public class CellDesignerXmlParser extends Converter { result.append(parameterCollectionXmlParser.toXml(model.getParameters())); result.append(reactionCollectionXmlParser.reactionCollectionToXmlString(model.getReactions())); - + if (model.getNotes() != null || !appender.getWarnings().isEmpty()) { StringBuilder notes = new StringBuilder(); notes.append("<notes>"); @@ -676,8 +676,8 @@ public class CellDesignerXmlParser extends Converter { result.append("<annotation>\n"); result.append("<celldesigner:extension>\n"); result.append("<celldesigner:modelVersion>4.0</celldesigner:modelVersion>\n"); - result.append("<celldesigner:modelDisplay sizeX=\"" + model.getWidth().intValue() + "\" sizeY=\"" - + model.getHeight().intValue() + "\"/>\n"); + result.append("<celldesigner:modelDisplay sizeX=\"" + (int) (model.getWidth()) + "\" sizeY=\"" + + (int) (model.getHeight()) + "\"/>\n"); result.append(speciesCollectionXmlParser.speciesCollectionToXmlIncludedString(model.getSpeciesList())); diff --git a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlExporter.java b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlExporter.java index 28c658a78afc0f16ea91805bc234029cf87755d3..6aa238ac2f9c19f1614c6c1af5e44b019625fb42 100644 --- a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlExporter.java +++ b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlExporter.java @@ -99,7 +99,8 @@ public class SbmlExporter { compartmentExporter.setProvideDefaults(provideDefaults); XmlAnnotationParser parser = new XmlAnnotationParser(); - String rdf = parser.dataSetToXmlString(model.getMiriamData(), model.getAuthors(), model.getCreationDate(), model.getModificationDates(), model.getIdModel()); + String rdf = parser.dataSetToXmlString(model.getMiriamData(), model.getAuthors(), model.getCreationDate(), + model.getModificationDates(), model.getIdModel()); try { result.setAnnotation(rdf); } catch (XMLStreamException e1) { @@ -141,12 +142,12 @@ public class SbmlExporter { Layout layout = new Layout(); layout.setId("minerva_layout"); Dimensions dimensions = new Dimensions(); - if (model.getHeight() != null) { + if (model.getHeight() > 0) { dimensions.setHeight(model.getHeight()); } else { dimensions.setHeight(640); } - if (model.getWidth() != null) { + if (model.getWidth() > 0) { dimensions.setWidth(model.getWidth()); } else { dimensions.setWidth(480); diff --git a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlParser.java b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlParser.java index 3769a79627ccb3b5fe343f28ab596a47d4864500..12344d5b7826c23f6562f3a923a74aa6bef1e6eb 100644 --- a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlParser.java +++ b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlParser.java @@ -1,8 +1,6 @@ package lcsb.mapviewer.converter.model.sbml; -import java.util.Collection; -import java.util.HashSet; -import java.util.Set; +import java.util.*; import javax.xml.stream.XMLStreamException; @@ -18,12 +16,9 @@ import org.sbml.jsbml.ext.multi.MultiModelPlugin; import lcsb.mapviewer.commands.CommandExecutionException; import lcsb.mapviewer.commands.layout.ApplySimpleLayoutModelCommand; +import lcsb.mapviewer.common.Configuration; import lcsb.mapviewer.common.MimeType; -import lcsb.mapviewer.converter.Converter; -import lcsb.mapviewer.converter.ConverterException; -import lcsb.mapviewer.converter.ConverterParams; -import lcsb.mapviewer.converter.InvalidInputDataExecption; -import lcsb.mapviewer.converter.ZIndexPopulator; +import lcsb.mapviewer.converter.*; import lcsb.mapviewer.converter.model.sbml.compartment.SbmlCompartmentParser; import lcsb.mapviewer.converter.model.sbml.reaction.SbmlReactionParser; import lcsb.mapviewer.converter.model.sbml.species.SbmlSpeciesParser; @@ -33,12 +28,8 @@ import lcsb.mapviewer.model.map.InconsistentModelException; import lcsb.mapviewer.model.map.model.Model; import lcsb.mapviewer.model.map.model.ModelFullIndexed; import lcsb.mapviewer.model.map.modifier.Modulation; -import lcsb.mapviewer.model.map.reaction.AbstractNode; -import lcsb.mapviewer.model.map.reaction.Modifier; -import lcsb.mapviewer.model.map.reaction.Reaction; -import lcsb.mapviewer.model.map.species.Complex; -import lcsb.mapviewer.model.map.species.Element; -import lcsb.mapviewer.model.map.species.Species; +import lcsb.mapviewer.model.map.reaction.*; +import lcsb.mapviewer.model.map.species.*; import lcsb.mapviewer.model.map.species.field.ModificationResidue; import lcsb.mapviewer.model.map.species.field.SpeciesWithModificationResidue; @@ -165,7 +156,7 @@ public class SbmlParser extends Converter { private void createLayout(Model model, Layout layout, boolean resize, SbmlReactionParser parser) throws InvalidInputDataExecption { - if (model.getWidth() == null) { + if (model.getWidth() <= Configuration.EPSILON) { double maxY = 1; double maxX = 1; for (Element element : model.getElements()) { diff --git a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/compartment/SbmlCompartmentExporter.java b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/compartment/SbmlCompartmentExporter.java index 1467cae134da8f6ec3bbfb5ec6afe381197342c7..6fdcc5da884ca294749990648a3f5b5908073031 100644 --- a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/compartment/SbmlCompartmentExporter.java +++ b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/compartment/SbmlCompartmentExporter.java @@ -139,7 +139,7 @@ public class SbmlCompartmentExporter extends SbmlElementExporter<Compartment, or boundingBox.setPosition(new Point(element.getX(), element.getY(), 0)); Dimensions dimensions = new Dimensions(); - if (getMinervaModel().getWidth() != null) { + if (getMinervaModel().getWidth() > 0) { dimensions.setWidth(getMinervaModel().getWidth()); dimensions.setHeight(getMinervaModel().getHeight()); } diff --git a/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/SbmlExporterTest.java b/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/SbmlExporterTest.java index 9ff9d18a095652376c7ce9c0eb4673cea47db4f3..64f29afefbc4a7e34c78fdf0728f89ac7ffaafba 100644 --- a/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/SbmlExporterTest.java +++ b/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/SbmlExporterTest.java @@ -145,8 +145,8 @@ public class SbmlExporterTest extends SbmlTestFunctions { model.setHeight(300); Model deserializedModel = getModelAfterSerializing(model); - assertEquals(model.getWidth(), deserializedModel.getWidth()); - assertEquals(model.getHeight(), deserializedModel.getHeight()); + assertEquals(model.getWidth(), deserializedModel.getWidth(), Configuration.EPSILON); + assertEquals(model.getHeight(), deserializedModel.getHeight(), Configuration.EPSILON); } @Test diff --git a/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/reaction/SbmlReactionExporterTest.java b/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/reaction/SbmlReactionExporterTest.java index ce2936868e767e422bff66032df674c1f458dda0..278166360e14726f22e3a959868a40eaf3cdd8ab 100644 --- a/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/reaction/SbmlReactionExporterTest.java +++ b/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/reaction/SbmlReactionExporterTest.java @@ -58,12 +58,12 @@ public class SbmlReactionExporterTest { Layout layout = new Layout(); Dimensions dimensions = new Dimensions(); - if (model.getHeight() != null) { + if (model.getHeight() > 0) { dimensions.setHeight(model.getHeight()); } else { dimensions.setHeight(640); } - if (model.getWidth() != null) { + if (model.getWidth() > 0) { dimensions.setWidth(model.getWidth()); } else { dimensions.setWidth(480); diff --git a/model-command/src/main/java/lcsb/mapviewer/commands/layout/ApplySimpleLayoutModelCommand.java b/model-command/src/main/java/lcsb/mapviewer/commands/layout/ApplySimpleLayoutModelCommand.java index a3a81fe4564f4b112932cab14100f4f86594baae..3d5c0ab39a66b70a5d46a69c41821f503edf276a 100644 --- a/model-command/src/main/java/lcsb/mapviewer/commands/layout/ApplySimpleLayoutModelCommand.java +++ b/model-command/src/main/java/lcsb/mapviewer/commands/layout/ApplySimpleLayoutModelCommand.java @@ -1,16 +1,7 @@ package lcsb.mapviewer.commands.layout; -import java.awt.geom.Dimension2D; -import java.awt.geom.Point2D; -import java.awt.geom.Rectangle2D; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; +import java.awt.geom.*; +import java.util.*; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -27,23 +18,9 @@ import lcsb.mapviewer.model.graphics.PolylineData; import lcsb.mapviewer.model.map.BioEntity; import lcsb.mapviewer.model.map.compartment.Compartment; import lcsb.mapviewer.model.map.model.Model; -import lcsb.mapviewer.model.map.reaction.AbstractNode; -import lcsb.mapviewer.model.map.reaction.AndOperator; -import lcsb.mapviewer.model.map.reaction.AssociationOperator; -import lcsb.mapviewer.model.map.reaction.DissociationOperator; -import lcsb.mapviewer.model.map.reaction.Modifier; -import lcsb.mapviewer.model.map.reaction.NodeOperator; -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.reaction.SplitOperator; -import lcsb.mapviewer.model.map.reaction.TruncationOperator; -import lcsb.mapviewer.model.map.reaction.type.DissociationReaction; -import lcsb.mapviewer.model.map.reaction.type.HeterodimerAssociationReaction; -import lcsb.mapviewer.model.map.reaction.type.TruncationReaction; -import lcsb.mapviewer.model.map.species.Complex; -import lcsb.mapviewer.model.map.species.Element; -import lcsb.mapviewer.model.map.species.Species; +import lcsb.mapviewer.model.map.reaction.*; +import lcsb.mapviewer.model.map.reaction.type.*; +import lcsb.mapviewer.model.map.species.*; import lcsb.mapviewer.model.map.species.field.ModificationResidue; import lcsb.mapviewer.model.map.species.field.SpeciesWithModificationResidue; @@ -448,14 +425,8 @@ public class ApplySimpleLayoutModelCommand extends ApplyLayoutModelCommand { } protected void modifyModelSize(Model model, Point2D minPoint, Dimension2D dimension) { - double width = 0; - double height = 0; - if (model.getWidth() != null) { - width = model.getWidth(); - } - if (model.getHeight() != null) { - height = model.getHeight(); - } + double width = model.getWidth(); + double height = model.getHeight(); width = Math.max(width, minPoint.getX() + dimension.getWidth()); height = Math.max(height, minPoint.getY() + dimension.getHeight()); model.setWidth(width); 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 5450b22f0cb9bdf0645adcf0e695aef228fd4503..05bfbe7f9921e9e0338dc47a30804dd791e39737 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 @@ -53,7 +53,7 @@ public interface Model { * * @return model width */ - Double getWidth(); + double getWidth(); /** * Sets model width. @@ -61,13 +61,13 @@ public interface Model { * @param width * new model width */ - void setWidth(Double width); + void setWidth(double width); /** * * @return model height */ - Double getHeight(); + double getHeight(); /** * Sets model height. @@ -75,7 +75,7 @@ public interface Model { * @param height * new model height */ - void setHeight(Double height); + void setHeight(double height); /** * Sets model width. diff --git a/model/src/main/java/lcsb/mapviewer/model/map/model/ModelData.java b/model/src/main/java/lcsb/mapviewer/model/map/model/ModelData.java index eba400c886cccb3bb7ffef0fcd2b8bdef343499f..0e07da18b97f7d228c3a00b5e74835f43cbe9ee3 100644 --- a/model/src/main/java/lcsb/mapviewer/model/map/model/ModelData.java +++ b/model/src/main/java/lcsb/mapviewer/model/map/model/ModelData.java @@ -129,12 +129,12 @@ public class ModelData implements Serializable { /** * Width of the map. */ - private Double width; + private double width; /** * Height of the map. */ - private Double height; + private double height; /** * X coordinate that should be used when initially showing map. @@ -550,7 +550,7 @@ public class ModelData implements Serializable { * @return the width * @see #width */ - public Double getWidth() { + public double getWidth() { return width; } @@ -559,7 +559,7 @@ public class ModelData implements Serializable { * the width to set * @see #width */ - public void setWidth(Double width) { + public void setWidth(double width) { this.width = width; } @@ -567,7 +567,7 @@ public class ModelData implements Serializable { * @return the height * @see #height */ - public Double getHeight() { + public double getHeight() { return height; } @@ -576,7 +576,7 @@ public class ModelData implements Serializable { * the height to set * @see #height */ - public void setHeight(Double height) { + public void setHeight(double height) { this.height = height; } 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 bd7085a6b1ea50e005457d0275147d689f9562de..0d6a451085acd616b97e0d197caf56650f54de4b 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 @@ -122,22 +122,22 @@ public class ModelFullIndexed implements Model { } @Override - public Double getWidth() { + public double getWidth() { return modelData.getWidth(); } @Override - public void setWidth(Double width) { + public void setWidth(double width) { modelData.setWidth(width); } @Override - public Double getHeight() { + public double getHeight() { return modelData.getHeight(); } @Override - public void setHeight(Double height) { + public void setHeight(double height) { modelData.setHeight(height); } 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 371d0d385a79c0e71fd85b7891f0b70a1a808534..d6eab5e5ce76153c519f5b6050b36db1b226e7a3 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 @@ -672,10 +672,10 @@ public class ModelFullIndexedTest { try { Model model = new ModelFullIndexed(null); - Double width = 12.0; + double width = 12.0; int widthInt = 12; String widthStr = "12.0"; - Double height = 13.0; + double height = 13.0; String heightStr = "13.0"; int heightInt = 13; Set<Element> elements = new HashSet<>(); @@ -684,26 +684,22 @@ public class ModelFullIndexedTest { String idModel = "model_ID"; model.setWidth(widthStr); - assertEquals(width, model.getWidth()); - model.setWidth((Double) null); - assertNull(model.getWidth()); + assertEquals(width, model.getWidth(), Configuration.EPSILON); + model.setWidth(0.0); model.setWidth(width); - assertEquals(width, model.getWidth()); - model.setWidth((Double) null); - assertNull(model.getWidth()); + assertEquals(width, model.getWidth(), Configuration.EPSILON); + model.setWidth(0.0); model.setWidth(widthInt); - assertEquals(width, model.getWidth()); + assertEquals(width, model.getWidth(), Configuration.EPSILON); model.setHeight(heightStr); - assertEquals(height, model.getHeight()); - model.setHeight((Double) null); - assertNull(model.getHeight()); + assertEquals(height, model.getHeight(), Configuration.EPSILON); + model.setHeight(0.0); model.setHeight(height); - assertEquals(height, model.getHeight()); - model.setHeight((Double) null); - assertNull(model.getHeight()); + assertEquals(height, model.getHeight(), Configuration.EPSILON); + model.setHeight(0.0); model.setHeight(heightInt); - assertEquals(height, model.getHeight()); + assertEquals(height, model.getHeight(), Configuration.EPSILON); model.setElements(elements); assertEquals(elements, model.getElements()); diff --git a/persist/src/main/resources/db/migration/14.0.0~alpha.0/V14.0.0.20190722_2__size_of_map_cannot_be_null.sql b/persist/src/main/resources/db/migration/14.0.0~alpha.0/V14.0.0.20190722_2__size_of_map_cannot_be_null.sql new file mode 100644 index 0000000000000000000000000000000000000000..f969d6ae9d9d6b3068f46eb6688a3c4440392f7c --- /dev/null +++ b/persist/src/main/resources/db/migration/14.0.0~alpha.0/V14.0.0.20190722_2__size_of_map_cannot_be_null.sql @@ -0,0 +1,5 @@ +update model_data_table set width = 800 where width is null; +update model_data_table set height = 600 where height is null; + +ALTER TABLE model_data_table ALTER COLUMN width SET NOT NULL; +ALTER TABLE model_data_table ALTER COLUMN height SET NOT NULL;