X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fcommands%2FEditCommand.java;h=d0790c866cd19c2705c6ce02f615d13ecc6e23d9;hb=7b9f93ca2c7f5e5d9347f00be309522f76e3e778;hp=3f2ace9839d63742ac4c2be8b743fbfda430fd88;hpb=aba075a0cfc100a4716c7fc58d3bf7c8f397ff86;p=jalview.git diff --git a/src/jalview/commands/EditCommand.java b/src/jalview/commands/EditCommand.java index 3f2ace9..d0790c8 100644 --- a/src/jalview/commands/EditCommand.java +++ b/src/jalview/commands/EditCommand.java @@ -24,6 +24,7 @@ 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 +527,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(); @@ -618,8 +619,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)) { @@ -763,9 +764,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(); @@ -1443,45 +1444,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) @@ -1555,6 +1562,16 @@ public class EditCommand implements CommandI { return gapChar; } + + public void setSystemGenerated(boolean b) + { + systemGenerated = b; + } + + public boolean isSystemGenerated() + { + return systemGenerated; + } } /**