/*
- * 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
*/
-
package jalview.appletgui;
import java.util.*;
static String COLOUR = "Colour";
static Color HELIX_COLOUR = Color.red.darker();
static Color SHEET_COLOUR = Color.green.darker().darker();
-
+
Image image;
Graphics gg;
FontMetrics fm;
int imgWidth = 0;
boolean fastPaint = false;
-
public static int GRAPH_HEIGHT = 40;
boolean MAC = false;
public AnnotationPanel(AlignmentPanel ap)
{
MAC = new jalview.util.Platform().isAMac();
-
this.ap = ap;
av = ap.av;
setLayout(null);
int lastSSX;
int iconOffset = av.charHeight / 2;
boolean validRes = false;
-
+ boolean validEnd = false;
boolean[] graphGroupDrawn = new boolean[aa.length];
//\u03B2 \u03B1
if (av.validCharWidth && validRes &&
(row.annotations[column].displayCharacter!=null && 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);
if (column >= row.annotations.length)
{
column = row.annotations.length - 1;
+ validEnd = false;
+ } else {
+ validEnd = true;
}
// x ++;
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,