public class TranslatedSequencePanel extends JComponent implements SequenceRenderContext, Changeable
TranslatedSequencePanel
is a panel that displays a
Sequence. Its features are that it will always draw at low pixel
coordinates when using Java2D to render very long sequences and it
is quite fast (approximately 8x faster than
SequencePanel
A TranslatedSequencePanel
can either display the
sequence from left-to-right (HORIZONTAL) or from top-to-bottom
(VERTICAL). It has an associated scale which is the number of
pixels per symbol and a translation which is the number of
Symbol
s to skip before rendering starts. In order to
produce a scrolling effect, the setSymbolTranslation
method may be hooked up to an Adjustable
such as
JScrollBar
or to an event listener.
The exact number of Symbol
s rendered depends on the
width of the panel and the scale. Resizing the panel will cause the
number of Symbol
s rendered to change accordingly.
The panel will fill its background to the Color
defined by the setBackground()
method provided that it
has been defined as opaque using setOpaque()
.
The change event handling code is based on the original panel and other BioJava components by Matthew and Thomas.
JComponent.AccessibleJComponent
Container.AccessibleAWTContainer
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
SequenceRenderContext.Border
Modifier and Type | Field and Description |
---|---|
static ChangeType |
RENDERER
Constant
RENDERER is a ChangeType
which indicates a change to the renderer, requiring a layout
update. |
static ChangeType |
TRANSLATION
Constant
TRANSLATION is a ChangeType
which indicates a change to the translation, requiring a paint
update. |
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
LAYOUT, REPAINT
BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
Constructor and Description |
---|
TranslatedSequencePanel()
Creates a new
TranslatedSequencePanel with the
default settings (direction HORIZONTAL, scale 10.0 pixels per
symbol, symbol translation 0, leading border 0.0, trailing
border 0.0, 12 point sanserif font). |
Modifier and Type | Method and Description |
---|---|
void |
addChangeListener(ChangeListener cl)
addChangeListener adds a listener for all types of
change. |
void |
addChangeListener(ChangeListener cl,
ChangeType ct)
addChangeListener adds a listener for specific
types of change. |
void |
addSequenceViewerListener(SequenceViewerListener svl)
addSequenceViewerListener adds a listener for
mouse click SequenceViewerEvent s. |
void |
addSequenceViewerMotionListener(SequenceViewerMotionListener svml)
addSequenceViewerMotionListener adds a listener for
mouse motion SequenceViewerEvent s. |
protected ChangeSupport |
getChangeSupport(ChangeType ct)
getChangeSupport lazily instantiates a helper for
change listeners. |
int |
getDirection()
getDirection returns the direction in which this
context expects sequences to be rendered - HORIZONTAL or
VERTICAL. |
FeatureHolder |
getFeatures()
getFeatures returns all of the
Feature s belonging to the currently rendered
Sequence . |
SequenceRenderContext.Border |
getLeadingBorder()
getLeadingBorder returns the leading border. |
RangeLocation |
getRange()
getRange returns a RangeLocation
representing the region of the sequence currently being
rendered. |
SequenceRenderer |
getRenderer()
getRenderer returns the current
SequenceRenderer . |
RenderingHints |
getRenderingHints()
getRenderingHints returns the
RenderingHints currently being used by the
Graphics2D instances of delegate renderers. |
double |
getScale()
getScale returns the scale in pixels per
Symbol . |
SymbolList |
getSequence()
getSequence returns the entire
Sequence currently being rendered. |
SymbolList |
getSymbols()
getSymbols returns all of the Symbol s
belonging to the currently rendered Sequence . |
int |
getSymbolTranslation()
getSymbolTranslation returns the current
translation in Symbol s which will be applied when
rendering. |
SequenceRenderContext.Border |
getTrailingBorder()
getTrailingBorder returns the trailing border. |
int |
getVisibleSymbolCount()
getVisibleSymbolCount returns the
maximum number of Symbol s which
can be rendered in the visible area (excluding all borders) of
the TranslatedSequencePanel at the current
scale. |
int |
graphicsToSequence(double graphicsPos)
graphicsToSequence converts a graphical position
to a sequence index. |
int |
graphicsToSequence(Point2D point)
graphicsToSequence converts a graphical position
to a sequence index. |
protected boolean |
hasListeners()
hasListeners returns true if there are active
listeners for BioJava events. |
protected boolean |
isActive()
isActive returns true if both the
Sequence to be rendered and the
SequenceRenderer are not null. |
boolean |
isUnchanging(ChangeType ct)
A particular ChangeType can never be raised by this Changeable.
|
void |
paintComponent(Graphics g)
paintComponent paints this component. |
void |
removeChangeListener(ChangeListener cl)
removeChangeListener removes a listener. |
void |
removeChangeListener(ChangeListener cl,
ChangeType ct)
removeChangeListener removes a listener. |
void |
removeSequenceViewerListener(SequenceViewerListener svl)
removeSequenceViewerListener removes a listener
for mouse click SequenceViewerEvent s. |
void |
removeSequenceViewerMotionListener(SequenceViewerMotionListener svml)
addSequenceViewerMotionListener removes a listener for
mouse motion SequenceViewerEvent s. |
void |
resizeAndValidate()
resizeAndValidate sets the minimum, preferred and
maximum sizes of the component according to the current leading
and trailing borders, renderer depth and visible symbol count. |
double |
sequenceToGraphics(int sequencePos)
sequenceToGraphics converts a sequence index to a
graphical position. |
void |
setDirection(int direction)
setDirection sets the direction in which this
context will render sequences - HORIZONTAL or VERTICAL. |
void |
setRenderer(SequenceRenderer renderer)
setRenderer sets the current
SequenceRenderer . |
void |
setRenderingHints(RenderingHints hints)
setRenderingHints sets the
RenderingHints which will be used by the
Graphics2D instances of delegate renderers. |
void |
setScale(double scale)
setScale sets the scale in pixels per
Symbol . |
void |
setSequence(SymbolList sequence)
setSequence sets the Sequence to be
rendered. |
void |
setSymbolTranslation(int translation)
setSymbolTranslation sets the translation in
Symbol s which will be applied when rendering. |
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getAccessibleContext, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintImmediately, paintImmediately, paramString, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update, updateUI
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate, validateTree
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
getFont
public static final ChangeType RENDERER
RENDERER
is a ChangeType
which indicates a change to the renderer, requiring a layout
update.public static final ChangeType TRANSLATION
TRANSLATION
is a ChangeType
which indicates a change to the translation, requiring a paint
update.public TranslatedSequencePanel()
TranslatedSequencePanel
with the
default settings (direction HORIZONTAL, scale 10.0 pixels per
symbol, symbol translation 0, leading border 0.0, trailing
border 0.0, 12 point sanserif font).public SymbolList getSequence()
getSequence
returns the entire
Sequence
currently being rendered.Sequence
.public void setSequence(SymbolList sequence)
setSequence
sets the Sequence
to be
rendered.sequence
- a Sequence
.public SymbolList getSymbols()
getSymbols
returns all of the Symbol
s
belonging to the currently rendered Sequence
.getSymbols
in interface SequenceRenderContext
SymbolList
.public FeatureHolder getFeatures()
getFeatures
returns all of the
Feature
s belonging to the currently rendered
Sequence
.getFeatures
in interface SequenceRenderContext
FeatureHolder
.public RangeLocation getRange()
getRange
returns a RangeLocation
representing the region of the sequence currently being
rendered. This is calculated from the size of the
TranslatedSequencePanel
, minus its
SequenceRenderContext.Border
s and its delegate
renderer borders (if any), the current rendering translation
and the current scale. The value will therefore change when the
TranslatedSequencePanel
is resized or "scrolled"
by changing the translation.getRange
in interface SequenceRenderContext
RangeLocation
.public int getDirection()
getDirection
returns the direction in which this
context expects sequences to be rendered - HORIZONTAL or
VERTICAL.getDirection
in interface SequenceRenderContext
int
.public void setDirection(int direction) throws IllegalArgumentException
setDirection
sets the direction in which this
context will render sequences - HORIZONTAL or VERTICAL.direction
- an int
.IllegalArgumentException
- if an error occurs.public double getScale()
getScale
returns the scale in pixels per
Symbol
.getScale
in interface SequenceRenderContext
double
.public void setScale(double scale)
setScale
sets the scale in pixels per
Symbol
.scale
- a double
.public int getSymbolTranslation()
getSymbolTranslation
returns the current
translation in Symbol
s which will be applied when
rendering. The sequence will be rendered, immediately after any
borders, starting at this translation. Values may be from 0 to
the length of the rendered sequence.int
.public void setSymbolTranslation(int translation) throws IndexOutOfBoundsException
setSymbolTranslation
sets the translation in
Symbol
s which will be applied when rendering. The
sequence will be rendered, immediately after any borders,
starting at that translation. Values may be from 0 to the
length of the rendered sequence.translation
- an int
.IndexOutOfBoundsException
- if the translation is
greater than the sequence length.public SequenceRenderContext.Border getLeadingBorder()
getLeadingBorder
returns the leading border.getLeadingBorder
in interface SequenceRenderContext
SequenceRenderContext.Border
.public SequenceRenderContext.Border getTrailingBorder()
getTrailingBorder
returns the trailing border.getTrailingBorder
in interface SequenceRenderContext
SequenceRenderContext.Border
.public SequenceRenderer getRenderer()
getRenderer
returns the current
SequenceRenderer
.SequenceRenderer
.public void setRenderer(SequenceRenderer renderer) throws ChangeVetoException
setRenderer
sets the current
SequenceRenderer
.renderer
- set the SequenceRenderer
usedChangeVetoException
public RenderingHints getRenderingHints()
getRenderingHints
returns the
RenderingHints
currently being used by the
Graphics2D
instances of delegate renderers. If
none is set, the constructor creates one with a null
Map
.RenderingHints
.public void setRenderingHints(RenderingHints hints)
setRenderingHints
sets the
RenderingHints
which will be used by the
Graphics2D
instances of delegate renderers.hints
- a RenderingHints
.public double sequenceToGraphics(int sequencePos)
sequenceToGraphics
converts a sequence index to a
graphical position.sequenceToGraphics
in interface SequenceRenderContext
sequencePos
- an int
.double
.public int graphicsToSequence(double graphicsPos)
graphicsToSequence
converts a graphical position
to a sequence index.graphicsToSequence
in interface SequenceRenderContext
graphicsPos
- a double
.int
.public int graphicsToSequence(Point2D point)
graphicsToSequence
converts a graphical position
to a sequence index.graphicsToSequence
in interface SequenceRenderContext
point
- the Point2D
to transformint
.public int getVisibleSymbolCount()
getVisibleSymbolCount
returns the
maximum number of Symbol
s which
can be rendered in the visible area (excluding all borders) of
the TranslatedSequencePanel
at the current
scale. Note that if the translation is greater than 0, the
actual number of Symbol
s rendered will be less.int
.public void paintComponent(Graphics g)
paintComponent
paints this component.paintComponent
in class JComponent
g
- a Graphics
object.public void resizeAndValidate()
resizeAndValidate
sets the minimum, preferred and
maximum sizes of the component according to the current leading
and trailing borders, renderer depth and visible symbol count.public void addChangeListener(ChangeListener cl)
addChangeListener
adds a listener for all types of
change.addChangeListener
in interface Changeable
cl
- a ChangeListener
.public void addChangeListener(ChangeListener cl, ChangeType ct)
addChangeListener
adds a listener for specific
types of change.addChangeListener
in interface Changeable
cl
- a ChangeListener
.ct
- a ChangeType
.public void removeChangeListener(ChangeListener cl)
removeChangeListener
removes a listener.removeChangeListener
in interface Changeable
cl
- a ChangeListener
.public void removeChangeListener(ChangeListener cl, ChangeType ct)
removeChangeListener
removes a listener.removeChangeListener
in interface Changeable
cl
- a ChangeListener
.ct
- a ChangeType
.public boolean isUnchanging(ChangeType ct)
Changeable
A particular ChangeType can never be raised by this Changeable.
If this returns true, then it is guaranteed that change events of this type (and all child types) can never under any circumstances be fired by this Changeable instance. If it returns false, that does not mean that this type of event will or even can be raised, but that it is worth registering listeners incase.
isUnchanging
in interface Changeable
ct
- the ChangeType to checkpublic void addSequenceViewerListener(SequenceViewerListener svl)
addSequenceViewerListener
adds a listener for
mouse click SequenceViewerEvent
s.svl
- a SequenceViewerListener
.public void removeSequenceViewerListener(SequenceViewerListener svl)
removeSequenceViewerListener
removes a listener
for mouse click SequenceViewerEvent
s.svl
- a SequenceViewerListener
.public void addSequenceViewerMotionListener(SequenceViewerMotionListener svml)
addSequenceViewerMotionListener
adds a listener for
mouse motion SequenceViewerEvent
s.svml
- a SequenceViewerMotionListener
.public void removeSequenceViewerMotionListener(SequenceViewerMotionListener svml)
addSequenceViewerMotionListener
removes a listener for
mouse motion SequenceViewerEvent
s.svml
- a SequenceViewerMotionListener
.protected ChangeSupport getChangeSupport(ChangeType ct)
getChangeSupport
lazily instantiates a helper for
change listeners.ct
- a ChangeType
.ChangeSupport
object.protected boolean hasListeners()
hasListeners
returns true if there are active
listeners for BioJava events.boolean
value.protected boolean isActive()
isActive
returns true if both the
Sequence
to be rendered and the
SequenceRenderer
are not null.boolean
value.Copyright © 2014 BioJava. All rights reserved.