Skip to content
Snippets Groups Projects
Commit 7aea8b7b authored by Piotr Gawron's avatar Piotr Gawron
Browse files

gpml parser doesn't put compartment into element inside complexes

parent 4cd685fa
No related branches found
No related tags found
2 merge requests!630WIP: Resolve "The privileges of a new user are not saved in some cases",!504Resolve "Bug in exporting boundary species to graphical formats"
Pipeline #7469 passed
...@@ -983,15 +983,17 @@ public class ModelContructor { ...@@ -983,15 +983,17 @@ public class ModelContructor {
* {@link Compartment} into a proper compartment. * {@link Compartment} into a proper compartment.
* *
* @param model * @param model
* model where aliases will be modifed * model where aliases will be modified
*/ */
private void putAliasesIntoCompartments(Model model) { private void putAliasesIntoCompartments(Model model) {
for (Element alias : model.getElements()) { for (Element element : model.getElements()) {
if (alias.getCompartment() == null) { if (element instanceof Species) {
if (alias instanceof Species) { if (((Species) element).getComplex() != null) {
element.setCompartment(null);
} else if (element.getCompartment() == null) {
Compartment selectedAlias = null; Compartment selectedAlias = null;
for (Compartment cAlias : model.getCompartments()) { for (Compartment cAlias : model.getCompartments()) {
if (cAlias.cross(alias)) { if (cAlias.cross(element)) {
if (selectedAlias == null) { if (selectedAlias == null) {
selectedAlias = cAlias; selectedAlias = cAlias;
} else if (selectedAlias.getSize() > cAlias.getSize()) { } else if (selectedAlias.getSize() > cAlias.getSize()) {
...@@ -1000,7 +1002,7 @@ public class ModelContructor { ...@@ -1000,7 +1002,7 @@ public class ModelContructor {
} }
} }
if (selectedAlias != null) { if (selectedAlias != null) {
selectedAlias.addElement(alias); selectedAlias.addElement(element);
} }
} }
} }
...@@ -1128,16 +1130,16 @@ public class ModelContructor { ...@@ -1128,16 +1130,16 @@ public class ModelContructor {
compartmentAlias.getElements().clear(); compartmentAlias.getElements().clear();
} }
for (Element alias : model.getElements()) { for (Element element : model.getElements()) {
// elements inside complexes shouldn't be considered // elements inside complexes shouldn't be considered
if (alias instanceof Species) { if (element instanceof Species) {
if (((Species) alias).getComplex() != null) { if (((Species) element).getComplex() != null) {
continue; continue;
} }
} }
Compartment parentAlias = null; Compartment parentAlias = null;
for (Compartment compartmentAlias : aliases) { for (Compartment compartmentAlias : aliases) {
if (compartmentAlias.contains(alias)) { if (compartmentAlias.contains(element)) {
if (parentAlias == null) { if (parentAlias == null) {
parentAlias = compartmentAlias; parentAlias = compartmentAlias;
} else if (parentAlias.getSize() > compartmentAlias.getSize()) { } else if (parentAlias.getSize() > compartmentAlias.getSize()) {
...@@ -1146,8 +1148,8 @@ public class ModelContructor { ...@@ -1146,8 +1148,8 @@ public class ModelContructor {
} }
} }
if (parentAlias != null) { if (parentAlias != null) {
parentAlias.addElement(alias); parentAlias.addElement(element);
alias.setCompartment(parentAlias); element.setCompartment(parentAlias);
} }
} }
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment