/*
- * 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
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;
drawComponent(gg, av.startRes, av.endRes + 1);
g.drawImage(image, 0, 0, this);
}
-
/**
- * DOCUMENT ME!
+ * non-Thread safe repaint
*
- * @param horizontal DOCUMENT ME!
+ * @param horizontal repaint with horizontal shift in alignment
*/
public void fastPaint(int horizontal)
{
+
if ( (horizontal == 0)
|| gg == null
|| av.alignment.getAlignmentAnnotation() == null
repaint();
return;
}
-
gg.copyArea(0, 0, imgWidth, getHeight(), -horizontal * av.charWidth, 0);
int sr = av.startRes;
gg.translate( -transX, 0);
fastPaint = true;
-
repaint();
}
int lastSSX;
int iconOffset = 0;
boolean validRes = false;
-
+ boolean validEnd = false;
boolean[] graphGroupDrawn = new boolean[aa.length];
//\u03B2 \u03B1
&& (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,