info.bioinfweb.treegraph.gui.treeframe
Class TreeViewPanel

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JPanel
                  extended by info.bioinfweb.treegraph.gui.treeframe.TreeViewPanel
All Implemented Interfaces:
DocumentView, info.webinsel.util.swing.scrollpaneselector.ScrollPaneSelectable, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible, javax.swing.Scrollable

public class TreeViewPanel
extends javax.swing.JPanel
implements DocumentView, javax.swing.Scrollable, info.webinsel.util.swing.scrollpaneselector.ScrollPaneSelectable

Shows the tree saved in the associated document in a swing GUI. This class acts as the view-element in the MVC-praradigma, while the model is a Document-class.

Author:
Ben Stöver
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
 
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
static java.awt.Color ALTERNATE_SELECTION_COLOR
           
static java.awt.Color DEFAULT_SELECTION_COLOR
           
private  Document document
           
static int MAX_SELECTION_COLOR_DIF
           
static float MIN_ZOOM
           
private  PositionPaintType painterType
           
static float PIXELS_PER_MM_100
           
private  TreeSelection selection
           
static float SELECTION_MARGIN
           
private static long serialVersionUID
           
static java.awt.Dimension START_MIN_SIZE
           
private  java.util.Vector<TreeViewPanelListener> treeViewListeners
           
private  float zoom
           
 
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
private TreeViewPanel()
           
  TreeViewPanel(Document document)
          Creates a new swing-panel which shows the tree contained in document.
 
Method Summary
 void addTreeViewListener(TreeViewPanelListener listener)
           
private  void assignPaintSize()
           
 void changeHappened(javax.swing.event.ChangeEvent e)
           
 void fireSelectionChanged()
           
private  void fireSizeChanged()
           
private  void fireZoomChanged()
           
 Document getDocument()
          Returns the currently associated document.
 PositionPaintType getPainterType()
           
 java.awt.Dimension getPreferredScrollableViewportSize()
           
 int getScrollableBlockIncrement(java.awt.Rectangle visibleRect, int orientation, int direction)
           
 boolean getScrollableTracksViewportHeight()
           
 boolean getScrollableTracksViewportWidth()
           
 int getScrollableUnitIncrement(java.awt.Rectangle arg0, int arg1, int arg2)
           
 TreeSelection getSelection()
           
 java.lang.String getToolTipText(java.awt.event.MouseEvent e)
          This method is overwriten to show the internal node names or label IDs as tooltip text.
 float getZoom()
           
protected  void paintComponent(java.awt.Graphics g)
           
 void paintPreview(java.awt.Graphics2D g, double scale)
           
 float pixelsPerMillimeter()
           
 boolean removeTreeViewListener(TreeViewPanelListener listener)
           
 void scrollElementToVisible(PaintableElement element)
           
static java.awt.Color selectionColor(java.awt.Color bgColor)
           
 void setDocument(Document document)
          Sets this view to a new model and repaints the element using the data of the new document.
 void setPainterType(PositionPaintType type)
           
 void setZoom(float zoom)
           
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
 
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, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintImmediately, paintImmediately, 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
 
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
 

Field Detail

serialVersionUID

private static final long serialVersionUID
See Also:
Constant Field Values

START_MIN_SIZE

public static final java.awt.Dimension START_MIN_SIZE

SELECTION_MARGIN

public static final float SELECTION_MARGIN
See Also:
Constant Field Values

PIXELS_PER_MM_100

public static final float PIXELS_PER_MM_100
See Also:
Constant Field Values

MIN_ZOOM

public static final float MIN_ZOOM
See Also:
Constant Field Values

DEFAULT_SELECTION_COLOR

public static final java.awt.Color DEFAULT_SELECTION_COLOR

ALTERNATE_SELECTION_COLOR

public static final java.awt.Color ALTERNATE_SELECTION_COLOR

MAX_SELECTION_COLOR_DIF

public static final int MAX_SELECTION_COLOR_DIF
See Also:
Constant Field Values

selection

private TreeSelection selection

document

private Document document

zoom

private float zoom

painterType

private PositionPaintType painterType

treeViewListeners

private java.util.Vector<TreeViewPanelListener> treeViewListeners
Constructor Detail

TreeViewPanel

private TreeViewPanel()

TreeViewPanel

public TreeViewPanel(Document document)
Creates a new swing-panel which shows the tree contained in document. This class registers itsself as a view at the given document.

Parameters:
document - the document to show
treePainter - the paint-strategy to paint the tree
Method Detail

pixelsPerMillimeter

public float pixelsPerMillimeter()

getSelection

public TreeSelection getSelection()

getDocument

public Document getDocument()
Returns the currently associated document.

Returns:
the currently assicoated document

setDocument

public void setDocument(Document document)
Sets this view to a new model and repaints the element using the data of the new document. This view is automatically unregistered at the old and registered at the new document.

Parameters:
document - the model to assiciate with

getZoom

public float getZoom()

setZoom

public void setZoom(float zoom)

getPainterType

public PositionPaintType getPainterType()

setPainterType

public void setPainterType(PositionPaintType type)

addTreeViewListener

public void addTreeViewListener(TreeViewPanelListener listener)

removeTreeViewListener

public boolean removeTreeViewListener(TreeViewPanelListener listener)

fireSelectionChanged

public void fireSelectionChanged()

fireZoomChanged

private void fireZoomChanged()

fireSizeChanged

private void fireSizeChanged()

assignPaintSize

private void assignPaintSize()

paintComponent

protected void paintComponent(java.awt.Graphics g)
Overrides:
paintComponent in class javax.swing.JComponent

paintPreview

public void paintPreview(java.awt.Graphics2D g,
                         double scale)
Specified by:
paintPreview in interface info.webinsel.util.swing.scrollpaneselector.ScrollPaneSelectable

changeHappened

public void changeHappened(javax.swing.event.ChangeEvent e)
Specified by:
changeHappened in interface DocumentView

getPreferredScrollableViewportSize

public java.awt.Dimension getPreferredScrollableViewportSize()
Specified by:
getPreferredScrollableViewportSize in interface javax.swing.Scrollable

getScrollableBlockIncrement

public int getScrollableBlockIncrement(java.awt.Rectangle visibleRect,
                                       int orientation,
                                       int direction)
Specified by:
getScrollableBlockIncrement in interface javax.swing.Scrollable

getScrollableTracksViewportHeight

public boolean getScrollableTracksViewportHeight()
Specified by:
getScrollableTracksViewportHeight in interface javax.swing.Scrollable

getScrollableTracksViewportWidth

public boolean getScrollableTracksViewportWidth()
Specified by:
getScrollableTracksViewportWidth in interface javax.swing.Scrollable

getScrollableUnitIncrement

public int getScrollableUnitIncrement(java.awt.Rectangle arg0,
                                      int arg1,
                                      int arg2)
Specified by:
getScrollableUnitIncrement in interface javax.swing.Scrollable

getToolTipText

public java.lang.String getToolTipText(java.awt.event.MouseEvent e)
This method is overwriten to show the internal node names or label IDs as tooltip text.

Overrides:
getToolTipText in class javax.swing.JComponent
Parameters:
e - - the MouseEvent that lead to the call of this method
See Also:
JComponent.getToolTipText(java.awt.event.MouseEvent)

scrollElementToVisible

public void scrollElementToVisible(PaintableElement element)

selectionColor

public static java.awt.Color selectionColor(java.awt.Color bgColor)