Package edu.uci.ics.jung.visualization
Class BasicVisualizationServer<V,E>
java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JPanel
edu.uci.ics.jung.visualization.BasicVisualizationServer<V,E>
- All Implemented Interfaces:
ChangeEventSupport
,VisualizationServer<V,
,E> ImageObserver
,MenuContainer
,Serializable
,EventListener
,Accessible
,ChangeListener
- Direct Known Subclasses:
VisualizationImageServer
,VisualizationViewer
public class BasicVisualizationServer<V,E>
extends JPanel
implements ChangeListener, ChangeEventSupport, VisualizationServer<V,E>
A class that maintains many of the details necessary for creating
visualizations of graphs.
This is the old VisualizationViewer without tooltips and mouse behaviors. Its purpose is
to be a base class that can also be used on the server side of a multi-tiered application.
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected class
VisualizationListener reacts to changes in the size of the VisualizationViewer.Nested classes/interfaces inherited from class javax.swing.JPanel
JPanel.AccessibleJPanel
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
Nested classes/interfaces inherited from interface edu.uci.ics.jung.visualization.VisualizationServer
VisualizationServer.Paintable
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected ChangeEventSupport
protected boolean
user-settable choice to use the offscreen image or not.protected VisualizationModel
<V, E> holds the state of this Viewprotected BufferedImage
an offscreen image to render the graph Used if doubleBuffered is set to trueprotected Graphics2D
graphics context for the offscreen image Used if doubleBuffered is set to trueprotected PickedState
<E> holds the state of which edges of the graph are currently 'picked'protected PickedState
<V> holds the state of which vertices of the graph are currently 'picked'protected ItemListener
a listener used to cause pick events to result in repaints, even if they come from another viewprotected List
<VisualizationServer.Paintable> a collection of user-implementable functions to render over the topology (after the graph is rendered)protected List
<VisualizationServer.Paintable> a collection of user-implementable functions to render under the topology (before the graph is rendered)protected RenderContext
<V, E> handles the actual drawing of graph elementsprotected Map
<RenderingHints.Key, Object> rendering hints used in drawing.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
ConstructorsConstructorDescriptionBasicVisualizationServer
(Layout<V, E> layout) Create an instance with the specified Layout.BasicVisualizationServer
(Layout<V, E> layout, Dimension preferredSize) Create an instance with the specified Layout and view dimension.BasicVisualizationServer
(VisualizationModel<V, E> model) Create an instance with the specified model and a default dimension (600x600).BasicVisualizationServer
(VisualizationModel<V, E> model, Dimension preferredSize) Create an instance with the specified model and view dimension. -
Method Summary
Modifier and TypeMethodDescriptionvoid
Adds aChangeListener
.void
void
protected void
Ensure that, if doubleBuffering is enabled, the offscreen image buffer exists and is the correct size.void
Notifies all listeners that have registered interest for notification on this event type.Returns an array of all theChangeListener
s added with addChangeListener().getModel()
getSize()
Always sanity-check getSize so that we don't use a value that is improbableboolean
Returns whether this class uses double buffering.protected void
void
void
void
Removes a ChangeListener.void
void
protected void
renderGraph
(Graphics2D g2d) void
scaleToLayout
(ScalingControl scaler) void
setDoubleBuffered
(boolean doubleBuffered) Specify whether this class uses its offscreen image or not.void
setGraphLayout
(Layout<V, E> layout) Replaces the current graph layout withlayout
.void
setModel
(VisualizationModel<V, E> model) void
setPickedEdgeState
(PickedState<E> pickedEdgeState) void
setPickedVertexState
(PickedState<V> pickedVertexState) void
setPickSupport
(GraphElementAccessor<V, E> pickSupport) void
setRenderContext
(RenderContext<V, E> renderContext) void
setRenderer
(Renderer<V, E> r) Sets the showing Renderer to be the input Renderer.void
setRenderingHints
(Map<RenderingHints.Key, Object> renderingHints) void
setVisible
(boolean aFlag) Makes the component visible ifaFlag
is true, or invisible if false.void
In response to changes from the model, repaint the view, then fire an event to any listeners.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, hide, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, 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, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, unregisterKeyboardAction, update
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, 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, 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
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface edu.uci.ics.jung.visualization.VisualizationServer
repaint
-
Field Details
-
changeSupport
-
model
holds the state of this View -
renderer
handles the actual drawing of graph elements -
renderingHints
rendering hints used in drawing. Anti-aliasing is on by default -
pickedVertexState
holds the state of which vertices of the graph are currently 'picked' -
pickedEdgeState
holds the state of which edges of the graph are currently 'picked' -
pickEventListener
a listener used to cause pick events to result in repaints, even if they come from another view -
offscreen
an offscreen image to render the graph Used if doubleBuffered is set to true -
offscreenG2d
graphics context for the offscreen image Used if doubleBuffered is set to true -
doubleBuffered
protected boolean doubleBuffereduser-settable choice to use the offscreen image or not. 'false' by default -
preRenderers
a collection of user-implementable functions to render under the topology (before the graph is rendered) -
postRenderers
a collection of user-implementable functions to render over the topology (after the graph is rendered) -
renderContext
-
-
Constructor Details
-
BasicVisualizationServer
Create an instance with the specified Layout.- Parameters:
layout
- The Layout to apply, with its associated Graph
-
BasicVisualizationServer
Create an instance with the specified Layout and view dimension.- Parameters:
layout
- The Layout to apply, with its associated GraphpreferredSize
- the preferred size of this View
-
BasicVisualizationServer
Create an instance with the specified model and a default dimension (600x600).- Parameters:
model
- the model to use
-
BasicVisualizationServer
Create an instance with the specified model and view dimension.- Parameters:
model
- the model to usepreferredSize
- initial preferred size of the view
-
-
Method Details
-
setDoubleBuffered
public void setDoubleBuffered(boolean doubleBuffered) Description copied from interface:VisualizationServer
Specify whether this class uses its offscreen image or not.- Specified by:
setDoubleBuffered
in interfaceVisualizationServer<V,
E> - Overrides:
setDoubleBuffered
in classJComponent
- Parameters:
doubleBuffered
- if true, then doubleBuffering in the superclass is set to 'false'
-
isDoubleBuffered
public boolean isDoubleBuffered()Description copied from interface:VisualizationServer
Returns whether this class uses double buffering. The superclass will be the opposite state.- Specified by:
isDoubleBuffered
in interfaceVisualizationServer<V,
E> - Overrides:
isDoubleBuffered
in classJComponent
- Returns:
- the double buffered state
-
getSize
Always sanity-check getSize so that we don't use a value that is improbable -
checkOffscreenImage
Ensure that, if doubleBuffering is enabled, the offscreen image buffer exists and is the correct size.- Parameters:
d
- the expected Dimension of the offscreen buffer
-
getModel
- Specified by:
getModel
in interfaceVisualizationServer<V,
E> - Returns:
- the model.
-
setModel
- Specified by:
setModel
in interfaceVisualizationServer<V,
E> - Parameters:
model
- the model for this class to use
-
stateChanged
Description copied from interface:VisualizationServer
In response to changes from the model, repaint the view, then fire an event to any listeners. Examples of listeners are the GraphZoomScrollPane and the BirdsEyeVisualizationViewer- Specified by:
stateChanged
in interfaceChangeListener
- Specified by:
stateChanged
in interfaceVisualizationServer<V,
E> - Parameters:
e
- the change event
-
setRenderer
Description copied from interface:VisualizationServer
Sets the showing Renderer to be the input Renderer. Also tells the Renderer to refer to this instance as a PickedKey. (Because Renderers maintain a small amount of state, such as the PickedKey, it is important to create a separate instance for each VV instance.)- Specified by:
setRenderer
in interfaceVisualizationServer<V,
E> - Parameters:
r
- the renderer to use
-
getRenderer
- Specified by:
getRenderer
in interfaceVisualizationServer<V,
E> - Returns:
- the renderer used by this instance.
-
setGraphLayout
Description copied from interface:VisualizationServer
Replaces the current graph layout withlayout
.- Specified by:
setGraphLayout
in interfaceVisualizationServer<V,
E> - Parameters:
layout
- the new layout to set
-
scaleToLayout
-
getGraphLayout
- Specified by:
getGraphLayout
in interfaceVisualizationServer<V,
E> - Returns:
- the current graph layout.
-
setVisible
public void setVisible(boolean aFlag) Description copied from interface:VisualizationServer
Makes the component visible ifaFlag
is true, or invisible if false.- Specified by:
setVisible
in interfaceVisualizationServer<V,
E> - Overrides:
setVisible
in classJComponent
- Parameters:
aFlag
- true iff the component should be visible- See Also:
-
getRenderingHints
- Specified by:
getRenderingHints
in interfaceVisualizationServer<V,
E> - Returns:
- the renderingHints
-
setRenderingHints
- Specified by:
setRenderingHints
in interfaceVisualizationServer<V,
E> - Parameters:
renderingHints
- The renderingHints to set.
-
paintComponent
- Overrides:
paintComponent
in classJComponent
-
renderGraph
-
addPreRenderPaintable
- Specified by:
addPreRenderPaintable
in interfaceVisualizationServer<V,
E> - Parameters:
paintable
- The paintable to add.
-
prependPreRenderPaintable
-
removePreRenderPaintable
- Specified by:
removePreRenderPaintable
in interfaceVisualizationServer<V,
E> - Parameters:
paintable
- The paintable to remove.
-
addPostRenderPaintable
- Specified by:
addPostRenderPaintable
in interfaceVisualizationServer<V,
E> - Parameters:
paintable
- The paintable to add.
-
prependPostRenderPaintable
-
removePostRenderPaintable
- Specified by:
removePostRenderPaintable
in interfaceVisualizationServer<V,
E> - Parameters:
paintable
- The paintable to remove.
-
addChangeListener
Description copied from interface:VisualizationServer
Adds aChangeListener
.- Specified by:
addChangeListener
in interfaceChangeEventSupport
- Specified by:
addChangeListener
in interfaceVisualizationServer<V,
E> - Parameters:
l
- the listener to be added
-
removeChangeListener
Description copied from interface:ChangeEventSupport
Removes a ChangeListener.- Specified by:
removeChangeListener
in interfaceChangeEventSupport
- Specified by:
removeChangeListener
in interfaceVisualizationServer<V,
E> - Parameters:
l
- the listener to be removed
-
getChangeListeners
Description copied from interface:ChangeEventSupport
Returns an array of all theChangeListener
s added with addChangeListener().- Specified by:
getChangeListeners
in interfaceChangeEventSupport
- Specified by:
getChangeListeners
in interfaceVisualizationServer<V,
E> - Returns:
- all of the
ChangeListener
s added or an empty array if no listeners have been added
-
fireStateChanged
public void fireStateChanged()Description copied from interface:VisualizationServer
Notifies all listeners that have registered interest for notification on this event type. The event instance is lazily created.- Specified by:
fireStateChanged
in interfaceChangeEventSupport
- Specified by:
fireStateChanged
in interfaceVisualizationServer<V,
E> - See Also:
-
getPickedVertexState
- Specified by:
getPickedVertexState
in interfaceVisualizationServer<V,
E> - Returns:
- the vertex PickedState instance
-
getPickedEdgeState
- Specified by:
getPickedEdgeState
in interfaceVisualizationServer<V,
E> - Returns:
- the edge PickedState instance
-
setPickedVertexState
- Specified by:
setPickedVertexState
in interfaceVisualizationServer<V,
E>
-
setPickedEdgeState
- Specified by:
setPickedEdgeState
in interfaceVisualizationServer<V,
E>
-
getPickSupport
- Specified by:
getPickSupport
in interfaceVisualizationServer<V,
E> - Returns:
- the GraphElementAccessor
-
setPickSupport
- Specified by:
setPickSupport
in interfaceVisualizationServer<V,
E> - Parameters:
pickSupport
- The pickSupport to set.
-
getCenter
- Specified by:
getCenter
in interfaceVisualizationServer<V,
E>
-
getRenderContext
- Specified by:
getRenderContext
in interfaceVisualizationServer<V,
E>
-
setRenderContext
- Specified by:
setRenderContext
in interfaceVisualizationServer<V,
E>
-