Example usage for org.apache.wicket.markup.html.link DownloadLink setDeleteAfterDownload

List of usage examples for org.apache.wicket.markup.html.link DownloadLink setDeleteAfterDownload

Introduction

In this page you can find the example usage for org.apache.wicket.markup.html.link DownloadLink setDeleteAfterDownload.

Prototype

public final DownloadLink setDeleteAfterDownload(boolean deleteAfter) 

Source Link

Document

USE THIS METHOD WITH CAUTION!

Usage

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));
    }
}