001package org.biojava.bio.gui.sequence;
002
003import java.awt.Graphics2D;
004
005import org.biojava.bio.seq.FeatureFilter;
006
007/**
008 *
009 *
010 * @author Matthew Pocock
011 */
012public class CircularFeatureFilteringRenderer
013implements CircularRenderer {
014  private boolean recurse;
015  private FeatureFilter filter;
016  private CircularRenderer renderer;
017
018  public CircularFeatureFilteringRenderer(CircularRenderer renderer,
019                                          FeatureFilter filter,
020                                          boolean recurse)
021  {
022    this.renderer = renderer;
023    this.filter = filter;
024    this.recurse = recurse;
025  }
026
027  public double getDepth(CircularRendererContext crc) {
028    CircularRendererContext subCtxt = new SubCircularRendererContext(
029            crc,
030            null,
031            crc.getFeatures().filter(filter, recurse),
032            Double.NaN );
033    return renderer.getDepth(subCtxt);
034  }
035
036  public void paint(Graphics2D g2, CircularRendererContext crc) {
037    CircularRendererContext subCtxt = new SubCircularRendererContext(
038            crc,
039            null,
040            crc.getFeatures().filter(filter, recurse),
041            Double.NaN );
042    renderer.paint(g2, subCtxt);
043  }
044}