org.jgrapht.ext
Class JGraphXAdapter<V,E>

java.lang.Object
  extended by com.mxgraph.util.mxEventSource
      extended by com.mxgraph.view.mxGraph
          extended by org.jgrapht.ext.JGraphXAdapter<V,E>
Type Parameters:
V - Vertex
E - Edge
All Implemented Interfaces:
EventListener, GraphListener<V,E>, VertexSetListener<V>

public class JGraphXAdapter<V,E>
extends com.mxgraph.view.mxGraph
implements GraphListener<V,E>

Adapter to draw a JGraphT graph with the JGraphX drawing library.

This adapter will not convert JGraphX to JGraphT - this should be handled in another class entirely.

Known Bugs: If this class is used with String-Edges, please note that there is a bug with the method JgraphT.addEdge(vertex1, vertex2); The edge will be created with an empty String "" as value and saved (in JGraphT as well as in this class), which results in the edge not saving correctly. So, if you're using Strings as Edgeclass please use the method addEdge(vertex1, vertex2, "Edgename"); with a unique edgename.

Since:
09 July, 2013
Author:
Original: JeanYves Tinevez

Nested Class Summary
 
Nested classes/interfaces inherited from class com.mxgraph.view.mxGraph
com.mxgraph.view.mxGraph.mxICellVisitor
 
Nested classes/interfaces inherited from class com.mxgraph.util.mxEventSource
com.mxgraph.util.mxEventSource.mxIEventListener
 
Field Summary
 
Fields inherited from class com.mxgraph.view.mxGraph
allowDanglingEdges, allowLoops, allowNegativeCoordinates, alternateEdgeStyle, autoOrigin, autoSizeCells, border, cellsBendable, cellsCloneable, cellsDeletable, cellsDisconnectable, cellsEditable, cellsLocked, cellsMovable, cellsResizable, cellsSelectable, changesRepaintThreshold, changeSupport, cloneInvalidEdges, collapseToPreferredSize, connectableEdges, constrainChildren, defaultLoopStyle, defaultOverlap, defaultParent, disconnectOnMove, dropEnabled, edgeLabelsMovable, enabled, extendParents, extendParentsOnAdd, fullRepaintHandler, graphModelChangeHandler, gridEnabled, gridSize, htmlLabels, imageBundles, keepEdgesInBackground, keepEdgesInForeground, labelsClipped, labelsVisible, maximumGraphBounds, minimumGraphSize, model, multigraph, multiplicities, origin, resetEdgesOnConnect, resetEdgesOnMove, resetEdgesOnResize, resetViewOnRootChange, selectionModel, splitEnabled, stylesheet, swimlaneNesting, updateOriginHandler, VERSION, vertexLabelsMovable, view
 
Fields inherited from class com.mxgraph.util.mxEventSource
eventListeners, eventsEnabled, eventSource
 
Constructor Summary
JGraphXAdapter(Graph<V,E> graph)
          Constructs and draws a new mxGraph from a jGraphT graph.
JGraphXAdapter(ListenableGraph<V,E> graph)
          Constructs and draws a new ListenableGraph.
 
Method Summary
 void edgeAdded(GraphEdgeChangeEvent<V,E> e)
          Notifies that an edge has been added to the graph.
 void edgeRemoved(GraphEdgeChangeEvent<V,E> e)
          Notifies that an edge has been removed from the graph.
 HashMap<com.mxgraph.model.mxICell,E> getCellToEdgeMap()
          Returns Hashmap which maps the visualization mxICells onto their edges.
 HashMap<com.mxgraph.model.mxICell,V> getCellToVertexMap()
          Returns Hashmap which maps the visualization mxICells onto their vertices.
 HashMap<E,com.mxgraph.model.mxICell> getEdgeToCellMap()
          Returns Hashmap which maps the edges onto their visualization mxICells.
 HashMap<V,com.mxgraph.model.mxICell> getVertexToCellMap()
          Returns Hashmap which maps the vertices onto their visualization mxICells.
 void vertexAdded(GraphVertexChangeEvent<V> e)
          Notifies that a vertex has been added to the graph.
 void vertexRemoved(GraphVertexChangeEvent<V> e)
          Notifies that a vertex has been removed from the graph.
 
Methods inherited from class com.mxgraph.view.mxGraph
addAllEdges, addCell, addCell, addCell, addCells, addCells, addCells, addCells, addEdge, addImageBundle, addPropertyChangeListener, addPropertyChangeListener, addSelectionCell, addSelectionCells, alignCells, alignCells, alignCells, cellConnected, cellDrawn, cellLabelChanged, cellsAdded, cellsAdded, cellsFolded, cellsFolded, cellSizeUpdated, cellsMoved, cellsOrdered, cellsRemoved, cellsResized, cellsToggled, clearSelection, cloneCells, cloneCells, connectCell, connectCell, constrainChild, convertValueToString, createEdge, createGraphView, createGroupCell, createSelectionModel, createStylesheet, createVertex, createVertex, disconnectGraph, drawCell, drawGraph, drawState, enterGroup, enterGroup, exitGroup, extendParent, findTreeRoots, findTreeRoots, findTreeRoots, flipEdge, foldCells, foldCells, foldCells, foldCells, getAllConnectionConstraints, getAllEdges, getAlternateEdgeStyle, getBorder, getBoundingBox, getBoundingBox, getBoundingBox, getBoundingBoxFromGeometry, getBoundsForCells, getBoundsForGroup, getCellBounds, getCellBounds, getCellBounds, getCellBounds, getCellContainmentArea, getCellGeometry, getCellsBeyond, getCellsForGroup, getCellStyle, getCellValidationError, getChangesRepaintThreshold, getChildCells, getChildCells, getChildEdges, getChildOffsetForCell, getChildVertices, getCloneableCells, getConnectionConstraint, getConnectionPoint, getConnections, getConnections, getConnections, getCurrentRoot, getDefaultLoopStyle, getDefaultOverlap, getDefaultParent, getDeletableCells, getDropTarget, getEdges, getEdges, getEdges, getEdges, getEdgesBetween, getEdgesBetween, getEdgeValidationError, getFoldableCells, getGraphBounds, getGridSize, getImage, getImageBundles, getImageBundles, getImageFromBundles, getIncomingEdges, getIncomingEdges, getLabel, getLinkForCell, getMaximumGraphBounds, getMinimumGraphSize, getModel, getMovableCells, getMultiplicities, getOpposites, getOpposites, getOrigin, getOutgoingEdges, getOutgoingEdges, getOverlap, getPaintBounds, getPreferredSizeForCell, getRemovedCellsForChanges, getSelectionCell, getSelectionCells, getSelectionCellsForChanges, getSelectionCount, getSelectionModel, getStartSize, getStylesheet, getTargetForCell, getTerminalForPort, getToolTipForCell, getTranslateForRoot, getView, graphModelChanged, groupCells, groupCells, groupCells, groupCells, home, insertEdge, insertEdge, insertVertex, insertVertex, insertVertex, isAllowDanglingEdges, isAllowLoops, isAllowNegativeCoordinates, isAllowOverlapParent, isAutoOrigin, isAutoSizeCell, isAutoSizeCells, isCellBendable, isCellCloneable, isCellCollapsed, isCellConnectable, isCellDeletable, isCellDisconnectable, isCellEditable, isCellFoldable, isCellLocked, isCellMovable, isCellResizable, isCellsBendable, isCellsCloneable, isCellsDeletable, isCellsDisconnectable, isCellsEditable, isCellSelectable, isCellSelected, isCellsLocked, isCellsMovable, isCellsResizable, isCellsSelectable, isCellVisible, isCloneInvalidEdges, isCollapseToPreferredSize, isConnectableEdges, isConstrainChild, isConstrainChildren, isDisconnectOnMove, isDropEnabled, isEdgeLabelsMovable, isEdgeValid, isEnabled, isExtendParent, isExtendParents, isExtendParentsOnAdd, isGridEnabled, isHtmlLabel, isHtmlLabels, isKeepEdgesInBackground, isKeepEdgesInForeground, isLabelClipped, isLabelMovable, isLabelsClipped, isLabelsVisible, isLoop, isMultigraph, isOrthogonal, isPort, isResetEdgesOnConnect, isResetEdgesOnMove, isResetEdgesOnResize, isResetViewOnRootChange, isSelectionEmpty, isSplitEnabled, isSplitTarget, isSwimlane, isSwimlaneNesting, isTerminalPointMovable, isValidAncestor, isValidConnection, isValidDropTarget, isValidRoot, isValidSource, isValidTarget, isVertexLabelsMovable, main, moveCells, moveCells, moveCells, orderCells, orderCells, postProcessCellStyle, processChange, processChanges, refresh, removeCells, removeCells, removeCells, removeCellsFromParent, removeCellsFromParent, removeImageBundle, removePropertyChangeListener, removePropertyChangeListener, removeSelectionCell, removeSelectionCells, removeStateForCell, repaint, repaint, resetEdge, resetEdges, resizeCell, resizeCells, selectAll, selectAll, selectCell, selectCells, selectCells, selectChildCell, selectEdges, selectEdges, selectNextCell, selectParentCell, selectPreviousCell, selectVertices, selectVertices, setAllowDanglingEdges, setAllowLoops, setAllowNegativeCoordinates, setAlternateEdgeStyle, setAutoOrigin, setAutoSizeCells, setBorder, setCellsBendable, setCellsCloneable, setCellsDeletable, setCellsDisconnectable, setCellsEditable, setCellsLocked, setCellsMovable, setCellsResizable, setCellsSelectable, setCellStyle, setCellStyle, setCellStyleFlags, setCellStyleFlags, setCellStyles, setCellStyles, setChangesRepaintThreshold, setCloneInvalidEdges, setCollapseToPreferredSize, setConnectableEdges, setConnectionConstraint, setConstrainChildren, setDefaultLoopStyle, setDefaultOverlap, setDefaultParent, setDisconnectOnMove, setDropEnabled, setEdgeLabelsMovable, setEnabled, setExtendParents, setExtendParentsOnAdd, setGridEnabled, setGridSize, setHtmlLabels, setKeepEdgesInBackground, setKeepEdgesInForeground, setLabelsClipped, setLabelsVisible, setMaximumGraphBounds, setMinimumGraphSize, setModel, setMultigraph, setMultiplicities, setOrigin, setResetEdgesOnConnect, setResetEdgesOnMove, setResetEdgesOnResize, setResetViewOnRootChange, setSelectionCell, setSelectionCells, setSelectionCells, setSplitEnabled, setStylesheet, setSwimlaneNesting, setVertexLabelsMovable, setView, snap, splitEdge, splitEdge, splitEdge, swapBounds, toggleCells, toggleCells, toggleCells, toggleCellStyle, toggleCellStyleFlags, toggleCellStyleFlags, toggleCellStyles, toggleCellStyles, translateCell, traverse, traverse, ungroupCells, ungroupCells, updateAlternateBounds, updateCellSize, updateCellSize, updateGroupBounds, updateGroupBounds, updateGroupBounds, updateGroupBounds, updateOrigin, validateCell, validateEdge
 
Methods inherited from class com.mxgraph.util.mxEventSource
addListener, fireEvent, fireEvent, getEventSource, isEventsEnabled, removeListener, removeListener, setEventsEnabled, setEventSource
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

JGraphXAdapter

public JGraphXAdapter(ListenableGraph<V,E> graph)
Constructs and draws a new ListenableGraph. If the graph changes through as ListenableGraph, the JGraphXAdapter will automatically add/remove the new edge/vertex as it implements the GraphListener interface. Throws a IllegalArgumentException if the graph is null.

Parameters:
graph - casted to graph

JGraphXAdapter

public JGraphXAdapter(Graph<V,E> graph)
Constructs and draws a new mxGraph from a jGraphT graph. Changes on the jgraphT graph will not edit this mxGraph any further; use the constructor with the ListenableGraph parameter instead or use this graph as a normal mxGraph. Throws an IllegalArgumentException if the parameter is null.

Parameters:
graph - is a graph
Method Detail

getVertexToCellMap

public HashMap<V,com.mxgraph.model.mxICell> getVertexToCellMap()
Returns Hashmap which maps the vertices onto their visualization mxICells.

Returns:
vertexToCellMap

getEdgeToCellMap

public HashMap<E,com.mxgraph.model.mxICell> getEdgeToCellMap()
Returns Hashmap which maps the edges onto their visualization mxICells.

Returns:
edgeToCellMap

getCellToEdgeMap

public HashMap<com.mxgraph.model.mxICell,E> getCellToEdgeMap()
Returns Hashmap which maps the visualization mxICells onto their edges.

Returns:
cellToEdgeMap

getCellToVertexMap

public HashMap<com.mxgraph.model.mxICell,V> getCellToVertexMap()
Returns Hashmap which maps the visualization mxICells onto their vertices.

Returns:
cellToVertexMap

vertexAdded

public void vertexAdded(GraphVertexChangeEvent<V> e)
Description copied from interface: VertexSetListener
Notifies that a vertex has been added to the graph.

Specified by:
vertexAdded in interface VertexSetListener<V>
Parameters:
e - the vertex event.

vertexRemoved

public void vertexRemoved(GraphVertexChangeEvent<V> e)
Description copied from interface: VertexSetListener
Notifies that a vertex has been removed from the graph.

Specified by:
vertexRemoved in interface VertexSetListener<V>
Parameters:
e - the vertex event.

edgeAdded

public void edgeAdded(GraphEdgeChangeEvent<V,E> e)
Description copied from interface: GraphListener
Notifies that an edge has been added to the graph.

Specified by:
edgeAdded in interface GraphListener<V,E>
Parameters:
e - the edge event.

edgeRemoved

public void edgeRemoved(GraphEdgeChangeEvent<V,E> e)
Description copied from interface: GraphListener
Notifies that an edge has been removed from the graph.

Specified by:
edgeRemoved in interface GraphListener<V,E>
Parameters:
e - the edge event.


Copyright © 2013. All rights reserved.