KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > claros > chat > ajax > Preferences


1 package org.claros.chat.ajax;
2
3 import java.io.IOException JavaDoc;
4 import java.io.PrintWriter JavaDoc;
5 import java.util.List JavaDoc;
6
7 import javax.servlet.ServletException JavaDoc;
8 import javax.servlet.http.HttpServlet JavaDoc;
9 import javax.servlet.http.HttpServletRequest JavaDoc;
10 import javax.servlet.http.HttpServletResponse JavaDoc;
11
12 import org.claros.chat.controllers.PreferencesController;
13 import org.claros.chat.models.Preference;
14 import org.jivesoftware.smack.XMPPConnection;
15 import org.jivesoftware.smackx.packet.VCard;
16
17 public class Preferences extends HttpServlet JavaDoc {
18     /**
19      *
20      */

21     private static final long serialVersionUID = 7576677600733897150L;
22
23     /**
24      * Constructor of the object.
25      */

26     public Preferences() {
27         super();
28     }
29
30     public void doGet(HttpServletRequest JavaDoc request, HttpServletResponse JavaDoc response) throws ServletException JavaDoc, IOException JavaDoc {
31         doPost(request, response);
32     }
33     /**
34      * The doPost method of the servlet. <br>
35      *
36      * This method is called when a form has its tag value method equals to post.
37      *
38      * @param request the request send by the client to the server
39      * @param response the response send by the server to the client
40      * @throws ServletException if an error occurred
41      * @throws IOException if an error occurred
42      */

43     public void doPost(HttpServletRequest JavaDoc request, HttpServletResponse JavaDoc response) throws ServletException JavaDoc, IOException JavaDoc {
44         response.setHeader("Expires","-1");
45         response.setHeader("Pragma","no-cache");
46         response.setHeader("Cache-control","no-cache");
47         response.setHeader("Content-Type", "text/xml; charset=utf-8");
48         PrintWriter JavaDoc out = response.getWriter();
49
50         String JavaDoc user = (String JavaDoc)request.getSession().getAttribute("user");
51         String JavaDoc act = (String JavaDoc)request.getParameter("act");
52         if (user != null) {
53             if (act.equals("load")) {
54                 try {
55                     List JavaDoc prefs = PreferencesController.getPreferencesByUser(user);
56                     if (prefs != null) {
57                         out.write("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
58                         out.write("<data>");
59                         
60                         XMPPConnection conn = (XMPPConnection)request.getSession().getAttribute("conn");
61                         VCard vCard = new VCard();
62                         vCard.load(conn);
63                         String JavaDoc nickname = vCard.getNickName();
64                         String JavaDoc firstName = vCard.getFirstName();
65                         String JavaDoc middleName = vCard.getMiddleName();
66                         String JavaDoc lastName = vCard.getLastName();
67                         String JavaDoc fullName = vCard.getField("FN");
68                         
69                         if (fullName == null) {
70                             if (firstName != null && lastName != null) {
71                                 if (middleName != null) {
72                                     fullName = firstName + " " + middleName + " " + lastName;
73                                 } else {
74                                     fullName = firstName + " " + middleName + " " + lastName;
75                                 }
76                             } else if (nickname != null) {
77                                 fullName = nickname;
78                             } else {
79                                 fullName = user;
80                             }
81                         }
82                         out.write("<fullname>" + fullName + "</fullname>");
83                         
84                         Preference p = null;
85                         for (int i=0;i<prefs.size();i++) {
86                             p = (Preference)prefs.get(i);
87                             out.write("<preference>");
88                             out.write("<key>" + p.getPrefKey() + "</key>");
89                             out.write("<value>" + p.getPrefValue() + "</value>");
90                             out.write("</preference>");
91                         }
92                         out.write("</data>");
93                     }
94                 } catch (Exception JavaDoc e) {
95                     e.printStackTrace();
96                 }
97             } else if (act.equals("save")) {
98                 try {
99                     String JavaDoc fullName = new String JavaDoc(request.getParameter("fullName").getBytes("iso-8859-9"), "utf-8");
100                     XMPPConnection conn = (XMPPConnection)request.getSession().getAttribute("conn");
101                     VCard vcard = new VCard();
102                     vcard.load(conn);
103                     vcard.setField("FN", fullName);
104                     vcard.save(conn);
105                 } catch (Exception JavaDoc e) {
106                     e.printStackTrace();
107                 }
108
109                 try {
110                     String JavaDoc awayTimeout = request.getParameter("awayTimeout");
111                     PreferencesController.savePreference(new Preference(user, "awayTimeout", awayTimeout));
112                 } catch (Exception JavaDoc e) {
113                     e.printStackTrace();
114                 }
115
116                 try {
117                     String JavaDoc animations = request.getParameter("animations");
118                     PreferencesController.savePreference(new Preference(user, "animations", animations));
119                 } catch (Exception JavaDoc e) {
120                     e.printStackTrace();
121                 }
122
123                 try {
124                     String JavaDoc soundAlert = request.getParameter("soundAlert");
125                     PreferencesController.savePreference(new Preference(user, "soundAlert", soundAlert));
126                 } catch (Exception JavaDoc e) {
127                     e.printStackTrace();
128                 }
129                 out.print("<result>ok</result>");
130             }
131
132         }
133         out.flush();
134         out.close();
135     }
136 }
137
Popular Tags