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}