KickJava   Java API By Example, From Geeks To Geeks.

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


1 package org.claros.chat.ajax;
2
3 import java.io.IOException JavaDoc;
4 import java.io.PrintWriter JavaDoc;
5
6 import javax.servlet.ServletException JavaDoc;
7 import javax.servlet.http.HttpServlet JavaDoc;
8 import javax.servlet.http.HttpServletRequest JavaDoc;
9 import javax.servlet.http.HttpServletResponse JavaDoc;
10
11 import org.jivesoftware.smack.XMPPConnection;
12 import org.jivesoftware.smack.packet.Presence;
13 import org.jivesoftware.smack.packet.Presence.Mode;
14
15 public class Status extends HttpServlet JavaDoc {
16
17     /**
18      *
19      */

20     private static final long serialVersionUID = -831691288847101256L;
21
22     /**
23      * Constructor of the object.
24      */

25     public Status() {
26         super();
27     }
28
29     /**
30      * The doGet method of the servlet. <br>
31      *
32      * This method is called when a form has its tag value method equals to get.
33      *
34      * @param request the request send by the client to the server
35      * @param response the response send by the server to the client
36      * @throws ServletException if an error occurred
37      * @throws IOException if an error occurred
38      */

39     public void doGet(HttpServletRequest JavaDoc request, HttpServletResponse JavaDoc response)
40             throws ServletException JavaDoc, IOException JavaDoc {
41         doPost(request, response);
42     }
43
44     /**
45      * The doPost method of the servlet. <br>
46      *
47      * This method is called when a form has its tag value method equals to post.
48      *
49      * @param request the request send by the client to the server
50      * @param response the response send by the server to the client
51      * @throws ServletException if an error occurred
52      * @throws IOException if an error occurred
53      */

54     public void doPost(HttpServletRequest JavaDoc request, HttpServletResponse JavaDoc response)
55             throws ServletException JavaDoc, IOException JavaDoc {
56         response.setHeader("Expires","-1");
57         response.setHeader("Pragma","no-cache");
58         response.setHeader("Cache-control","no-cache");
59         response.setHeader("Content-Type", "text/xml; charset=utf-8");
60         PrintWriter JavaDoc out = response.getWriter();
61         out.write("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
62
63         XMPPConnection conn = (XMPPConnection)request.getSession().getAttribute("conn");
64         String JavaDoc act = request.getParameter("act");
65         if (act.equals("load")) {
66             Presence prs = null;
67             if (prs != null) {
68                 Mode md = prs.getMode();
69                 String JavaDoc msg = (prs.getStatus() != null) ? prs.getStatus() : "";
70                 String JavaDoc stattxt = "offline";
71
72                 if (md != null) {
73                     if (md.equals(Presence.Mode.AVAILABLE)) {
74                         stattxt = "available";
75                     } else if (md.equals(Presence.Mode.AWAY)) {
76                         stattxt = "away";
77                     } else if (md.equals(Presence.Mode.CHAT)) {
78                         stattxt = "chat";
79                     } else if (md.equals(Presence.Mode.DO_NOT_DISTURB)) {
80                         stattxt = "disturb";
81                     } else if (md.equals(Presence.Mode.EXTENDED_AWAY)) {
82                         stattxt = "extended_away";
83                     } else if (md.equals(Presence.Mode.INVISIBLE)) {
84                         stattxt = "invisible";
85                     }
86                 }
87
88                 out.write("<data>");
89                 out.write("<status>" + stattxt + "</status>");
90                 out.write("<message>" + msg + "</message>");
91                 out.write("</data>");
92             }
93         } else if (act.equals("save")) {
94             String JavaDoc newStat = request.getParameter("newstat");
95             String JavaDoc newMsg = request.getParameter("newstatmsg");
96             
97             Presence pr = new Presence(Presence.Type.AVAILABLE);
98             if (newMsg != null) {
99                 pr.setStatus(newMsg);
100             }
101             if (newStat != null) {
102                 if (newStat.equals("available")) {
103                     pr.setMode(Presence.Mode.AVAILABLE);
104                 } else if (newStat.equals("away")) {
105                     pr.setMode(Presence.Mode.AWAY);
106                 } else if (newStat.equals("disturb")) {
107                     pr.setMode(Presence.Mode.DO_NOT_DISTURB);
108                 }
109                 conn.sendPacket(pr);
110             }
111             out.write("<data><result>ok</result></data>");
112         }
113         
114         out.flush();
115         out.close();
116     }
117 }
118
Popular Tags