1 67 package com.ivata.groupware.business.library.struts; 68 69 import java.lang.reflect.InvocationTargetException ; 70 import java.util.Collection ; 71 import java.util.HashMap ; 72 import java.util.Iterator ; 73 import java.util.Map ; 74 75 import javax.servlet.http.HttpServletRequest ; 76 import javax.servlet.http.HttpServletResponse ; 77 import javax.servlet.http.HttpSession ; 78 79 import org.apache.commons.beanutils.PropertyUtils; 80 import org.apache.struts.action.ActionErrors; 81 import org.apache.struts.action.ActionForm; 82 import org.apache.struts.action.ActionMapping; 83 import org.picocontainer.PicoContainer; 84 85 import com.ivata.groupware.admin.security.server.SecuritySession; 86 import com.ivata.groupware.admin.setting.Settings; 87 import com.ivata.groupware.business.addressbook.AddressBook; 88 import com.ivata.groupware.business.addressbook.person.group.right.RightConstants; 89 import com.ivata.groupware.business.library.Library; 90 import com.ivata.groupware.business.library.item.LibraryItemDO; 91 import com.ivata.groupware.business.mail.Mail; 92 import com.ivata.mask.MaskFactory; 93 import com.ivata.mask.persistence.PersistenceManager; 94 import com.ivata.mask.util.SystemException; 95 import com.ivata.mask.web.format.HTMLFormatter; 96 import com.ivata.mask.web.struts.MaskAction; 97 import com.ivata.mask.web.struts.MaskAuthenticator; 98 99 100 110 public class IndexAction extends MaskAction { 111 private Library library; 112 private Settings settings; 113 122 public IndexAction(SecuritySession securitySession, Settings settings, 123 MaskFactory maskFactory, MaskAuthenticator authenticator) { 124 super(maskFactory, authenticator); 125 PicoContainer container = securitySession.getContainer(); 126 Object object = container.getComponentInstance(PersistenceManager.class); 127 object = container.getComponentInstance(AddressBook.class); 128 object = container.getComponentInstance(Mail.class); 129 object = container.getComponentInstance(Settings.class); 130 object = container.getComponentInstance(HTMLFormatter.class); 131 this.library = (Library) container.getComponentInstance(Library.class); 132 this.settings = settings; 134 } 135 136 137 161 public String execute(final ActionMapping mapping, 162 final ActionErrors errors, 163 final ActionForm form, 164 final HttpServletRequest request, 165 final HttpServletResponse response, 166 final HttpSession session) throws SystemException { 167 SecuritySession securitySession = (SecuritySession) session.getAttribute("securitySession"); 168 169 try { 170 Integer libraryHome = settings.getIntegerSetting(securitySession, 171 "libraryHome", securitySession.getUser()); 172 Integer libraryRecent = settings.getIntegerSetting(securitySession, 173 "libraryRecent", securitySession.getUser()); 174 int numberOfItems = libraryHome.intValue(); 175 int numberOfRecent = libraryRecent.intValue(); 176 int numberToRead = (numberOfRecent > numberOfItems) ? numberOfRecent : numberOfItems; 177 178 Collection items = library.findRecentItems(securitySession, new Integer (numberToRead), 179 RightConstants.ACCESS_VIEW, null); 180 PropertyUtils.setProperty(form, "items", items); 181 182 Iterator itemIterator = items.iterator(); 183 184 Map commentsForItem = new HashMap (); 185 while(itemIterator.hasNext()) { 186 LibraryItemDO item = (LibraryItemDO) itemIterator.next(); 187 int commentCount = library.countCommentsForItem(securitySession, 188 item.getId()); 189 commentsForItem.put(item.getId(), new Integer (commentCount)); 190 } 191 PropertyUtils.setProperty(form, "commentsForItem", commentsForItem); 192 193 Collection unacknowledgedComments = library.findUnacknowledgedComments(securitySession, new Integer (10)); 194 PropertyUtils.setProperty(form, "unacknowledgedComments", unacknowledgedComments); 195 } catch (IllegalAccessException e) { 196 throw new SystemException(e); 197 } catch (InvocationTargetException e) { 198 throw new SystemException(e); 199 } catch (NoSuchMethodException e) { 200 throw new SystemException(e); 201 } 202 203 return null; 205 } 206 } 207 | Popular Tags |