added d martin to authors and fixed faq/discuss message
[jalview.git] / src / jalview / gui / AnnotationPanel.java
index 676fecf..410c84c 100755 (executable)
@@ -1,17 +1,17 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer
- * Copyright (C) 2007 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- *
+ * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
+ * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
+ * 
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License
  * as published by the Free Software Foundation; either version 2
  * of the License, or (at your option) any later version.
- *
+ * 
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
- *
+ * 
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
@@ -42,7 +42,6 @@ public class AnnotationPanel
   final String COLOUR = "Colour";
   final Color HELIX_COLOUR = Color.red.darker();
   final Color SHEET_COLOUR = Color.green.darker().darker();
-
   /** DOCUMENT ME!! */
   AlignViewport av;
   AlignmentPanel ap;
@@ -728,7 +727,7 @@ public class AnnotationPanel
     int lastSSX;
     int iconOffset = 0;
     boolean validRes = false;
-
+    boolean validEnd = false;
     boolean[] graphGroupDrawn = new boolean[aa.length];
 
     //\u03B2 \u03B1
@@ -862,10 +861,13 @@ public class AnnotationPanel
             && (row.annotations[column].displayCharacter.length() > 0))
         {
 
-          int charOffset = (av.charWidth -
-                            fm.charWidth(row.annotations[column].
-                                         displayCharacter.charAt(
-                                             0))) / 2;
+          int charOffset = (av.getCentreColumnLabels()) ? ((av.charWidth -
+                            fm.charsWidth(row.annotations[column].
+                                         displayCharacter.toCharArray(),0,
+                                         row.annotations[column].
+                                         displayCharacter.length())) / 2)
+                                         : (av.charWidth - fm.charWidth(row.annotations[column].
+                                                 displayCharacter.charAt(0))) / 2;
 
           if (row.annotations[column].colour == null)
             g.setColor(Color.black);
@@ -978,6 +980,9 @@ public class AnnotationPanel
       if (column >= row.annotations.length)
       {
         column = row.annotations.length - 1;
+        validEnd = false;
+      } else {
+        validEnd = true;
       }
 
       //  x ++;
@@ -1025,7 +1030,7 @@ public class AnnotationPanel
           case 'E':
             g.setColor(SHEET_COLOUR);
 
-            if (row.annotations[endRes] == null
+            if (!validEnd || row.annotations[endRes] == null
                 || row.annotations[endRes].secondaryStructure != 'E')
             {
               g.fillRect(lastSSX, y + 4 + iconOffset,