shuber 2005/02/23 21:02:40 CET
Modified files:
core/src/webapp/WEB-INF/etc/config listeners.registry
Added files:
core/src/java/jahiatemplates/gedtemplates GEDListener.java
Log:
Adding GED listener, specific to GED templates. Will remove after tomorrow or
move to GED templates module.
Revision Changes Path
1.1 +78 -0
jahia/core/src/java/jahiatemplates/gedtemplates/GEDListener.java (new)
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/jahiatemplates/gedtemplates/GEDListener.java?rev=1.1&content-type=text/plain
1.5 +2 -1
jahia/core/src/webapp/WEB-INF/etc/config/listeners.registry
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/webapp/WEB-INF/etc/config/listeners.registry.diff?r1=1.4&r2=1.5&f=h
Index: listeners.registry
===================================================================
RCS file:
/home/cvs/repository/jahia/core/src/webapp/WEB-INF/etc/config/listeners.registry,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- listeners.registry 23 Feb 2005 10:54:02 -0000 1.4
+++ listeners.registry 23 Feb 2005 20:02:39 -0000 1.5
@@ -24,4 +24,5 @@
# Event listener that synchronizes content in slide repository with
# CMS objects.
#
-CMSSlideContentListener=org.jahia.services.webdav.listeners.CMSSlideContentListener
\ No newline at end of file
+CMSSlideContentListener=org.jahia.services.webdav.listeners.CMSSlideContentListener
+GEDTemplateListener=jahiatemplates.gedtemplates.GEDListener
\ No newline at end of file
Index: GEDListener.java
====================================================================
package jahiatemplates.gedtemplates;
import org.jahia.data.events.JahiaEventListener;
import org.jahia.data.events.JahiaEvent;
import org.jahia.data.containers.JahiaContainer;
import org.jahia.services.acl.JahiaBaseACL;
import java.util.ArrayList;
import java.util.Vector;
import org.jahia.services.usermanager.JahiaUser;
import org.jahia.registries.ServicesRegistry;
import org.jahia.exceptions.JahiaException;
import org.jahia.data.fields.JahiaField;
import java.util.Iterator;
public class GEDListener extends JahiaEventListener {
private static org.apache.log4j.Logger logger =
org.apache.log4j.Logger.getLogger(GEDListener.class);
public GEDListener () {
}
public void containerAdded(JahiaEvent theEvent) {
JahiaContainer theContainer = (JahiaContainer) theEvent.getObject();
try {
if ("documentContainerList".equals(theContainer.getDefinition().
getName())) {
JahiaBaseACL acl = theContainer.getACL();
ArrayList toUsers = new ArrayList();
ArrayList ccUsers = new ArrayList();
Vector users = acl.getUsernameListAlsoGroupUsers(null);
for (int i = 0; i < users.size(); i++) {
JahiaUser user = ServicesRegistry.getInstance().
getJahiaUserManagerService().lookupUser(
(
String) users.get(
i));
if (user == null)
continue;
if (theContainer.checkWriteAccess(user)) {
toUsers.add(user);
} else if (theContainer.checkReadAccess(user)) {
ccUsers.add(user);
}
}
JahiaField toField = theContainer.getField("to");
JahiaField ccField = theContainer.getField("cc");
StringBuffer toUsersStr = new StringBuffer();
Iterator toUserIter = toUsers.iterator();
while (toUserIter.hasNext()) {
JahiaUser curUser = (JahiaUser) toUserIter.next();
toUsersStr.append(curUser.getUsername());
if (toUserIter.hasNext()) {
toUsersStr.append("$$$");
}
}
logger.debug("toUsersStr=" + toUsersStr);
toField.setValue(toUsersStr.toString());
toField.save(theEvent.getParams());
StringBuffer ccUsersStr = new StringBuffer();
Iterator ccUserIter = ccUsers.iterator();
while (ccUserIter.hasNext()) {
JahiaUser curUser = (JahiaUser) ccUserIter.next();
ccUsersStr.append(curUser.getUsername());
if (ccUserIter.hasNext()) {
ccUsersStr.append("$$$");
}
}
logger.debug("ccUsersStr=" + ccUsersStr);
ccField.setValue(ccUsersStr.toString());
ccField.save(theEvent.getParams());
}
} catch (JahiaException je) {
logger.error("Error while processing event containerAdded", je);
}
}
}