org.biojava.bio.gui
Class DistributionLogo

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by org.biojava.bio.gui.DistributionLogo
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable

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

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 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.
 java.awt.RenderingHints getRenderingHints()
           
 SymbolStyle getStyle()
          Retrieve the current style.
 boolean isScaleByInformation()
           
 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 setBlockPainter(BlockPainter blockPainter)
           
 void setDistribution(Distribution dist)
           Set the dist to render.
 void setLogoPainter(LogoPainter logoPainter)
           Set the logo painter.
 void setRenderingHints(java.awt.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, 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, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, 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, 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, transferFocusBackward, 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(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

getRenderingHints

public java.awt.RenderingHints getRenderingHints()

setRenderingHints

public void setRenderingHints(java.awt.RenderingHints renderingHints)