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);
          }
      }
  }
  

Reply via email to