Hidden representatives moved from sequence to viewport
[jalview.git] / src / jalview / gui / Jalview2XML.java
index 4bd951c..6652aea 100755 (executable)
@@ -21,8 +21,6 @@ package jalview.gui;
 
 import jalview.schemes.*;
 
-import jalview.gui.*;
-
 import java.io.*;
 
 import java.net.*;
@@ -232,7 +230,7 @@ public class Jalview2XML
               vamsasSeq = new Sequence();
               vamsasSeq.setId(id + "");
               vamsasSeq.setName(jds.getName());
-              vamsasSeq.setSequence(jds.getSequence());
+              vamsasSeq.setSequence(jds.getSequenceAsString());
               vamsasSeq.setDescription(jds.getDescription());
 
               if (jds.getDatasetSequence().getDBRef() != null)
@@ -265,16 +263,20 @@ public class Jalview2XML
             {
               jseq.setHidden(av.alignment.getHiddenSequences().isHidden(jds));
 
-              if(jal.getSequenceAt(i).getHiddenSequences()!=null)
+              if(av.hiddenRepSequences!=null
+              && av.hiddenRepSequences.containsKey(jal.getSequenceAt(i)))
               {
-                jalview.datamodel.SequenceI [] reps =
-                    jal.getSequenceAt(i).getHiddenSequences().getSequencesInOrder(jal);
+                jalview.datamodel.SequenceI[] reps =
+                    ( (jalview.datamodel.SequenceGroup)
+                     av.hiddenRepSequences.get(
+                         jal.getSequenceAt(i))).getSequencesInOrder(jal);
 
                 for(int h=0; h<reps.length; h++)
                 {
-                  jseq.addHiddenSequences(
-                      jal.findIndex(reps[h])
-                      );
+                  if (reps[h] != jal.getSequenceAt(i))
+                    jseq.addHiddenSequences(
+                        jal.findIndex(reps[h])
+                        );
                 }
               }
             }
@@ -576,7 +578,7 @@ public class Jalview2XML
                 groups[i].setTextCol2(sg.textColour2.getRGB());
                 groups[i].setTextColThreshold(sg.thresholdTextColour);
 
-                for (int s = 0; s < sg.getSize(false); s++)
+                for (int s = 0; s < sg.getSize(); s++)
                 {
                     jalview.datamodel.Sequence seq =
                         (jalview.datamodel.Sequence) sg.getSequenceAt(s);
@@ -1303,7 +1305,7 @@ public class Jalview2XML
                 if (groups[i].getConsThreshold() != 0)
                 {
                     jalview.analysis.Conservation c = new jalview.analysis.Conservation("All",
-                            ResidueProperties.propHash, 3, sg.getSequences(false), 0,
+                            ResidueProperties.propHash, 3, sg.getSequences(null), 0,
                             sg.getWidth() - 1);
                     c.calculate();
                     c.verdict(false, 25);
@@ -1364,12 +1366,17 @@ public class Jalview2XML
         {
           for(int s=0; s<JSEQ.length; s++)
           {
+            jalview.datamodel.SequenceGroup hidden =
+                new jalview.datamodel.SequenceGroup();
+
             for(int r=0; r<JSEQ[s].getHiddenSequencesCount(); r++)
             {
-              al.getSequenceAt(s).addHiddenSequence(
-                  al.getSequenceAt( JSEQ[s].getHiddenSequences(r)  )
+              hidden.addSequence(
+                  al.getSequenceAt(JSEQ[s].getHiddenSequences(r))
+                  , false
                   );
             }
+            af.viewport.hideRepSequences(al.getSequenceAt(s), hidden);
           }
 
           jalview.datamodel.SequenceI [] hseqs = new