JAL-2629 remove gap padding, and now has option to remove annotations
[jalview.git] / src / jalview / io / FileLoader.java
index 9d5fd93..b861c07 100755 (executable)
@@ -29,6 +29,7 @@ import jalview.bin.Jalview;
 import jalview.datamodel.AlignmentI;
 import jalview.datamodel.HiddenColumns;
 import jalview.datamodel.PDBEntry;
+import jalview.datamodel.SequenceGroup;
 import jalview.datamodel.SequenceI;
 import jalview.gui.AlignFrame;
 import jalview.gui.AlignViewport;
@@ -392,6 +393,43 @@ public class FileLoader implements Runnable
             }
             // append to existing alignment
             viewport.addAlignment(al, title);
+            if (source instanceof HMMFile)
+            {
+              AlignmentI alignment = viewport.getAlignment();
+              SequenceI seq = alignment
+                      .getSequenceAt(alignment.getAbsoluteHeight() - 1);
+              alignment.deleteSequence(alignment.getAbsoluteHeight() - 1);
+              SequenceGroup sg = viewport.getSelectionGroup();
+              if (sg != null)
+              {
+                seq.insertCharAt(0, sg.getStartRes(), '-');
+                seq.insertCharAt(sg.getEndRes() + 1,
+                        alignment.getWidth() - sg.getEndRes(), '-');
+                SequenceI topSeq = sg.getSequencesInOrder(alignment)[0];
+                int topIndex = alignment.findIndex(topSeq);
+                alignment.insertSequenceAt(topIndex, seq);
+                sg.setSeqrep(seq);
+                viewport.getSelectionGroup().addSequence(seq, false);
+              }
+              else
+              {
+                 for (int i = 0; i < alignment.getAbsoluteHeight(); i++)
+                  {
+                    if (!alignment.getSequenceAt(i).isHMMConsensusSequence())
+                    {
+                      alignment.getSequences().add(i, seq);
+                      break;
+                    }
+                }
+              }
+              viewport.setAlignment(alignment);
+              viewport.initInformation();
+              viewport.updateInformation(viewport.getAlignPanel());
+              viewport.getAlignPanel().adjustAnnotationHeight();
+              viewport.updateSequenceIdColours();
+              viewport.getAlignPanel().paintAlignment(true);
+              viewport.alignmentChanged(viewport.getAlignPanel());
+            }
           }
           else
           {