X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Frenderer%2FOverviewRenderer.java;h=1fb2d89f59910ee88e243bcd91e6cdce34330e6d;hb=3f03cc818538d68c829869c6341112c44cf648d9;hp=48dcf3cdf96f89dacdb0bc024adcfed5e8d99cf9;hpb=4b05014f4458eccd740e8ce94be255323687c302;p=jalview.git diff --git a/src/jalview/renderer/OverviewRenderer.java b/src/jalview/renderer/OverviewRenderer.java index 48dcf3c..1fb2d89 100644 --- a/src/jalview/renderer/OverviewRenderer.java +++ b/src/jalview/renderer/OverviewRenderer.java @@ -37,6 +37,9 @@ import java.awt.image.BufferedImage; public class OverviewRenderer { + // transparency of hidden cols/seqs overlay + private final float TRANSPARENCY = 0.5f; + private FeatureColourFinder finder; private jalview.api.SequenceRenderer sr; @@ -81,9 +84,6 @@ public class OverviewRenderer int seqIndex = 0; int pixelRow = 0; - BufferedImage hiddenImage = buildHiddenImage(rows, cols, - miniMe.getWidth(), miniMe.getHeight()); - for (int alignmentRow : rows) { if (redraw) @@ -138,11 +138,20 @@ public class OverviewRenderer seqIndex++; } - return applyMask(hiddenImage, miniMe); + overlayHiddenRegions(rows, cols); + return miniMe; } - /* + /** * Find 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(jalview.datamodel.SequenceI seq, int lastcol, FeatureColourFinder fcfinder) @@ -157,18 +166,42 @@ public class OverviewRenderer return color.getRGB(); } - private BufferedImage applyMask(BufferedImage mask, BufferedImage image) + /** + * Overlay the hidden regions on the overview image + * + * @param rows + * collection of rows the overview is built over + * @param cols + * collection of columns the overview is built over + */ + private void overlayHiddenRegions(AlignmentRowsCollectionI rows, + AlignmentColsCollectionI cols) { - Graphics2D g = (Graphics2D) image.getGraphics(); - g.setComposite( - AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.5f)); - g.drawImage(mask, 0, 0, image.getWidth(), image.getHeight(), null); - return image; + if (cols.hasHidden() || rows.hasHidden()) + { + BufferedImage mask = buildHiddenImage(rows, cols, miniMe.getWidth(), + miniMe.getHeight()); + + Graphics2D g = (Graphics2D) miniMe.getGraphics(); + g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, + TRANSPARENCY)); + g.drawImage(mask, 0, 0, miniMe.getWidth(), miniMe.getHeight(), null); + } } - /* - * Build a masking image of hidden columns and rows to be applied on top - * of the main overview image. + /** + * Build a masking image of hidden columns and rows to be applied on top of + * the main overview image. + * + * @param rows + * collection of rows the overview is built over + * @param cols + * collection of columns the overview is built over + * @param width + * width of overview in pixels + * @param height + * height of overview in pixels + * @return BufferedImage containing mask of hidden regions */ private BufferedImage buildHiddenImage(AlignmentRowsCollectionI rows, AlignmentColsCollectionI cols, int width, int height) @@ -180,7 +213,7 @@ public class OverviewRenderer int colIndex = 0; int pixelCol = 0; - Color hidden = Color.DARK_GRAY; + Color hidden = Color.DARK_GRAY.darker(); Graphics2D g2d = (Graphics2D) hiddenImage.getGraphics(); @@ -308,6 +341,13 @@ public class OverviewRenderer } } + /** + * Allows redraw flag to be set + * + * @param b + * value to set redraw to: true = redraw is occurring, false = no + * redraw + */ public void setRedraw(boolean b) { synchronized (this)