/* * JBoss, Home of Professional Open Source * Copyright 2013, Red Hat, Inc. and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. * * This is free software; you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; either version 2.1 of * the License, or (at your option) any later version. * * This software is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this software; if not, write to the Free * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA * 02110-1301 USA, or see the FSF site: http://www.fsf.org. */ package org.richfaces.photoalbum.ui; import java.io.Serializable; import java.util.ArrayList; import java.util.List; import javax.enterprise.context.ApplicationScoped; import javax.enterprise.event.Observes; import javax.inject.Named; import org.richfaces.photoalbum.model.Image; import org.richfaces.photoalbum.model.event.EventType; import org.richfaces.photoalbum.model.event.Events; import org.richfaces.photoalbum.model.event.ImageEvent; import org.richfaces.photoalbum.model.event.SimpleEvent; @Named @ApplicationScoped public class FileWrapper implements Serializable { private static final long serialVersionUID = -1767281809514660171L; private boolean complete = false; private List<Image> files = new ArrayList<Image>(); private List<ErrorImage> errorFiles = new ArrayList<ErrorImage>(); class ErrorImage { private Image image; private String errorDescription; ErrorImage(Image i, String description) { image = i; errorDescription = description; } public Image getImage() { return image; } public void setImage(Image image) { this.image = image; } public String getErrorDescription() { return errorDescription; } public void setErrorDescription(String errorDescription) { this.errorDescription = errorDescription; } } public int getSize() { return getFiles().size(); } public List<Image> getFiles() { return files; } public void setFiles(List<Image> files) { this.files = files; } public void removeImage(@Observes @EventType(Events.IMAGE_DRAGGED_EVENT) ImageEvent ie) { files.remove(ie.getImage()); } public void clear(@Observes @EventType(Events.CLEAR_FILE_UPLOAD_EVENT) SimpleEvent se) { files.clear(); errorFiles.clear(); complete = false; } public void onFileUploadError(Image image, String error) { ErrorImage e = new ErrorImage(image, error); errorFiles.add(e); } public Image getErrorImage(ErrorImage e) { return e.getImage(); } public String getErrorDescription(ErrorImage e) { return e.getErrorDescription(); } public boolean isComplete() { return complete; } public void setComplete(boolean complete) { this.complete = complete; } public List<ErrorImage> getErrorFiles() { return errorFiles; } public void setErrorFiles(List<ErrorImage> errorFiles) { this.errorFiles = errorFiles; } }