[jboss-cvs] jboss-seam/examples/seamspace/src/org/jboss/seam/example/seamspace ...
Shane Bryzak
Shane_Bryzak at symantec.com
Fri Jan 26 09:20:20 EST 2007
User: sbryzak2
Date: 07/01/26 09:20:20
Modified: examples/seamspace/src/org/jboss/seam/example/seamspace
ContentServlet.java
Log:
added no_image
Revision Changes Path
1.6 +58 -15 jboss-seam/examples/seamspace/src/org/jboss/seam/example/seamspace/ContentServlet.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: ContentServlet.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/examples/seamspace/src/org/jboss/seam/example/seamspace/ContentServlet.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- ContentServlet.java 22 Dec 2006 07:21:01 -0000 1.5
+++ ContentServlet.java 26 Jan 2007 14:20:19 -0000 1.6
@@ -3,7 +3,9 @@
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.image.BufferedImage;
+import java.io.ByteArrayOutputStream;
import java.io.IOException;
+import java.io.InputStream;
import javax.imageio.ImageIO;
import javax.servlet.ServletException;
@@ -30,6 +32,31 @@
*/
private static final int MAX_IMAGE_WIDTH = 1024;
+ private byte[] noImage;
+
+ public ContentServlet()
+ {
+ InputStream in = getClass().getResourceAsStream("/images/no_image.png");
+ if (in != null)
+ {
+ ByteArrayOutputStream out = new ByteArrayOutputStream();
+ byte[] buffer = new byte[512];
+ try
+ {
+ int read = in.read(buffer);
+ while (read != -1)
+ {
+ out.write(buffer, 0, read);
+ read = in.read(buffer);
+ }
+
+ noImage = out.toByteArray();
+ }
+ catch (IOException e) { }
+ }
+
+ }
+
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
@@ -40,9 +67,23 @@
MemberImage mi = contentAction.getImage(Integer.parseInt(request.getParameter("id")));
- if (mi != null)
+ String contentType = null;
+ byte[] data = null;
+
+ if (mi != null && mi.getData() != null && mi.getData().length > 0)
+ {
+ contentType = mi.getContentType();
+ data = mi.getData();
+ }
+ else if (noImage != null)
{
- response.setContentType(mi.getContentType());
+ contentType = "image/png";
+ data = noImage;
+ }
+
+ if (data != null)
+ {
+ response.setContentType(contentType);
boolean rescale = false;
int width = 0;
@@ -53,7 +94,7 @@
{
width = Math.min(MAX_IMAGE_WIDTH, Integer.parseInt(request
.getParameter("width")));
- icon = new ImageIcon(mi.getData());
+ icon = new ImageIcon(data);
if (width > 0 && width != icon.getIconWidth())
rescale = true;
}
@@ -64,7 +105,7 @@
double ratio = (double) width / icon.getIconWidth();
int height = (int) (icon.getIconHeight() * ratio);
- int imageType = "image/png".equals(mi.getContentType()) ?
+ int imageType = "image/png".equals(contentType) ?
BufferedImage.TYPE_INT_ARGB : BufferedImage.TYPE_INT_RGB;
BufferedImage bImg = new BufferedImage(width, height, imageType);
Graphics2D g2d = bImg.createGraphics();
@@ -74,18 +115,20 @@
g2d.dispose();
String formatName = "";
- if ("image/png".equals(mi.getContentType()))
+ if ("image/png".equals(contentType))
formatName = "png";
- else if ("image/jpeg".equals(mi.getContentType()))
+ else if ("image/jpeg".equals(contentType))
formatName = "jpeg";
ImageIO.write(bImg, formatName, response.getOutputStream());
}
else
- response.getOutputStream().write(mi.getData());
+ {
+ response.getOutputStream().write(data);
+ }
+ }
response.getOutputStream().flush();
}
}
- }
}
More information about the jboss-cvs-commits
mailing list