Class PairwiseSequencePanel

  • All Implemented Interfaces:
    java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.swing.SwingConstants, PairwiseRenderContext, SequenceRenderContext, Changeable

    public class PairwiseSequencePanel
    extends javax.swing.JComponent
    implements PairwiseRenderContext, Changeable, java.io.Serializable

    A PairwiseSequencePanel is a panel that displays a pair of sequences; one sequence (the primary) may be either left-to-right (HORIZONTAL) or from top-to-bottom (VERTICAL). The other sequence (secondary) will then occupy the remaining direction. It has an associated scale which is the number of pixels per symbol and applies to both sequences. The leading and trailing borders apply to the primary sequence only.

    The primary purpose of this component is to provide a means for representing graphically comparisons between two sequences. This could be anything from traditional dotplots (or variants created with lines) to a more complex layered plot involving superimposed renderers.

    Each sequence has a translation which is the number of Symbols to skip before rendering starts. In order to produce a scrolling effect, the setSymbolTranslation or setSecondarySymbolTranslation method may be hooked up to an Adjustable such as JScrollBar or to an event listener.

    The exact number of Symbols rendered in each sequence depends on the dimensions 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.

    Since:
    1.2
    Author:
    Keith James, Matthew Pocock
    See Also:
    Serialized Form
    • Nested Class Summary

      • Nested classes/interfaces inherited from class javax.swing.JComponent

        javax.swing.JComponent.AccessibleJComponent
      • Nested classes/interfaces inherited from class java.awt.Container

        java.awt.Container.AccessibleAWTContainer
      • Nested classes/interfaces inherited from class java.awt.Component

        java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
    • Field Summary

      Fields 
      Modifier and Type Field 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.
      • Fields 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 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
      PairwiseSequencePanel()
      Creates a new PairwiseSequencePanel with the default settings (primary sequence direction HORIZONTAL, scale 10.0 pixels per symbol, symbol translation 0, secondary symbol translation 0, leading border 0.0, trailing border 0.0, 12 point sanserif font).
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method 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 the sequence 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 of the primary sequence.
      RangeLocation getRange()
      getRange returns a RangeLocation representing the region of the sequence currently being rendered.
      PairwiseSequenceRenderer getRenderer()
      getRenderer returns the current PairwiseSequenceRenderer.
      java.awt.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.
      int getSecondaryDirection()
      getSecondaryDirection returns the direction in which this context expects the secondary sequence to be rendered - HORIZONTAL or VERTICAL.
      FeatureHolder getSecondaryFeatures()
      getSecondaryFeatures returns all of the Features belonging to the currently rendered secondary Sequence.
      RangeLocation getSecondaryRange()
      getSecondaryRange returns a RangeLocation representing the region of the secondary sequence currently being rendered.
      Sequence getSecondarySequence()
      getSecondarySequence returns the entire secondary Sequence currently being rendered.
      SymbolList getSecondarySymbols()
      getSecondarySymbols returns all of the Symbols belonging to the currently rendered secondary Sequence.
      int getSecondarySymbolTranslation()
      getSecondarySymbolTranslation returns the current translation in Symbols which will be applied when rendering.
      Sequence 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 of the primary sequence.
      int getVisibleSecondarySymbolCount()
      getVisibleSecondarySymbolCount returns the maximum number of secondary Symbols which can be rendered in the visible area (excluding all borders) of the PairwiseSequencePanel at the current scale.
      int getVisibleSymbolCount()
      getVisibleSymbolCount returns the maximum number of Symbols which can be rendered in the visible area (excluding all borders) of the PairwiseSequencePanel at the current scale.
      int graphicsToSecondarySequence​(double graphicsPos)
      graphicsToSecondarySequence converts a graphical position to a secondary sequence index.
      int graphicsToSecondarySequence​(java.awt.Point point)
      graphicsToSecondarySequence converts a graphical position to a secondary sequence index.
      int graphicsToSequence​(double graphicsPos)
      graphicsToSequence converts a graphical position to a sequence index.
      int graphicsToSequence​(java.awt.geom.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 Sequences to be rendered and the PairwiseHomologyRenderer are not null.
      boolean isUnchanging​(ChangeType ct)
      A particular ChangeType can never be raised by this Changeable.
      void paintComponent​(java.awt.Graphics g)  
      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 visible symbol count.
      double secondarySequenceToGraphics​(int sequencePos)
      secondarySequenceToGraphics converts a sequence index to a graphical position.
      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 the sequence - HORIZONTAL or VERTICAL.
      void setRenderer​(PairwiseSequenceRenderer renderer)
      setRenderer sets the current PairwiseSequenceRenderer.
      void setRenderingHints​(java.awt.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 setSecondarySequence​(Sequence sequence)
      setSecondarySequence sets the secondary Sequence to be rendered.
      void setSecondarySymbolTranslation​(int translation)
      setSecondarySymbolTranslation sets the translation in Symbols which will be applied when rendering.
      void setSequence​(Sequence sequence)
      setSequence sets the Sequence to be rendered.
      void setSymbolTranslation​(int translation)
      setSymbolTranslation sets the translation in Symbols which will be applied when rendering.
      • 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, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Field Detail

      • RENDERER

        public static final ChangeType RENDERER
        Constant RENDERER is a ChangeType which indicates a change to the renderer, requiring a layout update.
      • TRANSLATION

        public static final ChangeType TRANSLATION
        Constant TRANSLATION is a ChangeType which indicates a change to the translation, requiring a paint update.
    • Constructor Detail

      • PairwiseSequencePanel

        public PairwiseSequencePanel()
        Creates a new PairwiseSequencePanel with the default settings (primary sequence direction HORIZONTAL, scale 10.0 pixels per symbol, symbol translation 0, secondary symbol translation 0, leading border 0.0, trailing border 0.0, 12 point sanserif font).
    • Method Detail

      • getSequence

        public Sequence getSequence()
        getSequence returns the entire Sequence currently being rendered.
        Returns:
        a Sequence.
      • setSequence

        public void setSequence​(Sequence sequence)
        setSequence sets the Sequence to be rendered.
        Parameters:
        sequence - a Sequence.
      • getSecondarySequence

        public Sequence getSecondarySequence()
        getSecondarySequence returns the entire secondary Sequence currently being rendered.
        Returns:
        a Sequence.
      • setSecondarySequence

        public void setSecondarySequence​(Sequence sequence)
        setSecondarySequence sets the secondary Sequence to be rendered.
        Parameters:
        sequence - a Sequence.
      • getSymbols

        public SymbolList getSymbols()
        getSymbols returns all of the Symbols belonging to the currently rendered Sequence.
        Specified by:
        getSymbols in interface SequenceRenderContext
        Returns:
        a SymbolList.
      • getSecondarySymbols

        public SymbolList getSecondarySymbols()
        getSecondarySymbols returns all of the Symbols belonging to the currently rendered secondary Sequence.
        Specified by:
        getSecondarySymbols in interface PairwiseRenderContext
        Returns:
        a SymbolList.
      • getFeatures

        public FeatureHolder getFeatures()
        getFeatures returns all of the Features belonging to the currently rendered Sequence.
        Specified by:
        getFeatures in interface SequenceRenderContext
        Returns:
        a FeatureHolder.
      • getSecondaryFeatures

        public FeatureHolder getSecondaryFeatures()
        getSecondaryFeatures returns all of the Features belonging to the currently rendered secondary Sequence.
        Specified by:
        getSecondaryFeatures in interface PairwiseRenderContext
        Returns:
        a FeatureHolder.
      • getRange

        public RangeLocation getRange()
        getRange returns a RangeLocation representing the region of the sequence currently being rendered. This is calculated from the size of the PairwiseSequencePanel, the current rendering translation and the current scale. The value will therefore change when the PairwiseSequencePanel is resized or "scrolled" by changing the translation.
        Specified by:
        getRange in interface SequenceRenderContext
        Returns:
        a RangeLocation.
      • getSecondaryRange

        public RangeLocation getSecondaryRange()
        getSecondaryRange returns a RangeLocation representing the region of the secondary sequence currently being rendered. This is calculated from the size of the PairwiseSequencePanel, the current rendering translation and the current scale. The value will therefore change when the PairwiseSequencePanel is resized or "scrolled" by changing the translation.
        Specified by:
        getSecondaryRange in interface PairwiseRenderContext
        Returns:
        a RangeLocation.
      • getDirection

        public int getDirection()
        getDirection returns the direction in which this context expects the sequence to be rendered - HORIZONTAL or VERTICAL.
        Specified by:
        getDirection in interface SequenceRenderContext
        Returns:
        an int.
      • setDirection

        public void setDirection​(int direction)
                          throws java.lang.IllegalArgumentException
        setDirection sets the direction in which this context will render the sequence - HORIZONTAL or VERTICAL.
        Parameters:
        direction - an int.
        Throws:
        java.lang.IllegalArgumentException - if an invalid direction is used.
      • getSecondaryDirection

        public int getSecondaryDirection()
        getSecondaryDirection returns the direction in which this context expects the secondary sequence to be rendered - HORIZONTAL or VERTICAL.
        Specified by:
        getSecondaryDirection in interface PairwiseRenderContext
        Returns:
        an int.
      • getScale

        public double getScale()
        getScale returns the scale in pixels per Symbol.
        Specified by:
        getScale in interface SequenceRenderContext
        Returns:
        a double.
      • setScale

        public void setScale​(double scale)
        setScale sets the scale in pixels per Symbol.
        Parameters:
        scale - a double.
      • getSymbolTranslation

        public int getSymbolTranslation()
        getSymbolTranslation returns the current translation in Symbols which will be applied when rendering. The sequence will be rendered starting at this translation. Values may be from 0 to the length of the rendered sequence.
        Returns:
        an int.
      • setSymbolTranslation

        public void setSymbolTranslation​(int translation)
                                  throws java.lang.IndexOutOfBoundsException
        setSymbolTranslation sets the translation in Symbols which will be applied when rendering. The sequence will be rendered starting at that translation. Values may be from 0 to the length of the rendered sequence.
        Parameters:
        translation - an int.
        Throws:
        java.lang.IndexOutOfBoundsException - if the translation is greater than the sequence length.
      • getSecondarySymbolTranslation

        public int getSecondarySymbolTranslation()
        getSecondarySymbolTranslation returns the current translation in Symbols which will be applied when rendering. The secondary sequence will be rendered starting at this translation. Values may be from 0 to the length of the rendered sequence.
        Returns:
        an int.
      • setSecondarySymbolTranslation

        public void setSecondarySymbolTranslation​(int translation)
                                           throws java.lang.IndexOutOfBoundsException
        setSecondarySymbolTranslation sets the translation in Symbols which will be applied when rendering. The secondary sequence will be rendered starting at that translation. Values may be from 0 to the length of the rendered sequence.
        Parameters:
        translation - an int.
        Throws:
        java.lang.IndexOutOfBoundsException - if the translation is greater than the sequence length.
      • getRenderer

        public PairwiseSequenceRenderer getRenderer()
        getRenderer returns the current PairwiseSequenceRenderer.
        Returns:
        a PairwiseSequenceRenderer.
      • getRenderingHints

        public java.awt.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.
        Returns:
        a RenderingHints.
      • setRenderingHints

        public void setRenderingHints​(java.awt.RenderingHints hints)
        setRenderingHints sets the RenderingHints which will be used by the Graphics2D instances of delegate renderers.
        Parameters:
        hints - a RenderingHints.
      • sequenceToGraphics

        public double sequenceToGraphics​(int sequencePos)
        sequenceToGraphics converts a sequence index to a graphical position.
        Specified by:
        sequenceToGraphics in interface SequenceRenderContext
        Parameters:
        sequencePos - an int.
        Returns:
        a double.
      • secondarySequenceToGraphics

        public double secondarySequenceToGraphics​(int sequencePos)
        secondarySequenceToGraphics converts a sequence index to a graphical position.
        Specified by:
        secondarySequenceToGraphics in interface PairwiseRenderContext
        Parameters:
        sequencePos - an int.
        Returns:
        a double.
      • graphicsToSequence

        public int graphicsToSequence​(double graphicsPos)
        graphicsToSequence converts a graphical position to a sequence index.
        Specified by:
        graphicsToSequence in interface SequenceRenderContext
        Parameters:
        graphicsPos - a double.
        Returns:
        an int.
      • graphicsToSequence

        public int graphicsToSequence​(java.awt.geom.Point2D point)
        graphicsToSequence converts a graphical position to a sequence index.
        Specified by:
        graphicsToSequence in interface SequenceRenderContext
        Parameters:
        point - a graphic position.
        Returns:
        an int.
      • graphicsToSecondarySequence

        public int graphicsToSecondarySequence​(double graphicsPos)
        graphicsToSecondarySequence converts a graphical position to a secondary sequence index.
        Specified by:
        graphicsToSecondarySequence in interface PairwiseRenderContext
        Parameters:
        graphicsPos - a double.
        Returns:
        an int.
      • graphicsToSecondarySequence

        public int graphicsToSecondarySequence​(java.awt.Point point)
        graphicsToSecondarySequence converts a graphical position to a secondary sequence index.
        Specified by:
        graphicsToSecondarySequence in interface PairwiseRenderContext
        Parameters:
        point - a Point.
        Returns:
        an int.
      • getVisibleSymbolCount

        public int getVisibleSymbolCount()
        getVisibleSymbolCount returns the maximum number of Symbols which can be rendered in the visible area (excluding all borders) of the PairwiseSequencePanel at the current scale. Note that if the translation is greater than 0, the actual number of Symbols rendered will be less.
        Returns:
        an int.
      • getVisibleSecondarySymbolCount

        public int getVisibleSecondarySymbolCount()
        getVisibleSecondarySymbolCount returns the maximum number of secondary Symbols which can be rendered in the visible area (excluding all borders) of the PairwiseSequencePanel at the current scale. Note that if the translation is greater than 0, the actual number of Symbols rendered will be less.
        Returns:
        an int.
      • paintComponent

        public void paintComponent​(java.awt.Graphics g)
        Overrides:
        paintComponent in class javax.swing.JComponent
      • resizeAndValidate

        public void resizeAndValidate()
        resizeAndValidate sets the minimum, preferred and maximum sizes of the component according to the current visible symbol count.
      • addChangeListener

        public void addChangeListener​(ChangeListener cl)
        addChangeListener adds a listener for all types of change.
        Specified by:
        addChangeListener in interface Changeable
        Parameters:
        cl - a ChangeListener.
      • addChangeListener

        public void addChangeListener​(ChangeListener cl,
                                      ChangeType ct)
        addChangeListener adds a listener for specific types of change.
        Specified by:
        addChangeListener in interface Changeable
        Parameters:
        cl - a ChangeListener.
        ct - a ChangeType.
      • isUnchanging

        public boolean isUnchanging​(ChangeType ct)
        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 interface Changeable
        Parameters:
        ct - the ChangeType to check
        Returns:
        true if ChangeEvents of this type are guaranteed to never be fired
      • addSequenceViewerListener

        public void addSequenceViewerListener​(SequenceViewerListener svl)
        addSequenceViewerListener adds a listener for mouse click SequenceViewerEvents.
        Parameters:
        svl - a SequenceViewerListener.
      • removeSequenceViewerListener

        public void removeSequenceViewerListener​(SequenceViewerListener svl)
        removeSequenceViewerListener removes a listener for mouse click SequenceViewerEvents.
        Parameters:
        svl - a SequenceViewerListener.
      • addSequenceViewerMotionListener

        public void addSequenceViewerMotionListener​(SequenceViewerMotionListener svml)
        addSequenceViewerMotionListener adds a listener for mouse motion SequenceViewerEvents.
        Parameters:
        svml - a SequenceViewerMotionListener.
      • removeSequenceViewerMotionListener

        public void removeSequenceViewerMotionListener​(SequenceViewerMotionListener svml)
        addSequenceViewerMotionListener removes a listener for mouse motion SequenceViewerEvents.
        Parameters:
        svml - a SequenceViewerMotionListener.
      • getChangeSupport

        protected ChangeSupport getChangeSupport​(ChangeType ct)
        getChangeSupport lazily instantiates a helper for change listeners.
        Parameters:
        ct - a ChangeType.
        Returns:
        a ChangeSupport object.
      • hasListeners

        protected boolean hasListeners()
        hasListeners returns true if there are active listeners for BioJava events.
        Returns:
        a boolean value.
      • isActive

        protected boolean isActive()
        isActive returns true if both the Sequences to be rendered and the PairwiseHomologyRenderer are not null.
        Returns:
        a boolean value.