*/
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;
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();
*/
if (command.alIndex[i] < command.al.getHeight())
{
- List<SequenceI> sequences;
- synchronized (sequences = command.al.getSequences())
+ List<SequenceI> sequences = command.al.getSequences();
+ synchronized (sequences)
{
if (!(command.alIndex[i] < 0))
{
* 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();
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)
// old ds and edited ds are different, so
// create the new dataset sequence
SequenceI newds = new Sequence(oldds);
- newds.setSequence(fullseq.toUpperCase());
+ newds.setSequence(fullseq.toUpperCase(Locale.ROOT));
if (command.oldds == null)
{
// 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)
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<SequenceI, AlignmentAnnotation[]> deletedAnnotationRows;
+ Map<SequenceI, AlignmentAnnotation[]> deletedAnnotationRows;
- private Map<String, Annotation[]> deletedAnnotations;
+ Map<String, Annotation[]> deletedAnnotations;
/*
* features deleted by the cut (re-add on Undo)
* (including the original of any shortened features)
*/
- private Map<SequenceI, List<SequenceFeature>> deletedFeatures;
+ Map<SequenceI, List<SequenceFeature>> deletedFeatures;
/*
* shortened features added by the cut (delete on Undo)
*/
- private Map<SequenceI, List<SequenceFeature>> truncatedFeatures;
+ Map<SequenceI, List<SequenceFeature>> 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)
{
return gapChar;
}
+
+ public void setSystemGenerated(boolean b)
+ {
+ systemGenerated = b;
+ }
+
+ public boolean isSystemGenerated()
+ {
+ return systemGenerated;
+ }
}
/**