X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2FWebInterface.java;h=f0a1fb66be111222d4b34f9249c36ec1dff7e57f;hb=83e51753c5ddd721e9d0b5aeaf211653e564a5d9;hp=9dce6a767cf1c3a73728d8bb29b365ceb89066be;hpb=b7dd0087ea05cf16a769136fa57ce60f8a3c1ff3;p=Sone.git diff --git a/src/main/java/net/pterodactylus/sone/web/WebInterface.java b/src/main/java/net/pterodactylus/sone/web/WebInterface.java index 9dce6a7..f0a1fb6 100644 --- a/src/main/java/net/pterodactylus/sone/web/WebInterface.java +++ b/src/main/java/net/pterodactylus/sone/web/WebInterface.java @@ -30,6 +30,7 @@ import java.util.logging.Level; import java.util.logging.Logger; import net.pterodactylus.sone.core.Core; +import net.pterodactylus.sone.core.CoreListener; import net.pterodactylus.sone.data.Post; import net.pterodactylus.sone.data.Reply; import net.pterodactylus.sone.data.Sone; @@ -40,7 +41,6 @@ import net.pterodactylus.sone.template.CollectionAccessor; import net.pterodactylus.sone.template.CssClassNameFilter; import net.pterodactylus.sone.template.GetPagePlugin; import net.pterodactylus.sone.template.IdentityAccessor; -import net.pterodactylus.sone.template.NotificationAccessor; import net.pterodactylus.sone.template.NotificationManagerAccessor; import net.pterodactylus.sone.template.PostAccessor; import net.pterodactylus.sone.template.ReplyAccessor; @@ -63,7 +63,6 @@ import net.pterodactylus.sone.web.page.PageToadlet; import net.pterodactylus.sone.web.page.PageToadletFactory; import net.pterodactylus.sone.web.page.StaticPage; import net.pterodactylus.util.logging.Logging; -import net.pterodactylus.util.notify.Notification; import net.pterodactylus.util.notify.NotificationManager; import net.pterodactylus.util.notify.TemplateNotification; import net.pterodactylus.util.template.DateFilter; @@ -87,11 +86,14 @@ import freenet.l10n.BaseL10n; * * @author David ‘Bombe’ Roden */ -public class WebInterface { +public class WebInterface implements CoreListener { /** The logger. */ private static final Logger logger = Logging.getLogger(WebInterface.class); + /** The notification manager. */ + private final NotificationManager notificationManager = new NotificationManager(); + /** The Sone plugin. */ private final SonePlugin sonePlugin; @@ -121,7 +123,6 @@ public class WebInterface { templateFactory.addAccessor(Post.class, new PostAccessor(getCore())); templateFactory.addAccessor(Reply.class, new ReplyAccessor(getCore())); templateFactory.addAccessor(Identity.class, new IdentityAccessor(getCore())); - templateFactory.addAccessor(Notification.class, new NotificationAccessor()); templateFactory.addAccessor(NotificationManager.class, new NotificationManagerAccessor()); templateFactory.addFilter("date", new DateFilter()); templateFactory.addFilter("l10n", new L10nFilter(getL10n())); @@ -150,6 +151,15 @@ public class WebInterface { } /** + * Returns the notification manager. + * + * @return The notification manager + */ + public NotificationManager getNotifications() { + return notificationManager; + } + + /** * Returns the l10n helper of the node. * * @return The node’s l10n helper @@ -195,13 +205,13 @@ public class WebInterface { Template startupNotificationTemplate = templateFactory.createTemplate(createReader("/templates/notify/startupNotification.html")); final TemplateNotification startupNotification = new TemplateNotification(startupNotificationTemplate); - getCore().getNotifications().addNotification(startupNotification); + notificationManager.addNotification(startupNotification); Ticker.getInstance().registerEvent(System.currentTimeMillis() + (120 * 1000), new Runnable() { @Override public void run() { - getCore().getNotifications().removeNotification(startupNotification); + startupNotification.dismiss(); } }, "Sone Startup Notification Remover"); } @@ -323,6 +333,35 @@ public class WebInterface { } } + // + // CORELISTENER METHODS + // + + /** + * {@inheritDoc} + */ + @Override + public void newSoneFound(Sone sone) { + newSoneNotification.addSone(sone); + notificationManager.addNotification(newSoneNotification); + } + + /** + * {@inheritDoc} + */ + @Override + public void newPostFound(Post post) { + /* TODO */ + } + + /** + * {@inheritDoc} + */ + @Override + public void newReplyFound(Reply reply) { + /* TODO */ + } + /** * Template provider implementation that uses * {@link WebInterface#createReader(String)} to load templates for