Merge branch 'develop' into spike/JAL-1950_hmmer3client
authorJim Procter <jprocter@issues.jalview.org>
Wed, 29 Jun 2016 06:14:49 +0000 (07:14 +0100)
committerJim Procter <jprocter@issues.jalview.org>
Wed, 29 Jun 2016 06:14:49 +0000 (07:14 +0100)
1  2 
src/jalview/gui/AlignViewport.java

@@@ -276,11 -276,9 +276,11 @@@ public class AlignViewport extends Alig
  
      setFont(new Font(fontName, style, Integer.parseInt(fontSize)), true);
  
 -    alignment
 -            .setGapCharacter(Cache.getDefault("GAP_SYMBOL", "-").charAt(0));
 -
 +    if (Cache.getDefault("NORMALISE_GAPS", true))
 +    {
 +      alignment.setGapCharacter(Cache.getDefault("GAP_SYMBOL", "-").charAt(
 +              0));
 +    }
      // We must set conservation and consensus before setting colour,
      // as Blosum and Clustal require this to be done
      if (hconsensus == null && !isDataset)
      List<SequenceI[]> seqvectors = new ArrayList<SequenceI[]>();
      for (PDBEntry pdb : pdbEntries)
      {
-       List<SequenceI> seqs = new ArrayList<SequenceI>();
+       List<SequenceI> choosenSeqs = new ArrayList<SequenceI>();
        for (SequenceI sq : alignment.getSequences())
        {
-         Vector<PDBEntry> pdbs = sq.getDatasetSequence().getAllPDBEntries();
-         if (pdbs == null)
+         Vector<PDBEntry> pdbRefEntries = sq.getDatasetSequence().getAllPDBEntries();
+         if (pdbRefEntries == null)
          {
            continue;
          }
-         for (PDBEntry p1 : pdbs)
+         for (PDBEntry pdbRefEntry : pdbRefEntries)
          {
-           if (p1.getId().equals(pdb.getId()))
+           if (pdbRefEntry.getId().equals(pdb.getId()))
            {
-             if (!seqs.contains(sq))
+             if (pdbRefEntry.getChainCode() != null
+                     && pdb.getChainCode() != null)
              {
-               seqs.add(sq);
-               continue;
+               if (pdbRefEntry.getChainCode().equalsIgnoreCase(
+                       pdb.getChainCode())
+                       && !choosenSeqs.contains(sq))
+               {
+                 choosenSeqs.add(sq);
+                 continue;
+               }
              }
+             else
+             {
+               if (!choosenSeqs.contains(sq))
+               {
+                 choosenSeqs.add(sq);
+                 continue;
+               }
+             }
            }
          }
        }
-       seqvectors.add(seqs.toArray(new SequenceI[seqs.size()]));
+       seqvectors.add(choosenSeqs.toArray(new SequenceI[choosenSeqs.size()]));
      }
      return seqvectors.toArray(new SequenceI[seqvectors.size()][]);
    }
     * 
     * @param featureSettings
     */
+   @Override
    public void applyFeaturesStyle(FeatureSettingsModelI featureSettings)
    {
      if (featureSettings == null)