JAL-1713 update from Jalview 2.11.3 develop
[jalview.git] / src / jalview / gui / PopupMenu.java
index 7b284a9..1c03d6a 100644 (file)
@@ -20,8 +20,6 @@
  */
 package jalview.gui;
 
-import java.util.Locale;
-
 import java.awt.BorderLayout;
 import java.awt.Color;
 import java.awt.event.ActionEvent;
@@ -34,6 +32,7 @@ import java.util.Collections;
 import java.util.Hashtable;
 import java.util.LinkedHashMap;
 import java.util.List;
+import java.util.Locale;
 import java.util.Map;
 import java.util.Objects;
 import java.util.SortedMap;
@@ -56,7 +55,7 @@ import jalview.analysis.AlignmentAnnotationUtils;
 import jalview.analysis.AlignmentUtils;
 import jalview.analysis.Conservation;
 import jalview.api.AlignViewportI;
-import jalview.bin.Cache;
+import jalview.bin.Console;
 import jalview.commands.ChangeCaseCommand;
 import jalview.commands.EditCommand;
 import jalview.commands.EditCommand.Action;
@@ -230,13 +229,13 @@ public class PopupMenu extends JPopupMenu implements ColourChangeListener
         urlLink = new UrlLink(link);
       } catch (Exception foo)
       {
-        Cache.log.error("Exception for URLLink '" + link + "'", foo);
+        Console.error("Exception for URLLink '" + link + "'", foo);
         continue;
       }
 
       if (!urlLink.isValid())
       {
-        Cache.log.error(urlLink.getInvalidMessage());
+        Console.error(urlLink.getInvalidMessage());
         continue;
       }
 
@@ -359,14 +358,15 @@ public class PopupMenu extends JPopupMenu implements ColourChangeListener
   }
 
   /**
-   * Constructor for a PopupMenu for a click in the alignment panel (on a residue)
+   * Constructor for a PopupMenu for a click in the alignment panel (on a
+   * residue)
    * 
    * @param ap
-   *              the panel in which the mouse is clicked
+   *          the panel in which the mouse is clicked
    * @param seq
-   *              the sequence under the mouse
+   *          the sequence under the mouse
    * @throws NullPointerException
-   *                                if seq is null
+   *           if seq is null
    */
   public PopupMenu(final AlignmentPanel ap, SequenceI seq, int column)
   {
@@ -377,13 +377,13 @@ public class PopupMenu extends JPopupMenu implements ColourChangeListener
    * Constructor for a PopupMenu for a click in the sequence id panel
    * 
    * @param alignPanel
-   *                     the panel in which the mouse is clicked
+   *          the panel in which the mouse is clicked
    * @param seq
-   *                     the sequence under the mouse click
+   *          the sequence under the mouse click
    * @param groupLinks
-   *                     templates for sequence external links
+   *          templates for sequence external links
    * @throws NullPointerException
-   *                                if seq is null
+   *           if seq is null
    */
   public PopupMenu(final AlignmentPanel alignPanel, final SequenceI seq,
           List<String> groupLinks)
@@ -399,11 +399,10 @@ public class PopupMenu extends JPopupMenu implements ColourChangeListener
    * @param alignPanel
    * @param seq
    * @param column
-   *                      aligned column position (0...)
+   *          aligned column position (0...)
    * @param groupLinks
    */
-  private PopupMenu(boolean fromIdPanel,
-          final AlignmentPanel alignPanel,
+  private PopupMenu(boolean fromIdPanel, final AlignmentPanel alignPanel,
           final SequenceI seq, final int column, List<String> groupLinks)
   {
     Objects.requireNonNull(seq);
@@ -443,9 +442,10 @@ public class PopupMenu extends JPopupMenu implements ColourChangeListener
     /*
      * And repeat for the current selection group (if there is one):
      */
-    final List<SequenceI> selectedGroup = (alignPanel.av.getSelectionGroup() == null
-            ? Collections.<SequenceI> emptyList()
-            : alignPanel.av.getSelectionGroup().getSequences());
+    final List<SequenceI> selectedGroup = (alignPanel.av
+            .getSelectionGroup() == null
+                    ? Collections.<SequenceI> emptyList()
+                    : alignPanel.av.getSelectionGroup().getSequences());
     buildAnnotationTypesMenus(groupShowAnnotationsMenu,
             groupHideAnnotationsMenu, selectedGroup);
     configureReferenceAnnotationsMenu(groupAddReferenceAnnotations,
@@ -671,7 +671,8 @@ public class PopupMenu extends JPopupMenu implements ColourChangeListener
         buildGroupURLMenu(sg, groupLinks);
       }
       // Add a 'show all structures' for the current selection
-      Hashtable<String, PDBEntry> pdbe = new Hashtable<>(), reppdb = new Hashtable<>();
+      Hashtable<String, PDBEntry> pdbe = new Hashtable<>(),
+              reppdb = new Hashtable<>();
 
       SequenceI sqass = null;
       for (SequenceI sq : alignPanel.av.getSequenceSelection())
@@ -708,7 +709,8 @@ public class PopupMenu extends JPopupMenu implements ColourChangeListener
     {
       createGroupMenuItem.setVisible(true);
       unGroupMenuItem.setVisible(false);
-      editGroupMenu.setText(MessageManager.getString("action.edit_new_group"));
+      editGroupMenu
+              .setText(MessageManager.getString("action.edit_new_group"));
     }
     else
     {
@@ -735,8 +737,8 @@ public class PopupMenu extends JPopupMenu implements ColourChangeListener
    * <li>positional feature links (alignment panel popup menu)</li>
    * <li>feature details links (alignment panel popup menu)</li>
    * </ul>
-   * If this panel is also showed complementary (CDS/protein) features, then links
-   * to their feature details are also added.
+   * If this panel is also showed complementary (CDS/protein) features, then
+   * links to their feature details are also added.
    * 
    * @param seq
    * @param column
@@ -1144,8 +1146,8 @@ public class PopupMenu extends JPopupMenu implements ColourChangeListener
 
           if (((String[]) sarray[1])[sq] == null)
           {
-            if (!e.hasMap() || (e.getMap()
-                    .locateMappedRange(start, end) != null))
+            if (!e.hasMap()
+                    || (e.getMap().locateMappedRange(start, end) != null))
             {
               ((String[]) sarray[1])[sq] = e.getAccessionId();
               ((int[]) sarray[0])[0]++;
@@ -1165,12 +1167,12 @@ public class PopupMenu extends JPopupMenu implements ColourChangeListener
         urlLink = new GroupUrlLink(link);
       } catch (Exception foo)
       {
-        Cache.log.error("Exception for GroupURLLink '" + link + "'", foo);
+        Console.error("Exception for GroupURLLink '" + link + "'", foo);
         continue;
       }
       if (!urlLink.isValid())
       {
-        Cache.log.error(urlLink.getInvalidMessage());
+        Console.error(urlLink.getInvalidMessage());
         continue;
       }
       final String label = urlLink.getLabel();
@@ -1784,7 +1786,8 @@ public class PopupMenu extends JPopupMenu implements ColourChangeListener
         }
         inserts.and(sq.getInsertionsAsBits());
       }
-      hidden.clearAndHideColumns(inserts, ap.av.getSelectionGroup().getStartRes(),
+      hidden.clearAndHideColumns(inserts,
+              ap.av.getSelectionGroup().getStartRes(),
               ap.av.getSelectionGroup().getEndRes());
     }
 
@@ -1813,7 +1816,7 @@ public class PopupMenu extends JPopupMenu implements ColourChangeListener
       contents.append("<p><h2>" + MessageManager.formatMessage(
               "label.create_sequence_details_report_annotation_for",
               new Object[]
-              { seq.getDisplayId(true) }) + "</h2></p><p>");
+              { seq.getDisplayId(true) }) + "</h2></p>\n<p>");
       new SequenceAnnotationReport(false).createSequenceAnnotationReport(
               contents, seq, true, true, ap.getSeqPanel().seqCanvas.fr);
       contents.append("</p>");
@@ -1983,15 +1986,11 @@ public class PopupMenu extends JPopupMenu implements ColourChangeListener
             MessageManager.getString("label.group_description"));
     dialog.showDialog(ap.alignFrame,
             MessageManager.getString("label.edit_group_name_description"),
-            new Runnable()
-            {
-              @Override
-              public void run()
-              {
-                sg.setName(dialog.getName());
-                sg.setDescription(dialog.getDescription());
-                refresh();
-              }
+            () -> {
+              sg.setName(dialog.getName());
+              sg.setDescription(dialog.getDescription());
+              refresh();
+              return null;
             });
   }
 
@@ -2014,8 +2013,8 @@ public class PopupMenu extends JPopupMenu implements ColourChangeListener
 
   /**
    * Shows a dialog where the sequence name and description may be edited. If a
-   * name containing spaces is entered, these are converted to underscores, with a
-   * warning message.
+   * name containing spaces is entered, these are converted to underscores, with
+   * a warning message.
    */
   void sequenceName_actionPerformed()
   {
@@ -2023,32 +2022,26 @@ public class PopupMenu extends JPopupMenu implements ColourChangeListener
             sequence.getDescription(),
             MessageManager.getString("label.sequence_name"),
             MessageManager.getString("label.sequence_description"));
-    dialog.showDialog(ap.alignFrame,
-            MessageManager.getString(
-                    "label.edit_sequence_name_description"),
-            new Runnable()
-            {
-              @Override
-              public void run()
+    dialog.showDialog(ap.alignFrame, MessageManager
+            .getString("label.edit_sequence_name_description"), () -> {
+              if (dialog.getName() != null)
               {
-                if (dialog.getName() != null)
+                if (dialog.getName().indexOf(" ") > -1)
                 {
-                  if (dialog.getName().indexOf(" ") > -1)
-                  {
-                    JvOptionPane.showMessageDialog(ap,
-                            MessageManager.getString(
-                                    "label.spaces_converted_to_underscores"),
-                            MessageManager.getString(
-                                    "label.no_spaces_allowed_sequence_name"),
-                            JvOptionPane.WARNING_MESSAGE);
-                  }
-                  sequence.setName(dialog.getName().replace(' ', '_'));
-                  ap.paintAlignment(false, false);
+                  JvOptionPane.showMessageDialog(ap,
+                          MessageManager.getString(
+                                  "label.spaces_converted_to_underscores"),
+                          MessageManager.getString(
+                                  "label.no_spaces_allowed_sequence_name"),
+                          JvOptionPane.WARNING_MESSAGE);
                 }
-                sequence.setDescription(dialog.getDescription());
-                ap.av.firePropertyChange("alignment", null,
-                        ap.av.getAlignment().getSequences());
+                sequence.setName(dialog.getName().replace(' ', '_'));
+                ap.paintAlignment(false, false);
               }
+              sequence.setDescription(dialog.getDescription());
+              ap.av.firePropertyChange("alignment", null,
+                      ap.av.getAlignment().getSequences());
+              return null;
             });
   }
 
@@ -2078,8 +2071,7 @@ public class PopupMenu extends JPopupMenu implements ColourChangeListener
    */
   protected void outline_actionPerformed()
   {
-    String title = MessageManager
-            .getString("label.select_outline_colour");
+    String title = MessageManager.getString("label.select_outline_colour");
     ColourChooserListener listener = new ColourChooserListener()
     {
       @Override
@@ -2089,8 +2081,8 @@ public class PopupMenu extends JPopupMenu implements ColourChangeListener
         refresh();
       }
     };
-    JalviewColourChooser.showColourChooser(Desktop.getDesktop(),
-            title, Color.BLUE, listener);
+    JalviewColourChooser.showColourChooser(Desktop.getDesktop(), title,
+            Color.BLUE, listener);
   }
 
   /**
@@ -2271,25 +2263,20 @@ public class PopupMenu extends JPopupMenu implements ColourChangeListener
               seq.getSequenceAsString(sg.getStartRes(), sg.getEndRes() + 1),
               null, MessageManager.getString("label.edit_sequence"), null);
       dialog.showDialog(ap.alignFrame,
-              MessageManager.getString("label.edit_sequence"),
-              new Runnable()
-              {
-                @Override
-                public void run()
-                {
-                  EditCommand editCommand = new EditCommand(
-                          MessageManager.getString("label.edit_sequences"),
-                          Action.REPLACE,
-                          dialog.getName().replace(' ',
-                                  ap.av.getGapCharacter()),
-                          sg.getSequencesAsArray(
-                                  ap.av.getHiddenRepSequences()),
-                          sg.getStartRes(), sg.getEndRes() + 1,
-                          ap.av.getAlignment());
-                  ap.alignFrame.addHistoryItem(editCommand);
-                  ap.av.firePropertyChange("alignment", null,
-                          ap.av.getAlignment().getSequences());
-                }
+              MessageManager.getString("label.edit_sequence"), () -> {
+                EditCommand editCommand = new EditCommand(
+                        MessageManager.getString("label.edit_sequences"),
+                        Action.REPLACE,
+                        dialog.getName().replace(' ',
+                                ap.av.getGapCharacter()),
+                        sg.getSequencesAsArray(
+                                ap.av.getHiddenRepSequences()),
+                        sg.getStartRes(), sg.getEndRes() + 1,
+                        ap.av.getAlignment());
+                ap.alignFrame.addHistoryItem(editCommand);
+                ap.av.firePropertyChange("alignment", null,
+                        ap.av.getAlignment().getSequences());
+                return null;
               });
     }
   }