Package org.richfaces.demo.fileUpload

Source Code of org.richfaces.demo.fileUpload.FileUploadBean

/**
*
*/
package org.richfaces.demo.fileUpload;

import org.richfaces.event.UploadEvent;
import org.richfaces.model.UploadItem;

import javax.faces.context.FacesContext;
import javax.portlet.RenderResponse;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.image.IndexColorModel;
import java.awt.image.MemoryImageSource;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.ArrayList;

/**
* @author Ilya Shaikovsky
*
*/
public class FileUploadBean{

  private ArrayList<File> files = new ArrayList<File>();
  private int uploadsAvailable = 5;
  private boolean autoUpload = false;
  private boolean useFlash = false;
  public int getSize() {
    if (getFiles().size()>0){
      return getFiles().size();
    }else
    {
      return 0;
    }
  }

  public FileUploadBean() {
  }

   public Image getUImage(){
      if(getSize() > 0){
      byte[] bytes = files.get(0).getData();

      byte[] rgb = new byte[256];
      for(int i=0; i<rgb.length; i++)
        rgb[i] = (byte) i;

      IndexColorModel cm = new IndexColorModel(8,256,rgb,rgb,rgb);
      MemoryImageSource source = new MemoryImageSource(640,480,cm,bytes,0,480);
      Image newImage = Toolkit.getDefaultToolkit().createImage(source);

      //need workaround for different OS
//      apple.awt.OSXImage newImage = (apple.awt.OSXImage)Toolkit.getDefaultToolkit().createImage(source);
      return newImage;//.getBufferedImage();
      }else{
         return null;
      }

   }

  public void paint(OutputStream stream, Object object) throws IOException {
      Object responseObject = FacesContext.getCurrentInstance().getExternalContext().getResponse();
      if (responseObject instanceof RenderResponse) {
        //BufferedRenderResponseWrapper brrw = (BufferedRenderResponseWrapper)responseObject;
         //RenderResponse response = brrw.getResponse();
        // response.getPortletOutputStream().write(getFiles().get((Integer)object).getData());

      }else{
         //servlet response
    stream.write(getFiles().get((Integer)object).getData());
  }

  }
  public void listener(UploadEvent event) throws IOException{
      UploadItem item = event.getUploadItem();
       File file = new File(); // Caution: NOT a java.io.File

       try{

       file.setName(item.getFileName());
       file.setMime(item.getContentType());

       /*Get File Data*/
       if (item.isTempFile()) {

       byte[] fileInBytes = new byte[(int)item.getFile().length()]; //* TODO: Avoid loss of data in casting 'long' to 'int'
       java.io.File tempFile = item.getFile();
       FileInputStream fileInputStream = new FileInputStream(tempFile);
       fileInputStream.read(fileInBytes);
       fileInputStream.close();

       file.setData(fileInBytes); //

       } else {
       file.setData(item.getData());
       System.out.println("STATUS: "+"Not a temp File!");
       }

       file.setLength(file.getData().length);
       System.out.println("FILE LENGTH: "+file.getData().length/1024+"kb");

       files.add(file);
       uploadsAvailable--;
       }
       catch(Exception e){
       System.out.println("ERROR:[listener()]: "+e);
       }
  }

  public String clearUploadData() {
    files.clear();
    setUploadsAvailable(5);
    return null;
  }

  public long getTimeStamp(){
    return System.currentTimeMillis();
  }

  public ArrayList<File> getFiles() {
    return files;
  }

  public void setFiles(ArrayList<File> files) {
    this.files = files;
  }

  public int getUploadsAvailable() {
    return uploadsAvailable;
  }

  public void setUploadsAvailable(int uploadsAvailable) {
    this.uploadsAvailable = uploadsAvailable;
  }

  public boolean isAutoUpload() {
    return autoUpload;
  }

  public void setAutoUpload(boolean autoUpload) {
    this.autoUpload = autoUpload;
  }

  public boolean isUseFlash() {
    return useFlash;
  }

  public void setUseFlash(boolean useFlash) {
    this.useFlash = useFlash;
  }

}
TOP

Related Classes of org.richfaces.demo.fileUpload.FileUploadBean

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.