Vaadin - 使用没有按钮的FileDownloader

时间:2016-10-20 11:23:46

标签: java download vaadin vaadin7

我想在不扩展Button的情况下使用Vaadin的FileDownloader。最终结果应该是用户点击表的条目,然后应该触发下载。

使用FileDownloader它可以正常工作,但似乎你需要扩展一个Button才能使它工作。如果它有帮助,这里是代码:

        table.addItemClickListener(new ItemClickListener()    {
        public void itemClick(ItemClickEvent event) {
            Map<String, Object> dok = dbService.getDokument(event.getItem().getItemProperty("Id").getValue().toString());

            myResource = createResource(dok);
            fileDownloader = new FileDownloader(myResource);
            //HERE I WANT TO TRIGGER THE DOWNLOAD
        } 
    });

private StreamResource createResource(Map<String, Object> dok) {
    return new StreamResource(new StreamSource() {
        @Override
        public InputStream getStream() {
            byte[] file = (byte[]) dok.get("DATA");

            ByteArrayOutputStream bos = new ByteArrayOutputStream();
            bos.write(file, 0, file.length);
            return new ByteArrayInputStream(bos.toByteArray());

        }
    }, getValue(dok.get("DOK_NAME")));
}

0 个答案:

没有答案