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
Symbols 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 Symbols rendered depends on the
width of the panel and the scale. Resizing the panel will cause the
number of Symbols 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.AccessibleJComponentContainer.AccessibleAWTContainerComponent.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategySequenceRenderContext.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_WINDOWBOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENTLAYOUT, REPAINTBOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WESTABORT, 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 SequenceViewerEvents. |
void |
addSequenceViewerMotionListener(SequenceViewerMotionListener svml)
addSequenceViewerMotionListener adds a listener for
mouse motion SequenceViewerEvents. |
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
Features 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 Symbols
belonging to the currently rendered Sequence. |
int |
getSymbolTranslation()
getSymbolTranslation returns the current
translation in Symbols which will be applied when
rendering. |
SequenceRenderContext.Border |
getTrailingBorder()
getTrailingBorder returns the trailing border. |
int |
getVisibleSymbolCount()
getVisibleSymbolCount returns the
maximum number of Symbols 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 SequenceViewerEvents. |
void |
removeSequenceViewerMotionListener(SequenceViewerMotionListener svml)
addSequenceViewerMotionListener removes a listener for
mouse motion SequenceViewerEvents. |
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
Symbols 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, updateUIadd, 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, validateTreeaction, 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, transferFocusUpCycleclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitgetFontpublic 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 Symbols
belonging to the currently rendered Sequence.getSymbols in interface SequenceRenderContextSymbolList.public FeatureHolder getFeatures()
getFeatures returns all of the
Features belonging to the currently rendered
Sequence.getFeatures in interface SequenceRenderContextFeatureHolder.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.Borders 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 SequenceRenderContextRangeLocation.public int getDirection()
getDirection returns the direction in which this
context expects sequences to be rendered - HORIZONTAL or
VERTICAL.getDirection in interface SequenceRenderContextint.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 SequenceRenderContextdouble.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 Symbols 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
Symbols 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 SequenceRenderContextSequenceRenderContext.Border.public SequenceRenderContext.Border getTrailingBorder()
getTrailingBorder returns the trailing border.getTrailingBorder in interface SequenceRenderContextSequenceRenderContext.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 usedChangeVetoExceptionpublic 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 SequenceRenderContextsequencePos - an int.double.public int graphicsToSequence(double graphicsPos)
graphicsToSequence converts a graphical position
to a sequence index.graphicsToSequence in interface SequenceRenderContextgraphicsPos - a double.int.public int graphicsToSequence(Point2D point)
graphicsToSequence converts a graphical position
to a sequence index.graphicsToSequence in interface SequenceRenderContextpoint - the Point2D to transformint.public int getVisibleSymbolCount()
getVisibleSymbolCount returns the
maximum number of Symbols 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 Symbols rendered will be less.int.public void paintComponent(Graphics g)
paintComponent paints this component.paintComponent in class JComponentg - 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 Changeablecl - a ChangeListener.public void addChangeListener(ChangeListener cl, ChangeType ct)
addChangeListener adds a listener for specific
types of change.addChangeListener in interface Changeablecl - a ChangeListener.ct - a ChangeType.public void removeChangeListener(ChangeListener cl)
removeChangeListener removes a listener.removeChangeListener in interface Changeablecl - a ChangeListener.public void removeChangeListener(ChangeListener cl, ChangeType ct)
removeChangeListener removes a listener.removeChangeListener in interface Changeablecl - a ChangeListener.ct - a ChangeType.public boolean isUnchanging(ChangeType ct)
ChangeableA 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 Changeablect - the ChangeType to checkpublic void addSequenceViewerListener(SequenceViewerListener svl)
addSequenceViewerListener adds a listener for
mouse click SequenceViewerEvents.svl - a SequenceViewerListener.public void removeSequenceViewerListener(SequenceViewerListener svl)
removeSequenceViewerListener removes a listener
for mouse click SequenceViewerEvents.svl - a SequenceViewerListener.public void addSequenceViewerMotionListener(SequenceViewerMotionListener svml)
addSequenceViewerMotionListener adds a listener for
mouse motion SequenceViewerEvents.svml - a SequenceViewerMotionListener.public void removeSequenceViewerMotionListener(SequenceViewerMotionListener svml)
addSequenceViewerMotionListener removes a listener for
mouse motion SequenceViewerEvents.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.