1 16 package com.blandware.atleap.webapp.action.core.contentLocale; 17 18 import com.blandware.atleap.model.core.ContentLocale; 19 import com.blandware.atleap.webapp.action.core.BaseAction; 20 import com.blandware.atleap.webapp.form.ContentLocaleForm; 21 import com.blandware.atleap.webapp.util.core.LocaleUtil; 22 import org.apache.commons.validator.GenericValidator; 23 import org.apache.struts.action.ActionForm; 24 import org.apache.struts.action.ActionForward; 25 import org.apache.struts.action.ActionMapping; 26 import org.apache.struts.action.ActionMessage; 27 import org.apache.struts.action.ActionMessages; 28 import org.springframework.orm.ObjectOptimisticLockingFailureException; 29 30 import javax.servlet.http.HttpServletRequest ; 31 import javax.servlet.http.HttpServletResponse ; 32 33 53 public final class ChangeContentLocaleActivityAction extends BaseAction { 54 63 public ActionForward execute(ActionMapping mapping, ActionForm form, 64 HttpServletRequest request, HttpServletResponse response) throws Exception { 65 66 ContentLocaleForm contentLocaleForm = (ContentLocaleForm) form; 67 68 String localeIdentifier = contentLocaleForm.getIdentifier(); 69 if ( GenericValidator.isBlankOrNull(localeIdentifier) ) { 70 if ( log.isWarnEnabled() ) { 71 log.warn("Missing content locale identifier. Returning to list."); 72 } 73 return mapping.findForward("listContentLocales"); 74 } 75 76 ContentLocale contentLocale = LocaleUtil.getInstance(servlet.getServletContext()).retrieveContentLocale(localeIdentifier); 77 78 if ( contentLocale == null ) { 79 ActionMessages errors = new ActionMessages(); 81 errors.add("contentLocaleNotFound", new ActionMessage("core.contentLocale.errors.notFound")); 82 saveErrors(request, errors); 83 return mapping.findForward("listContentLocales"); 84 } 85 86 String mode = request.getParameter("mode"); 87 boolean alreadyActive = contentLocale.getActive() != null ? contentLocale.getActive().booleanValue() : false; 88 boolean active = true; 89 90 if ( !"active".equalsIgnoreCase(mode) ) { 91 active = false; 92 } 93 94 try { 95 if ( ((alreadyActive && !active) || (!alreadyActive && active)) && !contentLocale.getDefaultInstance().booleanValue() ) { 96 contentLocale.setActive(Boolean.valueOf(active)); 97 LocaleUtil.getInstance(servlet.getServletContext()).updateContentLocale(contentLocale); 98 } 99 } catch ( ObjectOptimisticLockingFailureException e ) { 100 ActionMessages errors = new ActionMessages(); 102 errors.add("updateFailed", new ActionMessage("core.contentLocale.errors.updateFailed")); 103 saveErrors(request, errors); 104 return mapping.findForward("listContentLocales"); 105 } 106 107 return mapping.findForward("listContentLocales"); 108 } 109 } | Popular Tags |