[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