1 16 package com.blandware.atleap.webapp.action.core.contentResource.image; 17 18 import com.blandware.atleap.common.Constants; 19 import com.blandware.atleap.model.core.ContentImage; 20 import com.blandware.atleap.service.core.ContentResourceManager; 21 import com.blandware.atleap.webapp.action.core.BaseAction; 22 import com.blandware.atleap.webapp.form.core.ImageForm; 23 import com.blandware.atleap.webapp.form.core.UploadContentResourceForm; 24 import com.blandware.atleap.webapp.util.core.ImageUtil; 25 import com.blandware.atleap.webapp.util.core.ResourceTypesManager; 26 import com.blandware.atleap.webapp.util.core.WebappConstants; 27 import com.blandware.atleap.webapp.util.core.WebappUtil; 28 import org.apache.struts.action.ActionForm; 29 import org.apache.struts.action.ActionForward; 30 import org.apache.struts.action.ActionMapping; 31 import org.apache.struts.action.ActionMessage; 32 import org.apache.struts.action.ActionMessages; 33 import org.apache.struts.upload.FormFile; 34 35 import javax.imageio.IIOImage ; 36 import javax.servlet.http.HttpServletRequest ; 37 import javax.servlet.http.HttpServletResponse ; 38 39 61 public final class CallUpdateImageAction extends BaseAction { 62 71 public ActionForward execute(ActionMapping mapping, ActionForm form, 72 HttpServletRequest request, HttpServletResponse response) throws Exception { 73 74 Long contentResourceId = null; 75 if ( ((ImageForm) form).getId() != null ) { 76 contentResourceId = Long.valueOf(((ImageForm) form).getId()); 77 } else if ( request.getParameter("contentResourceId") != null ) { 78 contentResourceId = Long.valueOf(request.getParameter("contentResourceId")); 79 } else if ( request.getAttribute(WebappConstants.CONTENT_RESOURCE_ID_KEY) != null ) { 80 contentResourceId = (Long ) request.getAttribute(WebappConstants.CONTENT_RESOURCE_ID_KEY); 81 } else { 82 if ( log.isWarnEnabled() ) { 83 log.warn("Missing required parameter 'contentResourceId'"); 84 } 85 return mapping.getInputForward(); 86 } 87 88 ContentResourceManager contentResourceManager = (ContentResourceManager) getBean(Constants.CONTENT_RESOURCE_MANAGER_BEAN); 89 ContentImage image = contentResourceManager.retrieveContentImage(contentResourceId); 90 if ( image == null ) { 91 ActionMessages errors = new ActionMessages(); 93 errors.add("imageNotFound", new ActionMessage("core.contentResource.image.errors.notFound")); 94 saveErrors(request, errors); 95 return mapping.findForward("listContentResources"); 96 } 97 98 request.setAttribute("image", image); 99 100 ImageForm imageForm = (ImageForm) form; 101 WebappUtil.copyProperties(imageForm, image, request); 102 103 String uri = image.getUri(); 105 if ( uri.startsWith(Constants.RESOURCES_URI_PREFIX) ) { 106 uri = uri.substring(Constants.RESOURCES_URI_PREFIX.length()); 107 } 108 imageForm.setUri(uri); 109 110 ResourceTypesManager resourceTypesManager = ResourceTypesManager.getInstance(request.getSession().getServletContext()); 111 112 UploadContentResourceForm uploadContentResourceForm = (UploadContentResourceForm) request.getSession().getAttribute(WebappConstants.UPLOAD_CONTENT_RESOURCE_FORM_KEY); 113 FormFile formFile = null; 114 if ( uploadContentResourceForm != null ) { 115 formFile = uploadContentResourceForm.getFile(); 116 } 117 if ( formFile != null && formFile.getFileName() != null && formFile.getFileName().trim().length() > 0 && formFile.getFileSize() > 0 ) { 118 String fileName = formFile.getFileName(); 119 String mimeType = resourceTypesManager.getMimeTypeByFileName(fileName); 120 121 byte[] newImageData = formFile.getFileData(); 122 123 try { 124 IIOImage newSource = ImageUtil.decodeImage(newImageData, mimeType); 125 request.getSession().setAttribute(WebappConstants.CONTENT_IMAGE_NEW_WIDTH_KEY, new Integer (newSource.getRenderedImage().getWidth())); 126 request.getSession().setAttribute(WebappConstants.CONTENT_IMAGE_NEW_HEIGHT_KEY, new Integer (newSource.getRenderedImage().getHeight())); 127 } catch ( Exception ex ) { 128 if ( formFile != null ) { 129 formFile.destroy(); 130 } 131 request.getSession().removeAttribute(WebappConstants.UPLOAD_CONTENT_RESOURCE_FORM_KEY); 132 133 ActionMessages errors = new ActionMessages(); 134 errors.add("contentResourceCorruptedData", new ActionMessage("core.contentResource.errors.corruptedData")); 135 saveErrors(request, errors); 136 return mapping.findForward("callUpdateContentResource"); 137 } 138 139 request.getSession().setAttribute(WebappConstants.CONTENT_IMAGE_NEW_MIMETYPE_KEY, mimeType); 140 request.getSession().setAttribute(WebappConstants.CONTENT_IMAGE_NEW_SIZE_KEY, new Long (formFile.getFileData().length)); 141 request.getSession().setAttribute(WebappConstants.CONTENT_IMAGE_NEW_FILENAME_KEY, formFile.getFileName()); 142 143 } else { 144 request.getSession().removeAttribute(WebappConstants.CONTENT_IMAGE_NEW_MIMETYPE_KEY); 145 request.getSession().removeAttribute(WebappConstants.CONTENT_IMAGE_NEW_SIZE_KEY); 146 request.getSession().removeAttribute(WebappConstants.CONTENT_IMAGE_NEW_FILENAME_KEY); 147 } 148 149 saveToken(request); 150 return mapping.findForward("updateImage"); 151 } 152 153 } | Popular Tags |