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