List of usage examples for org.apache.wicket.markup.html.link DownloadLink setDeleteAfterDownload
public final DownloadLink setDeleteAfterDownload(boolean deleteAfter)
From source file:com.evolveum.midpoint.gui.api.component.result.OperationResultPanel.java
License:Apache License
private void initHeader(WebMarkupContainer box) { WebMarkupContainer iconType = new WebMarkupContainer(ID_ICON_TYPE); iconType.setOutputMarkupId(true);//from w ww .j a v a2s . c o m iconType.add(new AttributeAppender("class", new AbstractReadOnlyModel<String>() { private static final long serialVersionUID = 1L; @Override public String getObject() { StringBuilder sb = new StringBuilder(); OpResult message = getModelObject(); switch (message.getStatus()) { case IN_PROGRESS: case NOT_APPLICABLE: sb.append(" fa-info"); break; case SUCCESS: sb.append(" fa-check"); break; case FATAL_ERROR: sb.append(" fa-ban"); break; case PARTIAL_ERROR: case UNKNOWN: case WARNING: case HANDLED_ERROR: default: sb.append(" fa-warning"); } return sb.toString(); } })); box.add(iconType); Label message = createMessage(); AjaxLink<String> showMore = new AjaxLink<String>(ID_MESSAGE) { private static final long serialVersionUID = 1L; @Override public void onClick(AjaxRequestTarget target) { OpResult result = OperationResultPanel.this.getModelObject(); result.setShowMore(!result.isShowMore()); result.setAlreadyShown(false); // hack to be able to expand/collapse OpResult after rendered. target.add(OperationResultPanel.this); } }; showMore.add(message); box.add(showMore); AjaxLink<String> backgroundTask = new AjaxLink<String>(ID_BACKGROUND_TASK) { private static final long serialVersionUID = 1L; @Override public void onClick(AjaxRequestTarget target) { final OpResult opResult = OperationResultPanel.this.getModelObject(); String oid = opResult.getBackgroundTaskOid(); if (oid == null || !opResult.isBackgroundTaskVisible()) { return; // just for safety } ObjectReferenceType ref = ObjectTypeUtil.createObjectRef(oid, ObjectTypes.TASK); WebComponentUtil.dispatchToObjectDetailsPage(ref, getPageBase(), false); } }; backgroundTask.add(new VisibleEnableBehaviour() { private static final long serialVersionUID = 1L; @Override public boolean isVisible() { return getModelObject().getBackgroundTaskOid() != null && getModelObject().isBackgroundTaskVisible(); } }); box.add(backgroundTask); AjaxLink<String> showAll = new AjaxLink<String>(ID_SHOW_ALL) { private static final long serialVersionUID = 1L; @Override public void onClick(AjaxRequestTarget target) { showHideAll(true, OperationResultPanel.this.getModelObject(), target); } }; showAll.add(new VisibleEnableBehaviour() { private static final long serialVersionUID = 1L; @Override public boolean isVisible() { return !OperationResultPanel.this.getModelObject().isShowMore(); } }); box.add(showAll); AjaxLink<String> hideAll = new AjaxLink<String>(ID_HIDE_ALL) { private static final long serialVersionUID = 1L; @Override public void onClick(AjaxRequestTarget target) { showHideAll(false, OperationResultPanel.this.getModel().getObject(), target); } }; hideAll.add(new VisibleEnableBehaviour() { private static final long serialVersionUID = 1L; @Override public boolean isVisible() { return OperationResultPanel.this.getModelObject().isShowMore(); } }); box.add(hideAll); AjaxLink<String> close = new AjaxLink<String>("close") { private static final long serialVersionUID = 1L; @Override public void onClick(AjaxRequestTarget target) { close(target); } }; box.add(close); DownloadLink downloadXml = new DownloadLink("downloadXml", new AbstractReadOnlyModel<File>() { private static final long serialVersionUID = 1L; @Override public File getObject() { String home = getPageBase().getMidpointConfiguration().getMidpointHome(); File f = new File(home, "result"); DataOutputStream dos = null; try { dos = new DataOutputStream(new FileOutputStream(f)); dos.writeBytes(OperationResultPanel.this.getModel().getObject().getXml()); } catch (IOException e) { LOGGER.error("Could not download result: {}", e.getMessage(), e); } finally { IOUtils.closeQuietly(dos); } return f; } }); downloadXml.setDeleteAfterDownload(true); box.add(downloadXml); }
From source file:org.sakaiproject.scorm.ui.reporting.pages.ResultsListPage.java
License:Educational Community License
public ResultsListPage(PageParameters pageParams) { super(pageParams); final long contentPackageId = pageParams.getLong("contentPackageId"); final ContentPackage contentPackage = contentService.getContentPackage(contentPackageId); // SCO-94 - deny users who do not have scorm.view.results permission String context = lms.currentContext(); boolean canViewResults = lms.canViewResults(context); Label heading = new Label("heading", new ResourceModel("page.heading.notAllowed")); add(heading);/*from w w w .j a va 2 s . c o m*/ final AttemptDataProvider dataProvider = new AttemptDataProvider(contentPackageId); dataProvider.setFilterConfigurerVisible(true); dataProvider.setTableTitle(getLocalizer().getString("table.title", this)); // SCO-127 buildExportHeaders(); AbstractReadOnlyModel<File> fileModel = new AbstractReadOnlyModel<File>() { @Override public File getObject() { File tempFile = null; try { tempFile = File.createTempFile(contentPackage.getTitle() + "_results", ".csv"); InputStream data = new ByteArrayInputStream(generateExportCSV(dataProvider).getBytes()); Files.writeTo(tempFile, data); } catch (IOException ex) { LOG.error("Could not generate results export: ", ex); } return tempFile; } }; DownloadLink btnExport = new DownloadLink("btnExport", fileModel, contentPackage.getTitle() + "_results.csv"); btnExport.setDeleteAfterDownload(true); add(btnExport); if (!canViewResults) { btnExport.setVisibilityAllowed(false); heading.setVisibilityAllowed(true); add(new WebMarkupContainer("attemptPresenter")); add(new WebMarkupContainer("details")); } else { // SCO-94 heading.setVisibilityAllowed(false); addBreadcrumb(new Model(contentPackage.getTitle()), ResultsListPage.class, new PageParameters(), false); EnhancedDataPresenter presenter = new EnhancedDataPresenter("attemptPresenter", getColumns(), dataProvider); add(presenter); add(new ContentPackageDetailPanel("details", contentPackage)); } }