propagate SearchResult object use to MCView's highlighted residue renderer.
[jalview.git] / src / MCview / PDBCanvas.java
index 17db1a0..80b65ae 100755 (executable)
@@ -72,6 +72,7 @@ public class PDBCanvas extends JPanel implements MouseListener, MouseMotionListe
     PDBChain mainchain;\r
     Vector highlightRes;\r
     boolean pdbAction = false;\r
+    boolean seqColoursReady = false;\r
 \r
     public PDBCanvas(jalview.gui.SeqCanvas seqcanvas, Sequence seq)\r
     {\r
@@ -198,6 +199,7 @@ public class PDBCanvas extends JPanel implements MouseListener, MouseMotionListe
     Vector visiblebonds;\r
     void setupBonds()\r
     {\r
+      seqColoursReady = false;\r
       // Sort the bonds by z coord\r
       visiblebonds = new Vector();\r
 \r
@@ -215,6 +217,7 @@ public class PDBCanvas extends JPanel implements MouseListener, MouseMotionListe
       }\r
 \r
       updateSeqColours();\r
+      seqColoursReady = true;\r
       redrawneeded = true;\r
       repaint();\r
     }\r
@@ -369,7 +372,7 @@ public class PDBCanvas extends JPanel implements MouseListener, MouseMotionListe
     {\r
       super.paintComponent(g);\r
 \r
-      if(visiblebonds==null)\r
+      if(!seqColoursReady)\r
       {\r
         g.setColor(Color.black);\r
         g.setFont(new Font("Verdana", Font.BOLD, 14));\r
@@ -663,7 +666,7 @@ public class PDBCanvas extends JPanel implements MouseListener, MouseMotionListe
                 if (highlightRes == null)\r
                   highlightRes = new Vector();\r
 \r
-                if (highlightRes.contains(fatom.alignmentMapping+"" + ""))\r
+                if (highlightRes.contains(fatom.alignmentMapping+""))\r
                   highlightRes.remove(fatom.alignmentMapping + "");\r
                 else\r
                   highlightRes.add(fatom.alignmentMapping + "");\r
@@ -715,35 +718,24 @@ public class PDBCanvas extends JPanel implements MouseListener, MouseMotionListe
 \r
     void highlightSeqcanvas(int pos)\r
     {\r
-      int index = seqcanvas.getViewport().getAlignment().findIndex(sequence);\r
-\r
-      int size = pos==-1?0:3;\r
-\r
-      if(highlightRes!=null)\r
-        size += highlightRes.size()*3;\r
-\r
-      int [] array = new int[size];\r
-      int i=0;\r
+      SearchResults searchResults = new SearchResults();\r
       if(highlightRes!=null)\r
       {\r
-        for (i = 0; i < highlightRes.size(); i++)\r
+        for (int i = 0; i < highlightRes.size(); i++)\r
         {\r
           int a = Integer.parseInt(highlightRes.elementAt(\r
               i).toString())+1;\r
-          array[i * 3] = index;\r
-          array[ (i * 3) + 1] = a;\r
-          array[ (i * 3) + 2] = a;\r
+\r
+          searchResults.addResult(sequence, a, a);\r
         }\r
       }\r
 \r
       if(pos!=-1)\r
       {\r
-        array[i * 3] = index;\r
-        array[i * 3 + 1] = pos+1;\r
-        array[i * 3 + 2] = pos+1;\r
+        searchResults.addResult(sequence, pos+1, pos+1);\r
       }\r
 \r
-      seqcanvas.highlightSearchResults(array);\r
+      seqcanvas.highlightSearchResults(searchResults);\r
     }\r
 \r
 \r
@@ -929,6 +921,8 @@ public class PDBCanvas extends JPanel implements MouseListener, MouseMotionListe
    Bond highlightBond1, highlightBond2;\r
    public void highlightRes(int ii)\r
   {\r
+    if( !seqColoursReady )\r
+      return;\r
 \r
     if (highlightRes != null\r
         && highlightRes.contains((ii-1) + ""))\r