1 25 29 package org.jresearch.gossip.actions.user.avatar; 30 31 import java.awt.image.BufferedImage ; 32 import java.io.ByteArrayOutputStream ; 33 34 import javax.servlet.http.HttpServletRequest ; 35 import javax.servlet.http.HttpServletResponse ; 36 import javax.servlet.http.HttpSession ; 37 38 import org.apache.struts.action.ActionForm; 39 import org.apache.struts.action.ActionForward; 40 import org.apache.struts.action.ActionMapping; 41 import org.jresearch.gossip.IConst; 42 import org.jresearch.gossip.actions.BaseAction; 43 import org.jresearch.gossip.beans.user.User; 44 import org.jresearch.gossip.configuration.Configurator; 45 import org.jresearch.gossip.dao.ForumDAO; 46 import org.jresearch.gossip.exception.JGossipException; 47 import org.jresearch.gossip.exception.SystemException; 48 import org.jresearch.gossip.util.PictureGenerator; 49 50 54 public abstract class SaveAvatarAction extends BaseAction { 55 56 64 protected ActionForward process(ActionMapping mapping, ActionForm form, 65 HttpServletRequest request, HttpServletResponse response) 66 throws JGossipException { 67 if (!Configurator.getInstance().getBoolean(IConst.CONFIG.ENABLE_AVATAR)) { 68 return (mapping.findForward(IConst.TOKEN.DENIED)); 69 } 70 71 HttpSession session = request.getSession(); 72 User user = (User) session.getAttribute(IConst.SESSION.USER_KEY); 73 ForumDAO dao = ForumDAO.getInstance(); 74 try { 75 ByteArrayOutputStream buffer = new ByteArrayOutputStream (); 76 BufferedImage image = getImage(form); 77 if (image == null) { 78 throw new SystemException("Unable to parse image"); 79 } 80 PictureGenerator.getInstance().prepareImage(image, buffer); 81 byte[] data = buffer.toByteArray(); 82 dao.saveAvatar(user, data); 83 } catch (Exception e) { 84 super.setStatusMessage(request, "errors.general", "<br>" 85 + e.getMessage()); 86 return mapping.getInputForward(); 87 } 88 return (mapping.findForward(IConst.TOKEN.PAGE)); 89 } 90 91 protected abstract BufferedImage getImage(ActionForm form) 92 throws SystemException; 93 94 } | Popular Tags |