From 310d7d76f0a7abda16cc941e5180864d288ef156 Mon Sep 17 00:00:00 2001
From: Piotr Gawron <piotr.gawron@uni.lu>
Date: Tue, 19 Dec 2017 12:26:53 +0100
Subject: [PATCH] reversible reactions have arrows in two directions

---
 .../lcsb/mapviewer/converter/model/sbml/SbmlParser.java     | 6 ++++++
 .../mapviewer/converter/model/sbml/SbmlReactionParser.java  | 3 +++
 2 files changed, 9 insertions(+)

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 145584ec07..c139cb3546 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
@@ -191,6 +191,9 @@ public class SbmlParser implements IConverter {
       line.addPoint(reactantStartPoint);
       line.addPoint(center);
       line.addPoint(center);
+      if (reaction.isReversible()) {
+        line.getBeginAtd().setArrowType(ArrowType.FULL);
+      }
       reaction.getReactants().get(0).setLine(line);
     } else {
       for (Reactant reactant : reaction.getReactants()) {
@@ -198,6 +201,9 @@ public class SbmlParser implements IConverter {
         line.addPoint(reactantMergePoint);
         line.addPoint(reactantMergePoint);
         line.addPoint(reactant.getElement().getCenter());
+        if (reaction.isReversible()) {
+          line.getBeginAtd().setArrowType(ArrowType.FULL);
+        }
         reactant.setLine(line);
       }
       NodeOperator operator = new AndOperator();
diff --git a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlReactionParser.java b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlReactionParser.java
index 82937f209d..f96d4e2f7b 100644
--- a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlReactionParser.java
+++ b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlReactionParser.java
@@ -159,6 +159,9 @@ public class SbmlReactionParser {
           if (minervaNode instanceof Reactant) {
             line = line.reverse();
             line.addPoint(line.getEndPoint());
+            if (reactionWithLayout.isReversible()) {
+              line.getBeginAtd().setArrowType(ArrowType.FULL);
+            }
           }
           if (minervaNode instanceof Product) {
             line.addPoint(0, line.getBeginPoint());
-- 
GitLab