com.touchgraph.graphlayout
Class TGPanel

java.lang.Object
  extended byjava.awt.Component
      extended byjava.awt.Container
          extended byjavax.swing.JComponent
              extended byjavax.swing.JPanel
                  extended bycom.touchgraph.graphlayout.TGPanel
All Implemented Interfaces:
javax.accessibility.Accessible, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable
Direct Known Subclasses:
TGMMBasePanel

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.21 $Id: TGPanel.java,v 1.1.1.1 2004/02/06 08:44:05 keesj 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 inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
 
Nested classes inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
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
static java.awt.Color BACK_COLOR
           
protected  com.touchgraph.graphlayout.TGPanel.BasicMouseMotionListener basicMML
           
protected  boolean maintainMouseOver
           
protected  Edge mouseOverE
           
protected  Node mouseOverN
           
protected  java.awt.Point mousePos
           
protected  Node select
           
 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 clearSelect()
           
 void collapseNode(Node collapseNode)
           
 void deleteEdge(Edge edge)
           
 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(java.lang.String id)
          Return the Node whose ID matches the String id, 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.
 java.util.Collection findNodesByLabel(java.lang.String label)
          Return a Collection of all Nodes whose label matches the String label, null if no match is found.
 void fireResetEvent()
           
 TGPanel.AdjustOriginLens getAdjustOriginLens()
           
 java.util.Iterator getAllEdges()
          Returns an Iterator over all edges in the complete graph.
 java.util.Iterator getAllNodes()
          Returns an Iterator over all nodes in the complete graph.
 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.
 Node getSelect()
           
 TGPanel.SwitchSelectUI getSwitchSelectUI()
           
 TGPoint2D getTopLeftDraw()
           
 void hideEdge(Edge hideEdge)
           
 void hideNode(Node hideNode)
           
 void kstartDamper()
           
 void kstopDamper()
           
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 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 setSelect(Node node)
           
 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, addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getGraphics, getHeight, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPreferredSize, getPropertyChangeListeners, getPropertyChangeListeners, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, isValidateRoot, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFont, setForeground, 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, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, 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, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMouseWheelListeners, getName, getParent, getPeer, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, 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, processMouseEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, 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 com.touchgraph.graphlayout.TGPanel.BasicMouseMotionListener basicMML

mouseOverE

protected Edge mouseOverE

mouseOverN

protected Node mouseOverN

maintainMouseOver

protected boolean maintainMouseOver

select

protected Node select

mousePos

protected java.awt.Point mousePos
Constructor Detail

TGPanel

public TGPanel()
Default constructor.

Method Detail

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)

getAllNodes

public java.util.Iterator getAllNodes()
Returns an Iterator over all nodes in the complete graph.


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.

findNodesByLabel

public java.util.Collection findNodesByLabel(java.lang.String label)
Return a Collection of all Nodes whose label matches the String label, 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:
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:
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:
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()

getSelect

public Node getSelect()

getMouseOverN

public Node getMouseOverN()

setMouseOverN

public void setMouseOverN(Node node)

getAllEdges

public java.util.Iterator getAllEdges()
Returns an Iterator over all edges in the complete graph.


deleteEdge

public void deleteEdge(Edge edge)

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)

clearSelect

public void clearSelect()

selectFirstNode

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


setSelect

public void setSelect(Node node)

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.


kstartDamper

public void kstartDamper()

stopDamper

public void stopDamper()

kstopDamper

public void kstopDamper()

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)

update

public void update(java.awt.Graphics g)

main

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


Copyright © 2003-2004 SourceForge. All Rights Reserved.