X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fappletgui%2FAPopupMenu.java;h=3401cc4b31d676978eb35fa75ec243603051d7ee;hb=7bc213bae5828287329a3490faba291706599b03;hp=6393f749a9cd6f00126ca0462bb13524f268ff56;hpb=568011c82e003d19f533147e6429407ca56b67ec;p=jalview.git diff --git a/src/jalview/appletgui/APopupMenu.java b/src/jalview/appletgui/APopupMenu.java index 6393f74..3401cc4 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) { @@ -81,23 +82,24 @@ public class APopupMenu SequenceGroup sg = ap.av.getSelectionGroup(); - if (sg != null && sg.getSize()>0) + if (sg != null && sg.getSize(false)>0) { showText.setState(sg.getDisplayText()); showColourText.setState(sg.getColourText()); showBoxes.setState(sg.getDisplayBoxes()); + if (!ap.av.alignment.getGroups().contains(sg)) + { + groupMenu.remove(unGroupMenuItem); + } + } else { remove(groupMenu); + remove(editMenu); } - if (!ap.av.alignment.getGroups().contains(sg)) - { - groupMenu.remove(unGroupMenuItem); - } - - if (seq != null && links!=null) + if (links!=null) { Menu linkMenu = new Menu("Link"); MenuItem item; @@ -107,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() { @@ -126,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); + } } } @@ -192,28 +204,20 @@ 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++) + for (int g = 0; g < sg.getSize(true); g++) { - sg.getSequenceAt(g).changeCase(false, sg.getStartRes(), - sg.getEndRes() + 1); + if (source == toggleCase) + ((SequenceI) sg.getSequences(true).elementAt(g)) + .toggleCase(sg.getStartRes(), sg.getEndRes() + 1); + else + ((SequenceI) sg.getSequences(true).elementAt(g)) + .changeCase(source == toUpper, sg.getStartRes(), + sg.getEndRes() + 1); } ap.seqPanel.seqCanvas.repaint(); } @@ -316,6 +320,8 @@ public class APopupMenu toUpper.addActionListener(this); editMenu.add(toLower); toLower.addActionListener(this); + editMenu.add(toggleCase); + toggleCase.addActionListener(this); } @@ -329,7 +335,7 @@ public class APopupMenu protected void clustalColour_actionPerformed() { SequenceGroup sg = getGroup(); - sg.cs = new ClustalxColourScheme(sg.sequences, ap.av.alignment.getWidth()); + sg.cs = new ClustalxColourScheme(sg.getSequences(true), ap.av.alignment.getWidth()); refresh(); } @@ -389,7 +395,7 @@ public class APopupMenu if (abovePIDColour.getState()) { - sg.cs.setConsensus(AAFrequency.calculate(sg.sequences, 0, + sg.cs.setConsensus(AAFrequency.calculate(sg.getSequences(true), 0, ap.av.alignment.getWidth())); int threshold = SliderPanel.setPIDSliderSource(ap, sg.cs, getGroup().getName()); @@ -417,7 +423,7 @@ public class APopupMenu { SequenceGroup sg = getGroup(); sg.cs = new PIDColourScheme(); - sg.cs.setConsensus(AAFrequency.calculate(sg.sequences, 0, + sg.cs.setConsensus(AAFrequency.calculate(sg.getSequences(true), 0, ap.av.alignment.getWidth())); refresh(); } @@ -428,7 +434,7 @@ public class APopupMenu sg.cs = new Blosum62ColourScheme(); - sg.cs.setConsensus(AAFrequency.calculate(sg.sequences, 0, + sg.cs.setConsensus(AAFrequency.calculate(sg.getSequences(true), 0, ap.av.alignment.getWidth())); refresh(); @@ -451,7 +457,7 @@ public class APopupMenu Conservation c = new Conservation("Group", ResidueProperties.propHash, 3, - sg.sequences, 0, + sg.getSequences(true), 0, ap.av.alignment.getWidth()); c.calculate();