[jboss-cvs] jboss-seam/src/ui/org/jboss/seam/ui/graphicImage ...

Peter Muir peter at bleepbleep.org.uk
Tue Apr 3 14:10:35 EDT 2007


  User: pmuir   
  Date: 07/04/03 14:10:35

  Modified:    src/ui/org/jboss/seam/ui/graphicImage      
                        UIGraphicImage.java UITransformImageSize.java
  Added:       src/ui/org/jboss/seam/ui/graphicImage      
                        GraphicImageStore.java GraphicImageResource.java
  Removed:     src/ui/org/jboss/seam/ui/graphicImage      
                        DynamicImageStore.java DynamicImageResource.java
  Log:
  Better names and types
  
  Revision  Changes    Path
  1.5       +5 -5      jboss-seam/src/ui/org/jboss/seam/ui/graphicImage/UIGraphicImage.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: UIGraphicImage.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/src/ui/org/jboss/seam/ui/graphicImage/UIGraphicImage.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -b -r1.4 -r1.5
  --- UIGraphicImage.java	30 Mar 2007 23:09:09 -0000	1.4
  +++ UIGraphicImage.java	3 Apr 2007 18:10:35 -0000	1.5
  @@ -13,7 +13,7 @@
   import org.jboss.seam.core.Image;
   import org.jboss.seam.ui.HTML;
   import org.jboss.seam.ui.JSF;
  -import org.jboss.seam.ui.graphicImage.DynamicImageStore.ImageWrapper;
  +import org.jboss.seam.ui.graphicImage.GraphicImageStore.ImageWrapper;
   
   public class UIGraphicImage extends HtmlGraphicImage
   {
  @@ -71,13 +71,13 @@
            }
         }
   
  -      key = DynamicImageStore.instance().put(new ImageWrapper(image.getImage(), image.getContentType()),
  +      key = GraphicImageStore.instance().put(new ImageWrapper(image.getImage(), image.getContentType()),
                  key);
         extension = image.getContentType().getExtension();
   
         writer.startElement(HTML.IMG_ELEM, this);
         String url = context.getExternalContext().getRequestContextPath()
  -               + DynamicImageResource.DYNAMIC_IMAGE_RESOURCE_PATH + "/" + key + extension;
  +               + GraphicImageResource.GRAPHIC_IMAGE_RESOURCE_PATH + "/" + key + extension;
         writer.writeAttribute(HTML.SRC_ATTR, url, HTML.SRC_ATTR);
         HTML.renderHTMLAttributes(writer, this, HTML.IMG_PASSTHROUGH_ATTRIBUTES);
         writer.endElement(HTML.IMG_ELEM);
  @@ -103,7 +103,7 @@
      }
   
      @Override
  -   protected Renderer getRenderer(FacesContext context)
  +   public String getRendererType()
      {
         return null;
      }
  
  
  
  1.5       +17 -17    jboss-seam/src/ui/org/jboss/seam/ui/graphicImage/UITransformImageSize.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: UITransformImageSize.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/src/ui/org/jboss/seam/ui/graphicImage/UITransformImageSize.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -b -r1.4 -r1.5
  --- UITransformImageSize.java	30 Mar 2007 23:09:09 -0000	1.4
  +++ UITransformImageSize.java	3 Apr 2007 18:10:35 -0000	1.5
  @@ -14,11 +14,11 @@
      
      private Boolean maintainRatio;
      
  -   private String width;
  +   private Integer width;
      
  -   private String height;
  +   private Integer height;
      
  -   private String factor;
  +   private Double factor;
      
      @Override
      public String getFamily()
  @@ -81,7 +81,7 @@
         this.maintainRatio = maintainRatio;
      }
      
  -   public String getWidth()
  +   public Integer getWidth()
      {
         if (width != null)
         {
  @@ -90,16 +90,16 @@
         else
         {
            ValueBinding vb = getValueBinding("width");
  -         return vb == null ? null : JSF.getStringValue(getFacesContext(), vb);
  +         return vb == null ? null : JSF.getIntegerValue(getFacesContext(), vb);
         }
      }
      
  -   public void setWidth(String width)
  +   public void setWidth(Integer width)
      {
         this.width = width;
      }
      
  -   public String getHeight()
  +   public Integer getHeight()
      {
         if (height != null)
         {
  @@ -108,16 +108,16 @@
         else
         {
            ValueBinding vb = getValueBinding("height");
  -         return vb == null ? null : JSF.getStringValue(getFacesContext(), vb);
  +         return vb == null ? null : JSF.getIntegerValue(getFacesContext(), vb);
         }
      }
      
  -   public void setHeight(String height)
  +   public void setHeight(Integer height)
      {
         this.height = height;
      }
      
  -   public String getFactor()
  +   public Double getFactor()
      {
         if (factor != null)
         {
  @@ -126,11 +126,11 @@
         else
         {
            ValueBinding vb = getValueBinding("factor");
  -         return vb == null ? null : JSF.getStringValue(getFacesContext(), vb);
  +         return vb == null ? null : JSF.getDoubleValue(getFacesContext(), vb);
         }
      }
      
  -   public void setFactor(String factor)
  +   public void setFactor(Double factor)
      {
         this.factor = factor;
      }
  @@ -152,9 +152,9 @@
      {
         Object[] objects = (Object[]) state;
         super.restoreState(context, objects[0]);
  -      factor = (String) objects[1];
  -      height = (String) objects[2];
  -      width = (String) objects[3];
  +      factor = (Double) objects[1];
  +      height = (Integer) objects[2];
  +      width = (Integer) objects[3];
         maintainRatio = (Boolean) objects[4];
      }
      
  
  
  
  1.1      date: 2007/04/03 18:10:35;  author: pmuir;  state: Exp;jboss-seam/src/ui/org/jboss/seam/ui/graphicImage/GraphicImageStore.java
  
  Index: GraphicImageStore.java
  ===================================================================
  package org.jboss.seam.ui.graphicImage;
  
  import java.io.Serializable;
  import java.util.HashMap;
  import java.util.Map;
  
  import org.jboss.seam.Component;
  import org.jboss.seam.InterceptionType;
  import org.jboss.seam.ScopeType;
  import org.jboss.seam.annotations.Install;
  import org.jboss.seam.annotations.Intercept;
  import org.jboss.seam.annotations.Name;
  import org.jboss.seam.annotations.Scope;
  import org.jboss.seam.core.Image;
  import org.jboss.seam.log.Log;
  import org.jboss.seam.log.Logging;
  
  @Name("org.jboss.seam.ui.graphicImage.graphicImageStore")
  @Scope(ScopeType.SESSION)
  @Install(precedence = Install.BUILT_IN)
  @Intercept(InterceptionType.NEVER)
  public class GraphicImageStore implements Serializable
  {
     
     private Log log = Logging.getLog(GraphicImageStore.class);
  
     public static class ImageWrapper implements Serializable
     {
        
        private byte[] image;
  
        private Image.Type contentType;
  
        public ImageWrapper(byte[] image, Image.Type contentType)
        {
           this.image = image;
           this.contentType = contentType;
        }
  
        public Image.Type getContentType()
        {
           return contentType;
        }
  
        public byte[] getImage()
        {
           return image;
        }
     }
  
     private Map<String, ImageWrapper> store = new HashMap<String, ImageWrapper>();
  
     private int index = 0;
  
     /**
      * Put a image into the store
      * @param image
      * @return the key of the image
      */
     public String put(ImageWrapper image)
     {
        return put(image, null);
     }
     
     /**
      * Put an image into the store.
      * @param image
      * @param key The key to use, if null, a key will be generated
      * @return The key of the image
      */
     public String put(ImageWrapper image, String key) 
     {
        if (key == null)
        {
           key = "org.jboss.seam.ui.GraphicImageStore." + index;
           index++;
        }
        store.put(key, image);
        log.debug("Put image into to session with key #0", key);
        return key;
     }
  
     public ImageWrapper get(String key)
     {
        log.debug("Get image into to session with key #0", key);
        ImageWrapper image = store.get(key);
        return image;
     }
     
     public ImageWrapper remove(String key)
     {
        log.debug("Get image from session with key #0", key);
        return store.remove(key);
     }
     
     public boolean contains(String key) 
     {
        return store.containsKey(key);
     }
  
     public static GraphicImageStore instance()
     {
        return (GraphicImageStore) Component.getInstance(GraphicImageStore.class, true);
     }
  
  }
  
  
  1.1      date: 2007/04/03 18:10:35;  author: pmuir;  state: Exp;jboss-seam/src/ui/org/jboss/seam/ui/graphicImage/GraphicImageResource.java
  
  Index: GraphicImageResource.java
  ===================================================================
  package org.jboss.seam.ui.graphicImage;
  
  import static org.jboss.seam.InterceptionType.NEVER;
  import static org.jboss.seam.ScopeType.APPLICATION;
  import static org.jboss.seam.annotations.Install.BUILT_IN;
  
  import java.io.IOException;
  
  import javax.faces.event.PhaseId;
  import javax.servlet.ServletOutputStream;
  import javax.servlet.http.HttpServletRequest;
  import javax.servlet.http.HttpServletResponse;
  import javax.servlet.http.HttpSession;
  
  import org.jboss.seam.annotations.Install;
  import org.jboss.seam.annotations.Intercept;
  import org.jboss.seam.annotations.Name;
  import org.jboss.seam.annotations.Scope;
  import org.jboss.seam.annotations.Startup;
  import org.jboss.seam.contexts.ContextAdaptor;
  import org.jboss.seam.contexts.Lifecycle;
  import org.jboss.seam.core.Manager;
  import org.jboss.seam.servlet.AbstractResource;
  import org.jboss.seam.ui.graphicImage.GraphicImageStore.ImageWrapper;
  
  @Startup
  @Scope(APPLICATION)
  @Name("org.jboss.seam.ui.graphicImage.graphicImageResource")
  @Install(precedence = BUILT_IN)
  @Intercept(NEVER)
  public class GraphicImageResource extends AbstractResource
  {
  
   public static final String GRAPHIC_IMAGE_RESOURCE_PATH = "/seam/resource/graphicImage";
     
     private static final String RESOURCE_PATH = "/graphicImage";
     
     @Override
     protected String getResourcePath()
     {
        return RESOURCE_PATH;
     }
     
     @Override
     public void getResource(HttpServletRequest request, HttpServletResponse response)
        throws IOException
     {
        String pathInfo = request.getPathInfo().substring(getResourcePath().length() + 1,
                 request.getPathInfo().lastIndexOf("."));
  
        // Set up Seam contexts
        HttpSession session = request.getSession(true);
        Lifecycle.setPhaseId(PhaseId.INVOKE_APPLICATION);
        Lifecycle.setServletRequest(request);
        Lifecycle.beginRequest(getServletContext(), session, request);
        Manager.instance().restoreConversation(request.getParameterMap());
        Lifecycle.resumeConversation(session);
        Manager.instance().handleConversationPropagation(request.getParameterMap());
        
        try
        {
           ImageWrapper image = GraphicImageStore.instance().remove(pathInfo);
           if (image != null)
           {
              response.setContentType(image.getContentType().getMimeType());
              response.setStatus(HttpServletResponse.SC_OK);
              response.setContentLength(image.getImage().length);
              ServletOutputStream os = response.getOutputStream();
              os.write(image.getImage());
              os.flush();
           }
           else
           {
              response.sendError(HttpServletResponse.SC_NOT_FOUND);
           }
  
           // TODO: conversation timeout
           Manager.instance().endRequest(ContextAdaptor.getSession(session));
           Lifecycle.endRequest(session);
        }
        catch (Exception e)
        {
           Lifecycle.endRequest();
        }
        finally
        {
           Lifecycle.setServletRequest(null);
           Lifecycle.setPhaseId(null);
        }      
     }
  
  }
  
  
  



More information about the jboss-cvs-commits mailing list