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