Package 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.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
-
-
Field Summary
-
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
-
-
Constructor Summary
Constructors Constructor Description DistributionLogo()
Create a new DistributionLogo object.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description 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, 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
-
-
-
-
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 fordist
- theDistribution
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 classJComponent
-
getRenderingHints
public RenderingHints getRenderingHints()
-
setRenderingHints
public void setRenderingHints(RenderingHints renderingHints)
-
-