Class BasicVisualizationServer<V,​E>

  • All Implemented Interfaces:
    ChangeEventSupport, VisualizationServer<V,​E>, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible, javax.swing.event.ChangeListener
    Direct Known Subclasses:
    VisualizationImageServer, VisualizationViewer

    public class BasicVisualizationServer<V,​E>
    extends javax.swing.JPanel
    implements javax.swing.event.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:
    Serialized Form
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      protected class  BasicVisualizationServer.VisualizationListener
      VisualizationListener reacts to changes in the size of the VisualizationViewer.
      • 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

      Fields 
      Modifier and Type Field Description
      protected ChangeEventSupport changeSupport  
      protected boolean doubleBuffered
      user-settable choice to use the offscreen image or not.
      protected VisualizationModel<V,​E> model
      holds the state of this View
      protected java.awt.image.BufferedImage offscreen
      an offscreen image to render the graph Used if doubleBuffered is set to true
      protected java.awt.Graphics2D offscreenG2d
      graphics context for the offscreen image Used if doubleBuffered is set to true
      protected PickedState<E> pickedEdgeState
      holds the state of which edges of the graph are currently 'picked'
      protected PickedState<V> pickedVertexState
      holds the state of which vertices of the graph are currently 'picked'
      protected java.awt.event.ItemListener pickEventListener
      a listener used to cause pick events to result in repaints, even if they come from another view
      protected java.util.List<VisualizationServer.Paintable> postRenderers
      a collection of user-implementable functions to render over the topology (after the graph is rendered)
      protected java.util.List<VisualizationServer.Paintable> preRenderers
      a collection of user-implementable functions to render under the topology (before the graph is rendered)
      protected RenderContext<V,​E> renderContext  
      protected Renderer<V,​E> renderer
      handles the actual drawing of graph elements
      protected java.util.Map<java.awt.RenderingHints.Key,​java.lang.Object> renderingHints
      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
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addChangeListener​(javax.swing.event.ChangeListener l)
      Adds a ChangeListener.
      void addPostRenderPaintable​(VisualizationServer.Paintable paintable)  
      void addPreRenderPaintable​(VisualizationServer.Paintable paintable)  
      protected void checkOffscreenImage​(java.awt.Dimension d)
      Ensure that, if doubleBuffering is enabled, the offscreen image buffer exists and is the correct size.
      void fireStateChanged()
      Notifies all listeners that have registered interest for notification on this event type.
      java.awt.geom.Point2D getCenter()  
      javax.swing.event.ChangeListener[] getChangeListeners()
      Returns an array of all the ChangeListeners added with addChangeListener().
      edu.uci.ics.jung.algorithms.layout.Layout<V,​E> getGraphLayout()
      Returns the current graph layout.
      VisualizationModel<V,​E> getModel()  
      PickedState<E> getPickedEdgeState()  
      PickedState<V> getPickedVertexState()  
      edu.uci.ics.jung.algorithms.layout.GraphElementAccessor<V,​E> getPickSupport()  
      RenderContext<V,​E> getRenderContext()  
      Renderer<V,​E> getRenderer()
      Returns the renderer used by this instance.
      java.util.Map<java.awt.RenderingHints.Key,​java.lang.Object> getRenderingHints()  
      java.awt.Dimension getSize()
      Always sanity-check getSize so that we don't use a value that is improbable
      boolean isDoubleBuffered()
      whether this class uses double buffering.
      protected void paintComponent​(java.awt.Graphics g)  
      void prependPostRenderPaintable​(VisualizationServer.Paintable paintable)  
      void prependPreRenderPaintable​(VisualizationServer.Paintable paintable)  
      void removeChangeListener​(javax.swing.event.ChangeListener l)
      Removes a ChangeListener.
      void removePostRenderPaintable​(VisualizationServer.Paintable paintable)  
      void removePreRenderPaintable​(VisualizationServer.Paintable paintable)  
      protected void renderGraph​(java.awt.Graphics2D g2d)  
      void scaleToLayout​(ScalingControl scaler)  
      void setDoubleBuffered​(boolean doubleBuffered)
      set whether this class uses its offscreen image or not.
      void setGraphLayout​(edu.uci.ics.jung.algorithms.layout.Layout<V,​E> layout)
      Removes the current graph layout, and adds a new one.
      void setModel​(VisualizationModel<V,​E> model)  
      void setPickedEdgeState​(PickedState<E> pickedEdgeState)  
      void setPickedVertexState​(PickedState<V> pickedVertexState)  
      void setPickSupport​(edu.uci.ics.jung.algorithms.layout.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​(java.util.Map<java.awt.RenderingHints.Key,​java.lang.Object> renderingHints)  
      void setVisible​(boolean aFlag)  
      void stateChanged​(javax.swing.event.ChangeEvent e)
      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
    • Field Detail

      • renderer

        protected Renderer<V,​E> renderer
        handles the actual drawing of graph elements
      • renderingHints

        protected java.util.Map<java.awt.RenderingHints.Key,​java.lang.Object> renderingHints
        rendering hints used in drawing. Anti-aliasing is on by default
      • pickedVertexState

        protected PickedState<V> pickedVertexState
        holds the state of which vertices of the graph are currently 'picked'
      • pickedEdgeState

        protected PickedState<E> pickedEdgeState
        holds the state of which edges of the graph are currently 'picked'
      • pickEventListener

        protected java.awt.event.ItemListener pickEventListener
        a listener used to cause pick events to result in repaints, even if they come from another view
      • offscreen

        protected java.awt.image.BufferedImage offscreen
        an offscreen image to render the graph Used if doubleBuffered is set to true
      • offscreenG2d

        protected java.awt.Graphics2D offscreenG2d
        graphics context for the offscreen image Used if doubleBuffered is set to true
      • doubleBuffered

        protected boolean doubleBuffered
        user-settable choice to use the offscreen image or not. 'false' by default
      • preRenderers

        protected java.util.List<VisualizationServer.Paintable> preRenderers
        a collection of user-implementable functions to render under the topology (before the graph is rendered)
      • postRenderers

        protected java.util.List<VisualizationServer.Paintable> postRenderers
        a collection of user-implementable functions to render over the topology (after the graph is rendered)
    • Constructor Detail

      • BasicVisualizationServer

        public BasicVisualizationServer​(edu.uci.ics.jung.algorithms.layout.Layout<V,​E> layout)
        Create an instance with passed parameters.
        Parameters:
        layout - The Layout to apply, with its associated Graph
        renderer - The Renderer to draw it with
      • BasicVisualizationServer

        public BasicVisualizationServer​(edu.uci.ics.jung.algorithms.layout.Layout<V,​E> layout,
                                        java.awt.Dimension preferredSize)
        Create an instance with passed parameters.
        Parameters:
        layout - The Layout to apply, with its associated Graph
        renderer - The Renderer to draw it with
        preferredSize - the preferred size of this View
      • BasicVisualizationServer

        public BasicVisualizationServer​(VisualizationModel<V,​E> model)
        Create an instance with passed parameters.
        Parameters:
        model -
        renderer -
      • BasicVisualizationServer

        public BasicVisualizationServer​(VisualizationModel<V,​E> model,
                                        java.awt.Dimension preferredSize)
        Create an instance with passed parameters.
        Parameters:
        model -
        renderer -
        preferredSize - initial preferred size of the view