JAL-4062 copy highlighted region docs, new Alignment window Edit menu option and...
authorJim Procter <j.procter@dundee.ac.uk>
Fri, 16 Sep 2022 13:23:21 +0000 (14:23 +0100)
committerJim Procter <j.procter@dundee.ac.uk>
Fri, 16 Sep 2022 13:23:21 +0000 (14:23 +0100)
help/help/html/keys.html
help/help/html/menus/alignmentMenu.html
help/help/html/menus/alwedit.html
resources/lang/Messages.properties
src/jalview/gui/AlignFrame.java
src/jalview/jbgui/GAlignFrame.java

index 0faa1d5..12457b8 100755 (executable)
       </td>
     </tr>
     <tr>
+      <td><strong>Control Shift 'C'</strong></td>
+      <td>Both</td>
+      <td>Copies highlighted regions, such as from Find or a
+        structure based highlight, as new sequences in the clipboard.</td>
+    </tr>
+    <tr>
       <td><strong>Control 'V'</strong></td>
       <td>Both</td>
       <td>Paste the contents of the clipboard to the current
index 6532933..1a7286f 100755 (executable)
             paste the clipboard contents to a text editor, you will see
             the format of the copied residues FASTA.
         </em></li>
+        <li><strong>Copy Highlighted region (Control Shift
+            C)</strong><br> <em>Copies each stretch of highlighted
+            residues as a new sequence on the system clipboard - you can
+            also do this by pressing &lt;CTRL&gt; &lt;SHIFT&gt; and C
+            (&lt;APPLE&gt; &lt;SHIFT&gt; and C on MacOSX). <br>Use
+            this when you want to extract sequence regions highlighted
+            as a result of a Find operation, or due to mouseovers or
+            selections made in other views such as an assocated 3D
+            structure viewer.
+        </em></li>
         <li><strong>Paste </strong>
           <ul>
             <li><strong>To New Alignment (Control Shift V)<br>
index eb8e839..7384cda 100755 (executable)
         and C on MacOSX). <br> If you try to paste the clipboard
         contents to a text editor, you will see the format of the copied
         residues FASTA.
+    </em></li>    
+    <li><strong>Copy Highlighted region (Control Shift C)</strong><br> <em>Copies
+        each stretch of highlighted residues as a new sequence on the
+        system clipboard - you can also do this by pressing &lt;CTRL&gt;
+        &lt;SHIFT&gt; and C (&lt;APPLE&gt; &lt;SHIFT&gt; and C on
+        MacOSX). <br>Use this when you want to extract sequence regions
+        highlighted as a result of a Find operation, or due to
+        mouseovers or selections made in other views such as an
+        assocated 3D structure viewer.
     </em></li>
     <li><strong>Paste </strong>
       <ul>
index 3554d50..30a154d 100644 (file)
@@ -130,6 +130,8 @@ action.calculate = Calculate
 action.select_all = Select all
 action.select_highlighted_columns = Select Highlighted Columns
 tooltip.select_highlighted_columns = Press B to mark highlighted columns, Ctrl-(or Cmd)-B to toggle, and Alt-B to mark all but highlighted columns 
+action.copy_highlighted_regions = Copy Highlighted Regions
+tooltip.copy_highlighted_regions = Copies highlighted sequence regions to the clipboard for export or further analysis
 action.deselect_all = Deselect all
 action.invert_selection = Invert selection
 action.using_jmol = Using Jmol
index e24cbea..032b0bb 100644 (file)
@@ -20,8 +20,6 @@
  */
 package jalview.gui;
 
-import java.util.Locale;
-
 import java.awt.BorderLayout;
 import java.awt.Color;
 import java.awt.Component;
@@ -59,6 +57,7 @@ import java.util.Deque;
 import java.util.Enumeration;
 import java.util.Hashtable;
 import java.util.List;
+import java.util.Locale;
 import java.util.Vector;
 
 import javax.swing.ButtonGroup;
@@ -5829,6 +5828,13 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
                     | ActionEvent.CTRL_MASK)) != 0);
   }
 
+  @Override
+  protected void copyHighlightedColumns_actionPerformed(
+          ActionEvent actionEvent)
+  {
+    avc.copyHighlightedRegionsToClipboard();
+  }
+
   /**
    * Rebuilds the Colour menu, including any user-defined colours which have
    * been loaded either on startup or during the session
index 71b6b9e..8ae97b0 100755 (executable)
  */
 package jalview.jbgui;
 
-import jalview.analysis.AnnotationSorter.SequenceAnnotationOrder;
-import jalview.analysis.GeneticCodeI;
-import jalview.analysis.GeneticCodes;
-import jalview.api.SplitContainerI;
-import jalview.bin.Cache;
-import jalview.gui.JvSwingUtils;
-import jalview.gui.Preferences;
-import jalview.io.FileFormats;
-import jalview.schemes.ResidueColourScheme;
-import jalview.util.MessageManager;
-import jalview.util.Platform;
-
 import java.awt.BorderLayout;
 import java.awt.Color;
 import java.awt.GridLayout;
@@ -61,6 +49,18 @@ import javax.swing.event.ChangeEvent;
 import javax.swing.event.MenuEvent;
 import javax.swing.event.MenuListener;
 
+import jalview.analysis.AnnotationSorter.SequenceAnnotationOrder;
+import jalview.analysis.GeneticCodeI;
+import jalview.analysis.GeneticCodes;
+import jalview.api.SplitContainerI;
+import jalview.bin.Cache;
+import jalview.gui.JvSwingUtils;
+import jalview.gui.Preferences;
+import jalview.io.FileFormats;
+import jalview.schemes.ResidueColourScheme;
+import jalview.util.MessageManager;
+import jalview.util.Platform;
+
 @SuppressWarnings("serial")
 public class GAlignFrame extends JInternalFrame
 {
@@ -104,6 +104,8 @@ public class GAlignFrame extends JInternalFrame
 
   JMenuItem copy = new JMenuItem();
 
+  JMenuItem copyHighlighted = new JMenuItem();
+
   JMenuItem cut = new JMenuItem();
 
   JMenu pasteMenu = new JMenu();
@@ -1756,6 +1758,26 @@ public class GAlignFrame extends JInternalFrame
       }
     };
     selectHighlighted.addActionListener(al);
+
+    copyHighlighted = new JMenuItem(
+            MessageManager.getString("action.copy_highlighted_regions"));
+    keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_C,
+            jalview.util.ShortcutKeyMaskExWrapper.getMenuShortcutKeyMaskEx()
+                    + jalview.util.ShortcutKeyMaskExWrapper.SHIFT_DOWN_MASK,
+            false);
+    copyHighlighted.setToolTipText(
+            MessageManager.getString("tooltip.copy_highlighted_regions"));
+    al = new ActionListener()
+    {
+      @Override
+      public void actionPerformed(ActionEvent actionEvent)
+      {
+        copyHighlightedColumns_actionPerformed(actionEvent);
+      }
+    };
+    addMenuActionAndAccelerator(keyStroke, copyHighlighted, al);
+    copyHighlighted.addActionListener(al);
+
     JMenu tooltipSettingsMenu = new JMenu(
             MessageManager.getString("label.sequence_id_tooltip"));
     JMenu autoAnnMenu = new JMenu(
@@ -1806,6 +1828,7 @@ public class GAlignFrame extends JInternalFrame
     editMenu.add(redoMenuItem);
     editMenu.add(cut);
     editMenu.add(copy);
+    editMenu.add(copyHighlighted);
     editMenu.add(pasteMenu);
     editMenu.add(delete);
     editMenu.addSeparator();
@@ -1951,6 +1974,12 @@ public class GAlignFrame extends JInternalFrame
     // selectMenu.add(listenToViewSelections);
   }
 
+  protected void copyHighlightedColumns_actionPerformed(
+          ActionEvent actionEvent)
+  {
+
+  }
+
   protected void loadVcf_actionPerformed()
   {
   }