FeatureRenderer takes alignmentPanel
[jalview.git] / src / jalview / gui / AppJMol.java
index bb14d77..da94e4c 100644 (file)
@@ -124,8 +124,10 @@ public synchronized void addSequence(SequenceI [] seq)
       {
         StructureSelectionManager.getStructureSelectionManager()
             .setMapping(seq, alreadyMapped, AppletFormatAdapter.FILE);
-        ap.seqPanel.seqCanvas.fr.featuresAdded();
-        ap.paintAlignment(true);
+        if (ap.seqPanel.seqCanvas.fr!=null) {
+          ap.seqPanel.seqCanvas.fr.featuresAdded();
+          ap.paintAlignment(true);
+        }
         return;
       }
     }
@@ -193,6 +195,8 @@ public synchronized void addSequence(SequenceI [] seq)
     jmolpopup = JmolPopup.newJmolPopup(viewer);
 
     viewer.evalStringQuiet(command);
+
+    colourBySequence = true;
   }
 
 
@@ -587,7 +591,7 @@ public synchronized void addSequence(SequenceI [] seq)
 //End StructureListener
 ////////////////////////////
 
-  FeatureRenderer fr;
+  FeatureRenderer fr=null;
   public void colourBySequence(AlignmentPanel ap)
   {
     if(!colourBySequence)
@@ -602,12 +606,13 @@ public synchronized void addSequence(SequenceI [] seq)
     SequenceRenderer sr = ap.seqPanel.seqCanvas.getSequenceRenderer();
 
     boolean showFeatures = false;
+
     if (ap.av.showSequenceFeatures)
     {
       showFeatures = true;
       if (fr == null)
       {
-        fr = new jalview.gui.FeatureRenderer(ap.av);
+        fr = new jalview.gui.FeatureRenderer(ap);
       }
 
       fr.transferSettings(ap.seqPanel.seqCanvas.getFeatureRenderer());
@@ -620,7 +625,8 @@ public synchronized void addSequence(SequenceI [] seq)
     {
       for (int m = 0; m < mapping.length; m++)
       {
-        if (mapping[m].getSequence() == sequence[s])
+        if (mapping[m].getSequence() == sequence[s]
+            && ap.av.alignment.findIndex(sequence[s])>-1)
         {
           for (int r = 0; r < sequence[s].getLength(); r++)
           {
@@ -729,7 +735,6 @@ public synchronized void addSequence(SequenceI [] seq)
       ssm = StructureSelectionManager.getStructureSelectionManager();
       MCview.PDBfile pdbFile = ssm.setMapping(sequence, pdbentry.getFile(), AppletFormatAdapter.FILE);
       ssm.addStructureViewerListener(this);
-
       Vector chains = new Vector();
       for(int i=0; i<pdbFile.chains.size(); i++)
       {
@@ -746,6 +751,8 @@ public synchronized void addSequence(SequenceI [] seq)
 
         colourBySequence(ap);
       }
+      if (fr!=null)
+        fr.featuresAdded();
 
       loadingFromArchive = false;
     }
@@ -810,7 +817,10 @@ public synchronized void addSequence(SequenceI [] seq)
 
     if (!atomsPicked.contains(picked))
     {
+      if(chainId!=null)
       viewer.evalString("select "+picked+";label %n %r:%c");
+    else
+      viewer.evalString("select "+picked+";label %n %r");
       atomsPicked.addElement(picked);
     }
     else