- seq = (SequenceI[]) history[1];
- AlignmentAnnotation [] old = viewport.alignment.getAlignmentAnnotation();
- viewport.setAlignment( new Alignment(seq) );
- viewport.alignment.setGapCharacter( Preferences.gapSymbol );
+ // used by undo and redo
+ void restoreHistoryItem(HistoryItem hi)
+ {
+ if(hi.getType()== HistoryItem.SORT)
+ {
+ for(int i=0; i<hi.getSequences().size(); i++)
+ viewport.alignment.getSequences().setElementAt(hi.getSequences().elementAt(i), i);
+ }
+ else
+ {
+ for (int i = 0; i < hi.getSequences().size(); i++)
+ {
+ SequenceI restore = (SequenceI) hi.getSequences().elementAt(i);
+ if(restore.getLength()==0)
+ {
+ restore.setSequence(hi.getHidden().elementAt(i).toString());
+ viewport.alignment.getSequences().insertElementAt(
+ restore,
+ hi.getAlignIndex(i));
+ }
+ else
+ restore.setSequence(hi.getHidden().elementAt(i).toString());
+ }
+ if(hi.getType()==HistoryItem.PASTE)
+ {
+ for(int i=viewport.alignment.getHeight()-1;i>hi.getSequences().size()-1; i--)
+ viewport.alignment.deleteSequence(i);
+ }
+ }
+ viewport.firePropertyChange("alignment", null, viewport.getAlignment().getSequences());