1 18 19 package cowsultants.itracker.web.actions; 20 21 import java.io.*; 22 import java.rmi.*; 23 import java.util.*; 24 import javax.ejb.*; 25 import javax.rmi.*; 26 import javax.naming.*; 27 import javax.servlet.*; 28 import javax.servlet.http.*; 29 30 import org.apache.commons.beanutils.*; 31 import org.apache.struts.action.*; 32 import org.apache.struts.upload.*; 33 import org.apache.struts.util.*; 34 35 import cowsultants.itracker.ejb.client.exceptions.*; 36 import cowsultants.itracker.ejb.client.interfaces.*; 37 import cowsultants.itracker.ejb.client.models.*; 38 import cowsultants.itracker.ejb.client.resources.*; 39 import cowsultants.itracker.ejb.client.util.*; 40 import cowsultants.itracker.web.util.*; 41 42 43 public class CreateLanguageKeyAction extends ITrackerAction { 44 45 public CreateLanguageKeyAction() { 46 } 47 48 public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 49 ActionErrors errors = new ActionErrors(); 50 51 if(! isLoggedIn(request, response)) { 52 return mapping.findForward("login"); 53 } 54 if(! isTokenValid(request)) { 55 Logger.logDebug("Invalid request token while creating language key."); 56 return mapping.findForward("listlanguages"); 57 } 58 resetToken(request); 59 60 try { 61 InitialContext ic = new InitialContext(); 62 63 Object scRef = ic.lookup("java:comp/env/" + SystemConfiguration.JNDI_NAME); 64 SystemConfigurationHome scHome = (SystemConfigurationHome) PortableRemoteObject.narrow(scRef, SystemConfigurationHome.class); 65 SystemConfiguration sc = scHome.create(); 66 67 String key = (String ) PropertyUtils.getSimpleProperty(form, "key"); 68 HashMap items = (HashMap) PropertyUtils.getSimpleProperty(form, "items"); 69 70 if(items != null) { 72 Logger.logDebug("Adding new language key: " + key); 73 for(Iterator iter = items.keySet().iterator(); iter.hasNext(); ) { 74 String locale = (String ) iter.next(); 75 Logger.logDebug("Checking translation for locale " + locale); 76 if(locale != null) { 77 String value = (String ) items.get(locale); 78 Logger.logDebug("Locale value: " + value); 79 if(value != null && ! value.equals("")) { 80 Logger.logDebug("Adding new translation for locale " + locale + " for key " + key); 81 sc.updateLanguageItem(new LanguageModel(locale, key, value)); 82 } 83 } 84 } 85 String baseValue = (String ) items.get(ITrackerResources.BASE_LOCALE); 86 sc.updateLanguageItem(new LanguageModel(ITrackerResources.BASE_LOCALE, key, baseValue)); 89 ITrackerResources.clearKeyFromBundles(key, true); 90 } 91 92 return mapping.findForward("listlanguages"); 93 } catch(Exception e) { 94 Logger.logError("Exception processing form data", e); 95 errors.add(ActionErrors.GLOBAL_ERROR, new ActionError("itracker.web.error.system")); 96 } 97 98 if(! errors.isEmpty()) { 99 saveErrors(request, errors); 100 saveToken(request); 101 return mapping.getInputForward(); 102 } 103 return mapping.findForward("error"); 104 } 105 } 106 | Popular Tags |