From 77cf9226183831b5e9f30dba35ec823bfd79b1fe Mon Sep 17 00:00:00 2001 From: Piotr Gawron <piotr.gawron@uni.lu> Date: Thu, 25 Jan 2018 13:57:18 +0100 Subject: [PATCH] allow to filter by element id --- .../mapviewer/commands/ColorModelCommand.java | 5 +++ .../commands/ColorModelCommandTest.java | 42 +++++++++++++++++++ .../model/map/layout/ColorSchema.java | 10 +++++ 3 files changed, 57 insertions(+) diff --git a/model-command/src/main/java/lcsb/mapviewer/commands/ColorModelCommand.java b/model-command/src/main/java/lcsb/mapviewer/commands/ColorModelCommand.java index f7da34ff5d..1237e8f02e 100644 --- a/model-command/src/main/java/lcsb/mapviewer/commands/ColorModelCommand.java +++ b/model-command/src/main/java/lcsb/mapviewer/commands/ColorModelCommand.java @@ -209,6 +209,11 @@ public class ColorModelCommand extends ModelCommand { return false; } } + if (schema.getElementId() != null && !schema.getElementId().isEmpty()) { + if (!element.getElementId().equalsIgnoreCase(schema.getElementId())) { + return false; + } + } if (schema.getTypes().size() > 0) { boolean found = false; for (Class<?> clazz : schema.getTypes()) { diff --git a/model-command/src/test/java/lcsb/mapviewer/commands/ColorModelCommandTest.java b/model-command/src/test/java/lcsb/mapviewer/commands/ColorModelCommandTest.java index d523a7c938..252d31a3c8 100644 --- a/model-command/src/test/java/lcsb/mapviewer/commands/ColorModelCommandTest.java +++ b/model-command/src/test/java/lcsb/mapviewer/commands/ColorModelCommandTest.java @@ -452,4 +452,46 @@ public class ColorModelCommandTest extends CommandTestFunctions { } } + + public void testAliasColoringWithUnknownElementSourceId() throws Exception { + try { + Model model = getModelForFile("testFiles/sample.xml", false); + + ColorSchema schema = new GenericColorSchema(); + schema.setElementId("xxx"); + + Collection<ColorSchema> schemas = new ArrayList<>(); + schemas.add(schema); + + ColorModelCommand factory = new ColorModelCommand(model, schemas, colorExtractor); + Map<Object, ColorSchema> map = factory.getModifiedElements(); + assertEquals(0, map.values().size()); + + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testAliasColoringWithElementIdMatch() throws Exception { + try { + Model model = getModelForFile("testFiles/sample.xml", false); + + ColorSchema schema = new GenericColorSchema(); + schema.setElementId(model.getElements().iterator().next().getElementId()); + + Collection<ColorSchema> schemas = new ArrayList<>(); + schemas.add(schema); + + ColorModelCommand factory = new ColorModelCommand(model, schemas, colorExtractor); + Map<Object, ColorSchema> map = factory.getModifiedElements(); + assertEquals(1, map.values().size()); + + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + } diff --git a/model/src/main/java/lcsb/mapviewer/model/map/layout/ColorSchema.java b/model/src/main/java/lcsb/mapviewer/model/map/layout/ColorSchema.java index e4a4b1f2e2..0d185c7ad4 100644 --- a/model/src/main/java/lcsb/mapviewer/model/map/layout/ColorSchema.java +++ b/model/src/main/java/lcsb/mapviewer/model/map/layout/ColorSchema.java @@ -42,6 +42,8 @@ public abstract class ColorSchema implements Serializable { * Identifier of the reaction to change the color. */ private String reactionIdentifier = null; + + private String elementId = null; /** * Should the direction of highlighted reaction be reversed. @@ -467,4 +469,12 @@ public abstract class ColorSchema implements Serializable { this.modelName = modelName; } + public String getElementId() { + return elementId; + } + + public void setElementId(String elementId) { + this.elementId = elementId; + } + } -- GitLab