JAL-3032 DND enabled; additional io changes for File vs. String
[jalview.git] / src / jalview / io / FileLoader.java
index 74c82eb..eda3899 100755 (executable)
@@ -41,8 +41,14 @@ import jalview.structure.StructureSelectionManager;
 import jalview.util.MessageManager;
 import jalview.ws.utils.UrlDownloadClient;
 
+import java.io.BufferedReader;
+import java.io.ByteArrayInputStream;
 import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileReader;
 import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
 import java.util.StringTokenizer;
 import java.util.Vector;
 
@@ -92,19 +98,15 @@ public class FileLoader implements Runnable
     this.raiseGUI = raiseGUI;
   }
 
-  public void LoadFile(AlignViewport viewport, String file,
+  public void LoadFile(AlignViewport viewport, Object file,
           DataSourceType protocol, FileFormatI format)
   {
     this.viewport = viewport;
-    LoadFile(file, protocol, format);
-  }
-
-  public void LoadFile(AlignViewport viewport, File selectedFile,
-          DataSourceType protocol, FileFormatI format)
-  {
-    this.viewport = viewport;
-    this.selectedFile = selectedFile;
-    LoadFile(selectedFile.getPath(), protocol, format);
+    if (file instanceof File) {
+      this.selectedFile = (File) file;
+      file = selectedFile.getPath();
+    }
+    LoadFile(file.toString(), protocol, format);
   }
 
   public void LoadFile(String file, DataSourceType protocol,
@@ -613,4 +615,21 @@ public class FileLoader implements Runnable
     return tempStructFile.toString();
   }
 
+  /**
+   * 
+   * @param file a File, or a String which is a name of a file
+   * @return
+   * @throws FileNotFoundException 
+   */
+  @SuppressWarnings("unused")
+  public static BufferedReader getBuffereReader(Object file) throws FileNotFoundException {
+    if (file instanceof String)
+      return new BufferedReader(new FileReader((String) file));
+    
+    byte[] bytes = /** @j2sNative file._bytes || */ null;
+    if (bytes != null)
+      return new BufferedReader(new InputStreamReader(new ByteArrayInputStream(bytes)));
+    return  new BufferedReader(new FileReader((File) file));
+  }
+
 }