Class GraphComponent
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- com.googlecode.blaisemath.graphics.swing.JGraphicComponent
-
- com.googlecode.blaisemath.graph.view.GraphComponent
-
- All Implemented Interfaces:
com.googlecode.blaisemath.geom.TransformedCoordinateSpace,ImageObserver,MenuContainer,Serializable
public class GraphComponent extends com.googlecode.blaisemath.graphics.swing.JGraphicComponentProvides a view of a graph, using aGraphLayoutManagerfor positions/layout and aVisualGraphfor appearance. The layout manager supports executing long-running layout algorithms in a background thread, and the visual graph shares aCoordinateManagerthat is used for updating locations from the layout manager. The coordinate manager is thread-safe.- Author:
- Elisha Peterson
- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
-
Nested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainer
-
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
-
-
Field Summary
Fields Modifier and Type Field Description protected VisualGraph<Graphics2D>adapterManages the visual elements of the underlying graphstatic StringMENU_KEY_EDGEstatic StringMENU_KEY_GRAPHstatic StringMENU_KEY_NODE-
Fields inherited from class com.googlecode.blaisemath.graphics.swing.JGraphicComponent
antialias, inverseTransform, overlays, P_TRANSFORM, root, selector, transform, underlays
-
Fields inherited from class javax.swing.JComponent
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
accessibleContext, 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
Constructors Constructor Description GraphComponent()Construct with an empty graph.GraphComponent(com.google.common.graph.Graph graph)Construct with specified graph.GraphComponent(com.googlecode.blaisemath.graph.layout.GraphLayoutManager gm)Construct with specified graph manager (contains graph and positions).
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddContextMenuInitializer(String key, com.googlecode.blaisemath.util.swing.ContextMenuInitializer init)Adds context menu element to specified object.VisualGraphgetAdapter()Return the adapter that contains the graph manager and the graph, responsible for handling the visual appearance.com.googlecode.blaisemath.style.ObjectStyler<com.google.common.graph.EndpointPair<Object>>getEdgeStyler()com.google.common.graph.GraphgetGraph()com.googlecode.blaisemath.graph.layout.GraphLayoutManagergetLayoutManager()Return the graph manager underlying the component, responsible for handling the graph and node locations.Function<?,String>getNodeLabelDelegate()Predicate<Object>getNodeLabelFilter()com.googlecode.blaisemath.style.ObjectStyler<Object>getNodeStyler()SetgetSelectedNodes()booleanisLayoutTaskActive()voidremoveContextMenuInitializer(String key, com.googlecode.blaisemath.util.swing.ContextMenuInitializer init)Removes context menu element from specified objectvoidsetEdgeStyler(com.googlecode.blaisemath.style.ObjectStyler<com.google.common.graph.EndpointPair<Object>> edgeStyler)voidsetGraph(com.google.common.graph.Graph graph)voidsetLayoutManager(com.googlecode.blaisemath.graph.layout.GraphLayoutManager gm)voidsetLayoutTaskActive(boolean val)voidsetNodeLabelDelegate(Function<Object,String> labeler)voidsetNodeLabelFilter(Predicate<Object> nodeLabelFilter)voidsetNodeStyler(com.googlecode.blaisemath.style.ObjectStyler<Object> nodeStyler)voidsetSelectedNodes(Collection nodes)-
Methods inherited from class com.googlecode.blaisemath.graphics.swing.JGraphicComponent
addGraphic, addGraphics, clearGraphics, functionalGraphicAt, getGraphicRoot, getInverseTransform, getOverlays, getSelectionModel, getStyleContext, getToolTipText, getTransform, getUnderlays, graphicAt, isAntialiasOn, isSelectionEnabled, paintChildren, removeGraphic, removeGraphics, renderOverlay, renderTo, renderUnderlay, resetTransform, selectableGraphicAt, setAntialiasOn, setSelectionEnabled, setStyleContext, setTransform, toGraphicCoordinate, toGraphicCoordinateSpace, zoomIn, zoomIn, zoomOut, zoomOut, zoomToAll, zoomToAll, zoomToAll, zoomToSelected, zoomToSelected, zoomToSelected
-
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, getUI, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintComponent, paintImmediately, paintImmediately, paramString, 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, updateUI
-
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, 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, getAccessibleContext, 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, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, 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, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
-
-
-
Field Detail
-
MENU_KEY_GRAPH
public static final String MENU_KEY_GRAPH
- See Also:
- Constant Field Values
-
MENU_KEY_EDGE
public static final String MENU_KEY_EDGE
- See Also:
- Constant Field Values
-
MENU_KEY_NODE
public static final String MENU_KEY_NODE
- See Also:
- Constant Field Values
-
adapter
protected final VisualGraph<Graphics2D> adapter
Manages the visual elements of the underlying graph
-
-
Constructor Detail
-
GraphComponent
public GraphComponent()
Construct with an empty graph.
-
GraphComponent
public GraphComponent(com.google.common.graph.Graph graph)
Construct with specified graph.- Parameters:
graph- the graph to initialize with
-
GraphComponent
public GraphComponent(com.googlecode.blaisemath.graph.layout.GraphLayoutManager gm)
Construct with specified graph manager (contains graph and positions).- Parameters:
gm- graph manager to initialize with
-
-
Method Detail
-
getAdapter
public VisualGraph getAdapter()
Return the adapter that contains the graph manager and the graph, responsible for handling the visual appearance.- Returns:
- the adapter
-
getEdgeStyler
public com.googlecode.blaisemath.style.ObjectStyler<com.google.common.graph.EndpointPair<Object>> getEdgeStyler()
-
setEdgeStyler
public void setEdgeStyler(com.googlecode.blaisemath.style.ObjectStyler<com.google.common.graph.EndpointPair<Object>> edgeStyler)
-
getNodeStyler
public com.googlecode.blaisemath.style.ObjectStyler<Object> getNodeStyler()
-
setNodeStyler
public void setNodeStyler(com.googlecode.blaisemath.style.ObjectStyler<Object> nodeStyler)
-
getLayoutManager
public com.googlecode.blaisemath.graph.layout.GraphLayoutManager getLayoutManager()
Return the graph manager underlying the component, responsible for handling the graph and node locations.- Returns:
- the manager
-
setLayoutManager
public void setLayoutManager(com.googlecode.blaisemath.graph.layout.GraphLayoutManager gm)
-
getGraph
public com.google.common.graph.Graph getGraph()
-
setGraph
public void setGraph(com.google.common.graph.Graph graph)
-
isLayoutTaskActive
public boolean isLayoutTaskActive()
-
setLayoutTaskActive
public void setLayoutTaskActive(boolean val)
-
getSelectedNodes
public Set getSelectedNodes()
-
setSelectedNodes
public void setSelectedNodes(Collection nodes)
-
addContextMenuInitializer
public void addContextMenuInitializer(String key, com.googlecode.blaisemath.util.swing.ContextMenuInitializer init)
Adds context menu element to specified object.- Parameters:
key- either "graph", "node", or "edge"init- used to initialize the context menu
-
removeContextMenuInitializer
public void removeContextMenuInitializer(String key, com.googlecode.blaisemath.util.swing.ContextMenuInitializer init)
Removes context menu element from specified object- Parameters:
key- either "graph", "node", or "edge"init- used to initialize the context menu
-
-