Highlight from alignment
authoramwaterhouse <Andrew Waterhouse>
Wed, 16 Nov 2005 16:41:35 +0000 (16:41 +0000)
committeramwaterhouse <Andrew Waterhouse>
Wed, 16 Nov 2005 16:41:35 +0000 (16:41 +0000)
src/jalview/appletgui/CutAndPasteTransfer.java
src/jalview/appletgui/SeqCanvas.java
src/jalview/appletgui/SeqPanel.java
src/jalview/appletgui/SequenceRenderer.java
src/jalview/gui/SeqCanvas.java
src/jalview/gui/SeqPanel.java
src/jalview/gui/SequenceRenderer.java

index c366409..0df34f2 100755 (executable)
@@ -84,7 +84,6 @@ public class CutAndPasteTransfer extends Panel
           +warning);\r
 \r
       textarea.setCaretPosition(text.length());\r
-      return;\r
     }\r
 \r
     if(pdbImport)\r
@@ -106,13 +105,14 @@ public class CutAndPasteTransfer extends Panel
       }\r
     }\r
 \r
-    setVisible(false);\r
+    ((Frame)this.getParent()).setVisible(false);\r
   }\r
 \r
   protected void cancel_actionPerformed(ActionEvent e)\r
   {\r
-    setVisible(false);\r
+    ((Frame)this.getParent()).setVisible(false);\r
   }\r
+\r
   protected TextArea textarea = new TextArea();\r
   Button ok = new Button();\r
   Button cancel = new Button();\r
@@ -148,7 +148,7 @@ public class CutAndPasteTransfer extends Panel
   }\r
 \r
   void textarea_mousePressed(MouseEvent e) {\r
-      if (textarea.getText().equals("Paste your alignment file here")) {\r
+      if (textarea.getText().startsWith("Paste your")) {\r
           textarea.setText("");\r
       }\r
   }\r
index 33acb28..fc8bb5c 100755 (executable)
@@ -63,15 +63,15 @@ public class SeqCanvas
     return fr;\r
   }\r
 \r
-  MCview.AppletPDBCanvas pdbViewer;\r
+  MCview.AppletPDBCanvas pdbCanvas;\r
   public SequenceRenderer getSequenceRenderer()\r
   {\r
     return sr;\r
   }\r
 \r
-  public void setPDBViewer(MCview.AppletPDBCanvas pc)\r
+  public void setPDBCanvas(MCview.AppletPDBCanvas pc)\r
   {\r
-    pdbViewer = pc;\r
+    pdbCanvas = pc;\r
   }\r
 \r
 \r
@@ -275,9 +275,9 @@ public class SeqCanvas
 \r
     g.drawImage(img, 0, 0, this);\r
 \r
-    if (pdbViewer != null)\r
+    if (pdbCanvas != null)\r
     {\r
-      pdbViewer.updateSeqColours();\r
+      pdbCanvas.updateSeqColours();\r
     }\r
   }\r
 \r
index dec2b0a..7c524ad 100755 (executable)
@@ -290,6 +290,11 @@ public class SeqPanel
       }\r
     }\r
 \r
+    if(seqCanvas.pdbCanvas!=null && sequence==seqCanvas.pdbCanvas.sequence)\r
+    {\r
+      seqCanvas.pdbCanvas.highlightRes(sequence.findPosition(res));\r
+    }\r
+\r
     ap.alignFrame.statusBar.setText(text.toString());\r
 \r
     // use aa to see if the mouse pointer is on a\r
index d546634..b985cea 100755 (executable)
@@ -64,6 +64,7 @@ public class SequenceRenderer
 \r
   public Color findSequenceColour(SequenceI seq, int i)\r
   {\r
+    allGroups = av.alignment.findAllGroups(seq);\r
     drawBoxes(seq, i,i, 0, 0, 1,1);\r
     return resBoxColour;\r
   }\r
index f86441a..97b9f08 100755 (executable)
@@ -65,7 +65,7 @@ public class SeqCanvas extends JComponent
         setBackground(Color.white);\r
     }\r
 \r
-    MCview.PDBCanvas pdbViewer;\r
+    MCview.PDBCanvas pdbCanvas;\r
     public SequenceRenderer getSequenceRenderer()\r
     {\r
       return sr;\r
@@ -76,9 +76,9 @@ public class SeqCanvas extends JComponent
       return fr;\r
     }\r
 \r
-    public void setPDBViewer(MCview.PDBCanvas pc)\r
+    public void setPDBCanvas(MCview.PDBCanvas pc)\r
     {\r
-      pdbViewer = pc;\r
+      pdbCanvas = pc;\r
     }\r
 \r
     public AlignViewport getViewport()\r
@@ -284,14 +284,16 @@ public class SeqCanvas extends JComponent
         sr.renderGaps(av.renderGaps);\r
 \r
         if ((img != null) &&\r
-                (fastPaint || (getWidth() != g.getClipBounds().width) ||\r
-                (getHeight() != g.getClipBounds().height)))\r
+                (fastPaint && getVisibleRect() != g.getClipBounds()))\r
         {\r
             g.drawImage(img, 0, 0, this);\r
             fastPaint = false;\r
             return;\r
         }\r
 \r
+\r
+\r
+\r
         // this draws the whole of the alignment\r
         imgWidth = getWidth();\r
         imgHeight = getHeight();\r
@@ -304,7 +306,6 @@ public class SeqCanvas extends JComponent
             return;\r
         }\r
 \r
-\r
         img = new BufferedImage(imgWidth, imgHeight, BufferedImage.TYPE_INT_RGB);\r
         gg = (Graphics2D) img.getGraphics();\r
         gg.setFont(av.getFont());\r
@@ -327,9 +328,9 @@ public class SeqCanvas extends JComponent
 \r
         g.drawImage(img, 0, 0, this);\r
 \r
-        if (pdbViewer != null)\r
+        if (pdbCanvas != null)\r
         {\r
-          pdbViewer.updateSeqColours();\r
+          pdbCanvas.updateSeqColours();\r
         }\r
 \r
     }\r
index 491b667..3209960 100755 (executable)
@@ -357,6 +357,12 @@ public class SeqPanel extends JPanel
         return;\r
       }\r
 \r
+      if(seqCanvas.pdbCanvas!=null && sequence==seqCanvas.pdbCanvas.sequence)\r
+      {\r
+        seqCanvas.pdbCanvas.highlightRes(sequence.findPosition(res));\r
+      }\r
+\r
+\r
         StringBuffer text = new StringBuffer("Sequence " + (seq + 1) + " ID: " +\r
                 sequence.getName());\r
 \r
@@ -1003,7 +1009,7 @@ public class SeqPanel extends JPanel
 \r
                 try\r
                 {\r
-                    Thread.sleep(75);\r
+                    Thread.sleep(20);\r
                 }\r
                 catch (Exception ex)\r
                 {\r
index c431e7c..7070e5d 100755 (executable)
@@ -86,7 +86,7 @@ public class SequenceRenderer
 \r
       bi.getGraphics().setColor(initialCol);\r
       bi.getGraphics().fillRect(0, 0, 1, 1);\r
-      allGroups = null;\r
+      allGroups = av.alignment.findAllGroups(seq);\r
       graphics = bi.getGraphics();\r
 \r
       drawBoxes(seq, i,i, 0, 0, 1,1);\r
@@ -154,72 +154,59 @@ public class SequenceRenderer
     public void drawBoxes(SequenceI seq, int start, int end, int x1, int y1,\r
         int width, int height)\r
     {\r
-        int i = start;\r
-        int length = seq.getLength();\r
+      int i = start;\r
+      int length = seq.getLength();\r
 \r
-        int curStart = -1;\r
-        int curWidth = width;\r
+      int curStart = -1;\r
+      int curWidth = width;\r
 \r
-        Color tempColour = null;\r
+      Color tempColour = null;\r
 \r
-        while (i <= end)\r
-        {\r
-          resBoxColour = Color.white;\r
+      while (i <= end)\r
+      {\r
+        resBoxColour = Color.white;\r
 \r
-          if (i < length)\r
+        if (i < length)\r
+        {\r
+          if (inCurrentSequenceGroup(i))\r
           {\r
-            if (inCurrentSequenceGroup(i))\r
+            if (currentSequenceGroup.getDisplayBoxes())\r
             {\r
-              if (currentSequenceGroup.getDisplayBoxes())\r
-              {\r
-                getBoxColour(currentSequenceGroup.cs, seq, i);\r
-              }\r
+              getBoxColour(currentSequenceGroup.cs, seq, i);\r
             }\r
-            else if (av.getShowBoxes())\r
-            {\r
-              getBoxColour(av.getGlobalColourScheme(), seq, i);\r
-            }\r
-\r
+          }\r
+          else if (av.getShowBoxes())\r
+          {\r
+            getBoxColour(av.getGlobalColourScheme(), seq, i);\r
           }\r
 \r
-            if (resBoxColour != tempColour)\r
-            {\r
-                if (tempColour != null)\r
-                {\r
-                  int xxx = x1 + (int) (av.charWidth * (curStart - start));\r
-                  if (width != av.charWidth)\r
-                  {\r
-                    xxx = x1 + (int) (av.charWidth * (curStart - start)) / 3;\r
-                  }\r
-\r
-\r
-                    graphics.fillRect(xxx, y1,\r
-                        curWidth, height);\r
-                }\r
+        }\r
 \r
-                graphics.setColor(resBoxColour);\r
+          if (resBoxColour != tempColour)\r
+          {\r
+              if (tempColour != null)\r
+              {\r
+                  graphics.fillRect(x1 + (width * (curStart - start)), y1,\r
+                      curWidth, height);\r
+              }\r
 \r
-                curStart = i;\r
-                curWidth = width;\r
-                tempColour = resBoxColour;\r
-            }\r
-            else\r
-            {\r
-                curWidth += width;\r
-            }\r
+              graphics.setColor(resBoxColour);\r
 \r
-            i++;\r
-        }\r
+              curStart = i;\r
+              curWidth = width;\r
+              tempColour = resBoxColour;\r
+          }\r
+          else\r
+          {\r
+              curWidth += width;\r
+          }\r
 \r
-        int xxx = x1 + (int) (av.charWidth * (curStart - start));\r
-        if (width != av.charWidth)\r
-        {\r
-          xxx = x1 + (int) (av.charWidth * (curStart - start)) / 3;\r
-        }\r
+          i++;\r
+      }\r
 \r
+      graphics.fillRect(x1 + (width * (curStart - start)), y1, curWidth,\r
+          height);\r
 \r
-        graphics.fillRect(xxx, y1, curWidth,\r
-            height);\r
     }\r
 \r
     /**\r
@@ -294,14 +281,9 @@ public class SequenceRenderer
             }\r
 \r
             charOffset = (width - fm.charWidth(s)) / 2;\r
+            graphics.drawString(String.valueOf(s),\r
+                charOffset + x1 + (int)(width * (i - start)), (y1 + height) - pady);\r
 \r
-            int xxx = charOffset + x1 + (int)(av.charWidth * (i - start));\r
-            if(width != av.charWidth)\r
-            {\r
-              xxx = charOffset + x1 + (int)(av.charWidth * (i - start))/3;\r
-            }\r
-\r
-            graphics.drawString(String.valueOf(s),xxx, (y1 + height) - pady);\r
         }\r
     }\r
 \r