org.biojava.bio.gui.sequence
Class LabelledSequenceRenderer

java.lang.Object
  extended by org.biojava.utils.AbstractChangeable
      extended by org.biojava.bio.gui.sequence.LabelledSequenceRenderer
All Implemented Interfaces:
SequenceRenderer, Changeable

public class LabelledSequenceRenderer
extends AbstractChangeable
implements SequenceRenderer

Renderer which draws a track of sequence with a textual label.

Experimental: This should probably delegate the label-drawing to a little LabelRenderer interface, and have the option of rendering trailing as well as leading labels.

Since:
1.3
Author:
Kalle Naslund, Thomas Down, Matthew Pocock, Andreas Prlic

Nested Class Summary
 
Nested classes/interfaces inherited from interface org.biojava.bio.gui.sequence.SequenceRenderer
SequenceRenderer.RendererForwarder
 
Field Summary
static ChangeType RENDERER
           
static ChangeType VALUES
           
 
Constructor Summary
LabelledSequenceRenderer()
          Creates new LabelledSequenceRenderer with default width and depth;
LabelledSequenceRenderer(double minWidth, double minDepth)
          Creates new LabelledSequenceRenderer with the specified width and depth.
LabelledSequenceRenderer(java.lang.String label, SequenceRenderer renderer)
           
 
Method Summary
 void addLabelString(java.lang.String text)
          Add a piece of text to this renderer's label
protected  ChangeSupport generateChangeSupport()
          Called the first time a ChangeSupport object is needed.
 double getDepth(SequenceRenderContext sRC)
          Retrieve the depth of this renderer when rendering src.
 java.awt.Color getFillColor()
          Get the background color of the label area.
 double getMinimumLeader(SequenceRenderContext sRC)
          Retrieve the minimum leading distance for this renderer when rendering src.
 double getMinimumTrailer(SequenceRenderContext sRC)
          Retrieve the minimum trailing distance for this renderer when rendering src.
 java.awt.Color getTextColor()
          Get the color of the label text
 void paint(java.awt.Graphics2D g, SequenceRenderContext sRC)
          Render a portion (possibly all) of the information for src to g, displaying all of the data that would fall within seqBox.
 SequenceViewerEvent processMouseEvent(SequenceRenderContext sRC, java.awt.event.MouseEvent mE, java.util.List path)
          Produce a SequenceViewerEvent in response to a mouse gesture.
 void removeLabelString(java.lang.String text)
          Remove a piece of text from the label
 void setFillColor(java.awt.Color c)
          Set the background color of the label area.
 void setRenderer(SequenceRenderer sR)
          Set the child renderer responsible for drawing the contents of this track
 void setTextColor(java.awt.Color c)
          Set the color of the label text
 void toggleSelectionStatus()
           
 
Methods inherited from class org.biojava.utils.AbstractChangeable
addChangeListener, addChangeListener, getChangeSupport, hasListeners, hasListeners, isUnchanging, removeChangeListener, removeChangeListener
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

RENDERER

public static final ChangeType RENDERER

VALUES

public static final ChangeType VALUES
Constructor Detail

LabelledSequenceRenderer

public LabelledSequenceRenderer()
Creates new LabelledSequenceRenderer with default width and depth;


LabelledSequenceRenderer

public LabelledSequenceRenderer(java.lang.String label,
                                SequenceRenderer renderer)

LabelledSequenceRenderer

public LabelledSequenceRenderer(double minWidth,
                                double minDepth)
Creates new LabelledSequenceRenderer with the specified width and depth.

Method Detail

generateChangeSupport

protected ChangeSupport generateChangeSupport()
Description copied from class: AbstractChangeable
Called the first time a ChangeSupport object is needed. Override this if you want to set the Unchanging set on the ChangeSupport, or if you want to install listeners on other objects when the change system is initialized.

Overrides:
generateChangeSupport in class AbstractChangeable

setRenderer

public void setRenderer(SequenceRenderer sR)
                 throws ChangeVetoException
Set the child renderer responsible for drawing the contents of this track

Throws:
ChangeVetoException

addLabelString

public void addLabelString(java.lang.String text)
                    throws ChangeVetoException
Add a piece of text to this renderer's label

Throws:
ChangeVetoException

removeLabelString

public void removeLabelString(java.lang.String text)
                       throws ChangeVetoException
Remove a piece of text from the label

Throws:
ChangeVetoException

toggleSelectionStatus

public void toggleSelectionStatus()
                           throws ChangeVetoException
Throws:
ChangeVetoException

getMinimumLeader

public double getMinimumLeader(SequenceRenderContext sRC)
Description copied from interface: SequenceRenderer
Retrieve the minimum leading distance for this renderer when rendering src.

The leading distance may vary between sequence panels - for example based upon sequence length.

Specified by:
getMinimumLeader in interface SequenceRenderer
Parameters:
sRC - the SequenceRenderContext to return info for
Returns:
the leading distance of the renderer for that sequence panel

getMinimumTrailer

public double getMinimumTrailer(SequenceRenderContext sRC)
Description copied from interface: SequenceRenderer
Retrieve the minimum trailing distance for this renderer when rendering src.

The trailing distance may vary between sequence panels - for example based upon sequence length.

Specified by:
getMinimumTrailer in interface SequenceRenderer
Parameters:
sRC - the SequenceRenderContext to return info for
Returns:
the trailing distance of the renderer for that sequence panel

getDepth

public double getDepth(SequenceRenderContext sRC)
Description copied from interface: SequenceRenderer
Retrieve the depth of this renderer when rendering src.

The depth may vary between sequence panels - for example based upon sequence length. Each line of information in the SequenceRendererContext only renders a region of the sequence. The depth for one complete line may be different from that for another due to the sequence having more or less information in that region to show. For example, a feature renderer implementation may chose to collapse down to a depth of zero pixels if there are no features to render within a region.

Specified by:
getDepth in interface SequenceRenderer
Parameters:
sRC - the SequenceRenderContext to return info for
Returns:
the depth of the renderer for that sequence panel

processMouseEvent

public SequenceViewerEvent processMouseEvent(SequenceRenderContext sRC,
                                             java.awt.event.MouseEvent mE,
                                             java.util.List path)
Description copied from interface: SequenceRenderer
Produce a SequenceViewerEvent in response to a mouse gesture.

A SequenceRenderer that performs any form of coordinate remapping should ensure that it appropriately transforms the mouse event. However, in the SequenceViewerEvent returned, the MouseEvent should be in untransformed coordinates.

The SequenceRenderer implementation should append itself to the path list before constructing the SequenceViewerEvent.

Specified by:
processMouseEvent in interface SequenceRenderer
Parameters:
sRC - the SequenceRenderContext currently in scope
mE - a MouseEvent that caused this request
path - the List of SequenceRenderer instances passed through so far
Returns:
a SequenceViewerEvent encapsulating the mouse gesture

setFillColor

public void setFillColor(java.awt.Color c)
Set the background color of the label area.


getFillColor

public java.awt.Color getFillColor()
Get the background color of the label area.


setTextColor

public void setTextColor(java.awt.Color c)
Set the color of the label text


getTextColor

public java.awt.Color getTextColor()
Get the color of the label text


paint

public void paint(java.awt.Graphics2D g,
                  SequenceRenderContext sRC)
Description copied from interface: SequenceRenderer
Render a portion (possibly all) of the information for src to g, displaying all of the data that would fall within seqBox.

Specified by:
paint in interface SequenceRenderer
Parameters:
g - the Graphics2D to render to
sRC - the SequenceRenderContext that encapsulates the information to render