org.biojava.bio.gui.sequence
Class PairwiseFilteringRenderer

java.lang.Object
  extended byorg.biojava.utils.AbstractChangeable
      extended byorg.biojava.bio.gui.sequence.PairwiseFilteringRenderer
All Implemented Interfaces:
Changeable, PairwiseSequenceRenderer, java.io.Serializable

public class PairwiseFilteringRenderer
extends AbstractChangeable
implements PairwiseSequenceRenderer, java.io.Serializable

PairwiseFilteringRenderer wraps a PairwiseSequenceRenderer and filters the PairwiseRenderContexts passed to it. The renderer receives a new PairwiseRenderContext which has had both of its FeatureHolders filtered with the FeatureFilter.

Instances of this class cache up to 5 of the derived PairwiseRenderContexts. Therefore cycling through up to 5 different FeatureFilters will only be hitting the cache rather than recalculating everthing. Should the FeatureHolders themselves change, the cache will be flushed. As only the features overlapping the context's range are filtered, changing the range will also result in re-filtering.

Since:
1.2
Author:
Keith James, Matthew Pocock
See Also:
Serialized Form

Nested Class Summary
 
Nested classes inherited from class org.biojava.bio.gui.sequence.PairwiseSequenceRenderer
PairwiseSequenceRenderer.PairwiseRendererForwarder
 
Field Summary
protected  FeatureFilter filter
          filter is the filter applied to both FeatureHolders.
static ChangeType FILTER
          Constant FILTER indicating a change to the renderer's filter.
protected  boolean recurse
          recurse indicates whether the filter should recurse through any subfeatures.
static ChangeType RECURSE
          Constant RECURSE indicating a change to the renderer's filter recursion flag.
static ChangeType RENDERER
          Constant RENDERER indicating a change to the renderer.
 
Constructor Summary
PairwiseFilteringRenderer(PairwiseSequenceRenderer renderer)
          Creates a new PairwiseFilteringRenderer which uses a filter which accepts all features.
PairwiseFilteringRenderer(PairwiseSequenceRenderer renderer, FeatureFilter filter, boolean recurse)
          Creates a new PairwiseFilteringRenderer.
 
Method Summary
protected  ChangeSupport getChangeSupport(ChangeType ct)
          Called to retrieve the ChangeSupport for this object
 FeatureFilter getFilter()
          getFilter returns the current filter.
 boolean getRecurse()
          getRecurse returns the recursion flag of the filter.
 PairwiseSequenceRenderer getRenderer()
          getRenderer return the current renderer.
protected  PairwiseRenderContext getSubContext(PairwiseRenderContext context)
          getSubContext creates a new context which has FeatureHolders filtered using the current filter.
 void paint(java.awt.Graphics2D g2, PairwiseRenderContext context)
          paints some or all of the information about the sequence pair.
 SequenceViewerEvent processMouseEvent(PairwiseRenderContext context, java.awt.event.MouseEvent me, java.util.List path)
          processMouseEvent produces a SequenceViewerEvent in response to a mouse gesture.
 void setFilter(FeatureFilter filter)
          setFilter sets the filter.
 void setRecurse(boolean recurse)
          setRecurse sets the recursion flag on the filter.
 void setRenderer(PairwiseSequenceRenderer renderer)
          setRenderer sets the renderer.
 
Methods inherited from class org.biojava.utils.AbstractChangeable
addChangeListener, addChangeListener, generateChangeSupport, hasListeners, isUnchanging, removeChangeListener, removeChangeListener
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

FILTER

public static final ChangeType FILTER
Constant FILTER indicating a change to the renderer's filter.


RECURSE

public static final ChangeType RECURSE
Constant RECURSE indicating a change to the renderer's filter recursion flag.


RENDERER

public static final ChangeType RENDERER
Constant RENDERER indicating a change to the renderer.


filter

protected FeatureFilter filter
filter is the filter applied to both FeatureHolders.


recurse

protected boolean recurse
recurse indicates whether the filter should recurse through any subfeatures.

Constructor Detail

PairwiseFilteringRenderer

public PairwiseFilteringRenderer(PairwiseSequenceRenderer renderer)
Creates a new PairwiseFilteringRenderer which uses a filter which accepts all features.

Parameters:
renderer - a PairwiseSequenceRenderer.

PairwiseFilteringRenderer

public PairwiseFilteringRenderer(PairwiseSequenceRenderer renderer,
                                 FeatureFilter filter,
                                 boolean recurse)
Creates a new PairwiseFilteringRenderer.

Parameters:
renderer - a PairwiseSequenceRenderer.
filter - a FeatureFilter.
recurse - a boolean.
Method Detail

getChangeSupport

protected ChangeSupport getChangeSupport(ChangeType ct)
Description copied from class: AbstractChangeable
Called to retrieve the ChangeSupport for this object

Overrides:
getChangeSupport in class AbstractChangeable

getRenderer

public PairwiseSequenceRenderer getRenderer()
getRenderer return the current renderer.

Returns:
a PairwiseSequenceRenderer.

setRenderer

public void setRenderer(PairwiseSequenceRenderer renderer)
                 throws ChangeVetoException
setRenderer sets the renderer.

Parameters:
renderer - a PairwiseSequenceRenderer.
Throws:
ChangeVetoException - if the change is vetoed.

getFilter

public FeatureFilter getFilter()
getFilter returns the current filter.

Returns:
a FeatureFilter.

setFilter

public void setFilter(FeatureFilter filter)
               throws ChangeVetoException
setFilter sets the filter.

Parameters:
filter - a FeatureFilter.
Throws:
ChangeVetoException - if the change is vetoed.

getRecurse

public boolean getRecurse()
getRecurse returns the recursion flag of the filter.

Returns:
a boolean.

setRecurse

public void setRecurse(boolean recurse)
                throws ChangeVetoException
setRecurse sets the recursion flag on the filter.

Parameters:
recurse - a boolean.
Throws:
ChangeVetoException - if the change is vetoed.

paint

public void paint(java.awt.Graphics2D g2,
                  PairwiseRenderContext context)
Description copied from interface: PairwiseSequenceRenderer
paints some or all of the information about the sequence pair.

Specified by:
paint in interface PairwiseSequenceRenderer
Parameters:
g2 - a Graphics2D.
context - a PairwiseRenderContext encapsulating the information to be displayed.

processMouseEvent

public SequenceViewerEvent processMouseEvent(PairwiseRenderContext context,
                                             java.awt.event.MouseEvent me,
                                             java.util.List path)
Description copied from interface: PairwiseSequenceRenderer
processMouseEvent produces a SequenceViewerEvent in response to a mouse gesture.

Specified by:
processMouseEvent in interface PairwiseSequenceRenderer
Parameters:
context - a PairwiseRenderContext.
me - a MouseEvent that caused the request.
path - a List of PairwiseSequenceRenderer instances passed through so far.
Returns:
a SequenceViewerEvent encapsulating the mouse gesture.

getSubContext

protected PairwiseRenderContext getSubContext(PairwiseRenderContext context)
getSubContext creates a new context which has FeatureHolders filtered using the current filter.

Parameters:
context - a PairwiseRenderContext.
Returns:
a PairwiseRenderContext.