Class GraphCanvas

  • All Implemented Interfaces:
    java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible

    public class GraphCanvas
    extends ToolCanvas
    The container for the graph.
    See Also:
    Serialized Form
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      class  GraphCanvas.AgentGroup
      A component group for agents.
      protected static class  GraphCanvas.DirectionDisplayPredicate
      A prdicate class that shows arrows for directed edges and hides them for undirected edges.
      class  GraphCanvas.MessageGroup
      A component group for messages.
      • 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 boolean animate
      animate the layout adjustments
      protected boolean autolayout
      adjust layout with each change
      protected boolean cluster
      cluster the graph
      protected static int DIRECTED_GRAPH
      The graph mode for the directed graph
      protected static int DIRECTED_MULTIGRAPH
      The graph mode for the directed multigraph
      protected GraphCanvas.DirectionDisplayPredicate e_arrow
      The predicate test for showing arrows in directed graphs and none in undirected.
      protected EdgeTransformer.LabelFont e_font
      The transformer for edge font
      protected EdgeTransformer.GradientPaint e_gradient
      The advanced transformer for edge paint
      protected edu.uci.ics.jung.visualization.decorators.EdgeShape.Line e_line
      The transformer for the edge line shape
      protected EdgeTransformer.PaintMode e_paint
      The transformer for the edge paint
      protected edu.uci.ics.jung.visualization.decorators.EdgeShape.QuadCurve e_quad
      The transformer for the edge curve shape
      protected EdgeTransformer.Label e_string
      The transformer for edge label
      protected EdgeTransformer.WeightStroke e_stroke
      The transformer for edge stroke
      protected edu.uci.ics.jung.visualization.decorators.EdgeShape.Wedge e_wedge
      The transformer for the edge wedge shape
      protected edu.uci.ics.jung.visualization.control.DefaultModalGraphMouse gm
      Support for picking and transforming
      protected ComponentGroupMultiGraph graph
      The graph.
      protected org.apache.commons.collections15.Factory graphFactory
      The factory for the graph
      protected int graphType
      The graph type
      protected static javax.swing.UIDefaults icons
      The image icons.
      protected edu.uci.ics.jung.algorithms.layout.AggregateLayout layout
      The aggregat layout.
      protected edu.uci.ics.jung.visualization.control.AbsoluteCrossoverScalingControl scaler  
      protected edu.uci.ics.jung.algorithms.layout.StaticLayout staticLayout
      The static layout.
      protected static int UNDIRECTED_GRAPH
      The graph mode for the undirected graph
      protected VertexTransformer.LabelFont v_font
      The transformer for vertex font
      protected VertexTransformer.IconSize v_icon
      The transformer for agent icon
      protected VertexTransformer.ShapeSize v_shape
      The transformer for vertex shape
      protected VertexTransformer.Label v_string
      The transformer for vertex label
      protected java.util.List visible_agents
      The list of agents displayed in the graph
      protected java.util.List visible_messages
      The list of messages displayed in the graph
      protected edu.uci.ics.jung.visualization.VisualizationViewer vv
      The graph viewer
      • 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
      GraphCanvas​(GraphPanel tooltab)
      Constructor for the container.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addAgent​(Component agent)
      Adds the agent.
      void addMessage​(Message message, Component sender, Component receiver)
      Add message with given sender and receiver (for redirection)
      void clear()
      Clear the graph.
      void clusterGraph​(int numEdgesToRemove, boolean groupClusters)
      Cluster the vertices with edge betweenness algorithm.
      int getGraphType()
      Returns the graph type
      protected void groupCluster​(java.util.Set vertices)
      Groups a cluster (set) of agents into a sublayout.
      protected void lockAgents()
      Lock agent postions.
      void reinitializeCanvas()
      Repaints the canvas with reinitializes its layout.
      void removeComponent​(Component agent)
      Removes an agent.
      void removeMessage​(Message message)
      Removes a message.
      void repaintCanvas()
      Repaint the graph.
      void setGraphType​(int graphType)
      Sets the graph type.
      protected void unlockAgents()
      Unlock agent positions
      void updateComponent​(Component agent, boolean update)
      Updates an agent by adding it, if the agent can be displayed or removing it if present.
      void updateMessage​(Message message, boolean isPresent)
      Update a message by adding it, if the message can be displayed or removing it if present.
      • 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, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, 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, 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, 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
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Field Detail

      • icons

        protected static final javax.swing.UIDefaults icons
        The image icons.
      • DIRECTED_MULTIGRAPH

        protected static final int DIRECTED_MULTIGRAPH
        The graph mode for the directed multigraph
        See Also:
        Constant Field Values
      • DIRECTED_GRAPH

        protected static final int DIRECTED_GRAPH
        The graph mode for the directed graph
        See Also:
        Constant Field Values
      • UNDIRECTED_GRAPH

        protected static final int UNDIRECTED_GRAPH
        The graph mode for the undirected graph
        See Also:
        Constant Field Values
      • graphType

        protected int graphType
        The graph type
      • autolayout

        protected boolean autolayout
        adjust layout with each change
      • animate

        protected boolean animate
        animate the layout adjustments
      • cluster

        protected boolean cluster
        cluster the graph
      • visible_messages

        protected java.util.List visible_messages
        The list of messages displayed in the graph
      • visible_agents

        protected java.util.List visible_agents
        The list of agents displayed in the graph
      • vv

        protected edu.uci.ics.jung.visualization.VisualizationViewer vv
        The graph viewer
      • staticLayout

        protected edu.uci.ics.jung.algorithms.layout.StaticLayout staticLayout
        The static layout. For animated transitions
      • layout

        protected edu.uci.ics.jung.algorithms.layout.AggregateLayout layout
        The aggregat layout. Allows diffrent sublayouts
      • graphFactory

        protected org.apache.commons.collections15.Factory graphFactory
        The factory for the graph
      • gm

        protected edu.uci.ics.jung.visualization.control.DefaultModalGraphMouse gm
        Support for picking and transforming
      • scaler

        protected edu.uci.ics.jung.visualization.control.AbsoluteCrossoverScalingControl scaler
      • e_line

        protected edu.uci.ics.jung.visualization.decorators.EdgeShape.Line e_line
        The transformer for the edge line shape
      • e_quad

        protected edu.uci.ics.jung.visualization.decorators.EdgeShape.QuadCurve e_quad
        The transformer for the edge curve shape
      • e_wedge

        protected edu.uci.ics.jung.visualization.decorators.EdgeShape.Wedge e_wedge
        The transformer for the edge wedge shape
    • Constructor Detail

      • GraphCanvas

        public GraphCanvas​(GraphPanel tooltab)
        Constructor for the container.
        Parameters:
        tooltab - The tooltab.
    • Method Detail

      • updateMessage

        public void updateMessage​(Message message,
                                  boolean isPresent)
        Update a message by adding it, if the message can be displayed or removing it if present.
        Specified by:
        updateMessage in class ToolCanvas
        Parameters:
        message - The message to add.
        isPresent - true if removal is skipped. (Can be applied to new messages)
      • removeMessage

        public void removeMessage​(Message message)
        Removes a message.
        Specified by:
        removeMessage in class ToolCanvas
        Parameters:
        message - The message to remove.
      • updateComponent

        public void updateComponent​(Component agent,
                                    boolean update)
        Updates an agent by adding it, if the agent can be displayed or removing it if present.
        Specified by:
        updateComponent in class ToolCanvas
        Parameters:
        agent - The agent to add.
        isPresent - true if removal is skipped. (Can be applied to new agents)
      • removeComponent

        public void removeComponent​(Component agent)
        Removes an agent.
        Specified by:
        removeComponent in class ToolCanvas
        Parameters:
        agent - The agent to remove.
      • clear

        public void clear()
        Clear the graph.
        Specified by:
        clear in class ToolCanvas
      • reinitializeCanvas

        public void reinitializeCanvas()
        Repaints the canvas with reinitializes its layout.
      • addMessage

        public void addMessage​(Message message,
                               Component sender,
                               Component receiver)
        Add message with given sender and receiver (for redirection)
        Parameters:
        message - The message to add.
        sender - The sender in the presentation.
        receiver - The receiver in the presentation. (e.g. dummy)
      • addAgent

        public void addAgent​(Component agent)
        Adds the agent.
        Parameters:
        agent - The agent to add.
      • clusterGraph

        public void clusterGraph​(int numEdgesToRemove,
                                 boolean groupClusters)
        Cluster the vertices with edge betweenness algorithm.
        Parameters:
        numEdgesToRemove - The number of edges to remove.
        groupClusters - true if the vertices should be clustered. false for cancel the grouping.
      • getGraphType

        public int getGraphType()
        Returns the graph type
        Returns:
        The graph type.
      • setGraphType

        public void setGraphType​(int graphType)
        Sets the graph type.
        Parameters:
        graphType - The graph type to set.
      • lockAgents

        protected void lockAgents()
        Lock agent postions.
      • unlockAgents

        protected void unlockAgents()
        Unlock agent positions
      • groupCluster

        protected void groupCluster​(java.util.Set vertices)
        Groups a cluster (set) of agents into a sublayout.
        Parameters:
        vertices -