X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fcommands%2FChangeCaseCommand.java;h=d34552dfa850920fefe29eb48a12b13d2e9c3d48;hb=7157dfd20efd2e1db47db1ac12e879eb51c67b92;hp=49faa50ec476d2202514cdbcbe0ad97c766edb2a;hpb=0c40653e5033e68c8d87955ea9f96879c8114b62;p=jalview.git diff --git a/src/jalview/commands/ChangeCaseCommand.java b/src/jalview/commands/ChangeCaseCommand.java index 49faa50..d34552d 100644 --- a/src/jalview/commands/ChangeCaseCommand.java +++ b/src/jalview/commands/ChangeCaseCommand.java @@ -1,6 +1,6 @@ - /* +/* * Jalview - A Sequence Alignment Editor and Viewer - * Copyright (C) 2006 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle + * Copyright (C) 2007 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -20,18 +20,19 @@ package jalview.commands; import jalview.datamodel.*; -public class ChangeCaseCommand implements CommandI +public class ChangeCaseCommand + implements CommandI { String description; public static int TO_LOWER = 0; public static int TO_UPPER = 1; public static int TOGGLE_CASE = 2; int caseChange = -1; - SequenceI [] seqs; - int [][] regions; + SequenceI[] seqs; + int[][] regions; public ChangeCaseCommand(String description, SequenceI[] seqs, - int [][] regions, + int[][] regions, int caseChange) { this.description = description; @@ -71,13 +72,17 @@ public class ChangeCaseCommand implements CommandI start = regions[r][0]; for (int s = 0; s < seqs.length; s++) { - sequence = seqs[s].getSequence(); + sequence = seqs[s].getSequenceAsString(); StringBuffer newSeq = new StringBuffer(); if (regions[r][1] > sequence.length()) + { end = sequence.length(); + } else + { end = regions[r][1]; + } if (start > 0) { @@ -86,11 +91,15 @@ public class ChangeCaseCommand implements CommandI if ( (caseChange == TO_UPPER && doCommand) || (caseChange == TO_LOWER && !doCommand)) + { newSeq.append(sequence.substring(start, end).toUpperCase()); + } else if ( (caseChange == TO_LOWER && doCommand) || (caseChange == TO_UPPER && !doCommand)) + { newSeq.append(sequence.substring(start, end).toLowerCase()); + } else //TOGGLE CASE { @@ -112,7 +121,9 @@ public class ChangeCaseCommand implements CommandI } if (end < sequence.length()) + { newSeq.append(sequence.substring(end)); + } seqs[s].setSequence(newSeq.toString()); }