edu.ucla.stat.SOCR.touchgraph.graphlayout
Class TGPanel

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 edu.ucla.stat.SOCR.touchgraph.graphlayout.TGPanel
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible

public class TGPanel
extends javax.swing.JPanel

TGPanel contains code for drawing the graph, and storing which nodes are selected, and which ones the mouse is over. It houses methods to activate TGLayout, which performs dynamic layout. Whenever the graph is moved, or repainted, TGPanel fires listner methods on associated objects.

Parts of this code build upon Sun's Graph Layout example. http://java.sun.com/applets/jdk/1.1/demo/GraphLayout/Graph.java

Version:
1.22-jre1.1 $Id: TGPanel.java,v 1.1 2010/01/20 20:38:32 jiecui Exp $
Author:
Alexander Shapiro, Murray Altheim (2001-11-06; 2002-01-14 cleanup)
See Also:
Serialized Form

Nested Class Summary
protected  class TGPanel.AdjustOriginLens
           
 class TGPanel.SwitchSelectUI
           
 
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 BACK_COLOR
           
protected  edu.ucla.stat.SOCR.touchgraph.graphlayout.TGPanel.BasicMouseMotionListener basicMML
           
protected  boolean maintainMouseOver
           
protected  Edge mouseOverE
           
protected  Node mouseOverN
           
protected  java.awt.Point mousePos
           
protected  Edge selectEdge
           
protected  Node selectNode
           
 TGLayout tgLayout
           
 
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
TGPanel()
          Default constructor.
 
Method Summary
 void addEdge(Edge e)
           
 Edge addEdge(Node f, Node t, int tens)
           
 void addGraphListener(GraphListener gl)
           
 Node addNode()
          Adds a Node, with its ID and label being the current node count plus 1.
 void addNode(Node node)
          Add the Node node to the visibleLocality, checking for ID uniqueness.
 Node addNode(java.lang.String label)
          Adds a Node, provided its label.
 Node addNode(java.lang.String id, java.lang.String label)
          Adds a Node, provided its ID and label.
 void addPaintListener(TGPaintListener pl)
           
 void clearAll()
           
 void clearSelectEdge()
           
 void clearSelectNode()
           
 void collapseNode(Node collapseNode)
           
 void deleteEdge(Edge edge)
          Returns an Iterator over all edges in the complete graph.
 void deleteEdge(Node from, Node to)
           
 boolean deleteNode(Node node)
           
 boolean deleteNodeById(java.lang.String id)
          Remove the Node object matching the ID id, returning true if the deletion occurred, false if a Node matching the ID does not exist (or if the ID value was null).
 int edgeNum()
          Deprecated. this method has been replaced by the visibleEdgeCount() method.
 void expandNode(Node node)
           
 void fastFinishAnimation()
           
 Edge findEdge(Node f, Node t)
           
protected  void findMouseOver()
           
 Node findNode(int id)
           
 Node findNode(java.lang.String id)
          Return the Node whose ID matches the String id, null if no match is found.
 Node findNodeByURL(java.lang.String strURL)
          Return the Node whose URL matches the String strURL, null if no match is found.
 Node findNodeLabelContaining(java.lang.String substring)
          Return the first Nodes whose label contains the String substring, null if no match is found.
 void fireResetEvent()
           
 TGPanel.AdjustOriginLens getAdjustOriginLens()
           
 TGPoint2D getBottomRightDraw()
           
 TGPoint2D getCenter()
           
 Node getDragNode()
           
 TGPoint2D getDrawCenter()
           
 int getEdgeCount()
          Returns the current edge count in the complete graph.
 ImmutableGraphEltSet getGES()
          Return the current visible locality.
 Edge getMouseOverE()
           
 Node getMouseOverN()
           
 java.awt.Point getMousePos()
           
 int getNodeCount()
          Returns the current node count.
 Edge getSelectEdge()
           
 Node getSelectNode()
           
 TGPanel.SwitchSelectUI getSwitchSelectUI()
           
 TGPoint2D getTopLeftDraw()
           
 void hideEdge(Edge hideEdge)
           
 void hideNode(Node hideNode)
           
static void main(java.lang.String[] args)
           
 void multiSelect(TGPoint2D from, TGPoint2D to)
           
 int nodeNum()
          Deprecated. this method has been replaced by the visibleNodeCount() method.
 void paint(java.awt.Graphics g)
           
 void processGraphMove()
           
 void removeGraphListener(GraphListener gl)
           
 void removePaintListener(TGPaintListener pl)
           
 void repaintAfterMove()
           
 void resetDamper()
          Makes the graph mobile, and slowly slows it down.
 void selectFirstNode()
          A convenience method that selects the first node of a graph, so that hiding works.
 void setAppletRef(TGViewerApplet va)
           
 void setBackColor(java.awt.Color color)
           
 void setDragNode(Node node)
           
 void setGraphEltSet(GraphEltSet ges)
           
 void setLensSet(TGLensSet lensSet)
           
 void setLocale(Node node, int radius)
           
 void setLocale(Node node, int radius, int maxAddEdgeCount, int maxExpandEdgeCount, boolean unidirectional)
           
 void setMaintainMouseOver(boolean maintain)
           
 void setMouseOverE(Edge edge)
           
 void setMouseOverN(Node node)
           
 void setSelectEdge(Edge edge)
           
 void setSelectNode(Node node)
           
 void setSelectNode(Node node, int clickCount)
           
 void setSelectWhitespace(int clickCount)
           
 void setTGLayout(TGLayout tgl)
           
 void startDamper()
          Start and stop the damper.
 void stopDamper()
           
 void stopMotion()
          Gently stops the graph from moving
 void update(java.awt.Graphics g)
           
 void updateDrawPos(Node node)
           
 void updateDrawPositions()
           
 void updateGraphSize()
           
 void updateLocalityFromVisibility()
           
 void updatePosFromDraw(Node node)
           
 int visibleEdgeCount()
          Return the number of Edges in the Locality.
 int visibleNodeCount()
          Returns the current node count within the VisibleLocality.
 
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, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paintBorder, paintChildren, paintComponent, 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
 
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

BACK_COLOR

public static java.awt.Color BACK_COLOR

tgLayout

public TGLayout tgLayout

basicMML

protected edu.ucla.stat.SOCR.touchgraph.graphlayout.TGPanel.BasicMouseMotionListener basicMML

mouseOverE

protected Edge mouseOverE

mouseOverN

protected Node mouseOverN

maintainMouseOver

protected boolean maintainMouseOver

selectNode

protected Node selectNode

selectEdge

protected Edge selectEdge

mousePos

protected java.awt.Point mousePos
Constructor Detail

TGPanel

public TGPanel()
Default constructor.

Method Detail

setAppletRef

public void setAppletRef(TGViewerApplet va)

setLensSet

public void setLensSet(TGLensSet lensSet)

setTGLayout

public void setTGLayout(TGLayout tgl)

setGraphEltSet

public void setGraphEltSet(GraphEltSet ges)

getAdjustOriginLens

public TGPanel.AdjustOriginLens getAdjustOriginLens()

getSwitchSelectUI

public TGPanel.SwitchSelectUI getSwitchSelectUI()

setBackColor

public void setBackColor(java.awt.Color color)

getGES

public ImmutableGraphEltSet getGES()
Return the current visible locality.


getNodeCount

public int getNodeCount()
Returns the current node count.


nodeNum

public int nodeNum()
Deprecated. this method has been replaced by the visibleNodeCount() method.

Returns the current node count within the VisibleLocality.


visibleNodeCount

public int visibleNodeCount()
Returns the current node count within the VisibleLocality.


findNode

public Node findNode(java.lang.String id)
Return the Node whose ID matches the String id, null if no match is found.

Parameters:
id - The ID identifier used as a query.
Returns:
The Node whose ID matches the provided 'id', null if no match is found.

findNode

public Node findNode(int id)

findNodeByURL

public Node findNodeByURL(java.lang.String strURL)
Return the Node whose URL matches the String strURL, null if no match is found.

Parameters:
strURL - The URL identifier used as a query.
Returns:
The Node whose URL matches the provided 'URL', null if no match is found.

findNodeLabelContaining

public Node findNodeLabelContaining(java.lang.String substring)
Return the first Nodes whose label contains the String substring, null if no match is found.

Parameters:
substring - The Substring used as a query.

addNode

public Node addNode()
             throws TGException
Adds a Node, with its ID and label being the current node count plus 1.

Throws:
TGException
See Also:
com.touchgraph.graphlayout.Node

addNode

public Node addNode(java.lang.String label)
             throws TGException
Adds a Node, provided its label. The node is assigned a unique ID.

Throws:
TGException
See Also:
com.touchgraph.graphlayout.graphelements.GraphEltSet

addNode

public Node addNode(java.lang.String id,
                    java.lang.String label)
             throws TGException
Adds a Node, provided its ID and label.

Throws:
TGException
See Also:
com.touchgraph.graphlayout.Node

addNode

public void addNode(Node node)
             throws TGException
Add the Node node to the visibleLocality, checking for ID uniqueness.

Throws:
TGException

deleteNodeById

public boolean deleteNodeById(java.lang.String id)
Remove the Node object matching the ID id, returning true if the deletion occurred, false if a Node matching the ID does not exist (or if the ID value was null).

Parameters:
id - The ID identifier used as a query.
Returns:
true if the deletion occurred.

deleteNode

public boolean deleteNode(Node node)

clearAll

public void clearAll()

getSelectNode

public Node getSelectNode()

getSelectEdge

public Edge getSelectEdge()

getMouseOverN

public Node getMouseOverN()

setMouseOverN

public void setMouseOverN(Node node)

deleteEdge

public void deleteEdge(Edge edge)
Returns an Iterator over all edges in the complete graph.


deleteEdge

public void deleteEdge(Node from,
                       Node to)

getEdgeCount

public int getEdgeCount()
Returns the current edge count in the complete graph.


edgeNum

public int edgeNum()
Deprecated. this method has been replaced by the visibleEdgeCount() method.

Return the number of Edges in the Locality.


visibleEdgeCount

public int visibleEdgeCount()
Return the number of Edges in the Locality.


findEdge

public Edge findEdge(Node f,
                     Node t)

addEdge

public void addEdge(Edge e)

addEdge

public Edge addEdge(Node f,
                    Node t,
                    int tens)

getMouseOverE

public Edge getMouseOverE()

setMouseOverE

public void setMouseOverE(Edge edge)

fireResetEvent

public void fireResetEvent()

addGraphListener

public void addGraphListener(GraphListener gl)

removeGraphListener

public void removeGraphListener(GraphListener gl)

addPaintListener

public void addPaintListener(TGPaintListener pl)

removePaintListener

public void removePaintListener(TGPaintListener pl)

setMaintainMouseOver

public void setMaintainMouseOver(boolean maintain)

clearSelectNode

public void clearSelectNode()

clearSelectEdge

public void clearSelectEdge()

selectFirstNode

public void selectFirstNode()
A convenience method that selects the first node of a graph, so that hiding works.


setSelectWhitespace

public void setSelectWhitespace(int clickCount)

setSelectNode

public void setSelectNode(Node node)

setSelectNode

public void setSelectNode(Node node,
                          int clickCount)

setSelectEdge

public void setSelectEdge(Edge edge)

multiSelect

public void multiSelect(TGPoint2D from,
                        TGPoint2D to)

updateLocalityFromVisibility

public void updateLocalityFromVisibility()
                                  throws TGException
Throws:
TGException

setLocale

public void setLocale(Node node,
                      int radius,
                      int maxAddEdgeCount,
                      int maxExpandEdgeCount,
                      boolean unidirectional)
               throws TGException
Throws:
TGException

fastFinishAnimation

public void fastFinishAnimation()

setLocale

public void setLocale(Node node,
                      int radius)
               throws TGException
Throws:
TGException

expandNode

public void expandNode(Node node)

hideNode

public void hideNode(Node hideNode)

collapseNode

public void collapseNode(Node collapseNode)

hideEdge

public void hideEdge(Edge hideEdge)

setDragNode

public void setDragNode(Node node)

getDragNode

public Node getDragNode()

getMousePos

public java.awt.Point getMousePos()

startDamper

public void startDamper()
Start and stop the damper. Should be placed in the TGPanel too.


stopDamper

public void stopDamper()

resetDamper

public void resetDamper()
Makes the graph mobile, and slowly slows it down.


stopMotion

public void stopMotion()
Gently stops the graph from moving


findMouseOver

protected void findMouseOver()

getTopLeftDraw

public TGPoint2D getTopLeftDraw()

getBottomRightDraw

public TGPoint2D getBottomRightDraw()

getCenter

public TGPoint2D getCenter()

getDrawCenter

public TGPoint2D getDrawCenter()

updateGraphSize

public void updateGraphSize()

processGraphMove

public void processGraphMove()

repaintAfterMove

public void repaintAfterMove()

updateDrawPos

public void updateDrawPos(Node node)

updatePosFromDraw

public void updatePosFromDraw(Node node)

updateDrawPositions

public void updateDrawPositions()

paint

public void paint(java.awt.Graphics g)
Overrides:
paint in class javax.swing.JComponent

update

public void update(java.awt.Graphics g)
Overrides:
update in class javax.swing.JComponent

main

public static void main(java.lang.String[] args)