weka.gui.treevisualizer
Class TreeVisualizer

java.lang.Object
  |
  +--java.awt.Component
        |
        +--java.awt.Container
              |
              +--javax.swing.JComponent
                    |
                    +--javax.swing.JPanel
                          |
                          +--weka.gui.treevisualizer.TreeVisualizer
All Implemented Interfaces:
javax.accessibility.Accessible, java.awt.event.ActionListener, java.util.EventListener, java.awt.image.ImageObserver, java.awt.event.ItemListener, java.awt.MenuContainer, java.awt.event.MouseListener, java.awt.event.MouseMotionListener, java.io.Serializable

public class TreeVisualizer
extends javax.swing.JPanel
implements java.awt.event.MouseMotionListener, java.awt.event.MouseListener, java.awt.event.ActionListener, java.awt.event.ItemListener

Class for displaying a Node structure in Swing.

To work this class simply create an instance of it.

Assign it to a window or other such object.

Resize it to the desired size.

When using the Displayer hold the left mouse button to drag the tree around.

Click the left mouse button with ctrl to shrink the size of the tree by half.

Click and drag with the left mouse button and shift to draw a box, when the left mouse button is released the contents of the box will be magnified to fill the screen.

Click the right mouse button to bring up a menu.

Most options are self explanatory.

Select Auto Scale to set the tree to it's optimal display size.

Author:
Malcolm Ware (mfw4@cs.waikato.ac.nz)
See Also:
Serialized Form

Inner classes inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
 
Inner classes inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Inner classes inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Inner classes inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent
 
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
TreeVisualizer(TreeDisplayListener tdl, Node n, NodePlace p)
          Constructs Displayer with the specified Node as the top of the tree, and uses the NodePlacer to place the Nodes.
TreeVisualizer(TreeDisplayListener tdl, java.lang.String dot, NodePlace p)
          Constructs Displayer to display a tree provided in a dot format.
 
Method Summary
 void actionPerformed(java.awt.event.ActionEvent e)
          Performs the action associated with the ActionEvent.
 void itemStateChanged(java.awt.event.ItemEvent e)
          Performs the action associated with the ItemEvent.
static void main(java.lang.String[] args)
          Main method for testing this class.
 void mouseClicked(java.awt.event.MouseEvent e)
          Does nothing.
 void mouseDragged(java.awt.event.MouseEvent e)
          Performs intermediate updates to what the user wishes to do.
 void mouseEntered(java.awt.event.MouseEvent e)
          Does nothing.
 void mouseExited(java.awt.event.MouseEvent e)
          Does nothing.
 void mouseMoved(java.awt.event.MouseEvent e)
          Does nothing.
 void mousePressed(java.awt.event.MouseEvent e)
          Determines what action the user wants to perform.
 void mouseReleased(java.awt.event.MouseEvent e)
          Performs the final stages of what the user wants to perform.
 void paintComponent(java.awt.Graphics g)
          Updates the screen contents.
 void setHighlight(java.lang.String id)
          Set the highlight for the node with the given id
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUIClassID, paramString, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getDebugGraphicsOptions, getGraphics, getHeight, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getVerifyInputWhenFocusTarget, getVisibleRect, getWidth, getX, getY, grabFocus, hasFocus, hide, isDoubleBuffered, isFocusCycleRoot, isFocusTraversable, isLightweightComponent, isManagingFocus, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processFocusEvent, processKeyBinding, processKeyEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setDebugGraphicsOptions, setDoubleBuffered, setEnabled, setFont, setForeground, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
 
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, setLayout, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, getBackground, getBounds, getColorModel, getComponentOrientation, getCursor, getDropTarget, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getInputContext, getInputMethodRequests, getLocale, getLocation, getLocationOnScreen, getName, getParent, getPeer, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, 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, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, 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

TreeVisualizer

public TreeVisualizer(TreeDisplayListener tdl,
                      java.lang.String dot,
                      NodePlace p)
Constructs Displayer to display a tree provided in a dot format. Uses the NodePlacer to place the Nodes.
Parameters:
tdl - listener
dot - string containing the dot representation of the tree to display
p - the algorithm to be used to position the nodes.

TreeVisualizer

public TreeVisualizer(TreeDisplayListener tdl,
                      Node n,
                      NodePlace p)
Constructs Displayer with the specified Node as the top of the tree, and uses the NodePlacer to place the Nodes.
Parameters:
tdl - listener.
n - the top Node of the tree to be displayed.
p - the algorithm to be used to position the nodes.
Method Detail

actionPerformed

public void actionPerformed(java.awt.event.ActionEvent e)
Performs the action associated with the ActionEvent.
Specified by:
actionPerformed in interface java.awt.event.ActionListener
Parameters:
e - the action event.

itemStateChanged

public void itemStateChanged(java.awt.event.ItemEvent e)
Performs the action associated with the ItemEvent.
Specified by:
itemStateChanged in interface java.awt.event.ItemListener
Parameters:
e - the item event.

mouseClicked

public void mouseClicked(java.awt.event.MouseEvent e)
Does nothing.
Specified by:
mouseClicked in interface java.awt.event.MouseListener
Parameters:
e - the mouse event.

mousePressed

public void mousePressed(java.awt.event.MouseEvent e)
Determines what action the user wants to perform.
Specified by:
mousePressed in interface java.awt.event.MouseListener
Parameters:
e - the mouse event.

mouseReleased

public void mouseReleased(java.awt.event.MouseEvent e)
Performs the final stages of what the user wants to perform.
Specified by:
mouseReleased in interface java.awt.event.MouseListener
Parameters:
e - the mouse event.

mouseDragged

public void mouseDragged(java.awt.event.MouseEvent e)
Performs intermediate updates to what the user wishes to do.
Specified by:
mouseDragged in interface java.awt.event.MouseMotionListener
Parameters:
e - the mouse event.

mouseMoved

public void mouseMoved(java.awt.event.MouseEvent e)
Does nothing.
Specified by:
mouseMoved in interface java.awt.event.MouseMotionListener
Parameters:
e - the mouse event.

mouseEntered

public void mouseEntered(java.awt.event.MouseEvent e)
Does nothing.
Specified by:
mouseEntered in interface java.awt.event.MouseListener
Parameters:
e - the mouse event.

mouseExited

public void mouseExited(java.awt.event.MouseEvent e)
Does nothing.
Specified by:
mouseExited in interface java.awt.event.MouseListener
Parameters:
e - the mouse event.

setHighlight

public void setHighlight(java.lang.String id)
Set the highlight for the node with the given id
Parameters:
id - the id of the node to set the highlight for

paintComponent

public void paintComponent(java.awt.Graphics g)
Updates the screen contents.
Overrides:
paintComponent in class javax.swing.JComponent
Parameters:
g - the drawing surface.

main

public static void main(java.lang.String[] args)
Main method for testing this class.
Parameters:
args - first argument should be the name of a file that contains a tree discription in dot format.