X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FPopupMenu.java;h=3c32180ed65672a53b5ca215ae77487d7b7fdb9f;hb=747167089ecf8d6afc70d417f5a20352e029bd95;hp=87912abf1e528c8709e05ef0496973dbe0c7b6c1;hpb=fa8140d4e0510b5c91284ad38f296cbf14ba29a5;p=jalview.git diff --git a/src/jalview/gui/PopupMenu.java b/src/jalview/gui/PopupMenu.java index 87912ab..3c32180 100644 --- a/src/jalview/gui/PopupMenu.java +++ b/src/jalview/gui/PopupMenu.java @@ -20,6 +20,8 @@ */ package jalview.gui; +import java.util.Locale; + import java.awt.BorderLayout; import java.awt.Color; import java.awt.event.ActionEvent; @@ -54,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; @@ -64,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; @@ -87,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. @@ -228,13 +234,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; } @@ -301,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); @@ -545,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() @@ -668,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 pdbe = new Hashtable<>(), reppdb = new Hashtable<>(); + Hashtable pdbe = new Hashtable<>(); + Hashtable reppdb = new Hashtable<>(); SequenceI sqass = null; for (SequenceI sq : alignPanel.av.getSequenceSelection()) @@ -837,10 +874,14 @@ public class PopupMenu extends JPopupMenu implements ColourChangeListener /* * show local rather than linked feature coordinates */ - int[] beginRange = mf.getMappedPositions(start, start); - start = beginRange[0]; - int[] endRange = mf.getMappedPositions(end, end); - end = endRange[endRange.length - 1]; + int[] localRange = mf.getMappedPositions(start, end); + if (localRange == null) + { + // e.g. variant extending to stop codon so not mappable + return; + } + start = localRange[0]; + end = localRange[localRange.length - 1]; } StringBuilder desc = new StringBuilder(); desc.append(sf.getType()).append(" ").append(String.valueOf(start)); @@ -1125,7 +1166,7 @@ public class PopupMenu extends JPopupMenu implements ColourChangeListener for (int d = 0; d < nd; d++) { DBRefEntry e = dbr.get(d); - String src = e.getSource(); // jalview.util.DBRefUtils.getCanonicalName(dbr[d].getSource()).toUpperCase(); + String src = e.getSource(); // jalview.util.DBRefUtils.getCanonicalName(dbr[d].getSource()).toUpperCase(Locale.ROOT); Object[] sarray = commonDbrefs.get(src); if (sarray == null) { @@ -1159,19 +1200,19 @@ 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(); boolean usingNames = false; // Now see which parts of the group apply for this URL String ltarget = urlLink.getTarget(); // jalview.util.DBRefUtils.getCanonicalName(urlLink.getTarget()); - Object[] idset = commonDbrefs.get(ltarget.toUpperCase()); + Object[] idset = commonDbrefs.get(ltarget.toUpperCase(Locale.ROOT)); String[] seqstr, ids; // input to makeUrl if (idset != null) { @@ -1807,7 +1848,7 @@ public class PopupMenu extends JPopupMenu implements ColourChangeListener contents.append("

" + MessageManager.formatMessage( "label.create_sequence_details_report_annotation_for", new Object[] - { seq.getDisplayId(true) }) + "

"); + { seq.getDisplayId(true) }) + "

\n

"); new SequenceAnnotationReport(false).createSequenceAnnotationReport( contents, seq, true, true, ap.getSeqPanel().seqCanvas.fr); contents.append("

"); @@ -2040,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(); } }); } @@ -2172,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()); } } @@ -2281,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(); } }); }