Package org.biojava.bio.gui.sequence
Class HeadlessRenderContext
- java.lang.Object
-
- org.biojava.bio.gui.sequence.HeadlessRenderContext
-
- All Implemented Interfaces:
SwingConstants
,SequenceRenderContext
public class HeadlessRenderContext extends Object implements SequenceRenderContext
A stand-alone SequenceRenderContext to make it easy to render to an image.
This class makes it very easy to render sequence information into an arbitrary graphics object without the need to fuss about with AWT or Swing components. You chose the width of the image and the region of the sequence to render. It will calculate the scale factor to ensure that the whole region of the sequence fits into that width. You can then use the context to render any number of SequenceRenderer instances to any Graphics2D instance you want, for example, to an image that's to be written out by a servlet.
Example
HeadlessRenderContext ctxt = new HeadlessRenderContext( seq, // the sequence to render range, // a RangeLocation giving the block you want to render width // an int specifying the image width in pixles ); BufferedImage img = new BufferedImage( width, // image width (int) Math.ceil(seqRend.getDepth(ctxt), // calculated height BufferedImage.TYPE_INT_RGB // let's use RGB ); // set stuff up Graphics2D graph = img.createGraphics(); graph.setPaint(Color.WHITE); graph.fillRect(0, 0, img.getWidth(), img.getHeight()); // and now render the sequences sequenceRenderer.paint(graph, ctxt); // let's dump this out as a png ImageIO.write(image, "png", myFile);
- Since:
- 1.3
- Author:
- Matthew Pocock
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.biojava.bio.gui.sequence.SequenceRenderContext
SequenceRenderContext.Border
-
-
Field Summary
-
Fields inherited from interface org.biojava.bio.gui.sequence.SequenceRenderContext
LAYOUT, REPAINT
-
Fields inherited from interface javax.swing.SwingConstants
BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST
-
-
Constructor Summary
Constructors Constructor Description HeadlessRenderContext(Sequence seq, RangeLocation range, int width)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description int
getDirection()
Gets the direction in which this context expects sequences to be rendered - HORIZONTAL or VERTICAL.FeatureHolder
getFeatures()
The features to render.Font
getFont()
Gets the Font attribute of the SequenceRenderContext objectSequenceRenderContext.Border
getLeadingBorder()
Gets the LeadingBorder attribute of the SequenceRenderContext object.RangeLocation
getRange()
The range of the SymbolList to render.double
getScale()
Gets the scale as pixels per SymbolSymbolList
getSymbols()
The SymbolList that is currently rendered by this SequenceRenderContext.SequenceRenderContext.Border
getTrailingBorder()
Gets the TrailingBorder attribute of the SequenceRenderContext object.int
graphicsToSequence(double d)
Converts a graphical position into a sequence coordinate.int
graphicsToSequence(Point2D point)
Converts a graphical position into a sequence coordinate.double
sequenceToGraphics(int i)
Converts a sequence index into a graphical coordinate.
-
-
-
Constructor Detail
-
HeadlessRenderContext
public HeadlessRenderContext(Sequence seq, RangeLocation range, int width)
-
-
Method Detail
-
getDirection
public int getDirection()
Description copied from interface:SequenceRenderContext
Gets the direction in which this context expects sequences to be rendered - HORIZONTAL or VERTICAL.- Specified by:
getDirection
in interfaceSequenceRenderContext
- Returns:
- The Direction value
-
getFeatures
public FeatureHolder getFeatures()
Description copied from interface:SequenceRenderContext
The features to render.- Specified by:
getFeatures
in interfaceSequenceRenderContext
- Returns:
- a FeatureHolder with the Features to render
-
getFont
public Font getFont()
Description copied from interface:SequenceRenderContext
Gets the Font attribute of the SequenceRenderContext object- Specified by:
getFont
in interfaceSequenceRenderContext
- Returns:
- The Font value
-
getLeadingBorder
public SequenceRenderContext.Border getLeadingBorder()
Description copied from interface:SequenceRenderContext
Gets the LeadingBorder attribute of the SequenceRenderContext object. This represents the space between the beginning of the rendering area and the beginning of the sequence.- Specified by:
getLeadingBorder
in interfaceSequenceRenderContext
- Returns:
- The LeadingBorder value
-
getRange
public RangeLocation getRange()
Description copied from interface:SequenceRenderContext
The range of the SymbolList to render.- Specified by:
getRange
in interfaceSequenceRenderContext
- Returns:
- the RangeLocation specifying which indices (inclusive) to render
-
getScale
public double getScale()
Description copied from interface:SequenceRenderContext
Gets the scale as pixels per Symbol- Specified by:
getScale
in interfaceSequenceRenderContext
- Returns:
- The scale value
-
getSymbols
public SymbolList getSymbols()
Description copied from interface:SequenceRenderContext
The SymbolList that is currently rendered by this SequenceRenderContext.- Specified by:
getSymbols
in interfaceSequenceRenderContext
- Returns:
- The Sequence value
-
getTrailingBorder
public SequenceRenderContext.Border getTrailingBorder()
Description copied from interface:SequenceRenderContext
Gets the TrailingBorder attribute of the SequenceRenderContext object. This represents the space between the end of the sequence and the end of the rendering area.- Specified by:
getTrailingBorder
in interfaceSequenceRenderContext
- Returns:
- The TrailingBorder value
-
sequenceToGraphics
public double sequenceToGraphics(int i)
Description copied from interface:SequenceRenderContext
Converts a sequence index into a graphical coordinate. You will need to use this in conjunction with getDirection to correctly lay graphics out.- Specified by:
sequenceToGraphics
in interfaceSequenceRenderContext
- Parameters:
i
- Index within the sequence- Returns:
- Equivalent graphical position in pixels
-
graphicsToSequence
public int graphicsToSequence(Point2D point)
Description copied from interface:SequenceRenderContext
Converts a graphical position into a sequence coordinate. This will use getDirection to decide whether to use the x or y coordinate.- Specified by:
graphicsToSequence
in interfaceSequenceRenderContext
- Parameters:
point
- a point representing the position- Returns:
- the corresponding sequence index
-
graphicsToSequence
public int graphicsToSequence(double d)
Description copied from interface:SequenceRenderContext
Converts a graphical position into a sequence coordinate. You will need to have used getDirection to decide whether to use the x or y coordinate.- Specified by:
graphicsToSequence
in interfaceSequenceRenderContext
- Parameters:
d
- A pixel position- Returns:
- The corresponding sequence index
-
-