package it.vige.magazzino;
import it.vige.magazzino.model.Data;
import java.io.IOException;
import java.io.OutputStream;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.faces.application.FacesMessage;
import javax.faces.application.FacesMessage.Severity;
import javax.faces.context.FacesContext;
import org.richfaces.event.FileUploadEvent;
import org.richfaces.model.UploadedFile;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public abstract class FileUpload implements DataContainer {
private static final long serialVersionUID = -4260367986164333712L;
private static final Logger log = LoggerFactory.getLogger(FileUpload.class);
public static final int MAX_FILES_AVAILABLE = 1;
public static final String FILE_DIR = "/tmp/fileUpload/";
private String fileTypesAllowed = "jpg,gif,bmp";
private String fileName;
@PostConstruct
public void init() {
}
public void paint(OutputStream stream, Object object) throws IOException {
stream.write(getFiles().get((Integer) object).getData());
stream.close();
}
public void listener(FileUploadEvent event) throws Exception {
UploadedFile item = event.getUploadedFile();
log.debug("File info: " + item.getName() + ","
+ item.getParameterName());
Data file = new Data();
file.setCodeData(new Date().toString());
file.setLength(item.getData().length);
file.setName(item.getName());
file.setData(item.getData());
getFiles().add(file);
log.debug("Added File: " + file.getName());
}
public void clearUploadData() {
Iterator<Data> i = getFiles().iterator();
while (i.hasNext()) {
Data file = i.next();
if (file.getName().equals(this.fileName)) {
i.remove();
break;
}
}
}
public void clearAllUploadData() {
getFiles().removeAll(getFiles());
}
public int getSize() {
if (getFiles().size() > 0) {
return getFiles().size();
} else {
return 0;
}
}
public long getTimeStamp() {
return System.currentTimeMillis();
}
public abstract List<Data> getFiles();
public abstract void setFiles(List<Data> files);
public int getUploadsAvailable() {
return MAX_FILES_AVAILABLE;
}
public String getFileTypesAllowed() {
return fileTypesAllowed;
}
public void setFileTypesAllowed(String fileTypesAllowed) {
this.fileTypesAllowed = fileTypesAllowed;
}
public String getFileName() {
return fileName;
}
public void setFileName(String fileName) {
this.fileName = fileName;
}
protected void createFacesMessage(Severity severity, String clientId,
String summary, String detail) {
if (severity == null) {
severity = FacesMessage.SEVERITY_INFO;
}
FacesContext.getCurrentInstance().addMessage(clientId,
new FacesMessage(severity, summary, detail));
}
}