Set<E> jCellsBeingAdded
1. First, we add the desired edge to jCellsBeingAdded to indicate
that the edge is being inserted internally.
2. Then we invoke the JGraph 'insert' operation.
3. The JGraph listener will detect the newly inserted edge.
4. It checks if the edge is contained in jCellsBeingAdded.
5. If yes,
it just removes it and does nothing else.
if no,
it knows that the edge was inserted externally and performs
the insertion.
6. Lastly, we remove the edge from the jCellsBeingAdded.
Step 6 is not always required but we do it anyway as a safeguard against the rare case where the edge to be added is already contained in the graph and thus NO event will be fired. If 6 is not done, a junk edge will remain in the jCellsBeingAdded set.
The other sets are used in a similar manner to the above. Apparently, All that complication could be eliminated if JGraph and JGraphT had both allowed operations that do not inform listeners...
Set<E> jCellsBeingRemoved
Set<E> jtElementsBeingAdded
Set<E> jtElementsBeingRemoved
JGraphModelAdapter.CellFactory<VV,EE> cellFactory
Map<K,V> cellToEdge
Map<K,V> cellToVertex
org.jgraph.graph.AttributeMap defaultEdgeAttributes
org.jgraph.graph.AttributeMap defaultVertexAttributes
Map<K,V> edgeToCell
Map<K,V> vertexToCell
org.jgrapht.ext.JGraphModelAdapter.ShieldedGraph jtGraph
Copyright © 2016. All Rights Reserved.