X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Frenderer%2FOverviewRenderer.java;h=c9096e290e5a417d8ee813168744477ce6e02ee5;hb=4f30214e8098748469c6a4269ac2ed6c5750e4b0;hp=73f66f0471df95d1aca4efd7813edf5c6c45f3d9;hpb=6d06be2714c9cba8c69148d5e2d26b50b7051840;p=jalview.git diff --git a/src/jalview/renderer/OverviewRenderer.java b/src/jalview/renderer/OverviewRenderer.java index 73f66f0..c9096e2 100644 --- a/src/jalview/renderer/OverviewRenderer.java +++ b/src/jalview/renderer/OverviewRenderer.java @@ -44,8 +44,6 @@ public class OverviewRenderer // transparency of hidden cols/seqs overlay private final float TRANSPARENCY = 0.5f; - private final Color HIDDEN_COLOUR = Color.DARK_GRAY.darker(); - public static final String UPDATE = "OverviewUpdate"; private static final int MAX_PROGRESS = 100; @@ -113,6 +111,7 @@ public class OverviewRenderer int totalPixels = miniMe.getWidth() * alignmentHeight; int lastRowUpdate = 0; + int lastUpdate = 0; changeSupport.firePropertyChange(UPDATE, -1, 0); for (int alignmentRow : rows) @@ -151,7 +150,7 @@ public class OverviewRenderer if (pixelCol <= endCol) { rgbcolor = getColumnColourFromSequence(allGroups, seq, - alignmentCol, finder); + alignmentCol); // fill in the appropriate number of pixels for (int row = pixelRow; row <= endRow; ++row) @@ -162,8 +161,10 @@ public class OverviewRenderer } } - sendProgressUpdate((pixelCol + 1) * (endRow - pixelRow), - totalPixels, lastRowUpdate); + // store last update value + lastUpdate = sendProgressUpdate( + (pixelCol + 1) * (endRow - pixelRow), totalPixels, + lastRowUpdate, lastUpdate); pixelCol = endCol + 1; } @@ -172,7 +173,10 @@ public class OverviewRenderer if (pixelRow != endRow + 1) { - lastRowUpdate = sendProgressUpdate(endRow + 1, alignmentHeight, 0); + // store row offset and last update value + lastRowUpdate = sendProgressUpdate(endRow + 1, alignmentHeight, 0, + lastUpdate); + lastUpdate = lastRowUpdate; pixelRow = endRow + 1; } seqIndex++; @@ -182,52 +186,51 @@ public class OverviewRenderer // final update to progress bar if present if (redraw) { - sendProgressUpdate(pixelRow - 1, alignmentHeight, 0); + sendProgressUpdate(pixelRow - 1, alignmentHeight, 0, 0); } else { - sendProgressUpdate(alignmentHeight, miniMe.getHeight(), 0); + sendProgressUpdate(alignmentHeight, miniMe.getHeight(), 0, 0); } return miniMe; } /* * Calculate progress update value and fire event + * @param rowOffset number of rows to offset calculation by + * @return new rowOffset - return value only to be used when at end of a row */ - private int sendProgressUpdate(int position, int maximum, int offset) + private int sendProgressUpdate(int position, int maximum, int rowOffset, + int lastUpdate) { - int newUpdate = offset + int newUpdate = rowOffset + Math.round(MAX_PROGRESS * ((float) position / maximum)); - if (newUpdate > offset) + if (newUpdate > lastUpdate) { - changeSupport.firePropertyChange(UPDATE, offset, newUpdate); + changeSupport.firePropertyChange(UPDATE, rowOffset, newUpdate); return newUpdate; } - return offset; + return newUpdate; } /* - * Find the colour of a sequence at a specified column position + * Find the RGB value of the colour of a sequence at a specified column position * * @param seq * sequence to get colour for * @param lastcol * column position to get colour for - * @param fcfinder - * FeatureColourFinder to use * @return colour of sequence at this position, as RGB */ - private int getColumnColourFromSequence(SequenceGroup[] allGroups, - jalview.datamodel.SequenceI seq, - int lastcol, FeatureColourFinder fcfinder) + int getColumnColourFromSequence(SequenceGroup[] allGroups, + SequenceI seq, int lastcol) { - Color color = Color.white; + Color color = resColFinder.GAP_COLOUR; if ((seq != null) && (seq.getLength() > lastcol)) { color = resColFinder.getResidueColour(true, shader, allGroups, seq, - lastcol, - fcfinder); + lastcol, finder); } return color.getRGB(); @@ -285,8 +288,8 @@ public class OverviewRenderer Graphics2D g2d = (Graphics2D) hiddenImage.getGraphics(); // set background to transparent - g2d.setComposite(AlphaComposite.Clear); - g2d.fillRect(0, 0, width, height); + // g2d.setComposite(AlphaComposite.Clear); + // g2d.fillRect(0, 0, width, height); // set next colour to opaque g2d.setComposite(AlphaComposite.Src); @@ -350,15 +353,13 @@ public class OverviewRenderer * the graphics object to draw on * @param anno * alignment annotation information - * @param charWidth - * alignment character width value * @param y * y-position for the annotation graph * @param cols * the collection of columns used in the overview panel */ - public void drawGraph(Graphics g, AlignmentAnnotation anno, int charWidth, - int y, AlignmentColsCollectionI cols) + public void drawGraph(Graphics g, AlignmentAnnotation anno, int y, + AlignmentColsCollectionI cols) { Annotation[] annotations = anno.annotations; g.setColor(Color.white);