Example usage for org.apache.wicket.request.resource ResourceStreamResource setContentDisposition

List of usage examples for org.apache.wicket.request.resource ResourceStreamResource setContentDisposition

Introduction

In this page you can find the example usage for org.apache.wicket.request.resource ResourceStreamResource setContentDisposition.

Prototype

public ResourceStreamResource setContentDisposition(ContentDisposition contentDisposition) 

Source Link

Usage

From source file:org.artifactory.webapp.wicket.page.logs.SystemLogsViewPanel.java

License:Open Source License

/**
 * Add a link to enable the download of the system log file
 *//*from  w w w  .  j  av  a2s  . co  m*/
private void addSystemLogsLink() {
    // This is very ugly and should be removed when we upgrade wicket, see RTFACT-5470 for explanation
    downloadLink = new DownloadLink("systemLogsLink", systemLogFile) {
        @Override
        public void onClick() {
            final File file = getModelObject();
            IResourceStream resourceStream = new FileResourceStream(new org.apache.wicket.util.file.File(file));
            ResourceStreamRequestHandler handler = new ResourceStreamRequestHandler(resourceStream) {
                @Override
                public void respond(IRequestCycle requestCycle) {
                    IResource.Attributes attributes = new IResource.Attributes(requestCycle.getRequest(),
                            requestCycle.getResponse());

                    ResourceStreamResource resource = new ResourceStreamResource(this.getResourceStream()) {
                        @Override
                        protected void configureCache(ResourceResponse data, Attributes attributes) {
                            Response response = attributes.getResponse();
                            ((WebResponse) response).disableCaching();
                        }
                    };
                    resource.setFileName(file.getName());
                    resource.setContentDisposition(ContentDisposition.ATTACHMENT);
                    resource.respond(attributes);
                }
            };
            getRequestCycle().scheduleRequestHandlerAfterCurrent(handler);
        }
    };

    add(downloadLink);
    downloadLink.add(linkLabel);
    downloadLink.setOutputMarkupId(true);
    linkLabel.setOutputMarkupId(true);
}

From source file:org.wicketstuff.poi.excel.TableComponentAsXlsHandler.java

License:Apache License

public void respond(IRequestCycle requestCycle) {
    try {//w ww .  ja  va  2s. c  om
        TableParser parser = new TableParser(newSheet(), cellExporter);
        if (tableComponent instanceof IPageable) {
            IPageable pageable = (IPageable) tableComponent;
            for (int i = 0; i < pageable.getPageCount(); i++) {
                pageable.setCurrentPage(i);
                parser.parse(tableComponent);
            }
        } else {
            parser.parse(tableComponent);
        }
        XlsStream xlsStream = new XlsStream(parser.getSheet().getWorkbook());
        ResourceStreamResource resource = new ResourceStreamResource(xlsStream);
        resource.setFileName(filename);
        resource.setContentDisposition(ContentDisposition.ATTACHMENT);
        IResource.Attributes a = new IResource.Attributes(requestCycle.getRequest(),
                requestCycle.getResponse());
        resource.respond(a);
    } catch (Exception e) {
        throw new RuntimeException("Error while generating a xls file to table component", e);
    }
}

From source file:org.wicketstuff.poi.excel.TablesComponentAsXlsHandler.java

License:Apache License

public void respond(IRequestCycle requestCycle) {
    try {/*from  w  w  w  .ja  v  a 2  s  .  c  o  m*/
        workbook = new HSSFWorkbook();
        int index = 0;
        for (Component tableComponent : tableComponents) {
            TableParser parser = new TableParser(newSheet(workbook, tableComponent, index++), cellExporter);
            if (tableComponent instanceof IPageable) {
                IPageable pageable = (IPageable) tableComponent;
                for (int i = 0; i < pageable.getPageCount(); i++) {
                    pageable.setCurrentPage(i);
                    parser.parse(tableComponent);
                }
            } else {
                parser.parse(tableComponent);
            }
        }
        XlsStream xlsStream = new XlsStream(workbook);
        ResourceStreamResource resource = new ResourceStreamResource(xlsStream);
        resource.setFileName(filename);
        resource.setContentDisposition(ContentDisposition.ATTACHMENT);
        IResource.Attributes a = new IResource.Attributes(requestCycle.getRequest(),
                requestCycle.getResponse());
        resource.respond(a);
    } catch (Exception e) {
        throw new RuntimeException("Error while generating a xls file to table component", e);
    }
}