colours in viewport
[jalview.git] / src / jalview / gui / AlignmentPanel.java
index bd87bb2..0012ec4 100755 (executable)
@@ -27,10 +27,10 @@ import jalview.schemes.*;
 import java.awt.*;\r
 import java.awt.event.*;\r
 import java.awt.print.*;\r
-\r
 import java.io.*;\r
-\r
 import javax.swing.*;\r
+import java.beans.*;\r
+\r
 \r
 \r
 /**\r
@@ -96,11 +96,39 @@ public class AlignmentPanel extends GAlignmentPanel
     hscroll.addAdjustmentListener(this);\r
     vscroll.addAdjustmentListener(this);\r
 \r
+    final AlignmentPanel ap = this;\r
+    av.addPropertyChangeListener(new PropertyChangeListener()\r
+    {\r
+      public void propertyChange(PropertyChangeEvent evt)\r
+      {\r
+        if (evt.getPropertyName().equals("alignment"))\r
+        {\r
+          PaintRefresher.Refresh(ap,\r
+                                 av.getSequenceSetId(),\r
+                                 true,\r
+                                 true);\r
+          alignmentChanged();\r
+        }\r
+      }\r
+      });\r
 \r
     adjustAnnotationHeight();\r
 \r
   }\r
 \r
+  public void alignmentChanged()\r
+  {\r
+    av.alignmentChanged(this);\r
+\r
+    if (overviewPanel != null)\r
+      overviewPanel.updateOverviewImage();\r
+\r
+    alignFrame.updateEditMenuBar();\r
+\r
+    repaint();\r
+  }\r
+\r
+\r
 \r
   /**\r
    * DOCUMENT ME!\r
@@ -285,7 +313,6 @@ public class AlignmentPanel extends GAlignmentPanel
         annotationSpaceFillerHolder.getWidth(),\r
         height));\r
 \r
-    annotationPanel.repaint();\r
     repaint();\r
   }\r
 \r
@@ -687,18 +714,19 @@ public class AlignmentPanel extends GAlignmentPanel
     pg.setFont(new Font(av.getFont().getName(),\r
                         Font.ITALIC,\r
                         av.getFont().getSize()));\r
+    SequenceI seq;\r
     for (int i = startSeq; i < endSeq; i++)\r
     {\r
+      seq = av.getAlignment().getSequenceAt(i);\r
       if ( (av.getSelectionGroup() != null) &&\r
-          av.getSelectionGroup().getSequences(false).contains(\r
-              av.getAlignment().getSequenceAt(i)))\r
+          av.getSelectionGroup().getSequences(false).contains(seq))\r
       {\r
         currentColor = Color.gray;\r
         currentTextColor = Color.black;\r
       }\r
       else\r
       {\r
-        currentColor = av.getAlignment().getSequenceAt(i).getColor();\r
+        currentColor = av.getSequenceColour(seq);\r
         currentTextColor = Color.black;\r
       }\r
 \r
@@ -708,10 +736,8 @@ public class AlignmentPanel extends GAlignmentPanel
 \r
       pg.setColor(currentTextColor);\r
 \r
-      String string = av.getAlignment().getSequenceAt(i).getDisplayId\r
-          ( av.getShowJVSuffix());\r
-\r
-      pg.drawString(string, 0,\r
+      pg.drawString(seq.getDisplayId( av.getShowJVSuffix()),\r
+                    0,\r
                     ( ( (i - startSeq) * av.charHeight) + av.getCharHeight()) -\r
                     (av.getCharHeight() / 5));\r
     }\r
@@ -873,6 +899,9 @@ public class AlignmentPanel extends GAlignmentPanel
       height += annotationPanel.adjustPanelHeight() + 3;\r
     }\r
 \r
+    try\r
+    {\r
+\r
     jalview.util.ImageMaker im;\r
     if(type==jalview.util.ImageMaker.PNG)\r
       im  = new jalview.util.ImageMaker(this,\r
@@ -885,8 +914,6 @@ public class AlignmentPanel extends GAlignmentPanel
                                        "Create EPS file from alignment",\r
                                         width, height, file, alignFrame.getTitle() );\r
 \r
-    try\r
-    {\r
       if (av.getWrapAlignment())\r
       {\r
         if(im.getGraphics()!=null)\r