KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > oddjob > webapp > servlets > IconServlet


1 package org.oddjob.webapp.servlets;
2
3 import java.awt.Color JavaDoc;
4 import java.awt.Graphics2D JavaDoc;
5 import java.awt.image.BufferedImage JavaDoc;
6 import java.io.IOException JavaDoc;
7
8 import javax.imageio.ImageIO JavaDoc;
9 import javax.servlet.ServletConfig JavaDoc;
10 import javax.servlet.ServletContext JavaDoc;
11 import javax.servlet.ServletException JavaDoc;
12 import javax.servlet.http.HttpServlet JavaDoc;
13 import javax.servlet.http.HttpServletRequest JavaDoc;
14 import javax.servlet.http.HttpServletResponse JavaDoc;
15 import javax.swing.ImageIcon JavaDoc;
16
17 import org.apache.log4j.Logger;
18 import org.oddjob.images.IconTip;
19 import org.oddjob.webapp.WebappConstants;
20 import org.oddjob.webapp.model.IconRegistry;
21
22
23 /**
24  * This is still a work in progress.
25  */

26
27 public class IconServlet extends HttpServlet JavaDoc {
28     private static final long serialVersionUID = 20051109;
29     private static final Logger logger = Logger.getLogger(IconServlet.class);
30     
31     private final IconRegistry iconRegistry
32         = new IconRegistry();
33
34     public void init(ServletConfig JavaDoc config) throws ServletException JavaDoc {
35
36         ServletContext JavaDoc context = config.getServletContext();
37         context.setAttribute(WebappConstants.ICON_REGISTRY, iconRegistry);
38     }
39
40     public void doGet(HttpServletRequest JavaDoc request, HttpServletResponse JavaDoc response)
41         throws ServletException JavaDoc, IOException JavaDoc {
42
43         String JavaDoc iconId = (String JavaDoc)request.getParameter("iconId");
44         if (iconId == null) {
45             logger.debug("No request paramter iconId.");
46             return;
47         }
48         IconTip iconTip = iconRegistry.retrieve(iconId);
49         if (iconTip == null) {
50             logger.debug("No icon for [" + iconId + "]");
51             return;
52         }
53         // Vain attempt to for IE to cache images
54
response.setDateHeader("Expires", -1);
55         ImageIcon JavaDoc imageIcon = new ImageIcon JavaDoc(iconTip.getImageData());
56         response.setContentType("image/jpeg");
57         int width = imageIcon.getIconWidth();
58         int height = imageIcon.getIconHeight();
59         BufferedImage JavaDoc bufferedIcon = new BufferedImage JavaDoc(
60                 width, height, BufferedImage.TYPE_INT_RGB);
61         Graphics2D JavaDoc graphics = (Graphics2D JavaDoc)bufferedIcon.getGraphics();
62         graphics.setBackground(Color.WHITE);
63         graphics.clearRect(0, 0, width, height);
64         imageIcon.paintIcon(null, graphics, 0, 0);
65         ImageIO.write(bufferedIcon, "jpg", response.getOutputStream());
66     }
67     
68     public long getLastModified(HttpServletRequest JavaDoc request) {
69         return 0;
70     }
71 }
72
Popular Tags