package com.akjava.gwt.html5.client.file.webkit; import com.akjava.gwt.html5.client.file.DirectoryReader; import com.akjava.gwt.html5.client.file.callback.FileEntryCallback; import com.akjava.gwt.html5.client.file.callback.FileErrorCallback; import com.akjava.gwt.html5.client.file.callback.FileWriterCallback; import com.akjava.gwt.html5.client.file.callback.VoidCallback; import com.google.gwt.core.client.JavaScriptObject; public class FileEntry extends JavaScriptObject{ protected FileEntry(){} public final native boolean isFile()/*-{ return this.isFile; }-*/; public final native boolean isDirectory()/*-{ return this.isDirectory; }-*/; public final native String getName()/*-{ return this.name; }-*/; public final native String getFullPath()/*-{ return this.fullPath; }-*/; //TODO support error public final native void file(FileCallback callback)/*-{ this.file( function(file){ callback.@com.akjava.gwt.html5.client.file.webkit.FileCallback::callback(Lcom/akjava/gwt/html5/client/file/File;)(file) }); }-*/; //TODO support error public final native void file(FilePathCallback callback,String parent)/*-{ this.file( function(file){ callback.@com.akjava.gwt.html5.client.file.webkit.FilePathCallback::callback(Lcom/akjava/gwt/html5/client/file/File;Ljava/lang/String;)(file,parent) }); }-*/; //for directory only public final native DirectoryReader getReader()/*-{ return this.createReader(); }-*/; //TODO implement copyTo,moveTo //TODO implement resolveLocalFileSystemURL public final native String toURL()/*-{ return this.toURL(); }-*/; public final native void remove(VoidCallback simpleCallback,FileErrorCallback errorCallback)/*-{ var callback=function(){ simpleCallback.@com.akjava.gwt.html5.client.file.callback.VoidCallback::callback()(); } var error=function(fileerror){ errorCallback.@com.akjava.gwt.html5.client.file.callback.FileErrorCallback::fileErrorCallback(Lcom/akjava/gwt/html5/client/file/FileError;)(fileerror); } this.remove(callback,error); }-*/; public final native void removeRecursively(VoidCallback simpleCallback,FileErrorCallback errorCallback)/*-{ var callback=function(){ simpleCallback.@com.akjava.gwt.html5.client.file.callback.VoidCallback::callback()(); } var error=function(fileerror){ errorCallback.@com.akjava.gwt.html5.client.file.callback.FileErrorCallback::fileErrorCallback(Lcom/akjava/gwt/html5/client/file/FileError;)(fileerror); } this.removeRecursively(callback,error); }-*/; //TODO implement removeRecursively() //TODO implement copyTo,moveTo; public final native void getFile(String name,boolean create,boolean exclusive,FileEntryCallback callback,FileErrorCallback errorCallback)/*-{ var getfile=function(fileentry){ callback.@com.akjava.gwt.html5.client.file.callback.FileEntryCallback::fileEntryCallback(Lcom/akjava/gwt/html5/client/file/webkit/FileEntry;)(fileentry); } var error=function(fileerror){ errorCallback.@com.akjava.gwt.html5.client.file.callback.FileErrorCallback::fileErrorCallback(Lcom/akjava/gwt/html5/client/file/FileError;)(fileerror); } this.getFile(name,{create:create,exclusive:exclusive},getfile,error); }-*/; public final native void getDirectory(String name,boolean create,boolean exclusive,FileEntryCallback callback,FileErrorCallback errorCallback)/*-{ var getfile=function(fileentry){ callback.@com.akjava.gwt.html5.client.file.callback.FileEntryCallback::fileEntryCallback(Lcom/akjava/gwt/html5/client/file/webkit/FileEntry;)(fileentry); } var error=function(fileerror){ errorCallback.@com.akjava.gwt.html5.client.file.callback.FileErrorCallback::fileErrorCallback(Lcom/akjava/gwt/html5/client/file/FileError;)(fileerror); } this.getDirectory(name,{create:create,exclusive:exclusive},getfile,error); }-*/; public final native void createWriter(FileWriterCallback writerCallback,FileErrorCallback errorCallback)/*-{ var createWriter=function(filewriter){ writerCallback.@com.akjava.gwt.html5.client.file.callback.FileWriterCallback::createWriterCallback(Lcom/akjava/gwt/html5/client/file/FileWriter;)(filewriter); } var error=function(fileerror){ errorCallback.@com.akjava.gwt.html5.client.file.callback.FileErrorCallback::fileErrorCallback(Lcom/akjava/gwt/html5/client/file/FileError;)(fileerror); } this.createWriter(createWriter,error); }-*/; }