X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FPopupMenu.java;h=e2865a89e124b7caf20c6d0ba874bddf743ec05d;hb=075b2506c45bf8ae70e7a3ce3bb29029a21824b1;hp=a7e853a3cbf094a7f5b74528d4297a868682ca37;hpb=506d60f0e188723ddc91c26824b41ac7034df3fe;p=jalview.git diff --git a/src/jalview/gui/PopupMenu.java b/src/jalview/gui/PopupMenu.java index a7e853a..e2865a8 100755 --- a/src/jalview/gui/PopupMenu.java +++ b/src/jalview/gui/PopupMenu.java @@ -94,6 +94,8 @@ public class PopupMenu extends JPopupMenu JCheckBoxMenuItem showColourText = new JCheckBoxMenuItem(); + JCheckBoxMenuItem displayNonconserved = new JCheckBoxMenuItem(); + JMenu editMenu = new JMenu(); JMenuItem cut = new JMenuItem(); @@ -378,7 +380,7 @@ public class PopupMenu extends JPopupMenu { conservationMenuItem.setSelected(true); } - + displayNonconserved.setSelected(sg.getShowunconserved()); showText.setSelected(sg.getDisplayText()); showColourText.setSelected(sg.getColourText()); showBoxes.setSelected(sg.getDisplayBoxes()); @@ -403,7 +405,7 @@ public class PopupMenu extends JPopupMenu if (links != null && links.size() > 0) { JMenu linkMenu = new JMenu("Link"); - + Vector linkset = new Vector(); for (int i = 0; i < links.size(); i++) { String link = links.elementAt(i).toString(); @@ -433,6 +435,12 @@ public class PopupMenu extends JPopupMenu { urlLink.getTarget() }); // collect id string too String id = seq.getName(); + String descr = seq.getDescription(); + if (descr!=null && descr.length()<1) + { + descr = null; + } + if (dbr != null) { for (int r = 0; r < dbr.length; r++) @@ -450,7 +458,11 @@ public class PopupMenu extends JPopupMenu { for (int u = 0; u < urls.length; u += 2) { - addshowLink(linkMenu, label + "|" + urls[u], urls[u + 1]); + if (!linkset.contains(urls[u]+"|"+urls[u+1])) + { + linkset.addElement(urls[u]+"|"+urls[u+1]); + addshowLink(linkMenu, label + "|" + urls[u], urls[u + 1]); + } } } } @@ -463,15 +475,40 @@ public class PopupMenu extends JPopupMenu { for (int u = 0; u < urls.length; u += 2) { - addshowLink(linkMenu, label, urls[u + 1]); + if (!linkset.contains(urls[u]+"|"+urls[u+1])) + { + linkset.addElement(urls[u]+"|"+urls[u+1]); + addshowLink(linkMenu, label, urls[u + 1]); + } + } + } + } + // Create urls from description but only for URL links which are regex links + if (descr != null && urlLink.getRegexReplace()!=null) + { + // create link for this URL from description where regex matches + String[] urls = urlLink.makeUrls(descr, true); + if (urls != null) + { + for (int u = 0; u < urls.length; u += 2) + { + if (!linkset.contains(urls[u]+"|"+urls[u+1])) + { + linkset.addElement(urls[u]+"|"+urls[u+1]); + addshowLink(linkMenu, label, urls[u + 1]); + } } } } } else { - // Add a non-dynamic link - addshowLink(linkMenu, label, urlLink.getUrl_prefix()); + if (!linkset.contains(label+"|"+urlLink.getUrl_prefix())) + { + linkset.addElement(label+"|"+urlLink.getUrl_prefix()); + // Add a non-dynamic link + addshowLink(linkMenu, label, urlLink.getUrl_prefix()); + } } } if (sequence != null) @@ -597,6 +634,15 @@ public class PopupMenu extends JPopupMenu showColourText_actionPerformed(); } }); + displayNonconserved.setText("Show Nonconserved"); + displayNonconserved.setState(true); + displayNonconserved.addActionListener(new ActionListener() + { + public void actionPerformed(ActionEvent e) + { + showNonconserved_actionPerformed(); + } + }); editMenu.setText("Edit"); cut.setText("Cut"); cut.addActionListener(new ActionListener() @@ -762,6 +808,7 @@ public class PopupMenu extends JPopupMenu jMenu1.add(showText); jMenu1.add(showColourText); jMenu1.add(outline); + jMenu1.add(displayNonconserved); structureMenu.add(pdbMenu); structureMenu.add(viewStructureMenu); // structureMenu.add(colStructureMenu); @@ -882,8 +929,14 @@ public class PopupMenu extends JPopupMenu }); } + protected void showNonconserved_actionPerformed() + { + getGroup().setShowunconserved(displayNonconserved.isSelected()); + refresh(); + } + /** - * DOCUMENT ME! + * call to refresh view after settings change */ void refresh() { @@ -1363,6 +1416,7 @@ public class PopupMenu extends JPopupMenu } ap.av.hideSequence(hseqs); + ap.av.sendSelection(); } public void copy_actionPerformed() @@ -1549,8 +1603,7 @@ public class PopupMenu extends JPopupMenu if (ap.seqPanel.seqCanvas.getFeatureRenderer().amendFeatures(seqs, features, true, ap)) { - ap.alignFrame.showSeqFeatures.setSelected(true); - ap.av.setShowSequenceFeatures(true); + ap.alignFrame.setShowSeqFeatures(true); ap.highlightSearchResults(null); } }