JAL-3851 allow multiple instances of Endpoints. Fixes to naming of IGV colour scheme
[jalview.git] / src / jalview / gui / CutAndPasteTransfer.java
index 112d502..091b7dd 100644 (file)
  */
 package jalview.gui;
 
-import jalview.bin.Cache;
+import java.awt.Toolkit;
+import java.awt.datatransfer.Clipboard;
+import java.awt.datatransfer.DataFlavor;
+import java.awt.datatransfer.StringSelection;
+import java.awt.datatransfer.Transferable;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.MouseEvent;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.swing.JMenuItem;
+import javax.swing.JPopupMenu;
+import javax.swing.SwingUtilities;
+
 import jalview.api.AlignViewportI;
 import jalview.api.AlignmentViewPanel;
 import jalview.api.ComplexAlignFile;
 import jalview.api.FeatureSettingsModelI;
 import jalview.api.FeaturesDisplayedI;
 import jalview.api.FeaturesSourceI;
+import jalview.bin.Cache;
 import jalview.bin.Jalview;
 import jalview.datamodel.AlignmentI;
 import jalview.datamodel.HiddenColumns;
@@ -45,22 +63,6 @@ import jalview.json.binding.biojson.v1.ColourSchemeMapper;
 import jalview.schemes.ColourSchemeI;
 import jalview.util.MessageManager;
 
-import java.awt.Toolkit;
-import java.awt.datatransfer.Clipboard;
-import java.awt.datatransfer.DataFlavor;
-import java.awt.datatransfer.StringSelection;
-import java.awt.datatransfer.Transferable;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.awt.event.MouseEvent;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.PrintWriter;
-
-import javax.swing.JMenuItem;
-import javax.swing.JPopupMenu;
-import javax.swing.SwingUtilities;
-
 /**
  * Cut'n'paste files into the desktop See JAL-1105
  * 
@@ -215,6 +217,11 @@ public class CutAndPasteTransfer extends GCutAndPasteTransfer
   @Override
   public void ok_actionPerformed(ActionEvent e)
   {
+    ok_actionPerformed(e, new HashMap<String, String>());
+  }
+
+  public void ok_actionPerformed(ActionEvent e, Map<String, String> options)
+  {
     String text = getText();
     if (text.trim().length() < 1)
     {
@@ -251,7 +258,6 @@ public class CutAndPasteTransfer extends GCutAndPasteTransfer
       FormatAdapter fa = new FormatAdapter(alignpanel);
       al = fa.readFile(getText(), DataSourceType.PASTE, format);
       source = fa.getAlignFile();
-
     } catch (IOException ex)
     {
       JvOptionPane.showInternalMessageDialog(Desktop.desktop, MessageManager
@@ -263,9 +269,10 @@ public class CutAndPasteTransfer extends GCutAndPasteTransfer
 
     if (al != null && al.hasValidSequence())
     {
-      String title = MessageManager
-              .formatMessage("label.input_cut_paste_params", new String[]
-              { format.getName() });
+      String title = options.containsKey("title") ? options.get("title")
+              : MessageManager.formatMessage("label.input_cut_paste_params",
+                      new String[]
+                      { format.getName() });
       FeatureSettingsModelI proxyColourScheme = source
               .getFeatureColourScheme();
 
@@ -320,6 +327,20 @@ public class CutAndPasteTransfer extends GCutAndPasteTransfer
           af.getViewport().applyFeaturesStyle(proxyColourScheme);
         }
         af.currentFileFormat = format;
+        if (options.containsKey("wrap"))
+        {
+          af.wrapMenuItem_actionPerformed(e,
+                  Boolean.parseBoolean(options.get("wrap")));
+        }
+        if (options.containsKey("showannotations"))
+        {
+          af.annotationPanelMenuItem_actionPerformed(e,
+                  Boolean.parseBoolean(options.get("showannotations")));
+        }
+        if (options.containsKey("colourscheme"))
+        {
+          af.changeColour_actionPerformed(options.get("colourscheme"));
+        }
         Desktop.addInternalFrame(af, title, AlignFrame.DEFAULT_WIDTH,
                 AlignFrame.DEFAULT_HEIGHT);
         af.setStatus(MessageManager