## org.biojava.bio.gui
Class DistributionLogo

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

All Implemented Interfaces:
  ImageObserver, MenuContainer, Serializable

    public class DistributionLogo

extends 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

Nested Class Summary

Nested 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.BltBufferStrategy, Component.FlipBufferStrategy`

Field Summary

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`

Fields inherited from interface java.awt.image.ImageObserver
`ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH`

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

Method Summary
`static double` `entropy(Distribution dist, Symbol s)` Calculate the information content of a symbol in bits.
`BlockPainter` `getBlockPainter()`
`Distribution` `getDistribution()` Retrieve the currently rendered dist.
`LogoPainter` `getLogoPainter()` Retrieve the current logo painter.
`RenderingHints` `getRenderingHints()`
`SymbolStyle` `getStyle()` Retrieve the current style.
`boolean` `isScaleByInformation()`
`void` `paintComponent(Graphics g)` Transforms the graphics context so that it is in bits space, and then requests the logo painter to fill the area.
`void` `setBlockPainter(BlockPainter blockPainter)`
`void` `setDistribution(Distribution dist)` Set the dist to render.
`void` `setLogoPainter(LogoPainter logoPainter)` Set the logo painter.
`void` `setRenderingHints(RenderingHints renderingHints)`
`void` `setScaleByInformation(boolean scale)`
`void` `setStyle(SymbolStyle style)` Set the symbol style.
`static double` `totalBits(Distribution dist)` Retrieve the maximal number of bits possible for this type of dist.
`static double` `totalInformation(Distribution dist)` Calculates the total information of the dist in bits.

Methods inherited from class javax.swing.JComponent

`addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getAccessibleContext, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, 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, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, 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, transferFocusBackward, 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, 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, hide, 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, transferFocusUpCycle`

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
  Throws:
    `IllegalAlphabetException`

### 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

### isScaleByInformation

    public boolean isScaleByInformation()

### setScaleByInformation

    public void setScaleByInformation(boolean scale)

### getBlockPainter

    public BlockPainter getBlockPainter()

### setBlockPainter

    public void setBlockPainter(BlockPainter blockPainter)

### entropy

    public static double entropy(Distribution dist,
                                 Symbol s)
                          throws IllegalSymbolException

  Calculate the information content of a symbol in bits.

  Parameters:
    `s` - the symbol to calculate for
    `dist` - the `Distribution` that the symbol comes from and in whose context the information content will be calculated.
  Throws:
    `IllegalSymbolException` - if r is not within the dist.

### totalBits

    public static double totalBits(Distribution dist)

  Retrieve the maximal number of bits possible for this type of dist.

  Returns:
    maximum bits as a double

### totalInformation

    public static double totalInformation(Distribution dist)

  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(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 `JComponent`

### getRenderingHints

    public RenderingHints getRenderingHints()

### setRenderingHints

    public void setRenderingHints(RenderingHints renderingHints)