package com.akjava.gwt.html5test.client; import com.akjava.gwt.html5.client.download.FileDownloadBuilder; import com.google.gwt.canvas.client.Canvas; import com.google.gwt.core.client.GWT; import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.user.client.Window; import com.google.gwt.user.client.ui.Anchor; import com.google.gwt.user.client.ui.Button; import com.google.gwt.user.client.ui.Image; import com.google.gwt.user.client.ui.Label; import com.google.gwt.user.client.ui.VerticalPanel; public class FileWriteTest extends VerticalPanel{ public FileWriteTest(){ add(new Label("Download Image")); final Canvas canvas=Canvas.createIfSupported(); canvas.setCoordinateSpaceHeight(200); canvas.setCoordinateSpaceWidth(200); canvas.getContext2d().setFillStyle("#ccc"); canvas.getContext2d().fillRect(0,0,200,200); Image img=new Image(canvas.toDataUrl()); add(img); GWT.log(getUserAgent()); Anchor filea=FileDownloadBuilder.createFileDownload().generateBase64DownloadLink(canvas.toDataUrl(), "image/png", "image.png", "Download Image vid File API", false); if(filea!=null){ add(filea); }else{ add(new Label("use right click menu and save image.")); } //add(a); Button bt=new Button("Window open to download",new ClickHandler() { //not work on ie @Override public void onClick(ClickEvent event) { Window.open(canvas.toDataUrl(), "blank", null); } }); add(bt); add(new Label(getUserAgent())); Anchor a=new Anchor("download link", canvas.toDataUrl()); add(a); add(new Label("Download Text")); Anchor texta=FileDownloadBuilder.createFileDownload().generateTextDownloadLink("hello world", "hello.txt", "download text via File API"); if(texta!=null){ add(texta); }else{ add(new Label("use copy and paste.")); } } public static native String getUserAgent() /*-{ return navigator.userAgent.toLowerCase(); }-*/; public static boolean isChrome(){ return getUserAgent().indexOf("chrome")!=-1; } public static boolean isFirefox(){ return getUserAgent().indexOf("firefox")!=-1; } }