JAL-4034 Fix #2 show an icon and a button to press to initiate search
[jalview.git] / src / jalview / gui / CutAndPasteTransfer.java
index 8b21058..112d502 100644 (file)
@@ -20,6 +20,7 @@
  */
 package jalview.gui;
 
+import jalview.bin.Cache;
 import jalview.api.AlignViewportI;
 import jalview.api.AlignmentViewPanel;
 import jalview.api.ComplexAlignFile;
@@ -28,9 +29,9 @@ import jalview.api.FeaturesDisplayedI;
 import jalview.api.FeaturesSourceI;
 import jalview.bin.Jalview;
 import jalview.datamodel.AlignmentI;
-import jalview.datamodel.ColumnSelection;
+import jalview.datamodel.HiddenColumns;
 import jalview.datamodel.SequenceI;
-import jalview.io.AlignmentFileI;
+import jalview.io.AlignmentFileReaderI;
 import jalview.io.AppletFormatAdapter;
 import jalview.io.DataSourceType;
 import jalview.io.FileFormatException;
@@ -52,9 +53,11 @@ 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.JOptionPane;
 import javax.swing.JPopupMenu;
 import javax.swing.SwingUtilities;
 
@@ -71,7 +74,7 @@ public class CutAndPasteTransfer extends GCutAndPasteTransfer
 
   AlignViewportI viewport;
 
-  AlignmentFileI source = null;
+  AlignmentFileReaderI source = null;
 
   public CutAndPasteTransfer()
   {
@@ -133,13 +136,15 @@ public class CutAndPasteTransfer extends GCutAndPasteTransfer
   @Override
   public void save_actionPerformed(ActionEvent e)
   {
+    // TODO: JAL-3048 JalviewFileChooser - Save option
+
     JalviewFileChooser chooser = new JalviewFileChooser(
-            jalview.bin.Cache.getProperty("LAST_DIRECTORY"));
+            Cache.getProperty("LAST_DIRECTORY"));
 
     chooser.setAcceptAllFileFilterUsed(false);
     chooser.setFileView(new JalviewFileView());
-    chooser.setDialogTitle(MessageManager
-            .getString("label.save_text_to_file"));
+    chooser.setDialogTitle(
+            MessageManager.getString("label.save_text_to_file"));
     chooser.setToolTipText(MessageManager.getString("action.save"));
 
     int value = chooser.showSaveDialog(this);
@@ -148,8 +153,8 @@ public class CutAndPasteTransfer extends GCutAndPasteTransfer
     {
       try
       {
-        java.io.PrintWriter out = new java.io.PrintWriter(
-                new java.io.FileWriter(chooser.getSelectedFile()));
+        PrintWriter out = new PrintWriter(
+                new FileWriter(chooser.getSelectedFile()));
 
         out.print(getText());
         out.close();
@@ -194,8 +199,8 @@ public class CutAndPasteTransfer extends GCutAndPasteTransfer
 
     try
     {
-      textarea.append((String) contents
-              .getTransferData(DataFlavor.stringFlavor));
+      textarea.append(
+              (String) contents.getTransferData(DataFlavor.stringFlavor));
     } catch (Exception ex)
     {
     }
@@ -226,14 +231,14 @@ public class CutAndPasteTransfer extends GCutAndPasteTransfer
     }
     if (format == null)
     {
-      System.err.println(MessageManager
-              .getString("label.couldnt_read_data"));
+      System.err
+              .println(MessageManager.getString("label.couldnt_read_data"));
       if (!Jalview.isHeadlessMode())
       {
-        JOptionPane.showInternalMessageDialog(Desktop.desktop,
-                AppletFormatAdapter.SUPPORTED_FORMATS,
+        JvOptionPane.showInternalMessageDialog(Desktop.desktop,
+                AppletFormatAdapter.getSupportedFormats(),
                 MessageManager.getString("label.couldnt_read_data"),
-                JOptionPane.WARNING_MESSAGE);
+                JvOptionPane.WARNING_MESSAGE);
       }
       return;
     }
@@ -247,20 +252,20 @@ public class CutAndPasteTransfer extends GCutAndPasteTransfer
       al = fa.readFile(getText(), DataSourceType.PASTE, format);
       source = fa.getAlignFile();
 
-    } catch (java.io.IOException ex)
+    } catch (IOException ex)
     {
-      JOptionPane.showInternalMessageDialog(Desktop.desktop, MessageManager
+      JvOptionPane.showInternalMessageDialog(Desktop.desktop, MessageManager
               .formatMessage("label.couldnt_read_pasted_text", new String[]
-              { ex.toString() }), MessageManager
-              .getString("label.error_parsing_text"),
-              JOptionPane.WARNING_MESSAGE);
+              { ex.toString() }),
+              MessageManager.getString("label.error_parsing_text"),
+              JvOptionPane.WARNING_MESSAGE);
     }
 
     if (al != null && al.hasValidSequence())
     {
-      String title = MessageManager.formatMessage(
-              "label.input_cut_paste_params",
-              new String[] { format.toString() });
+      String title = MessageManager
+              .formatMessage("label.input_cut_paste_params", new String[]
+              { format.getName() });
       FeatureSettingsModelI proxyColourScheme = source
               .getFeatureColourScheme();
 
@@ -270,11 +275,8 @@ public class CutAndPasteTransfer extends GCutAndPasteTransfer
        */
       if (viewport != null && viewport.getAlignment() != null)
       {
-        if (proxyColourScheme != null)
-        {
-          viewport.applyFeaturesStyle(proxyColourScheme);
-        }
         ((AlignViewport) viewport).addAlignment(al, title);
+        viewport.applyFeaturesStyle(proxyColourScheme);
       }
       else
       {
@@ -282,8 +284,8 @@ public class CutAndPasteTransfer extends GCutAndPasteTransfer
         AlignFrame af;
         if (source instanceof ComplexAlignFile)
         {
-          ColumnSelection colSel = ((ComplexAlignFile) source)
-                  .getColumnSelection();
+          HiddenColumns hidden = ((ComplexAlignFile) source)
+                  .getHiddenColumns();
           SequenceI[] hiddenSeqs = ((ComplexAlignFile) source)
                   .getHiddenSequences();
           boolean showSeqFeatures = ((ComplexAlignFile) source)
@@ -292,12 +294,13 @@ public class CutAndPasteTransfer extends GCutAndPasteTransfer
                   .getGlobalColourScheme();
           FeaturesDisplayedI fd = ((ComplexAlignFile) source)
                   .getDisplayedFeatures();
-          af = new AlignFrame(al, hiddenSeqs, colSel,
+          af = new AlignFrame(al, hiddenSeqs, hidden,
                   AlignFrame.DEFAULT_WIDTH, AlignFrame.DEFAULT_HEIGHT);
           af.getViewport().setShowSequenceFeatures(showSeqFeatures);
           af.getViewport().setFeaturesDisplayed(fd);
-          ColourSchemeI cs = ColourSchemeMapper.getJalviewColourScheme(
-                  colourSchemeName, al);
+          af.setMenusForViewport();
+          ColourSchemeI cs = ColourSchemeMapper
+                  .getJalviewColourScheme(colourSchemeName, al);
           if (cs != null)
           {
             af.changeColour(cs);
@@ -319,13 +322,12 @@ public class CutAndPasteTransfer extends GCutAndPasteTransfer
         af.currentFileFormat = format;
         Desktop.addInternalFrame(af, title, AlignFrame.DEFAULT_WIDTH,
                 AlignFrame.DEFAULT_HEIGHT);
-        af.statusBar.setText(MessageManager
+        af.setStatus(MessageManager
                 .getString("label.successfully_pasted_alignment_file"));
 
         try
         {
-          af.setMaximum(jalview.bin.Cache.getDefault("SHOW_FULLSCREEN",
-                  false));
+          af.setMaximum(Cache.getDefault("SHOW_FULLSCREEN", false));
         } catch (Exception ex)
         {
         }
@@ -333,14 +335,14 @@ public class CutAndPasteTransfer extends GCutAndPasteTransfer
     }
     else
     {
-      System.err.println(MessageManager
-              .getString("label.couldnt_read_data"));
+      System.err
+              .println(MessageManager.getString("label.couldnt_read_data"));
       if (!Jalview.isHeadlessMode())
       {
-        javax.swing.JOptionPane.showInternalMessageDialog(Desktop.desktop,
-                AppletFormatAdapter.SUPPORTED_FORMATS,
+        JvOptionPane.showInternalMessageDialog(Desktop.desktop,
+                AppletFormatAdapter.getSupportedFormats(),
                 MessageManager.getString("label.couldnt_read_data"),
-                JOptionPane.WARNING_MESSAGE);
+                JvOptionPane.WARNING_MESSAGE);
       }
     }
   }
@@ -365,6 +367,10 @@ public class CutAndPasteTransfer extends GCutAndPasteTransfer
   @Override
   public void textarea_mousePressed(MouseEvent e)
   {
+    /*
+     * isPopupTrigger is checked in mousePressed on Mac,
+     * in mouseReleased on Windows
+     */
     if (e.isPopupTrigger())
     {
       JPopupMenu popup = new JPopupMenu(