X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Frenderer%2FOverviewRenderer.java;h=1c50aab80e84692c970b07a8e0ce80a5daf53436;hb=9214cffc006412ed194565b82c8663df2ea641c6;hp=73f66f0471df95d1aca4efd7813edf5c6c45f3d9;hpb=6d06be2714c9cba8c69148d5e2d26b50b7051840;p=jalview.git diff --git a/src/jalview/renderer/OverviewRenderer.java b/src/jalview/renderer/OverviewRenderer.java index 73f66f0..1c50aab 100644 --- a/src/jalview/renderer/OverviewRenderer.java +++ b/src/jalview/renderer/OverviewRenderer.java @@ -113,6 +113,7 @@ public class OverviewRenderer int totalPixels = miniMe.getWidth() * alignmentHeight; int lastRowUpdate = 0; + int lastUpdate = 0; changeSupport.firePropertyChange(UPDATE, -1, 0); for (int alignmentRow : rows) @@ -162,8 +163,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 +175,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,28 +188,31 @@ 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; } /*