## org.biojava.bio.gui
Class DistributionLogo

    java.lang.Object
      |
      +--java.awt.Component
            |
            +--java.awt.Container
                  |
                  +--javax.swing.JComponent
                        |
                        +--org.biojava.bio.gui.DistributionLogo

public class DistributionLogo
extends javax.swing.JComponent

The gui component for rendering a DistributionLogo. By default, this uses the text logo style - with letters stacked on top of one another, scaled by the total information in the dist, and uses a PlainStyle colorer that outlines in black, and fills in grey.

Author:
  Matthew Pocock
See Also:
  Serialized Form

Inner classes inherited from class javax.swing.JComponent
`javax.swing.JComponent.AccessibleJComponent`

Fields inherited from class javax.swing.JComponent
`accessibleContext, 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
`BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT`

Constructor Summary
`DistributionLogo()` Create a new DistributionLogo object.

Method Summary
`double` `entropy(Symbol r)` Calculate the information content of a symbol in bits.
`Distribution` `getDistribution()` Retrieve the currently rendered dist.
`LogoPainter` `getLogoPainter()` Retrieve the current logo painter.
`SymbolStyle` `getStyle()` Retrieve the current style.
`void` `paintComponent(java.awt.Graphics g)` Transforms the graphics context so that it is in bits space, and then requests the logo painter to fill the area.
`void` `setDistribution(Distribution dist)` Set the dist to render.
`void` `setLogoPainter(LogoPainter logoPainter)` Set the logo painter.
`void` `setStyle(SymbolStyle style)` Set the symbol style.
`double` `totalBits()` Retrieve the maximal number of bits possible for this type of dist.
`double` `totalInformation()` Calculates the total information of the dist in bits.

Methods inherited from class javax.swing.JComponent

`addAncestorListener, addNotify, addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getAccessibleContext, getActionForKeyStroke, getAlignmentX, getAlignmentY, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getDebugGraphicsOptions, getGraphics, getHeight, getInsets, getInsets, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getUIClassID, getVisibleRect, getWidth, getX, getY, grabFocus, hasFocus, isDoubleBuffered, isFocusCycleRoot, isFocusTraversable, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintImmediately, paintImmediately, paramString, print, printAll, processComponentKeyEvent, processFocusEvent, processKeyEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setDebugGraphicsOptions, setDoubleBuffered, setEnabled, setFont, setForeground, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setUI, setVisible, unregisterKeyboardAction, update, updateUI`

Methods inherited from class java.awt.Container

`add, add, add, add, add, addContainerListener, addImpl, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getLayout, insets, invalidate, isAncestorOf, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setCursor, setLayout, validate, validateTree`

Methods inherited from class java.awt.Component

`action, add, addComponentListener, addFocusListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, getBackground, getBounds, getColorModel, getComponentOrientation, getCursor, getDropTarget, getFont, getFontMetrics, getForeground, getInputContext, getInputMethodRequests, getLocale, getLocation, getLocationOnScreen, getName, getParent, getPeer, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hide, imageUpdate, inside, isDisplayable, isEnabled, isLightweight, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processInputMethodEvent, processMouseEvent, remove, removeComponentListener, removeFocusListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setDropTarget, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Constructor Detail

### DistributionLogo

    public DistributionLogo()

  Create a new DistributionLogo object. It will set up all the properties except the dist to render.

Method Detail

### getDistribution

    public Distribution getDistribution()

  Retrieve the currently rendered dist.
  Returns:
    a Distribution

### setDistribution

    public void setDistribution(Distribution dist)
                         throws IllegalAlphabetException

  Set the dist to render.

  The dist must be over a FiniteAlphabet so that we can draw the numbers for each Symbol.

  Parameters:
    `dist` - the new Distribution to render

### getLogoPainter

    public LogoPainter getLogoPainter()

  Retrieve the current logo painter.
  Returns:
    the LogoPainter used to render the dist

### setLogoPainter

    public void setLogoPainter(LogoPainter logoPainter)

  Set the logo painter.

  This will alter the way that the dist is rendered to screen.

  Parameters:
    `logoPainter` - the new logoPainter

### getStyle

    public SymbolStyle getStyle()

  Retrieve the current style.
  Returns:
    the current SymbolStyle

### setStyle

    public void setStyle(SymbolStyle style)

  Set the symbol style.

  This will change the outline and fill paints for the logos

  Parameters:
    `style` - the new SymbolStyle to use

### entropy

    public double entropy(Symbol r)
                   throws IllegalSymbolException

  Calculate the information content of a symbol in bits.
  Parameters:
    `r` - the symbol to calculate for
  Throws:
    IllegalSymbolException - if r is not within the dist.

### totalBits

    public double totalBits()

  Retrieve the maximal number of bits possible for this type of dist.
  Returns:
    maximum bits as a double

### totalInformation

    public double totalInformation()

  Calculates the total information of the dist in bits.

  This calculates `totalBits - sum_r(entropy(r))`

  Returns:
    the total information in the dist

### paintComponent

    public void paintComponent(java.awt.Graphics g)

  Transforms the graphics context so that it is in bits space, and then requests the logo painter to fill the area.
  Overrides:
    paintComponent in class javax.swing.JComponent