From 410dfa093c4150aeadc02710c2a70eb862e3b2d8 Mon Sep 17 00:00:00 2001 From: amwaterhouse Date: Thu, 25 Jan 2007 18:46:31 +0000 Subject: [PATCH] Annotations move when full alignment edited --- src/jalview/appletgui/AlignFrame.java | 4 ++-- src/jalview/appletgui/SeqPanel.java | 16 ++++++------- src/jalview/gui/AlignFrame.java | 8 +++---- src/jalview/gui/Jalview2XML.java | 40 ++++++++++++++++++++++++++++++++- src/jalview/gui/SeqPanel.java | 16 ++++++------- 5 files changed, 61 insertions(+), 23 deletions(-) diff --git a/src/jalview/appletgui/AlignFrame.java b/src/jalview/appletgui/AlignFrame.java index 4115999..36ee5da 100755 --- a/src/jalview/appletgui/AlignFrame.java +++ b/src/jalview/appletgui/AlignFrame.java @@ -1360,7 +1360,7 @@ public void itemStateChanged(ItemEvent evt) new RemoveGapColCommand("Remove Gapped Columns", seqs, start, end, - viewport.getGapCharacter()); + viewport.alignment); addHistoryItem(removeGapCols); @@ -1402,7 +1402,7 @@ public void itemStateChanged(ItemEvent evt) addHistoryItem(new RemoveGapsCommand("Remove Gaps", seqs, start, end, - viewport.getGapCharacter())); + viewport.alignment)); viewport.setStartRes(seq.findIndex(startRes)-1); diff --git a/src/jalview/appletgui/SeqPanel.java b/src/jalview/appletgui/SeqPanel.java index 89e2086..6b93206 100755 --- a/src/jalview/appletgui/SeqPanel.java +++ b/src/jalview/appletgui/SeqPanel.java @@ -956,7 +956,7 @@ public class SeqPanel editCommand.appendEdit(EditCommand.INSERT_GAP, groupSeqs, startres, startres-lastres, - av.getGapCharacter(), + av.alignment, true); } } @@ -974,7 +974,7 @@ public class SeqPanel editCommand.appendEdit(EditCommand.DELETE_GAP, groupSeqs, startres, lastres - startres, - av.getGapCharacter(), + av.alignment, true); } @@ -997,7 +997,7 @@ public class SeqPanel new SequenceI[] {seq}, lastres, startres-lastres, - av.getGapCharacter(), + av.alignment, true); } } @@ -1033,7 +1033,7 @@ public class SeqPanel new SequenceI[] {seq}, startres, max, - av.getGapCharacter(), + av.alignment, true); } } @@ -1073,11 +1073,11 @@ public class SeqPanel editCommand.appendEdit(EditCommand.DELETE_GAP, seq, - blankColumn, 1, av.getGapCharacter(), true); + blankColumn, 1, av.alignment, true); editCommand.appendEdit(EditCommand.INSERT_GAP, seq, - j, 1, av.getGapCharacter(), + j, 1, av.alignment, true); } @@ -1087,11 +1087,11 @@ public class SeqPanel editCommand.appendEdit(EditCommand.DELETE_GAP, seq, - j, 1, av.getGapCharacter(), true); + j, 1, av.alignment, true); editCommand.appendEdit(EditCommand.INSERT_GAP, seq, - fixedColumn, 1, av.getGapCharacter(), true); + fixedColumn, 1, av.alignment, true); } diff --git a/src/jalview/gui/AlignFrame.java b/src/jalview/gui/AlignFrame.java index b2fa937..7b1dfeb 100755 --- a/src/jalview/gui/AlignFrame.java +++ b/src/jalview/gui/AlignFrame.java @@ -1691,7 +1691,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener new RemoveGapColCommand("Remove Gapped Columns", seqs, start, end, - viewport.getGapCharacter()); + viewport.alignment); addHistoryItem(removeGapCols); @@ -1736,9 +1736,9 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener int startRes = seq.findPosition(viewport.startRes); addHistoryItem(new RemoveGapsCommand("Remove Gaps", - seqs, - start, end, - viewport.getGapCharacter())); + seqs, + start, end, + viewport.alignment)); viewport.setStartRes(seq.findIndex(startRes)-1); diff --git a/src/jalview/gui/Jalview2XML.java b/src/jalview/gui/Jalview2XML.java index 6652aea..0cac9c1 100755 --- a/src/jalview/gui/Jalview2XML.java +++ b/src/jalview/gui/Jalview2XML.java @@ -56,6 +56,8 @@ public class Jalview2XML */ Hashtable viewportsAdded; + Hashtable annotationIds = new Hashtable(); + String uniqueSetSuffix = ""; @@ -454,6 +456,13 @@ public class Jalview2XML { Annotation an = new Annotation(); + if(aa[i].annotationId!=null) + { + annotationIds.put(aa[i].annotationId, aa[i]); + } + + an.setId(aa[i].annotationId); + if (aa[i].label.equals("Quality") || aa[i].label.equals("Conservation") || aa[i].label.equals("Consensus")) @@ -957,6 +966,7 @@ public class Jalview2XML System.out.println("Successfully loaded archive file"); return af; } + ex.printStackTrace(); System.err.println("Exception whilst loading jalview XML file : " + ex + "\n"); @@ -1205,10 +1215,20 @@ public class Jalview2XML continue; } + if (an[i].getId() != null + && annotationIds.containsKey(an[i].getId())) + { + al.addAnnotation( + (jalview.datamodel.AlignmentAnnotation)annotationIds.get(an[i].getId()) + ); + + continue; + } + AnnotationElement[] ae = an[i].getAnnotationElement(); jalview.datamodel.Annotation[] anot = new jalview.datamodel.Annotation[al.getWidth()]; - for (int aa = 0; aa < ae.length; aa++) + for (int aa = 0; aa < ae.length && aa