KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > cowsultants > itracker > web > actions > CreateLanguageKeyAction


1 /*
2  * This software was designed and created by Jason Carroll.
3  * Copyright (c) 2002, 2003, 2004 Jason Carroll.
4  * The author can be reached at jcarroll@cowsultants.com
5  * ITracker website: http://www.cowsultants.com
6  * ITracker forums: http://www.cowsultants.com/phpBB/index.php
7  *
8  * This program is free software; you can redistribute it and/or modify
9  * it only under the terms of the GNU General Public License as published by
10  * the Free Software Foundation; either version 2 of the License, or
11  * (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  * GNU General Public License for more details.
17  */

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 JavaDoc 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 JavaDoc key = (String JavaDoc) PropertyUtils.getSimpleProperty(form, "key");
68             HashMap items = (HashMap) PropertyUtils.getSimpleProperty(form, "items");
69
70             // Move to validation code
71
if(items != null) {
72                 Logger.logDebug("Adding new language key: " + key);
73                 for(Iterator iter = items.keySet().iterator(); iter.hasNext(); ) {
74                     String JavaDoc locale = (String JavaDoc) iter.next();
75                     Logger.logDebug("Checking translation for locale " + locale);
76                     if(locale != null) {
77                         String JavaDoc value = (String JavaDoc) 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 JavaDoc baseValue = (String JavaDoc) items.get(ITrackerResources.BASE_LOCALE);
86                 //if(baseValue == null || baseValue.equals("")) {
87
//errors.add(ActionErrors.GLOBAL_ERROR, new ActionError("itracker.web.error.required", ));
88
sc.updateLanguageItem(new LanguageModel(ITrackerResources.BASE_LOCALE, key, baseValue));
89                 ITrackerResources.clearKeyFromBundles(key, true);
90             }
91
92             return mapping.findForward("listlanguages");
93         } catch(Exception JavaDoc 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