Convert “Sone locked” into EventBus-based event.
[Sone.git] / src / main / java / net / pterodactylus / sone / web / WebInterface.java
index 188cc7f..9e5e0eb 100644 (file)
@@ -37,6 +37,16 @@ import java.util.logging.Logger;
 
 import net.pterodactylus.sone.core.Core;
 import net.pterodactylus.sone.core.CoreListener;
+import net.pterodactylus.sone.core.event.MarkPostKnownEvent;
+import net.pterodactylus.sone.core.event.MarkPostReplyKnownEvent;
+import net.pterodactylus.sone.core.event.MarkSoneKnownEvent;
+import net.pterodactylus.sone.core.event.NewPostFoundEvent;
+import net.pterodactylus.sone.core.event.NewPostReplyFoundEvent;
+import net.pterodactylus.sone.core.event.NewSoneFoundEvent;
+import net.pterodactylus.sone.core.event.PostRemovedEvent;
+import net.pterodactylus.sone.core.event.PostReplyRemovedEvent;
+import net.pterodactylus.sone.core.event.SoneLockedEvent;
+import net.pterodactylus.sone.core.event.SoneRemovedEvent;
 import net.pterodactylus.sone.data.Album;
 import net.pterodactylus.sone.data.Image;
 import net.pterodactylus.sone.data.Post;
@@ -132,6 +142,7 @@ import net.pterodactylus.util.web.TemplatePage;
 
 import com.google.common.collect.Collections2;
 import com.google.common.collect.ImmutableSet;
+import com.google.common.eventbus.Subscribe;
 import com.google.inject.Inject;
 
 import freenet.clients.http.SessionManager;
@@ -774,25 +785,32 @@ public class WebInterface implements CoreListener {
        }
 
        //
-       // CORELISTENER METHODS
+       // EVENT HANDLERS
        //
 
        /**
-        * {@inheritDoc}
+        * Notifies the web interface that a new {@link Sone} was found.
+        *
+        * @param newSoneFoundEvent
+        *            The event
         */
-       @Override
-       public void newSoneFound(Sone sone) {
-               newSoneNotification.add(sone);
+       @Subscribe
+       public void newSoneFound(NewSoneFoundEvent newSoneFoundEvent) {
+               newSoneNotification.add(newSoneFoundEvent.sone());
                if (!hasFirstStartNotification()) {
                        notificationManager.addNotification(newSoneNotification);
                }
        }
 
        /**
-        * {@inheritDoc}
+        * Notifies the web interface that a new {@link Post} was found.
+        *
+        * @param newPostFoundEvent
+        *            The event
         */
-       @Override
-       public void newPostFound(Post post) {
+       @Subscribe
+       public void newPostFound(NewPostFoundEvent newPostFoundEvent) {
+               Post post = newPostFoundEvent.post();
                boolean isLocal = post.getSone().isLocal();
                if (isLocal) {
                        localPostNotification.add(post);
@@ -811,10 +829,14 @@ public class WebInterface implements CoreListener {
        }
 
        /**
-        * {@inheritDoc}
+        * Notifies the web interface that a new {@link PostReply} was found.
+        *
+        * @param newPostReplyFoundEvent
+        *            The event
         */
-       @Override
-       public void newReplyFound(PostReply reply) {
+       @Subscribe
+       public void newReplyFound(NewPostReplyFoundEvent newPostReplyFoundEvent) {
+               PostReply reply = newPostReplyFoundEvent.postReply();
                boolean isLocal = reply.getSone().isLocal();
                if (isLocal) {
                        localReplyNotification.add(reply);
@@ -833,56 +855,75 @@ public class WebInterface implements CoreListener {
        }
 
        /**
-        * {@inheritDoc}
+        * Notifies the web interface that a {@link Sone} was marked as known.
+        *
+        * @param markSoneKnownEvent
+        *            The event
         */
-       @Override
-       public void markSoneKnown(Sone sone) {
-               newSoneNotification.remove(sone);
+       @Subscribe
+       public void markSoneKnown(MarkSoneKnownEvent markSoneKnownEvent) {
+               newSoneNotification.remove(markSoneKnownEvent.sone());
        }
 
        /**
-        * {@inheritDoc}
+        * Notifies the web interface that a {@link Post} was marked as known.
+        *
+        * @param markPostKnownEvent
+        *            The event
         */
-       @Override
-       public void markPostKnown(Post post) {
-               newPostNotification.remove(post);
-               localPostNotification.remove(post);
-               mentionNotification.remove(post);
+       @Subscribe
+       public void markPostKnown(MarkPostKnownEvent markPostKnownEvent) {
+               newPostNotification.remove(markPostKnownEvent.post());
+               localPostNotification.remove(markPostKnownEvent.post());
+               mentionNotification.remove(markPostKnownEvent.post());
        }
 
        /**
-        * {@inheritDoc}
+        * Notifies the web interface that a {@link PostReply} was marked as known.
+        *
+        * @param markPostReplyKnownEvent
+        *            The event
         */
-       @Override
-       public void markReplyKnown(PostReply reply) {
-               newReplyNotification.remove(reply);
-               localReplyNotification.remove(reply);
-               mentionNotification.remove(reply.getPost());
+       @Subscribe
+       public void markReplyKnown(MarkPostReplyKnownEvent markPostReplyKnownEvent) {
+               newReplyNotification.remove(markPostReplyKnownEvent.postReply());
+               localReplyNotification.remove(markPostReplyKnownEvent.postReply());
+               mentionNotification.remove(markPostReplyKnownEvent.postReply().getPost());
        }
 
        /**
-        * {@inheritDoc}
+        * Notifies the web interface that a {@link Sone} was removed.
+        *
+        * @param soneRemovedEvent
+        *            The event
         */
-       @Override
-       public void soneRemoved(Sone sone) {
-               newSoneNotification.remove(sone);
+       @Subscribe
+       public void soneRemoved(SoneRemovedEvent soneRemovedEvent) {
+               newSoneNotification.remove(soneRemovedEvent.sone());
        }
 
        /**
-        * {@inheritDoc}
+        * Notifies the web interface that a {@link Post} was removed.
+        *
+        * @param postRemovedEvent
+        *            The event
         */
-       @Override
-       public void postRemoved(Post post) {
-               newPostNotification.remove(post);
-               localPostNotification.remove(post);
-               mentionNotification.remove(post);
+       @Subscribe
+       public void postRemoved(PostRemovedEvent postRemovedEvent) {
+               newPostNotification.remove(postRemovedEvent.post());
+               localPostNotification.remove(postRemovedEvent.post());
+               mentionNotification.remove(postRemovedEvent.post());
        }
 
        /**
-        * {@inheritDoc}
+        * Notifies the web interface that a {@link PostReply} was removed.
+        *
+        * @param postReplyRemovedEvent
+        *            The event
         */
-       @Override
-       public void replyRemoved(PostReply reply) {
+       @Subscribe
+       public void replyRemoved(PostReplyRemovedEvent postReplyRemovedEvent) {
+               PostReply reply = postReplyRemovedEvent.postReply();
                newReplyNotification.remove(reply);
                localReplyNotification.remove(reply);
                if (!getMentionedSones(reply.getText()).isEmpty()) {
@@ -897,10 +938,14 @@ public class WebInterface implements CoreListener {
        }
 
        /**
-        * {@inheritDoc}
+        * Notifies the web interface that a Sone was locked.
+        *
+        * @param soneLockedEvent
+        *            The event
         */
-       @Override
-       public void soneLocked(final Sone sone) {
+       @Subscribe
+       public void soneLocked(SoneLockedEvent soneLockedEvent) {
+               final Sone sone = soneLockedEvent.sone();
                Object tickerObject = Ticker.getInstance().registerEvent(System.currentTimeMillis() + (5 * 60) * 1000, new Runnable() {
 
                        @Override
@@ -914,6 +959,10 @@ public class WebInterface implements CoreListener {
                lockedSonesTickerObjects.put(sone, tickerObject);
        }
 
+       //
+       // CORELISTENER METHODS
+       //
+
        /**
         * {@inheritDoc}
         */