--- /dev/null
+package com.vaadin.tests.resources;\r
+\r
+import java.io.FileInputStream;\r
+import java.io.FileNotFoundException;\r
+import java.io.InputStream;\r
+\r
+import com.vaadin.terminal.StreamResource;\r
+import com.vaadin.terminal.StreamResource.StreamSource;\r
+import com.vaadin.tests.components.TestBase;\r
+import com.vaadin.ui.Button;\r
+import com.vaadin.ui.Button.ClickEvent;\r
+import com.vaadin.ui.Button.ClickListener;\r
+\r
+public class ResourceDownload extends TestBase {\r
+\r
+ @Override\r
+ public void setup() {\r
+\r
+ Button b = new Button("Download (_new)", new ClickListener() {\r
+ public void buttonClick(ClickEvent event) {\r
+ download("_new");\r
+ }\r
+ });\r
+ addComponent(b);\r
+\r
+ b = new Button("Download (_blank)", new ClickListener() {\r
+ public void buttonClick(ClickEvent event) {\r
+ download("_blank");\r
+ }\r
+ });\r
+ addComponent(b);\r
+\r
+ b = new Button("Download ()", new ClickListener() {\r
+ public void buttonClick(ClickEvent event) {\r
+ download("");\r
+ }\r
+ });\r
+ addComponent(b);\r
+\r
+ b = new Button("Download (_top)", new ClickListener() {\r
+ public void buttonClick(ClickEvent event) {\r
+ download("_top");\r
+ }\r
+ });\r
+ addComponent(b);\r
+\r
+ }\r
+\r
+ protected void download(String target) {\r
+ String filename = "filename";\r
+ StreamResource streamResource = new StreamResource(new StreamSource() {\r
+\r
+ public InputStream getStream() {\r
+ try {\r
+ return new FileInputStream("FIXME C:/temp/file.xls");\r
+ } catch (FileNotFoundException e) {\r
+ // TODO Auto-generated catch block\r
+ e.printStackTrace();\r
+ return null;\r
+ }\r
+ }\r
+ }, filename + ".xls", this);\r
+ streamResource.setCacheTime(5000); // no cache (<=0) does not work with\r
+ // IE8\r
+ streamResource.setMIMEType("application/x-msexcel");\r
+\r
+ this.getMainWindow().open(streamResource, target);\r
+\r
+ }\r
+\r
+ @Override\r
+ protected String getDescription() {\r
+ return "Downloading with target _new should work, aswell as with target _blank and _top.";\r
+ }\r
+\r
+ @Override\r
+ protected Integer getTicketNumber() {\r
+ return 3289;\r
+ }\r
+}\r