Merge branch 'develop' into update_212_Dec_merge_with_21125_chamges
[jalview.git] / src / jalview / gui / PopupMenu.java
index 6db9011..3c32180 100644 (file)
@@ -56,7 +56,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;
@@ -66,11 +66,13 @@ import jalview.datamodel.DBRefEntry;
 import jalview.datamodel.HiddenColumns;
 import jalview.datamodel.MappedFeatures;
 import jalview.datamodel.PDBEntry;
+import jalview.datamodel.ResidueCount;
 import jalview.datamodel.SequenceFeature;
 import jalview.datamodel.SequenceGroup;
 import jalview.datamodel.SequenceI;
 import jalview.gui.ColourMenuHelper.ColourChangeListener;
 import jalview.gui.JalviewColourChooser.ColourChooserListener;
+import jalview.io.CountReader;
 import jalview.io.FileFormatI;
 import jalview.io.FileFormats;
 import jalview.io.FormatAdapter;
@@ -89,6 +91,8 @@ import jalview.util.StringUtils;
 import jalview.util.UrlLink;
 import jalview.viewmodel.seqfeatures.FeatureRendererModel;
 
+import java.io.IOException;
+import java.net.MalformedURLException;
 /**
  * The popup menu that is displayed on right-click on a sequence id, or in the
  * sequence alignment.
@@ -230,13 +234,13 @@ public class PopupMenu extends JPopupMenu implements ColourChangeListener
         urlLink = new UrlLink(link);
       } catch (Exception foo)
       {
-        Cache.error("Exception for URLLink '" + link + "'", foo);
+        Console.error("Exception for URLLink '" + link + "'", foo);
         continue;
       }
 
       if (!urlLink.isValid())
       {
-        Cache.error(urlLink.getInvalidMessage());
+        Console.error(urlLink.getInvalidMessage());
         continue;
       }
 
@@ -303,7 +307,7 @@ public class PopupMenu extends JPopupMenu implements ColourChangeListener
       jalview.util.BrowserLauncher.openURL(url);
     } catch (Exception ex)
     {
-      JvOptionPane.showInternalMessageDialog(Desktop.desktop,
+      JvOptionPane.showInternalMessageDialog(Desktop.getDesktopPane(),
               MessageManager.getString("label.web_browser_not_found_unix"),
               MessageManager.getString("label.web_browser_not_found"),
               JvOptionPane.WARNING_MESSAGE);
@@ -547,6 +551,35 @@ public class PopupMenu extends JPopupMenu implements ColourChangeListener
         }
       }
 
+      if (seq.hasHMMProfile())
+      {
+        menuItem = new JMenuItem(MessageManager
+                .getString("action.add_background_frequencies"));
+        menuItem.addActionListener(new ActionListener()
+        {
+          @Override
+          public void actionPerformed(ActionEvent e)
+          {
+            try
+            {
+              ResidueCount counts = CountReader.getBackgroundFrequencies(ap,
+                      seq);
+              if (counts != null)
+              {
+                seq.getHMM().setBackgroundFrequencies(counts);
+                ap.alignFrame.buildColourMenu();
+              }
+            } catch (MalformedURLException e1)
+            {
+              e1.printStackTrace();
+            } catch (IOException e1)
+            {
+              e1.printStackTrace();
+            }
+          }
+        });
+        add(menuItem);
+      }
       menuItem = new JMenuItem(
               MessageManager.getString("action.hide_sequences"));
       menuItem.addActionListener(new ActionListener()
@@ -670,8 +703,10 @@ public class PopupMenu extends JPopupMenu implements ColourChangeListener
       {
         buildGroupURLMenu(sg, groupLinks);
       }
+      // TODO REMOVE FOR 2.12 ?
       // Add a 'show all structures' for the current selection
-      Hashtable<String, PDBEntry> pdbe = new Hashtable<>(), reppdb = new Hashtable<>();
+      Hashtable<String, PDBEntry> pdbe = new Hashtable<>();
+      Hashtable<String, PDBEntry> reppdb = new Hashtable<>();
 
       SequenceI sqass = null;
       for (SequenceI sq : alignPanel.av.getSequenceSelection())
@@ -1165,12 +1200,12 @@ public class PopupMenu extends JPopupMenu implements ColourChangeListener
         urlLink = new GroupUrlLink(link);
       } catch (Exception foo)
       {
-        Cache.error("Exception for GroupURLLink '" + link + "'", foo);
+        Console.error("Exception for GroupURLLink '" + link + "'", foo);
         continue;
       }
       if (!urlLink.isValid())
       {
-        Cache.error(urlLink.getInvalidMessage());
+        Console.error(urlLink.getInvalidMessage());
         continue;
       }
       final String label = urlLink.getLabel();
@@ -1813,7 +1848,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>");
@@ -2046,8 +2081,7 @@ public class PopupMenu extends JPopupMenu implements ColourChangeListener
                   ap.paintAlignment(false, false);
                 }
                 sequence.setDescription(dialog.getDescription());
-                ap.av.firePropertyChange("alignment", null,
-                        ap.av.getAlignment().getSequences());
+                ap.av.notifyAlignment();
               }
             });
   }
@@ -2089,7 +2123,7 @@ public class PopupMenu extends JPopupMenu implements ColourChangeListener
         refresh();
       }
     };
-    JalviewColourChooser.showColourChooser(Desktop.getDesktop(),
+    JalviewColourChooser.showColourChooser(Desktop.getDesktopPane(),
             title, Color.BLUE, listener);
   }
 
@@ -2178,9 +2212,8 @@ public class PopupMenu extends JPopupMenu implements ColourChangeListener
               startEnd, caseChange);
 
       ap.alignFrame.addHistoryItem(caseCommand);
+      ap.av.notifyAlignment();
 
-      ap.av.firePropertyChange("alignment", null,
-              ap.av.getAlignment().getSequences());
 
     }
   }
@@ -2287,8 +2320,7 @@ public class PopupMenu extends JPopupMenu implements ColourChangeListener
                           sg.getStartRes(), sg.getEndRes() + 1,
                           ap.av.getAlignment());
                   ap.alignFrame.addHistoryItem(editCommand);
-                  ap.av.firePropertyChange("alignment", null,
-                          ap.av.getAlignment().getSequences());
+                  ap.av.notifyAlignment();
                 }
               });
     }