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
PairwiseFilteringRendererwraps aPairwiseSequenceRendererand filters thePairwiseRenderContexts passed to it. The renderer receives a newPairwiseRenderContextwhich has had both of itsFeatureHolders filtered with theFeatureFilter.Instances of this class cache up to 5 of the derived
PairwiseRenderContexts. Therefore cycling through up to 5 differentFeatureFilters will only be hitting the cache rather than recalculating everthing. Should theFeatureHolders 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 FeatureFilterfilterfilteris the filter applied to bothFeatureHolders.static ChangeTypeFILTERConstantFILTERindicating a change to the renderer's filter.protected booleanrecurserecurseindicates whether the filter should recurse through any subfeatures.static ChangeTypeRECURSEConstantRECURSEindicating a change to the renderer's filter recursion flag.static ChangeTypeRENDERERConstantRENDERERindicating a change to the renderer.
-
Constructor Summary
Constructors Constructor Description PairwiseFilteringRenderer(PairwiseSequenceRenderer renderer)Creates a newPairwiseFilteringRendererwhich 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 ChangeSupportgetChangeSupport(ChangeType ct)Called to retrieve the ChangeSupport for this object.FeatureFiltergetFilter()getFilterreturns the current filter.booleangetRecurse()getRecursereturns the recursion flag of the filter.PairwiseSequenceRenderergetRenderer()getRendererreturn the current renderer.protected PairwiseRenderContextgetSubContext(PairwiseRenderContext context)getSubContextcreates a new context which hasFeatureHolders filtered using the current filter.voidpaint(Graphics2D g2, PairwiseRenderContext context)paints some or all of the information about the sequence pair.SequenceViewerEventprocessMouseEvent(PairwiseRenderContext context, MouseEvent me, List path)processMouseEventproduces aSequenceViewerEventin response to a mouse gesture.voidsetFilter(FeatureFilter filter)setFiltersets the filter.voidsetRecurse(boolean recurse)setRecursesets the recursion flag on the filter.voidsetRenderer(PairwiseSequenceRenderer renderer)setRenderersets 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
ConstantFILTERindicating a change to the renderer's filter.
-
RECURSE
public static final ChangeType RECURSE
ConstantRECURSEindicating a change to the renderer's filter recursion flag.
-
RENDERER
public static final ChangeType RENDERER
ConstantRENDERERindicating a change to the renderer.
-
filter
protected FeatureFilter filter
filteris the filter applied to bothFeatureHolders.
-
recurse
protected boolean recurse
recurseindicates whether the filter should recurse through any subfeatures.
-
-
Constructor Detail
-
PairwiseFilteringRenderer
public PairwiseFilteringRenderer(PairwiseSequenceRenderer renderer)
Creates a newPairwiseFilteringRendererwhich 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:AbstractChangeableCalled 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:
getChangeSupportin classAbstractChangeable
-
getRenderer
public PairwiseSequenceRenderer getRenderer()
getRendererreturn the current renderer.- Returns:
- a
PairwiseSequenceRenderer.
-
setRenderer
public void setRenderer(PairwiseSequenceRenderer renderer) throws ChangeVetoException
setRenderersets the renderer.- Parameters:
renderer- aPairwiseSequenceRenderer.- Throws:
ChangeVetoException- if the change is vetoed.
-
getFilter
public FeatureFilter getFilter()
getFilterreturns the current filter.- Returns:
- a
FeatureFilter.
-
setFilter
public void setFilter(FeatureFilter filter) throws ChangeVetoException
setFiltersets the filter.- Parameters:
filter- aFeatureFilter.- Throws:
ChangeVetoException- if the change is vetoed.
-
getRecurse
public boolean getRecurse()
getRecursereturns the recursion flag of the filter.- Returns:
- a
boolean.
-
setRecurse
public void setRecurse(boolean recurse) throws ChangeVetoException
setRecursesets 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:PairwiseSequenceRendererpaints some or all of the information about the sequence pair.- Specified by:
paintin interfacePairwiseSequenceRenderer- Parameters:
g2- aGraphics2D.context- aPairwiseRenderContextencapsulating the information to be displayed.
-
processMouseEvent
public SequenceViewerEvent processMouseEvent(PairwiseRenderContext context, MouseEvent me, List path)
Description copied from interface:PairwiseSequenceRendererprocessMouseEventproduces aSequenceViewerEventin response to a mouse gesture.- Specified by:
processMouseEventin interfacePairwiseSequenceRenderer- Parameters:
context- aPairwiseRenderContext.me- aMouseEventthat caused the request.path- aListofPairwiseSequenceRendererinstances passed through so far.- Returns:
- a
SequenceViewerEventencapsulating the mouse gesture.
-
getSubContext
protected PairwiseRenderContext getSubContext(PairwiseRenderContext context)
getSubContextcreates a new context which hasFeatureHolders filtered using the current filter.- Parameters:
context- aPairwiseRenderContext.- Returns:
- a
PairwiseRenderContext.
-
-