X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=inline;f=src%2Fjalview%2Fcommands%2FEditCommand.java;h=30595bce2afcec658ce343e5ee7067bcd3310c03;hb=9d80cca5113c0411aa06559d4bd3f86454459ce7;hp=f80bd4ae5fc2ab131a1e30a77b1d6a437abf938c;hpb=6084ed0c6da51ac6569320a33b7f4aa0ec523c80;p=jalview.git diff --git a/src/jalview/commands/EditCommand.java b/src/jalview/commands/EditCommand.java index f80bd4a..30595bc 100644 --- a/src/jalview/commands/EditCommand.java +++ b/src/jalview/commands/EditCommand.java @@ -20,6 +20,8 @@ */ package jalview.commands; +import java.util.Locale; + import jalview.analysis.AlignSeq; import jalview.datamodel.AlignmentAnnotation; import jalview.datamodel.AlignmentI; @@ -619,8 +621,8 @@ public class EditCommand implements CommandI */ if (command.alIndex[i] < command.al.getHeight()) { - List sequences; - synchronized (sequences = command.al.getSequences()) + List sequences = command.al.getSequences(); + synchronized (sequences) { if (!(command.alIndex[i] < 0)) { @@ -789,7 +791,7 @@ public class EditCommand implements CommandI String nogapold = AlignSeq.extractGaps(Comparison.GapChars, new String(command.string[i])); - if (!nogaprep.toLowerCase().equals(nogapold.toLowerCase())) + if (!nogaprep.toLowerCase(Locale.ROOT).equals(nogapold.toLowerCase(Locale.ROOT))) { // we may already have dataset and limits stashed... if (newDSWasNeeded || newStartEndWasNeeded) @@ -838,7 +840,7 @@ public class EditCommand implements CommandI // old ds and edited ds are different, so // create the new dataset sequence SequenceI newds = new Sequence(oldds); - newds.setSequence(fullseq); + newds.setSequence(fullseq.toUpperCase(Locale.ROOT)); if (command.oldds == null) { @@ -891,7 +893,7 @@ public class EditCommand implements CommandI // new // start/end String nogapalseq = AlignSeq.extractGaps(Comparison.GapChars, - command.seqs[i].getSequenceAsString().toUpperCase()); + command.seqs[i].getSequenceAsString().toUpperCase(Locale.ROOT)); int newStart = command.seqs[i].getDatasetSequence() .getSequenceAsString().indexOf(nogapalseq); if (newStart == -1) @@ -1444,45 +1446,51 @@ public class EditCommand implements CommandI public class Edit { - private SequenceI[] oldds; + SequenceI[] oldds; /** * start and end of sequence prior to edit */ - private Range[] oldStartEnd; + Range[] oldStartEnd; - private boolean fullAlignmentHeight = false; + boolean fullAlignmentHeight = false; - private Map deletedAnnotationRows; + Map deletedAnnotationRows; - private Map deletedAnnotations; + Map deletedAnnotations; /* * features deleted by the cut (re-add on Undo) * (including the original of any shortened features) */ - private Map> deletedFeatures; + Map> deletedFeatures; /* * shortened features added by the cut (delete on Undo) */ - private Map> truncatedFeatures; + Map> truncatedFeatures; - private AlignmentI al; + AlignmentI al; - final private Action command; + final Action command; char[][] string; SequenceI[] seqs; - private int[] alIndex; + int[] alIndex; - private int position; + int position; - private int number; + int number; - private char gapChar; + char gapChar; + + /* + * flag that identifies edits inserted to balance + * user edits in a 'locked editing' region + */ + private boolean systemGenerated; public Edit(Action cmd, SequenceI[] sqs, int pos, int count, char gap) @@ -1556,6 +1564,16 @@ public class EditCommand implements CommandI { return gapChar; } + + public void setSystemGenerated(boolean b) + { + systemGenerated = b; + } + + public boolean isSystemGenerated() + { + return systemGenerated; + } } /**