From 59e3ec3fd940bf257546d67301233979c27de239 Mon Sep 17 00:00:00 2001
From: Andreas Svanberg <andreass@dsv.su.se>
Date: Tue, 11 Mar 2025 09:15:01 +0100
Subject: [PATCH] Maintain project selection on validation failure during group
 creation (#133)

Fixes #129

## How to test
1. Log in as `evan@example.com`
2. Go to "My groups"
3. Click "Create new group"
4. Select some projects but do *not* fill in the "Title"
5. Click save
6. Error message should be presented
7. Project selection should be maintained

Co-authored-by: Nico Athanassiadis <nico@dsv.su.se>
Reviewed-on: https://gitea.dsv.su.se/DMC/scipro/pulls/133
Reviewed-by: Nico Athanassiadis <nico@dsv.su.se>
Co-authored-by: Andreas Svanberg <andreass@dsv.su.se>
Co-committed-by: Andreas Svanberg <andreass@dsv.su.se>
---
 .../src/main/java/se/su/dsv/scipro/group/EditGroupPanel.java | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/view/src/main/java/se/su/dsv/scipro/group/EditGroupPanel.java b/view/src/main/java/se/su/dsv/scipro/group/EditGroupPanel.java
index 831986ffad..05b8396ffa 100644
--- a/view/src/main/java/se/su/dsv/scipro/group/EditGroupPanel.java
+++ b/view/src/main/java/se/su/dsv/scipro/group/EditGroupPanel.java
@@ -59,6 +59,11 @@ public class EditGroupPanel extends Panel {
             });
             add(
                 new ListView<>("available_projects", availableProjects) {
+                    {
+                        // must re-use list items to maintain form component (checkboxes) state
+                        setReuseItems(true);
+                    }
+
                     @Override
                     protected void populateItem(ListItem<Project> item) {
                         CheckBox checkbox = new CheckBox("selected", new SelectProjectModel(model, item.getModel()));