X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FSeqCanvas.java;h=fb5367fcafc3ecbad1d0b1320d663adb5dec9150;hb=797df64fa2a0a30773d0f48f5494d4155e5a8be3;hp=a7ba0359fa3afba1e6c30c05178c61ce7941a598;hpb=2de8acfae59aced665e4c37ad0f7dcc2ed68818e;p=jalview.git diff --git a/src/jalview/gui/SeqCanvas.java b/src/jalview/gui/SeqCanvas.java index a7ba035..fb5367f 100755 --- a/src/jalview/gui/SeqCanvas.java +++ b/src/jalview/gui/SeqCanvas.java @@ -1,20 +1,19 @@ /* - * Jalview - A Sequence Alignment Editor and Viewer (Development Version 2.4.1) - * Copyright (C) 2009 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle + * Jalview - A Sequence Alignment Editor and Viewer (Version 2.7) + * Copyright (C) 2011 J Procter, AM Waterhouse, J Engelhardt, LM Lui, 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 file is part of Jalview. * - * 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. + * Jalview 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 3 of the License, or (at your option) any later version. * - * 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 + * Jalview 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 Jalview. If not, see . */ package jalview.gui; @@ -62,7 +61,7 @@ public class SeqCanvas extends JComponent * Creates a new SeqCanvas object. * * @param av - * DOCUMENT ME! + * DOCUMENT ME! */ public SeqCanvas(AlignmentPanel ap) { @@ -88,13 +87,13 @@ public class SeqCanvas extends JComponent * DOCUMENT ME! * * @param g - * DOCUMENT ME! + * DOCUMENT ME! * @param startx - * DOCUMENT ME! + * DOCUMENT ME! * @param endx - * DOCUMENT ME! + * DOCUMENT ME! * @param ypos - * DOCUMENT ME! + * DOCUMENT ME! */ void drawNorthScale(Graphics g, int startx, int endx, int ypos) { @@ -125,13 +124,13 @@ public class SeqCanvas extends JComponent * DOCUMENT ME! * * @param g - * DOCUMENT ME! + * DOCUMENT ME! * @param startx - * DOCUMENT ME! + * DOCUMENT ME! * @param endx - * DOCUMENT ME! + * DOCUMENT ME! * @param ypos - * DOCUMENT ME! + * DOCUMENT ME! */ void drawWestScale(Graphics g, int startx, int endx, int ypos) { @@ -185,13 +184,13 @@ public class SeqCanvas extends JComponent * DOCUMENT ME! * * @param g - * DOCUMENT ME! + * DOCUMENT ME! * @param startx - * DOCUMENT ME! + * DOCUMENT ME! * @param endx - * DOCUMENT ME! + * DOCUMENT ME! * @param ypos - * DOCUMENT ME! + * DOCUMENT ME! */ void drawEastScale(Graphics g, int startx, int endx, int ypos) { @@ -239,9 +238,9 @@ public class SeqCanvas extends JComponent * slider adjustment * * @param horizontal - * shift along + * shift along * @param vertical - * shift up or down in repaint + * shift up or down in repaint */ public void fastPaint(int horizontal, int vertical) { @@ -322,7 +321,7 @@ public class SeqCanvas extends JComponent public void paintComponent(Graphics g) { BufferedImage lcimg = img; // take reference since other threads may null - // img and call later. + // img and call later. super.paintComponent(g); if (lcimg != null @@ -392,7 +391,7 @@ public class SeqCanvas extends JComponent * DOCUMENT ME! * * @param cwidth - * DOCUMENT ME! + * DOCUMENT ME! * * @return DOCUMENT ME! */ @@ -446,13 +445,13 @@ public class SeqCanvas extends JComponent * DOCUMENT ME! * * @param g - * DOCUMENT ME! + * DOCUMENT ME! * @param canvasWidth - * DOCUMENT ME! + * DOCUMENT ME! * @param canvasHeight - * DOCUMENT ME! + * DOCUMENT ME! * @param startRes - * DOCUMENT ME! + * DOCUMENT ME! */ public void drawWrappedPanel(Graphics g, int canvasWidth, int canvasHeight, int startRes) @@ -606,17 +605,17 @@ public class SeqCanvas extends JComponent * DOCUMENT ME! * * @param g1 - * DOCUMENT ME! + * DOCUMENT ME! * @param startRes - * DOCUMENT ME! + * DOCUMENT ME! * @param endRes - * DOCUMENT ME! + * DOCUMENT ME! * @param startSeq - * DOCUMENT ME! + * DOCUMENT ME! * @param endSeq - * DOCUMENT ME! + * DOCUMENT ME! * @param offset - * DOCUMENT ME! + * DOCUMENT ME! */ void drawPanel(Graphics g1, int startRes, int endRes, int startSeq, int endSeq, int offset) @@ -633,7 +632,7 @@ public class SeqCanvas extends JComponent int blockStart = startRes; int blockEnd = endRes; - for (int i = 0; i < regions.size(); i++) + for (int i = 0; regions != null && i < regions.size(); i++) { int[] region = (int[]) regions.elementAt(i); int hideStart = region[0]; @@ -655,11 +654,9 @@ public class SeqCanvas extends JComponent { g1.setColor(Color.blue); - g1 - .drawLine((blockEnd - blockStart + 1) * av.charWidth - 1, - 0 + offset, (blockEnd - blockStart + 1) - * av.charWidth - 1, (endSeq - startSeq) - * av.charHeight + offset); + g1.drawLine((blockEnd - blockStart + 1) * av.charWidth - 1, + 0 + offset, (blockEnd - blockStart + 1) * av.charWidth + - 1, (endSeq - startSeq) * av.charHeight + offset); } g1.translate(-screenY * av.charWidth, 0); @@ -694,7 +691,12 @@ public class SeqCanvas extends JComponent for (int i = startSeq; i < endSeq; i++) { nextSeq = av.alignment.getSequenceAt(i); - + if (nextSeq == null) + { + // occasionally, a race condition occurs such that the alignment row is + // empty + continue; + } sr.drawSequence(nextSeq, av.alignment.findAllGroups(nextSeq), startRes, endRes, offset + ((i - startSeq) * av.charHeight)); @@ -931,7 +933,7 @@ public class SeqCanvas extends JComponent * DOCUMENT ME! * * @param results - * DOCUMENT ME! + * DOCUMENT ME! */ public void highlightSearchResults(SearchResults results) {