Class PairwiseFilteringRenderer
- java.lang.Object
-
- org.biojava.utils.AbstractChangeable
-
- org.biojava.bio.gui.sequence.PairwiseFilteringRenderer
-
- All Implemented Interfaces:
Serializable
,PairwiseSequenceRenderer
,Changeable
public class PairwiseFilteringRenderer extends AbstractChangeable implements PairwiseSequenceRenderer, Serializable
PairwiseFilteringRenderer
wraps aPairwiseSequenceRenderer
and filters thePairwiseRenderContext
s passed to it. The renderer receives a newPairwiseRenderContext
which has had both of itsFeatureHolder
s filtered with theFeatureFilter
.Instances of this class cache up to 5 of the derived
PairwiseRenderContext
s. Therefore cycling through up to 5 differentFeatureFilter
s will only be hitting the cache rather than recalculating everthing. Should theFeatureHolder
s 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/interfaces inherited from interface org.biojava.bio.gui.sequence.PairwiseSequenceRenderer
PairwiseSequenceRenderer.PairwiseRendererForwarder
-
-
Field Summary
Fields Modifier and Type Field Description protected FeatureFilter
filter
filter
is the filter applied to bothFeatureHolder
s.static ChangeType
FILTER
ConstantFILTER
indicating a change to the renderer's filter.protected boolean
recurse
recurse
indicates whether the filter should recurse through any subfeatures.static ChangeType
RECURSE
ConstantRECURSE
indicating a change to the renderer's filter recursion flag.static ChangeType
RENDERER
ConstantRENDERER
indicating a change to the renderer.
-
Constructor Summary
Constructors Constructor Description PairwiseFilteringRenderer(PairwiseSequenceRenderer renderer)
Creates a newPairwiseFilteringRenderer
which uses a filter which accepts all features.PairwiseFilteringRenderer(PairwiseSequenceRenderer renderer, FeatureFilter filter, boolean recurse)
Creates a newPairwiseFilteringRenderer
.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description 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 hasFeatureHolder
s filtered using the current filter.void
paint(Graphics2D g2, PairwiseRenderContext context)
paint
s some or all of the information about the sequence pair.SequenceViewerEvent
processMouseEvent(PairwiseRenderContext context, MouseEvent me, List path)
processMouseEvent
produces aSequenceViewerEvent
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, hasListeners, isUnchanging, removeChangeListener, removeChangeListener
-
-
-
-
Field Detail
-
FILTER
public static final ChangeType FILTER
ConstantFILTER
indicating a change to the renderer's filter.
-
RECURSE
public static final ChangeType RECURSE
ConstantRECURSE
indicating a change to the renderer's filter recursion flag.
-
RENDERER
public static final ChangeType RENDERER
ConstantRENDERER
indicating a change to the renderer.
-
filter
protected FeatureFilter filter
filter
is the filter applied to bothFeatureHolder
s.
-
recurse
protected boolean recurse
recurse
indicates whether the filter should recurse through any subfeatures.
-
-
Constructor Detail
-
PairwiseFilteringRenderer
public PairwiseFilteringRenderer(PairwiseSequenceRenderer renderer)
Creates a newPairwiseFilteringRenderer
which uses a filter which accepts all features.- Parameters:
renderer
- aPairwiseSequenceRenderer
.
-
PairwiseFilteringRenderer
public PairwiseFilteringRenderer(PairwiseSequenceRenderer renderer, FeatureFilter filter, boolean recurse)
Creates a newPairwiseFilteringRenderer
.- Parameters:
renderer
- aPairwiseSequenceRenderer
.filter
- aFeatureFilter
.recurse
- aboolean
.
-
-
Method Detail
-
getChangeSupport
protected ChangeSupport getChangeSupport(ChangeType ct)
Description copied from class:AbstractChangeable
Called to retrieve the ChangeSupport for this object.Your implementation of this method should have the following structure:
It is usual for the forwarding listeners (someForwarder in this example) to be transient and lazily instantiated. Be sure to register & unregister the forwarder in the code that does the ChangeEvent handling in setter methods.ChangeSupport cs = super.getChangeSupport(ct); if(someForwarder == null && ct.isMatching(SomeInterface.SomeChangeType)) { someForwarder = new ChangeForwarder(... this.stateVariable.addChangeListener(someForwarder, VariableInterface.AChange); } return cs;
- Overrides:
getChangeSupport
in classAbstractChangeable
-
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
- aPairwiseSequenceRenderer
.- 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
- aFeatureFilter
.- 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
- aboolean
.- Throws:
ChangeVetoException
- if the change is vetoed.
-
paint
public void paint(Graphics2D g2, PairwiseRenderContext context)
Description copied from interface:PairwiseSequenceRenderer
paint
s some or all of the information about the sequence pair.- Specified by:
paint
in interfacePairwiseSequenceRenderer
- Parameters:
g2
- aGraphics2D
.context
- aPairwiseRenderContext
encapsulating the information to be displayed.
-
processMouseEvent
public SequenceViewerEvent processMouseEvent(PairwiseRenderContext context, MouseEvent me, List path)
Description copied from interface:PairwiseSequenceRenderer
processMouseEvent
produces aSequenceViewerEvent
in response to a mouse gesture.- Specified by:
processMouseEvent
in interfacePairwiseSequenceRenderer
- Parameters:
context
- aPairwiseRenderContext
.me
- aMouseEvent
that caused the request.path
- aList
ofPairwiseSequenceRenderer
instances passed through so far.- Returns:
- a
SequenceViewerEvent
encapsulating the mouse gesture.
-
getSubContext
protected PairwiseRenderContext getSubContext(PairwiseRenderContext context)
getSubContext
creates a new context which hasFeatureHolder
s filtered using the current filter.- Parameters:
context
- aPairwiseRenderContext
.- Returns:
- a
PairwiseRenderContext
.
-
-