Class SequencePanel
- All Implemented Interfaces:
ImageObserver
,MenuContainer
,Serializable
,SwingConstants
,SequenceRenderContext
,Changeable
A SequencePanel 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. It also has a lines property that controls how to wrap the sequence off one end and onto the other.
Each line in the SequencePanel is broken down into a list of strips, each rendered by an individual SequenceRenderer object. You could add a SequenceRenderer that draws on genes, another that draws repeats and another that prints out the DNA sequence. They are responsible for rendering their view of the sequence in the place that the SequencePanel positions them.
- Author:
- Thomas Down, Matthew Pocock, David Huen
- See Also:
-
Nested Class Summary
Nested ClassesNested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
Nested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainer
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
-
Field Summary
FieldsFields inherited from class javax.swing.JComponent
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
Fields inherited from class java.awt.Component
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
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 -
Method Summary
Modifier and TypeMethodDescriptionprotected void
void
Add a listener that will be informed of all changes.void
Add a listener that will be informed of changes of a given type.void
void
protected int[]
calcDist()
boolean
protected ChangeSupport
int
Retrieve the current rendering direction.The features to render.Retrieve the object that encapsulates the leading border area - the space before sequence information is rendered.getRange()
The range of the SymbolList to render.double
getScale()
Retrieve the current scale.Retrieve the currently rendered SymbolListRetrieve the object that encapsulates the trailing border area - the space after sequence information is rendered.int
graphicsToSequence
(double gPos) Converts a graphical position into a sequence coordinate.int
graphicsToSequence
(Point2D point) Converts a graphical position into a sequence coordinate.protected boolean
int
hashCode()
protected boolean
protected boolean
isActive()
boolean
A particular ChangeType can never be raised by this Changeable.void
Paint this component.void
Remove a listener that was interested in all types of changes.void
Remove a listener that was interested in a specific types of changes.void
void
void
double
sequenceToGraphics
(int seqPos) Converts a sequence index into a graphical coordinate.void
setDirection
(int dir) Set the direction that this SequencePanel renders in.void
setRange
(RangeLocation range) void
void
setRenderingHints
(RenderingHints hints) Use this to switch on effects like Anti-aliasing etcvoid
setScale
(double scale) Set the scale.void
Set the SymboList to be rendered.Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, 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, getUI, 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
Methods inherited from class java.awt.Container
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
Methods inherited from class java.awt.Component
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, getAccessibleContext, 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, 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, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.biojava.bio.gui.sequence.SequenceRenderContext
getFont
-
Field Details
-
RENDERER
-
-
Constructor Details
-
SequencePanel
public SequencePanel()Create a new SequencePanel.
-
-
Method Details
-
setRenderingHints
Use this to switch on effects like Anti-aliasing etc- Parameters:
hints
- the desired rendering properties
-
getRenderingHints
- Returns:
- the current rendering properties
-
addSequenceViewerListener
-
removeSequenceViewerListener
-
addSequenceViewerMotionListener
-
removeSequenceViewerMotionListener
-
hasChangeListeners
-
getChangeSupport
-
hasListeners
-
addChangeListener
Description copied from interface:Changeable
Add a listener that will be informed of all changes.- Specified by:
addChangeListener
in interfaceChangeable
- Parameters:
cl
- the ChangeListener to add
-
addChangeListener
Description copied from interface:Changeable
Add a listener that will be informed of changes of a given type.- Specified by:
addChangeListener
in interfaceChangeable
- Parameters:
cl
- the ChangeListenerct
- the ChangeType it is to be informed of
-
removeChangeListener
Description copied from interface:Changeable
Remove a listener that was interested in all types of changes.- Specified by:
removeChangeListener
in interfaceChangeable
- Parameters:
cl
- a ChangeListener to remove
-
removeChangeListener
Description copied from interface:Changeable
Remove a listener that was interested in a specific types of changes.- Specified by:
removeChangeListener
in interfaceChangeable
- Parameters:
cl
- a ChangeListener to removect
- the ChangeType that it was interested in
-
isUnchanging
Description copied from interface: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.
- Specified by:
isUnchanging
in interfaceChangeable
- Parameters:
ct
- the ChangeType to check- Returns:
- true if ChangeEvents of this type are guaranteed to never be fired
-
setSequence
Set the SymboList to be rendered. This symbol list will be passed onto the SequenceRenderer instances registered with this SequencePanel.- Parameters:
s
- the SymboList to render
-
getSequence
-
getSymbols
Retrieve the currently rendered SymbolList- Specified by:
getSymbols
in interfaceSequenceRenderContext
- Returns:
- the current SymbolList
-
getFeatures
Description copied from interface:SequenceRenderContext
The features to render.- Specified by:
getFeatures
in interfaceSequenceRenderContext
- Returns:
- a FeatureHolder with the Features to render
-
setRange
-
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
-
setDirection
Set the direction that this SequencePanel renders in. The direction can be one of HORIZONTAL or VERTICAL. Once the direction is set, the display will redraw. HORIZONTAL represents left-to-right rendering. VERTICAL represents AceDB-style vertical rendering.- Parameters:
dir
- the new rendering direction- Throws:
IllegalArgumentException
-
getDirection
Retrieve the current rendering direction.- Specified by:
getDirection
in interfaceSequenceRenderContext
- Returns:
- the rendering direction (one of HORIZONTAL and VERTICAL)
-
setScale
Set the scale.The scale parameter is interpreted as the number of pixels per symbol. This may take on a wide range of values - for example, to render the symbols as text, you will need a scale of > 8, where as to render chromosome 1 you will want a scale < 0.00000001
- Parameters:
scale
- the new pixels-per-symbol ratio
-
getScale
Retrieve the current scale.- Specified by:
getScale
in interfaceSequenceRenderContext
- Returns:
- the number of pixels used to render one symbol
-
getLeadingBorder
Retrieve the object that encapsulates the leading border area - the space before sequence information is rendered.- Specified by:
getLeadingBorder
in interfaceSequenceRenderContext
- Returns:
- a SequenceRenderContext.Border instance
-
getTrailingBorder
Retrieve the object that encapsulates the trailing border area - the space after sequence information is rendered.- Specified by:
getTrailingBorder
in interfaceSequenceRenderContext
- Returns:
- a SequenceRenderContext.Border instance
-
paintComponent
Paint this component.This calls the paint method of the currently registered SequenceRenderer after setting up the graphics appropriately.
- Overrides:
paintComponent
in classJComponent
-
setRenderer
- Throws:
ChangeVetoException
-
_setRenderer
-
sequenceToGraphics
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:
seqPos
- Index within the sequence- Returns:
- Equivalent graphical position in pixels
-
graphicsToSequence
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:
gPos
- A pixel position- Returns:
- The corresponding sequence index
-
graphicsToSequence
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
-
resizeAndValidate
-
calcDist
-
isActive
-
equals
-
hashCode
-