From: amwaterhouse Date: Tue, 2 May 2006 09:28:24 +0000 (+0000) Subject: Toggle case added to popup menu X-Git-Tag: Release_2_08_1~8 X-Git-Url: http://source.jalview.org/gitweb/?a=commitdiff_plain;h=e13e34f4fce46de357b79344076ebfa7413ad86f;p=jalview.git Toggle case added to popup menu --- diff --git a/src/jalview/appletgui/APopupMenu.java b/src/jalview/appletgui/APopupMenu.java index ebf27bb..8f6e49f 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) { @@ -193,28 +194,18 @@ public class APopupMenu ap.alignFrame.copy_actionPerformed(); else if(source==cut) ap.alignFrame.cut_actionPerformed(); - else if(source==toUpper) + 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(true, sg.getStartRes(), - sg.getEndRes() + 1); - } - ap.seqPanel.seqCanvas.repaint(); - } - } - else if(source==toLower) - { - 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(); } @@ -317,6 +308,8 @@ public class APopupMenu toUpper.addActionListener(this); editMenu.add(toLower); toLower.addActionListener(this); + editMenu.add(toggleCase); + toggleCase.addActionListener(this); } diff --git a/src/jalview/datamodel/Sequence.java b/src/jalview/datamodel/Sequence.java index 333737e..6873f52 100755 --- a/src/jalview/datamodel/Sequence.java +++ b/src/jalview/datamodel/Sequence.java @@ -662,4 +662,38 @@ public class Sequence implements SequenceI sequence = newSeq.toString(); } + public void toggleCase(int start, int end) + { + StringBuffer newSeq = new StringBuffer(); + + if(end>=sequence.length()) + end = sequence.length()-1; + + if (start > 0) + { + newSeq.append(sequence.substring(0, start)); + } + + char nextChar; + for(int c=start; c