viceroy.GUI
Class GraphViewer

java.lang.Object
  |
  +--java.awt.Component
        |
        +--java.awt.Container
              |
              +--java.awt.Window
                    |
                    +--java.awt.Frame
                          |
                          +--javax.swing.JFrame
                                |
                                +--viceroy.GUI.GraphViewer
All Implemented Interfaces:
javax.accessibility.Accessible, java.awt.image.ImageObserver, java.awt.MenuContainer, javax.swing.RootPaneContainer, java.io.Serializable, javax.swing.WindowConstants

public class GraphViewer
extends javax.swing.JFrame

Main GUI Class, divided into two major parts: the first is a panel with control to direct the acutal graph, the second contain the actual GraphPanel.

Since:
1.45
Author:
Anat Talmy
, Oren Dobzinski
See Also:
Serialized Form

Nested Class Summary
(package private)  class GraphViewer.BackButtonAdapter
           
(package private)  class GraphViewer.BuildModeComboAdapter
           
(package private)  class GraphViewer.CustomActionAdapter
           
(package private)  class GraphViewer.LookupValAdapter
           
(package private)  class GraphViewer.ModeComboAdapter
           
(package private)  class GraphViewer.NumberOfNodesAdapter
           
(package private)  class GraphViewer.RefreshButtonAdapter
           
(package private)  class GraphViewer.RingRadiusComboAdapter
           
(package private)  class GraphViewer.ShowConnectionsAdapter
           
 class GraphViewer.TextAdapter
           
(package private)  class GraphViewer.ZoomComboAdapter
           
 
Nested classes inherited from class javax.swing.JFrame
javax.swing.JFrame.AccessibleJFrame
 
Nested classes inherited from class java.awt.Frame
java.awt.Frame.AccessibleAWTFrame
 
Nested classes inherited from class java.awt.Window
java.awt.Window.AccessibleAWTWindow
 
Nested classes inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
private  javax.swing.JComboBox actionCombo
          combo-box containing the possible user defined actions for this viewer.
private  javax.swing.JButton actionGoButton
           
private  javax.swing.JButton backButton
          button used to go back in the root list
private  javax.swing.JComboBox buildModeCombo
           
(package private)  javax.swing.JButton connectionButton
          button used to select connection type (sticky, none, all)
private  int connectionType
          holds the value of the current connection type
static int CONTROL_HEIGHT
          height of controls
private  javax.swing.JPanel controlPanel
          GUI panel
private  java.util.Vector customActionListeners
           
static int DEF_HEIGHT
          default hight of entire window
static int DEF_WIDTH
          default width of entire window
static int DEFAULT_DEPTH_LEVEL
          depth to enter recursion in graph viewer.
private  javax.swing.JTextField depthEdit
          textField used to enter required depth level
private  boolean ended
           
private  GraphPanel graphPanel
          panel containg the graph
private  javax.swing.JScrollPane GraphView
          used to contain the graph (this adds scroll bars if needed)
private static org.apache.log4j.Logger logger
           
private  javax.swing.JTextField lookupEdit
           
(package private)  javax.swing.JComboBox modeCombo
          Combo-Box used to select the current display mode of the graph The actual content(text) of the modeCombo is passed to the constructor as a list of object textually represnting the different modes, and is the responsibility of the calling class.
private  javax.swing.JButton refreshButton
          button used to refresh display
private  javax.swing.JComboBox ringRadiusCombo
          Used to control the ring radius level in the viewer
private  java.util.Vector rootList
          list of nodes that were clicked and set as root.
static int TEXT_HEIGHT
          height of entire panel
private  javax.swing.JTextArea textLabel
          nodes toString() will display here
private  javax.swing.JPanel textPanel
           
static java.lang.String VERSION
          the viceroy's version
private  javax.swing.JComboBox zoomCombo
          Used to control the zoom level in the viewer
 
Fields inherited from class javax.swing.JFrame
accessibleContext, EXIT_ON_CLOSE, rootPane, rootPaneCheckingEnabled
 
Fields inherited from class java.awt.Frame
CROSSHAIR_CURSOR, DEFAULT_CURSOR, E_RESIZE_CURSOR, HAND_CURSOR, ICONIFIED, MAXIMIZED_BOTH, MAXIMIZED_HORIZ, MAXIMIZED_VERT, MOVE_CURSOR, N_RESIZE_CURSOR, NE_RESIZE_CURSOR, NORMAL, NW_RESIZE_CURSOR, S_RESIZE_CURSOR, SE_RESIZE_CURSOR, SW_RESIZE_CURSOR, TEXT_CURSOR, W_RESIZE_CURSOR, WAIT_CURSOR
 
Fields inherited from class java.awt.Window
 
Fields inherited from class java.awt.Container
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface javax.swing.WindowConstants
DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, HIDE_ON_CLOSE
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
GraphViewer(java.util.Vector methodDisplayObjects, java.util.Vector customActions)
          Constructor
 
Method Summary
 void addCustomActionListener(CustomActionInterface listener)
          Add another custom listener
 void display(java.lang.String disp)
          Display a string
 void fireCustomAction(java.lang.Object graphNode, int actionIndex, CustomActionData data)
           
 GraphPanel getGraphPanel()
           
 java.lang.String getLookupVal()
          Gets the lookup val
 int getNumberOfNodes()
          Gets the number of nodes
 ViewController getRoot()
          Gets the root
 void refresh()
          Refresh
 void removeNode(ViewController node)
          Removes a node
 void setConnectionType(int type)
           
 void setLookupAnswer(MessagePath answer)
          Sets the lookup path
 void setMode(int mode)
          sets the mode
 void setRoot(ViewController root)
          Sets the root
 
Methods inherited from class javax.swing.JFrame
addImpl, createRootPane, frameInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getJMenuBar, getLayeredPane, getRootPane, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, update
 
Methods inherited from class java.awt.Frame
addNotify, finalize, getCursorType, getExtendedState, getFrames, getIconImage, getMaximizedBounds, getMenuBar, getState, getTitle, isResizable, isUndecorated, remove, removeNotify, setCursor, setExtendedState, setIconImage, setMaximizedBounds, setMenuBar, setResizable, setState, setTitle, setUndecorated
 
Methods inherited from class java.awt.Window
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getGraphicsConfiguration, getInputContext, getListeners, getLocale, getMostRecentFocusOwner, getOwnedWindows, getOwner, getToolkit, getWarningString, getWindowFocusListeners, getWindowListeners, getWindowStateListeners, hide, isActive, isFocusableWindow, isFocusCycleRoot, isFocused, isShowing, pack, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, setCursor, setFocusableWindowState, setFocusCycleRoot, setLocationRelativeTo, show, toBack, toFront
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paint, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, setFocusTraversalKeys, setFocusTraversalPolicy, setFont, 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, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphics, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isOpaque, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, reshape, resize, resize, setBackground, setBounds, setBounds, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, setVisible, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.awt.MenuContainer
getFont, postEvent
 

Field Detail

VERSION

public static final java.lang.String VERSION
the viceroy's version

See Also:
Constant Field Values

logger

private static org.apache.log4j.Logger logger

DEF_WIDTH

public static final int DEF_WIDTH
default width of entire window

See Also:
Constant Field Values

DEF_HEIGHT

public static final int DEF_HEIGHT
default hight of entire window

See Also:
Constant Field Values

CONTROL_HEIGHT

public static final int CONTROL_HEIGHT
height of controls

See Also:
Constant Field Values

TEXT_HEIGHT

public static final int TEXT_HEIGHT
height of entire panel

See Also:
Constant Field Values

DEFAULT_DEPTH_LEVEL

public static final int DEFAULT_DEPTH_LEVEL
depth to enter recursion in graph viewer. 0 means infinity

See Also:
Constant Field Values

controlPanel

private javax.swing.JPanel controlPanel
GUI panel


graphPanel

private GraphPanel graphPanel
panel containg the graph


GraphView

private javax.swing.JScrollPane GraphView
used to contain the graph (this adds scroll bars if needed)


textLabel

private javax.swing.JTextArea textLabel
nodes toString() will display here


textPanel

private javax.swing.JPanel textPanel

rootList

private java.util.Vector rootList
list of nodes that were clicked and set as root. Each time a node is double-clicked it is added to this list clicking [back] takes the last element and redisplays it


connectionButton

javax.swing.JButton connectionButton
button used to select connection type (sticky, none, all)


refreshButton

private javax.swing.JButton refreshButton
button used to refresh display


backButton

private javax.swing.JButton backButton
button used to go back in the root list


buildModeCombo

private javax.swing.JComboBox buildModeCombo

depthEdit

private javax.swing.JTextField depthEdit
textField used to enter required depth level


lookupEdit

private javax.swing.JTextField lookupEdit

modeCombo

javax.swing.JComboBox modeCombo
Combo-Box used to select the current display mode of the graph The actual content(text) of the modeCombo is passed to the constructor as a list of object textually represnting the different modes, and is the responsibility of the calling class. The mode passed to the GraphPanel for each selected item is its index in the vector


zoomCombo

private javax.swing.JComboBox zoomCombo
Used to control the zoom level in the viewer


ringRadiusCombo

private javax.swing.JComboBox ringRadiusCombo
Used to control the ring radius level in the viewer


actionCombo

private javax.swing.JComboBox actionCombo
combo-box containing the possible user defined actions for this viewer. The option vector is passed input in the constructor. Once the actionGoButton is clicked the CustomActionEvent is triggered, passing the index of this combo and the current node


actionGoButton

private javax.swing.JButton actionGoButton

connectionType

private int connectionType
holds the value of the current connection type


ended

private boolean ended

customActionListeners

private java.util.Vector customActionListeners
Constructor Detail

GraphViewer

public GraphViewer(java.util.Vector methodDisplayObjects,
                   java.util.Vector customActions)
Constructor

Parameters:
methodDisplayObjects -
customActions -
Method Detail

setRoot

public void setRoot(ViewController root)
Sets the root

Parameters:
root -

getRoot

public ViewController getRoot()
Gets the root


refresh

public void refresh()
Refresh


getNumberOfNodes

public int getNumberOfNodes()
Gets the number of nodes

Returns:

addCustomActionListener

public void addCustomActionListener(CustomActionInterface listener)
Add another custom listener

Parameters:
listener -

fireCustomAction

public void fireCustomAction(java.lang.Object graphNode,
                             int actionIndex,
                             CustomActionData data)
Parameters:
graphNode -
actionIndex -
data -

removeNode

public void removeNode(ViewController node)
Removes a node

Parameters:
node -

display

public void display(java.lang.String disp)
Display a string

Parameters:
disp -

getLookupVal

public java.lang.String getLookupVal()
Gets the lookup val

Returns:

setLookupAnswer

public void setLookupAnswer(MessagePath answer)
Sets the lookup path

Parameters:
answer -

setMode

public void setMode(int mode)
sets the mode

Parameters:
mode -

getGraphPanel

public GraphPanel getGraphPanel()

setConnectionType

public void setConnectionType(int type)