Author: mflorea
Date: 2008-02-08 16:53:26 +0100 (Fri, 08 Feb 2008)
New Revision: 7400

Modified:
   
xwiki-products/curriki/trunk/plugins/activitystream/src/main/java/org/xwiki/plugin/activitystream/impl/ActivityStreamImpl.java
Log:
I've started to implement XWikiDocChangeNotificationInterface

Modified: 
xwiki-products/curriki/trunk/plugins/activitystream/src/main/java/org/xwiki/plugin/activitystream/impl/ActivityStreamImpl.java
===================================================================
--- 
xwiki-products/curriki/trunk/plugins/activitystream/src/main/java/org/xwiki/plugin/activitystream/impl/ActivityStreamImpl.java
      2008-02-08 15:49:06 UTC (rev 7399)
+++ 
xwiki-products/curriki/trunk/plugins/activitystream/src/main/java/org/xwiki/plugin/activitystream/impl/ActivityStreamImpl.java
      2008-02-08 15:53:26 UTC (rev 7400)
@@ -25,18 +25,25 @@
 import org.hibernate.Session;
 import org.xwiki.plugin.activitystream.api.ActivityEvent;
 import org.xwiki.plugin.activitystream.api.ActivityEventPriority;
+import org.xwiki.plugin.activitystream.api.ActivityEventType;
 import org.xwiki.plugin.activitystream.api.ActivityStream;
 import org.xwiki.plugin.activitystream.api.ActivityStreamException;
 
 import com.xpn.xwiki.XWikiContext;
 import com.xpn.xwiki.XWikiException;
 import com.xpn.xwiki.doc.XWikiDocument;
+import com.xpn.xwiki.notify.DocChangeRule;
+import com.xpn.xwiki.notify.XWikiDocChangeNotificationInterface;
+import com.xpn.xwiki.notify.XWikiNotificationRule;
 import com.xpn.xwiki.store.XWikiHibernateStore;
 
-public class ActivityStreamImpl implements ActivityStream
+public class ActivityStreamImpl implements ActivityStream, 
XWikiDocChangeNotificationInterface
 {
     public void initClasses(XWikiContext context) throws XWikiException
     {
+        // listen to notifications
+        context.getWiki().getNotificationManager().addGeneralRule(
+            new DocChangeRule(this, true, true));
     }
 
     protected void prepareEvent(ActivityEvent event, XWikiContext context)
@@ -186,4 +193,31 @@
     {
         return new ActivityEventImpl();
     }
+
+    public void notify(XWikiNotificationRule rule, XWikiDocument newdoc, 
XWikiDocument olddoc,
+        int event, XWikiContext context)
+    {
+        try {
+            switch (event) {
+                case /* EVENT_CHANGE */0:
+                    addActivityEvent(ActivityEventType.UPDATE, null, context);
+                    break;
+                case /* EVENT_NEW */1:
+                    addActivityEvent(ActivityEventType.CREATE, null, context);
+                    break;
+                case /* EVENT_DELETE */2:
+                    addActivityEvent(ActivityEventType.DELETE, null, context);
+                    break;
+                case /* EVENT_UPDATE_CONTENT */3:
+                    addActivityEvent(ActivityEventType.UPDATE, null, context);
+                    break;
+                case /* EVENT_UPDATE_OBJECT */4:
+                    break;
+                case /* EVENT_UPDATE_CLASS */5:
+                    break;
+            }
+        } catch (ActivityStreamException e) {
+            // ignore
+        }
+    }
 }

_______________________________________________
notifications mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/notifications

Reply via email to