/*
- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
- * Copyright (C) $$Year-Rel$$ The Jalview Authors
+ * Jalview - A Sequence Alignment Editor and Viewer (Version 2.9.0b2)
+ * Copyright (C) 2015 The Jalview Authors
*
* This file is part of Jalview.
*
* @param performEdit
*/
final public void appendEdit(Action command, SequenceI[] seqs,
- int position,
- int number, AlignmentI al, boolean performEdit)
+ int position, int number, AlignmentI al, boolean performEdit)
{
appendEdit(command, seqs, position, number, al, performEdit, null);
}
* @param views
*/
final public void appendEdit(Action command, SequenceI[] seqs,
- int position,
- int number, AlignmentI al, boolean performEdit, AlignmentI[] views)
+ int position, int number, AlignmentI al, boolean performEdit,
+ AlignmentI[] views)
{
Edit edit = new Edit(command, seqs, position, number,
al.getGapCharacter());
*/
@Override
final public void undoCommand(AlignmentI[] views)
- {
+ {
ListIterator<Edit> iterator = edits.listIterator(edits.size());
while (iterator.hasPrevious())
{
for (int s = 0; s < command.seqs.length; s++)
{
- command.seqs[s].insertCharAt(command.position,
- command.number, command.gapChar);
+ command.seqs[s].insertCharAt(command.position, command.number,
+ command.gapChar);
// System.out.println("pos: "+command.position+" number: "+command.number);
}
command,
i,
sequence.findPosition(command.position),
- sequence.findPosition(command.position
- + command.number), false);
+ sequence.findPosition(command.position + command.number),
+ false);
}
}
}
int copylen = Math.min(command.position,
annotations[a].annotations.length);
if (copylen > 0)
- {
+ {
System.arraycopy(annotations[a].annotations, 0, temp, 0,
copylen); // command.position);
}
if (command.editedFeatures != null
&& command.editedFeatures.containsKey(seq))
{
- sequence.setSequenceFeatures(command.editedFeatures
- .get(seq));
+ sequence.setSequenceFeatures(command.editedFeatures.get(seq));
}
return;
for (SequenceI seq : e.getSequences())
{
SequenceI ds = seq.getDatasetSequence();
- SequenceI preEdit = result.get(ds);
- if (preEdit == null)
+ // SequenceI preEdit = result.get(ds);
+ if (!result.containsKey(ds))
{
- preEdit = new Sequence("", seq.getSequenceAsString());
+ /*
+ * copy sequence including start/end (but don't use copy constructor
+ * as we don't need annotations)
+ */
+ SequenceI preEdit = new Sequence("", seq.getSequenceAsString(),
+ seq.getStart(), seq.getEnd());
preEdit.setDatasetSequence(ds);
result.put(ds, preEdit);
}
* Work backwards through the edit list, deriving the sequences before each
* was applied. The final result is the sequence set before any edits.
*/
- Iterator<Edit> edits = new ReverseListIterator<Edit>(getEdits());
- while (edits.hasNext())
+ Iterator<Edit> editList = new ReverseListIterator<Edit>(getEdits());
+ while (editList.hasNext())
{
- Edit oldEdit = edits.next();
+ Edit oldEdit = editList.next();
Action action = oldEdit.getAction();
int position = oldEdit.getPosition();
int number = oldEdit.getNumber();
SequenceI preEdit = result.get(ds);
if (preEdit == null)
{
- preEdit = new Sequence("", seq.getSequenceAsString());
+ preEdit = new Sequence("", seq.getSequenceAsString(),
+ seq.getStart(), seq.getEnd());
preEdit.setDatasetSequence(ds);
result.put(ds, preEdit);
}
if (action == Action.DELETE_GAP)
{
preEdit.setSequence(new String(StringUtils.insertCharAt(
- preEdit.getSequence(), position,
- number, gap)));
+ preEdit.getSequence(), position, number, gap)));
}
else if (action == Action.INSERT_GAP)
{