package org.aperteworkflow.editor.processeditor.tab.other; import com.vaadin.ui.Upload; import org.aperteworkflow.editor.signavio.ModelConstants; import org.aperteworkflow.editor.vaadin.GenericEditorApplication; import org.aperteworkflow.util.vaadin.BaseUploader; import java.io.ByteArrayOutputStream; import java.io.OutputStream; import java.util.logging.Logger; public class ProcessLogoUploader extends BaseUploader { private static final Logger logger = Logger.getLogger(ProcessLogoUploader.class.getName()); private ByteArrayOutputStream processLogoOut; private ProcessLogoHandler processLogoHandler; public ProcessLogoUploader() { super(GenericEditorApplication.getCurrent()); setMaxFileSize(ModelConstants.PROCESS_LOGO_FILE_SIZE); addAllowedMimeType(ModelConstants.PROCESS_LOGO_ALLOWED_MIME_TYPES); } public void setProcessLogoHandler(ProcessLogoHandler processLogoHandler) { this.processLogoHandler = processLogoHandler; } @Override protected OutputStream createOutputStream() throws Exception { processLogoOut = new ByteArrayOutputStream(); return processLogoOut; } @Override public void uploadSucceeded(Upload.SucceededEvent event) { super.uploadSucceeded(event); // notify the handler processLogoHandler.handleProcessLogo(processLogoOut.toByteArray()); // clean up processLogoOut = null; } }