package cz.cuni.mff.d3s.been.web.pages.bpkpackage; import java.io.IOException; import org.apache.tapestry5.ComponentResources; import org.apache.tapestry5.annotations.InjectComponent; import org.apache.tapestry5.annotations.OnEvent; import org.apache.tapestry5.annotations.Property; import org.apache.tapestry5.corelib.components.Zone; import org.apache.tapestry5.ioc.annotations.Inject; import org.apache.tapestry5.services.ajax.AjaxResponseRenderer; import org.apache.tapestry5.upload.services.UploadedFile; import org.got5.tapestry5.jquery.JQueryEventConstants; import cz.cuni.mff.d3s.been.api.BeenApiException; import cz.cuni.mff.d3s.been.api.BpkStreamHolder; import cz.cuni.mff.d3s.been.web.components.Layout; import cz.cuni.mff.d3s.been.web.pages.Page; /** * @author donarus */ @Page.Navigation(section = Layout.Section.PACKAGE_UPLOAD) public class Upload extends Page { @Property private String message; @InjectComponent private Zone uploadResult; @Inject private ComponentResources resources; @Inject private AjaxResponseRenderer ajaxResponseRenderer; @OnEvent(component = "uploadBpk", value = JQueryEventConstants.AJAX_UPLOAD) void onUpload(UploadedFile uploadedFile) throws BeenApiException { try { api.getApi().uploadBpk(new BpkStreamHolder(uploadedFile.getStream())); } catch (IOException | BeenApiException e) { message = "Cannot store uploaded BPK in repository: " + e.getMessage(); ajaxResponseRenderer.addRender("uploadResult", uploadResult); return; } message = "Successfully uploaded package."; ajaxResponseRenderer.addRender("uploadResult", uploadResult); } public boolean isSwRepositoryOnline() throws BeenApiException { return this.api.getApi().isSwRepositoryOnline(); } }