X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fappletgui%2FAPopupMenu.java;h=1c9b3cd94091c3bb1a19283843fe2472ba0dfccc;hb=cd71fb9ef1a21678ad648ba13564b658b53ab834;hp=1d5eacec0d18ceafc2afdf0f84f50131b49357a1;hpb=3b5ad2b93c9765e2f381ef66dc755184657d7d71;p=jalview.git diff --git a/src/jalview/appletgui/APopupMenu.java b/src/jalview/appletgui/APopupMenu.java index 1d5eace..1c9b3cd 100755 --- a/src/jalview/appletgui/APopupMenu.java +++ b/src/jalview/appletgui/APopupMenu.java @@ -58,6 +58,7 @@ public class APopupMenu MenuItem cut = new MenuItem("Cut (Jalview Only)"); MenuItem toUpper = new MenuItem("To Upper Case"); MenuItem toLower = new MenuItem("To Lower Case"); + MenuItem toggleCase = new MenuItem("Toggle Case"); public APopupMenu(AlignmentPanel apanel, final Sequence seq, Vector links) { @@ -80,19 +81,25 @@ public class APopupMenu } SequenceGroup sg = ap.av.getSelectionGroup(); - if (sg != null) + + if (sg != null && sg.getSize()>0) { showText.setState(sg.getDisplayText()); showColourText.setState(sg.getColourText()); showBoxes.setState(sg.getDisplayBoxes()); - } + if (!ap.av.alignment.getGroups().contains(sg)) + { + groupMenu.remove(unGroupMenuItem); + } - if (!ap.av.alignment.getGroups().contains(sg)) + } + else { - groupMenu.remove(unGroupMenuItem); + remove(groupMenu); + remove(editMenu); } - if (seq != null && links!=null) + if (links!=null) { Menu linkMenu = new Menu("Link"); MenuItem item; @@ -102,13 +109,22 @@ public class APopupMenu link = links.elementAt(i).toString(); final String target = link.substring(0, link.indexOf("|")); item = new MenuItem(target); - String id = seq.getName(); - if(id.indexOf("|")>-1) - id = id.substring(id.lastIndexOf("|")+1); - final String url = link.substring(link.indexOf("|")+1, link.indexOf("$SEQUENCE_ID$")) - + id + - link.substring(link.indexOf("$SEQUENCE_ID$") + 13); + final String url; + + if (link.indexOf("$SEQUENCE_ID$") > -1) + { + String id = seq.getName(); + if (id.indexOf("|") > -1) + id = id.substring(id.lastIndexOf("|") + 1); + + url = link.substring(link.indexOf("|") + 1, + link.indexOf("$SEQUENCE_ID$")) + + id + + link.substring(link.indexOf("$SEQUENCE_ID$") + 13); + } + else + url = link.substring(link.lastIndexOf("|")+1); item.addActionListener(new java.awt.event.ActionListener() { @@ -121,18 +137,19 @@ public class APopupMenu } add(linkMenu); - item = new MenuItem("Show PDB Structure"); - item.addActionListener(new java.awt.event.ActionListener() - { - public void actionPerformed(ActionEvent e) - { - addPDB(seq); - } - }); - - add(item); - + if(seq!=null) + { + item = new MenuItem("Show PDB Structure"); + item.addActionListener(new java.awt.event.ActionListener() + { + public void actionPerformed(ActionEvent e) + { + addPDB(seq); + } + }); + add(item); + } } } @@ -187,28 +204,18 @@ public class APopupMenu ap.alignFrame.copy_actionPerformed(); else if(source==cut) ap.alignFrame.cut_actionPerformed(); - else if(source==toUpper) - { - SequenceGroup sg = ap.av.getSelectionGroup(); - if (sg != null) - { - for (int g = 0; g < sg.getSize(); g++) - { - sg.getSequenceAt(g).changeCase(true, sg.getStartRes(), - sg.getEndRes() + 1); - } - ap.seqPanel.seqCanvas.repaint(); - } - } - else if(source==toLower) + else if(source==toUpper || source==toLower || source==toggleCase) { SequenceGroup sg = ap.av.getSelectionGroup(); if (sg != null) { for (int g = 0; g < sg.getSize(); g++) { - sg.getSequenceAt(g).changeCase(false, sg.getStartRes(), - sg.getEndRes() + 1); + if (source == toggleCase) + sg.getSequenceAt(g).toggleCase(sg.getStartRes(), sg.getEndRes() + 1); + else + sg.getSequenceAt(g).changeCase(source == toUpper, sg.getStartRes(), + sg.getEndRes() + 1); } ap.seqPanel.seqCanvas.repaint(); } @@ -311,6 +318,8 @@ public class APopupMenu toUpper.addActionListener(this); editMenu.add(toLower); toLower.addActionListener(this); + editMenu.add(toggleCase); + toggleCase.addActionListener(this); }