- java.lang.Object
-
- com.mxgraph.util.mxEventSource
-
- com.mxgraph.view.mxGraph
-
- org.jgrapht.ext.JGraphXAdapter<V,E>
-
- Type Parameters:
V- the graph vertex typeE- the graph edge type
- 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.
Note: If this class is used with an edge type such as String, you must either supply unique String names via addEdge(v1, v2, "edge123"), or use a custom edge factory which does so. Otherwise, if you use addEdge(v1, v2), 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.
- Author:
- JeanYves Tinevez
-
-
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, portsEnabled, resetEdgesOnConnect, resetEdgesOnMove, resetEdgesOnResize, resetViewOnRootChange, selectionModel, splitEnabled, stylesheet, swimlaneNesting, updateOriginHandler, VERSION, vertexLabelsMovable, view
-
-
Constructor Summary
Constructors Constructor Description 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
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidedgeAdded(GraphEdgeChangeEvent<V,E> e)Notifies that an edge has been added to the graph.voidedgeRemoved(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.voidvertexAdded(GraphVertexChangeEvent<V> e)Notifies that a vertex has been added to the graph.voidvertexRemoved(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, addTopmostVerticesAndEdges, 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, 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, isPortsEnabled, 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, setPortsEnabled, 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, toString, translateCell, traverse, traverse, ungroupCells, ungroupCells, updateAlternateBounds, updateCellSize, updateCellSize, updateGroupBounds, updateGroupBounds, updateGroupBounds, updateGroupBounds, updateOrigin, updateSelection, 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, wait, wait, wait
-
Methods inherited from interface org.jgrapht.event.GraphListener
edgeWeightUpdated
-
-
-
-
Constructor Detail
-
JGraphXAdapter
public JGraphXAdapter(ListenableGraph<V,E> graph)
Constructs and draws a new ListenableGraph. If the graph changes through the ListenableGraph, the JGraphXAdapter will automatically add/remove the new edge/vertex as it implements the GraphListener interface.- Parameters:
graph- casted to graph- Throws:
IllegalArgumentException- if the graph is null.
-
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.- Parameters:
graph- is a graph- Throws:
IllegalArgumentException- if the parameter is null
-
-
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:VertexSetListenerNotifies that a vertex has been added to the graph.- Specified by:
vertexAddedin interfaceVertexSetListener<V>- Parameters:
e- the vertex event.
-
vertexRemoved
public void vertexRemoved(GraphVertexChangeEvent<V> e)
Description copied from interface:VertexSetListenerNotifies that a vertex has been removed from the graph.- Specified by:
vertexRemovedin interfaceVertexSetListener<V>- Parameters:
e- the vertex event.
-
edgeAdded
public void edgeAdded(GraphEdgeChangeEvent<V,E> e)
Description copied from interface:GraphListenerNotifies that an edge has been added to the graph.- Specified by:
edgeAddedin interfaceGraphListener<V,E>- Parameters:
e- the edge event.
-
edgeRemoved
public void edgeRemoved(GraphEdgeChangeEvent<V,E> e)
Description copied from interface:GraphListenerNotifies that an edge has been removed from the graph.- Specified by:
edgeRemovedin interfaceGraphListener<V,E>- Parameters:
e- the edge event.
-
-