X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fcommands%2FEditCommand.java;h=30595bce2afcec658ce343e5ee7067bcd3310c03;hb=41b0e9331ac71787c1280aa1d809f54c575fbf97;hp=385a33e520ae420a6c51f0a33c2cb72c1b376c4b;hpb=4c132b37c867a60959dae032addd78892d996345;p=jalview.git diff --git a/src/jalview/commands/EditCommand.java b/src/jalview/commands/EditCommand.java index 385a33e..30595bc 100644 --- a/src/jalview/commands/EditCommand.java +++ b/src/jalview/commands/EditCommand.java @@ -20,10 +20,13 @@ */ package jalview.commands; +import java.util.Locale; + import jalview.analysis.AlignSeq; import jalview.datamodel.AlignmentAnnotation; import jalview.datamodel.AlignmentI; import jalview.datamodel.Annotation; +import jalview.datamodel.ContiguousI; import jalview.datamodel.Range; import jalview.datamodel.Sequence; import jalview.datamodel.SequenceFeature; @@ -526,8 +529,8 @@ public class EditCommand implements CommandI command.string[i] = sequence.getSequence(command.position, command.position + command.number); SequenceI oldds = sequence.getDatasetSequence(); - Range cutPositions = sequence.findPositions(command.position + 1, - command.position + command.number); + ContiguousI cutPositions = sequence.findPositions( + command.position + 1, command.position + command.number); boolean cutIsInternal = cutPositions != null && sequence.getStart() != cutPositions .getBegin() && sequence.getEnd() != cutPositions.getEnd(); @@ -763,9 +766,9 @@ public class EditCommand implements CommandI * EditCommand.PASTE, sequences, 0, alignment.getWidth(), alignment) ); * */ - - Range beforeEditedPositions = command.seqs[i].findPositions(1, start); - Range afterEditedPositions = command.seqs[i] + ContiguousI beforeEditedPositions = command.seqs[i].findPositions(1, + start); + ContiguousI afterEditedPositions = command.seqs[i] .findPositions(end + 1, command.seqs[i].getLength()); oldstring = command.seqs[i].getSequenceAsString(); @@ -788,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) @@ -837,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) { @@ -890,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) @@ -1483,6 +1486,12 @@ public class EditCommand implements CommandI 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) { @@ -1555,6 +1564,16 @@ public class EditCommand implements CommandI { return gapChar; } + + public void setSystemGenerated(boolean b) + { + systemGenerated = b; + } + + public boolean isSystemGenerated() + { + return systemGenerated; + } } /**