Can read from zip file
[jalview.git] / src / MCview / AppletPDBCanvas.java
index 346ae1e..dc4cf0b 100755 (executable)
@@ -118,7 +118,7 @@ public class AppletPDBCanvas extends Panel implements MouseListener, MouseMotion
                     ((PDBChain) pdb.chains.elementAt(i)).sequence, "pep");\r
             as.calcScoreMatrix();\r
             as.traceAlignment();\r
-            PrintStream  ps = new PrintStream(System.out)\r
+            PrintStream ps = new PrintStream(System.out)\r
            {\r
               public void print(String x) {\r
                    mappingDetails.append(x);\r
@@ -363,7 +363,8 @@ public class AppletPDBCanvas extends Panel implements MouseListener, MouseMotion
         g.drawString("Error loading PDB data!!", 50, getSize().height/2);\r
         return;\r
       }\r
-      else if( !seqColoursReady )\r
+\r
+      if( !seqColoursReady )\r
       {\r
         g.setColor(Color.black);\r
         g.setFont(new Font("Verdana", Font.BOLD, 14));\r
@@ -417,7 +418,13 @@ public class AppletPDBCanvas extends Panel implements MouseListener, MouseMotion
       drawLabels(ig);\r
     }\r
 \r
-\r
+   void setColours(jalview.schemes.ColourSchemeI cs)\r
+   {\r
+     bysequence = false;\r
+     pdb.setColours(cs);\r
+     redrawneeded = true;\r
+     repaint();\r
+   }\r
     public void updateSeqColours()\r
     {\r
       if (pdbAction)\r
@@ -491,8 +498,8 @@ public class AppletPDBCanvas extends Panel implements MouseListener, MouseMotion
               tmp.startCol = seqcanvas.getSequenceRenderer().\r
                   getResidueBoxColour( sequence, index);\r
 \r
-          //    tmp.startCol = seqcanvas.getFeatureRenderer().\r
-         //         findFeatureColour(tmp.startCol, sequence, index);\r
+              tmp.startCol = seqcanvas.getFeatureRenderer().\r
+                  findFeatureColour(tmp.startCol, sequence, index);\r
             }\r
         }\r
 \r
@@ -502,8 +509,8 @@ public class AppletPDBCanvas extends Panel implements MouseListener, MouseMotion
         {\r
           tmp.endCol = seqcanvas.getSequenceRenderer().\r
               getResidueBoxColour( sequence, index);\r
-        //  tmp.endCol = seqcanvas.getFeatureRenderer().\r
-        //      findFeatureColour(tmp.endCol, sequence, index);\r
+          tmp.endCol = seqcanvas.getFeatureRenderer().\r
+              findFeatureColour(tmp.endCol, sequence, index);\r
         }\r
       }\r
     }\r
@@ -709,35 +716,24 @@ public class AppletPDBCanvas extends Panel implements MouseListener, MouseMotion
 \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
@@ -928,6 +924,8 @@ public class AppletPDBCanvas extends Panel implements MouseListener, MouseMotion
 \r
     public void highlightRes(int ii)\r
    {\r
+     if(!seqColoursReady)\r
+       return;\r
 \r
      if (highlightRes != null\r
          && highlightRes.contains((ii-1) + ""))\r