caching of DnD files dropped
authorhansonr <hansonr@STO24954W.ad.stolaf.edu>
Tue, 16 Apr 2019 22:28:14 +0000 (17:28 -0500)
committerhansonr <hansonr@STO24954W.ad.stolaf.edu>
Tue, 16 Apr 2019 22:28:32 +0000 (17:28 -0500)
src/jalview/gui/AlignFrame.java
src/jalview/gui/AppJmolBinding.java
src/jalview/gui/Desktop.java
src/jalview/util/Platform.java

index b655b2e..77b8552 100644 (file)
@@ -4544,8 +4544,13 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
                       : FormatAdapter.checkProtocol(fileName));
               if (protocol == DataSourceType.FILE)
               {
-                File fl = (file instanceof File ? (File) file
-                        : new File(fileName));
+                File fl;
+                if (file instanceof File) {
+                  fl = (File) file;
+                  Platform.cacheFileData(fl);
+                } else {
+                  fl = new File(fileName);
+                }
                 pdbfn = fl.getName();
               }
               else if (protocol == DataSourceType.URL)
index 1d7cd6c..75b98bc 100644 (file)
@@ -230,12 +230,7 @@ public class AppJmolBinding extends JalviewJmolBinding
     }
     for (File f : files)
     {
-      String path = f.getAbsolutePath();
-      byte[] data = Platform.getFileBytes(f);
-      if (data != null)
-      {
-        Platform.cacheFileData(path, data);
-      }
+      Platform.cacheFileData(f);
     }
   }
 }
index 14beac2..cd8330a 100644 (file)
@@ -1096,7 +1096,10 @@ public class Desktop extends jalview.jbgui.GDesktop
           {
             format = new IdentifyFile().identify(file, protocol);
           }
-
+          if (file instanceof File)
+          {
+            Platform.cacheFileData((File) file);
+          }
           new FileLoader().LoadFile(null, file, protocol, format);
 
         }
index 3297104..f9eb2a6 100644 (file)
@@ -319,6 +319,16 @@ public class Platform
      */
   }
 
+  public static void cacheFileData(File file)
+  {
+    byte[] data;
+    if (!isJS() || (data = Platform.getFileBytes(file)) == null)
+    {
+      return;
+    }
+    cacheFileData(file.toString(), data);
+  }
+
   public static byte[] getFileBytes(File f)
   {
     return /** @j2sNative f && f._bytes || */