Handle feature settings files loaded via drag and drop or import
[jalview.git] / src / jalview / gui / AlignFrame.java
index 00bd4f9..958ebcc 100644 (file)
@@ -95,6 +95,7 @@ import jalview.api.analysis.SimilarityParamsI;
 import jalview.bin.Cache;
 import jalview.bin.Console;
 import jalview.bin.Jalview;
+import jalview.bin.groovy.JalviewObjectI;
 import jalview.commands.CommandI;
 import jalview.commands.EditCommand;
 import jalview.commands.EditCommand.Action;
@@ -503,7 +504,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
       @Override
       public void focusGained(FocusEvent e)
       {
-        Jalview.setCurrentAlignFrame(AlignFrame.this);
+        Jalview.getInstance().setCurrentAlignFrame(AlignFrame.this);
       }
     });
 
@@ -4817,7 +4818,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
              * Object[] { String,SequenceI}
              */
             ArrayList<Object[]> filesmatched = new ArrayList<>();
-            ArrayList<Object> filesnotmatched = new ArrayList<>();
+            ArrayList<Object[]> filesnotmatched = new ArrayList<>();
             for (int i = 0; i < files.size(); i++)
             {
               // BH 2018
@@ -4863,9 +4864,9 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
                   }
                   mtch = idm.findAllIdMatches(pdbfn);
                 }
+                FileFormatI type=null;
                 if (mtch != null)
                 {
-                  FileFormatI type;
                   try
                   {
                     type = new IdentifyFile().identify(file, protocol);
@@ -4881,7 +4882,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
                 }
                 // File wasn't named like one of the sequences or wasn't a PDB
                 // file.
-                filesnotmatched.add(file);
+                filesnotmatched.add(new Object[] { file, protocol, type});
               }
             }
             int assocfiles = 0;
@@ -4935,7 +4936,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
                  */
                 for (Object[] o : filesmatched)
                 {
-                  filesnotmatched.add(o[0]);
+                  filesnotmatched.add(new Object[] { o[0], o[1]});
                 }
               }
             }
@@ -4957,9 +4958,9 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
               {
                 return;
               }
-              for (Object fn : filesnotmatched)
+              for (Object[] fn : filesnotmatched)
               {
-                loadJalviewDataFile(fn, null, null, null);
+                loadJalviewDataFile(fn[0], (DataSourceType) fn[1], (FileFormatI)fn[2], null);
               }
 
             }
@@ -5055,7 +5056,19 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
           {
             format = new IdentifyFile().identify(file, sourceType);
           }
-          if (FileFormat.ScoreMatrix == format)
+          if (FileFormat.FeatureSettings == format)
+          {
+            if (featureSettings != null)
+            {
+              featureSettings.load(file, sourceType);
+            }
+            else
+            {
+              FeatureSettings.loadFeatureSettingsFile(getFeatureRenderer(),
+                      fileObject, sourceType);
+            }
+          }
+          else if (FileFormat.ScoreMatrix == format)
           {
             ScoreMatrixFile sm = new ScoreMatrixFile(
                     new FileParse(file, sourceType));
@@ -5963,12 +5976,13 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
   @Override
   protected void runGroovy_actionPerformed()
   {
-    Jalview.setCurrentAlignFrame(this);
+    Jalview.getInstance().setCurrentAlignFrame(this);
     groovy.console.ui.Console console = Desktop.getGroovyConsole();
     if (console != null)
     {
       try
       {
+        console.setVariable(JalviewObjectI.currentAlFrameName, this);
         console.runScript();
       } catch (Exception ex)
       {