X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fnotify%2FListNotification.java;h=74e3100519a3ca127156b097711e0903ad89bfe0;hb=012439f891860c345b6bcab68e663bdd93c9aeb5;hp=2217b70f75939f2782784336841d8b49d0e87a55;hpb=5dfc6973e3f089ddc33327ad42fe25142150c206;p=Sone.git diff --git a/src/main/java/net/pterodactylus/sone/notify/ListNotification.java b/src/main/java/net/pterodactylus/sone/notify/ListNotification.java index 2217b70..74e3100 100644 --- a/src/main/java/net/pterodactylus/sone/notify/ListNotification.java +++ b/src/main/java/net/pterodactylus/sone/notify/ListNotification.java @@ -51,7 +51,24 @@ public class ListNotification extends TemplateNotification { * The template to render */ public ListNotification(String id, String key, Template template) { - super(id, template); + this(id, key, template, true); + } + + /** + * Creates a new list notification. + * + * @param id + * The ID of the notification + * @param key + * The key under which to store the elements in the template + * @param template + * The template to render + * @param dismissable + * {@code true} if this notification should be dismissable by the + * user, {@code false} otherwise + */ + public ListNotification(String id, String key, Template template, boolean dismissable) { + super(id, System.currentTimeMillis(), System.currentTimeMillis(), dismissable, template); this.key = key; template.getInitialContext().set(key, elements); } @@ -64,7 +81,7 @@ public class ListNotification extends TemplateNotification { * The list notification to copy */ public ListNotification(ListNotification listNotification) { - super(listNotification.getId(), new Template()); + super(listNotification.getId(), listNotification.getCreatedTime(), listNotification.getLastUpdatedTime(), listNotification.isDismissable(), new Template()); this.key = listNotification.key; getTemplate().add(listNotification.getTemplate()); getTemplate().getInitialContext().set(key, elements); @@ -84,6 +101,19 @@ public class ListNotification extends TemplateNotification { } /** + * Sets the elements to show in this notification. This method will not call + * {@link #touch()}. + * + * @param elements + * The elements to show + */ + public void setElements(Collection elements) { + this.elements.clear(); + this.elements.addAll(elements); + touch(); + } + + /** * Returns whether there are any new elements. * * @return {@code true} if there are no new elements, {@code false} if there