From 9b59efb186d148cb0164656c88944c5b745a29f8 Mon Sep 17 00:00:00 2001 From: Piotr Gawron <piotr.gawron@uni.lu> Date: Tue, 25 Jul 2017 16:39:15 +0200 Subject: [PATCH] targets are sorted by number of elements targeted --- .../java/lcsb/mapviewer/api/BaseRestImpl.java | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/rest-api/src/main/java/lcsb/mapviewer/api/BaseRestImpl.java b/rest-api/src/main/java/lcsb/mapviewer/api/BaseRestImpl.java index 7953a630b0..635f9985de 100644 --- a/rest-api/src/main/java/lcsb/mapviewer/api/BaseRestImpl.java +++ b/rest-api/src/main/java/lcsb/mapviewer/api/BaseRestImpl.java @@ -2,6 +2,7 @@ package lcsb.mapviewer.api; import java.util.ArrayList; import java.util.Collection; +import java.util.Comparator; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -200,6 +201,23 @@ public abstract class BaseRestImpl { for (Target target : targets) { result.add(prepareTarget(target, models)); } + result.sort(new Comparator<Map<String, Object>>() { + + @Override + public int compare(Map<String, Object> o1, Map<String, Object> o2) { + List<?> targetedObjects1 = (List<?>) o1.get("targetElements"); + List<?> targetedObjects2 = (List<?>) o2.get("targetElements"); + Integer size1 = 0; + Integer size2 = 0; + if (targetedObjects1 != null) { + size1 = targetedObjects1.size(); + } + if (targetedObjects2 != null) { + size2 = targetedObjects2.size(); + } + return -size1.compareTo(size2); + } + }); return result; } @@ -238,5 +256,4 @@ public abstract class BaseRestImpl { } } - } -- GitLab