From fbc4ed1c0a1fc5b09d65b5d16a9b6f236f440b5c Mon Sep 17 00:00:00 2001 From: Fredrik Marjoni Date: Thu, 9 Apr 2026 09:29:06 +0200 Subject: [PATCH] update[Organization]: Update Hashmap of Organizations to be displayed in alphabetical order for more manuverable causesPage --- .../app/model/organization/OrganizationService.java | 11 ++++++++--- .../group5/app/view/causespage/CausesPageView.java | 7 ++++++- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/main/java/edu/group5/app/model/organization/OrganizationService.java b/src/main/java/edu/group5/app/model/organization/OrganizationService.java index 170b9a5..e19c273 100644 --- a/src/main/java/edu/group5/app/model/organization/OrganizationService.java +++ b/src/main/java/edu/group5/app/model/organization/OrganizationService.java @@ -2,7 +2,8 @@ import java.util.stream.Collectors; -import java.util.HashMap; +import java.util.Comparator; +import java.util.LinkedHashMap; import java.util.Map; import java.util.concurrent.CompletableFuture; @@ -49,7 +50,10 @@ public OrganizationRepository getOrganizationRepository() { * @return a map of trusted organizations by organization number */ public Map getTrustedOrganizations() { - return organizationRepository.getTrustedOrganizations(); + return organizationRepository.getTrustedOrganizations().values().stream() + .sorted(Comparator.comparing(Organization::name)) + .collect(Collectors.toMap(Organization::orgNumber, + org -> org, (e1, e2) -> e1, LinkedHashMap::new)); } /** @@ -103,7 +107,8 @@ public Map getTrustedOrganizationsWithLogos() { org.description(), scraper.fetchLogoUrl(org.websiteUrl()) )) - .collect(Collectors.toMap(Organization::orgNumber, org -> org)); + .sorted(Comparator.comparing(Organization::name)) + .collect(Collectors.toMap(Organization::orgNumber, org -> org, (e1, e2) -> e1, LinkedHashMap::new)); } /** diff --git a/src/main/java/edu/group5/app/view/causespage/CausesPageView.java b/src/main/java/edu/group5/app/view/causespage/CausesPageView.java index 5cfc197..36c056f 100644 --- a/src/main/java/edu/group5/app/view/causespage/CausesPageView.java +++ b/src/main/java/edu/group5/app/view/causespage/CausesPageView.java @@ -10,8 +10,10 @@ import javafx.scene.layout.*; import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.Map; import java.util.stream.Collectors; +import java.util.Comparator; public class CausesPageView extends BorderPane { private final AppState appState; @@ -158,9 +160,12 @@ private Map filterOrganizations(String searchTerm) { String lowerSearchTerm = searchTerm.toLowerCase(); return allOrganizations.values().stream() .filter(org -> org.name().toLowerCase().contains(lowerSearchTerm)) + .sorted(Comparator.comparing(Organization::name)) .collect(Collectors.toMap( Organization::orgNumber, - org -> org + org -> org, + (e1, e2) -> e1, + LinkedHashMap::new )); }