WIP
[demos/spring-boot] / src / main / java / de / juplo / demo / DemoController.java
index 7a23173..7c65a60 100644 (file)
@@ -2,6 +2,7 @@ package de.juplo.demo;
 
 
 import java.util.HashMap;
+import java.util.LinkedHashMap;
 import java.util.Map;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -41,8 +42,15 @@ public class DemoController
             .stream()
             .reduce(0, (a, b) -> a > b ? a : b) + 1;
 
-    LOG.info("Adding new card #{}", next);
-    form.cards.put(next, new HashMap<>());
+    Map<String, Boolean> content = new LinkedHashMap<>();
+    content.put(form.names.get(0), Boolean.FALSE);
+    LOG.info("Adding new card #{} with content: {}", next, content);
+    form.cards.put(next, content);
+
+    for (Integer id : form.cards.keySet())
+      for (String entry : form.cards.get(id).keySet())
+        LOG.info("{} - {}: {}", id, entry, form.cards.get(id).get(entry));
+
     return "form";
   }
 
@@ -51,14 +59,24 @@ public class DemoController
   {
     Map<String, Boolean> content = form.cards.remove(card);
     LOG.info("Removed card #{} with content: {}", card, content);
+
+    for (Integer id : form.cards.keySet())
+      for (String entry : form.cards.get(id).keySet())
+        LOG.info("{} - {}: {}", id, entry, form.cards.get(id).get(entry));
+
     return "form";
   }
 
   @RequestMapping(path = "/", params = "add")
   public String addRow(@ModelAttribute Form form, @RequestParam Integer add)
   {
-    LOG.info("Adding row {} to card #{}", form.row.get(add), add);
-    form.cards.get(add).put(form.row.get(add), Boolean.FALSE);
+    LOG.info("Adding row {} to card #{}", form.names.get(add), add);
+    form.cards.get(add).put(form.names.get(add), Boolean.FALSE);
+
+    for (Integer id : form.cards.keySet())
+      for (String entry : form.cards.get(id).keySet())
+        LOG.info("{} - {}: {}", id, entry, form.cards.get(id).get(entry));
+
     return "form";
   }
 
@@ -70,6 +88,17 @@ public class DemoController
     String row = parts[1];
     Boolean value = form.cards.get(card).remove(row);
     LOG.info("Removed row {} with value {} from card #{}", row, value, card);
+
+    if (form.cards.get(card).isEmpty())
+    {
+      LOG.info("Card #{} is empty: Removing card!", card);
+      form.cards.remove(card);
+    }
+
+    for (Integer id : form.cards.keySet())
+      for (String entry : form.cards.get(id).keySet())
+        LOG.info("{} - {}: {}", id, entry, form.cards.get(id).get(entry));
+
     return "form";
   }
 }