X-Git-Url: https://juplo.de/gitweb/?p=demos%2Fspring-boot;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fde%2Fjuplo%2Fdemo%2FDemoController.java;h=25b500bbd12e740c5a842bfdbc14f352df4d1b0a;hp=ddf4e06a51469b5e297108c3bbeb5043dc736ea2;hb=1bf463088fe488cca79dd951c88d2254df8ab71d;hpb=ee976412729ec4022d0c2c0e0cf0971d8cd4b579 diff --git a/src/main/java/de/juplo/demo/DemoController.java b/src/main/java/de/juplo/demo/DemoController.java index ddf4e06..25b500b 100644 --- a/src/main/java/de/juplo/demo/DemoController.java +++ b/src/main/java/de/juplo/demo/DemoController.java @@ -23,55 +23,55 @@ public class DemoController @RequestMapping("/") - public String display( - @ModelAttribute("form") Map> form) + public String display(@ModelAttribute Form form) { - for (Integer id : form.keySet()) - for (String entry : form.get(id).keySet()) - LOG.info("{} - {}: {}", id, entry, form.get(id).get(entry)); + 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 = "row") - public String addRow( - @ModelAttribute("form") Map> form, - @RequestParam Integer row) + @RequestMapping(path = "/", params = "add=card") + public String addCard(@ModelAttribute Form form) { - LOG.info("Adding row #{}", row); - form.put(row, new HashMap<>()); + Integer next = + form.cards + .keySet() + .stream() + .reduce(0, (a, b) -> a > b ? a : b) + 1; + + LOG.info("Adding new card #{}", next); + form.cards.put(next, new HashMap<>()); return "form"; } - @RequestMapping(path = "/", params = "row") - public String removeRow( - @ModelAttribute("form") Map> form, - @RequestParam Integer row) + @RequestMapping(path = "/", params = "remove=card") + public String removeCard( + @ModelAttribute Form form, + @RequestParam Integer card) { - Map content = form.remove(row); - LOG.info("Removed row #{} with content: {}", row, content); + Map content = form.cards.remove(card); + LOG.info("Removed card #{} with content: {}", card, content); return "form"; } - @RequestMapping(path = "/", params = { "row", "entry" }) - public String addEntry( - @ModelAttribute("form") Map> form, - @RequestParam Integer row, - @RequestParam String entry) + @RequestMapping(path = "/", params = "add=row") + public String addRow(@ModelAttribute Form form, @RequestParam Integer card) { - LOG.info("Adding entry {} to row #{}", entry, row); - form.get(row).put(entry, Boolean.FALSE); + LOG.info("Adding row {} to card #{}", form.row.get(card), card); + form.cards.get(card).put(form.row.get(card), Boolean.FALSE); return "form"; } - @RequestMapping(path = "/", params = { "row", "entry" }) - public String removeEntry( - @ModelAttribute("form") Map> form, - @RequestParam Integer row, - @RequestParam String entry) + @RequestMapping(path = "/", params = "remove!=card") + public String removeRow(@ModelAttribute Form form, @RequestParam String remove) { - Boolean value = form.get(row).remove(entry); - LOG.info("Removed entry {} with value {} from row #{}", entry, value, row); + String[] parts = remove.split(":", 2); + Integer card = Integer.valueOf(parts[0]); + String row = parts[1]; + Boolean value = form.cards.get(card).remove(row); + LOG.info("Removed row {} with value {} from card #{}", row, value, card); return "form"; } }