1 16 package com.blandware.atleap.webapp.action.core.contentResource.document; 17 18 import com.blandware.atleap.common.Constants; 19 import com.blandware.atleap.webapp.action.core.BaseAction; 20 import com.blandware.atleap.webapp.form.ContentDocumentForm; 21 import com.blandware.atleap.webapp.form.core.UploadContentResourceForm; 22 import com.blandware.atleap.webapp.util.core.LocaleUtil; 23 import com.blandware.atleap.webapp.util.core.ResourceTypesManager; 24 import com.blandware.atleap.webapp.util.core.WebappConstants; 25 import org.apache.commons.validator.GenericValidator; 26 import org.apache.struts.Globals; 27 import org.apache.struts.action.ActionForm; 28 import org.apache.struts.action.ActionForward; 29 import org.apache.struts.action.ActionMapping; 30 import org.apache.struts.action.ActionMessage; 31 import org.apache.struts.action.ActionMessages; 32 import org.apache.struts.upload.FormFile; 33 34 import javax.servlet.http.HttpServletRequest ; 35 import javax.servlet.http.HttpServletResponse ; 36 import java.util.List ; 37 import java.util.Locale ; 38 39 57 public final class CallCreateDocumentAction extends BaseAction { 58 67 public ActionForward execute(ActionMapping mapping, ActionForm form, 68 HttpServletRequest request, HttpServletResponse response) throws Exception { 69 70 UploadContentResourceForm uploadContentResourceForm = (UploadContentResourceForm) request.getSession().getAttribute(WebappConstants.UPLOAD_CONTENT_RESOURCE_FORM_KEY); 71 if ( uploadContentResourceForm == null || uploadContentResourceForm.getFile() == null ) { 72 if ( log.isWarnEnabled() ) { 73 log.warn("Missing required attribute in session '" + WebappConstants.UPLOAD_CONTENT_RESOURCE_FORM_KEY + "'"); 74 } 75 ActionMessages errors = new ActionMessages(); 76 errors.add("missingResource", new ActionMessage("core.contentResource.errors.missingResource")); 77 saveErrors(request, errors); 78 saveToken(request); 79 return mapping.findForward("callCreateContentResource"); 80 } 81 82 FormFile formFile = uploadContentResourceForm.getFile(); 83 String fileName = formFile.getFileName(); 84 85 ContentDocumentForm documentForm = (ContentDocumentForm) form; 86 String uri = "/"; 87 if ( GenericValidator.isBlankOrNull(documentForm.getUri()) && request.getSession().getAttribute(WebappConstants.CONTENT_RESOURCES_CURRENT_PATH_KEY) != null ) { 88 uri = (String ) request.getSession().getAttribute(WebappConstants.CONTENT_RESOURCES_CURRENT_PATH_KEY); 89 if ( !uri.endsWith("/") ) { 90 uri += "/"; 91 } 92 if (!"/".equals(uri) && !"".equals(uri)) { 94 if (!uri.startsWith("/")) { 95 uri = "/" + uri; 96 } 97 } 98 } 99 documentForm.setUri(uri + fileName); 100 101 String encoding = (String ) request.getSession().getAttribute(WebappConstants.CONTENT_DOCUMENT_ENCODING_KEY); 102 if (GenericValidator.isBlankOrNull(encoding)) { 103 encoding = Constants.DEFAULT_ENCODING; 104 } 105 documentForm.setCharset(encoding); 106 107 Locale currentLocale = (Locale ) request.getSession().getAttribute(Globals.LOCALE_KEY); 108 if ( currentLocale != null ) { 109 documentForm.setContentLocaleId(currentLocale.getLanguage()); 110 } 111 112 ResourceTypesManager resourceTypesManager = ResourceTypesManager.getInstance(request.getSession().getServletContext()); 113 String mimeType = resourceTypesManager.getMimeTypeByFileName(fileName); 114 documentForm.setMimeType(mimeType); 115 documentForm.setSize(String.valueOf(formFile.getFileData().length)); 116 request.getSession().setAttribute(WebappConstants.CONTENT_DOCUMENT_NEW_FILENAME_KEY, formFile.getFileName()); 117 118 List availableContentLocales = LocaleUtil.getInstance(servlet.getServletContext()).getAvailableLocales(); 120 request.getSession().setAttribute(WebappConstants.CONTENT_LOCALES_COLLECTION_KEY, availableContentLocales); 121 122 saveToken(request); 123 return mapping.findForward("createDocument"); 124 } 125 } | Popular Tags |