KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > contineo > actions > config > SaveSettingsAction


1 /*
2  * ChangePasswordAction.java
3  *
4  * Created on 16. Dezember 2003, 22:25
5  */

6
7 package org.contineo.actions.config;
8
9 import java.util.Iterator JavaDoc;
10 import java.util.List JavaDoc;
11 import javax.servlet.http.HttpServletRequest JavaDoc;
12 import javax.servlet.http.HttpServletResponse JavaDoc;
13 import javax.servlet.http.HttpSession JavaDoc;
14 import org.apache.commons.beanutils.BeanUtils;
15 import org.apache.log4j.Level;
16 import org.apache.log4j.Logger;
17 import org.apache.struts.action.Action;
18 import org.apache.struts.action.ActionError;
19 import org.apache.struts.action.ActionErrors;
20 import org.apache.struts.action.ActionForm;
21 import org.apache.struts.action.ActionForward;
22 import org.apache.struts.action.ActionMapping;
23 import org.apache.struts.action.ActionMessage;
24 import org.apache.struts.action.ActionMessages;
25 import org.contineo.core.LoggingManager;
26 import org.contineo.core.SessionManagement;
27 import org.contineo.core.XMLBean;
28 import org.jdom.Element;
29 /**
30  *
31  * @author Michael Scholz
32  * @version 1.0
33  */

34 public class SaveSettingsAction extends Action {
35
36     /**
37      * @uml.property name="logger"
38      * @uml.associationEnd
39      */

40     private Logger logger;
41
42     
43     /** Creates a new instance of ChangePasswordAction */
44     public SaveSettingsAction() {
45         logger = LoggingManager.getLogger(this.getClass());
46     }
47     
48     public ActionForward execute(ActionMapping mapping,
49             ActionForm form, HttpServletRequest JavaDoc request,
50             HttpServletResponse JavaDoc response) {
51         ActionForward actionForward = new ActionForward();
52         ActionErrors errors = new ActionErrors();
53         ActionMessages messages = new ActionMessages();
54         HttpSession JavaDoc session = request.getSession();
55         if (SessionManagement.isValid(session)) {
56             String JavaDoc category = "";
57             try {
58                 category = BeanUtils.getSimpleProperty(form, "category");
59                 ClassLoader JavaDoc loader = Thread.currentThread().getContextClassLoader();
60                 XMLBean xml = new XMLBean(loader.getResource("settings.xml"));
61                 List JavaDoc list = xml.getAllChild("setting", "category", category);
62                 Iterator JavaDoc iter = list.iterator();
63                 while (iter.hasNext()) {
64                     Element elem = (Element)iter.next();
65                     String JavaDoc value = BeanUtils.getSimpleProperty(form, elem.getAttributeValue("name"));
66                     xml.setText(elem, value);
67                 }
68                 boolean stored = xml.writeXMLDoc();
69                 if (stored)
70                     messages.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("msg.action.savesettings"));
71             } catch (Exception JavaDoc e) {
72                 if (logger.isEnabledFor(Level.ERROR))
73                     logger.error(e.getMessage());
74                 errors.add(ActionErrors.GLOBAL_ERROR, new ActionError("errors.action.savesettings"));
75             }
76             actionForward.setPath("/ShowSettings.do?category=" + category);
77         } else
78             actionForward = mapping.findForward("invalid");
79         saveErrors(request, errors);
80         saveMessages(request, messages);
81         return actionForward;
82     }
83 }
84
Popular Tags