|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectedu.uci.ics.jung.visualization.AbstractLayout
edu.uci.ics.jung.visualization.contrib.KKLayoutInt
public class KKLayoutInt
Implements the Kamada-Kawai algorithm for node layout, tweaked to store vertex distances as integers. Uses less memory than the classic KKLayout, but doesn't respect non-integer edge distances or lengths. Does not respect filter calls, and sometimes crashes when the view changes to it.
Field Summary | |
---|---|
protected int |
diameter
The diameter of the visible graph. |
protected UnweightedShortestPath |
unweightedShortestPaths
Stores graph distances between vertices of the visible graph |
Fields inherited from class edu.uci.ics.jung.visualization.AbstractLayout |
---|
changeSupport, vertex_locations |
Constructor Summary | |
---|---|
KKLayoutInt(Graph g)
|
Method Summary | |
---|---|
void |
adjustForGravity()
Shift all vertices so that the center of gravity is located at the center of the screen. |
void |
advancePositions()
Implementors must override this method in order to create a Layout. |
boolean |
getAdjustForGravity()
Returns true if gravity point adjusting is enabled. |
protected int |
getDistance(Vertex v1,
Vertex v2)
Gets a distance (a length of the shortest path) between the specified vertices. |
boolean |
getExchangeVertices()
Returns true if the local minimum escape technique by exchanging vertices is enabled. |
String |
getStatus()
Returns the current status of the sytem, or null if there is no particular status to report.By default, an AbstractLayout returns null for its status. |
boolean |
incrementsAreDone()
Returns true once the current iteration has passed the maximum count. |
protected void |
initialize_local_vertex(Vertex v)
Initializes the local information on a single vertex. |
protected void |
initialize_local()
Initializes all local information, and is called immediately within the initialize() process. |
protected void |
initializeLocations()
This method calls initialize_local_vertex for each vertex, and also adds initial coordinate information for each vertex. |
boolean |
isIncremental()
This one is an incremental visualization. |
void |
setAdjustForGravity(boolean on)
Enable or disable gravity point adjusting. |
void |
setExchangeVertices(boolean on)
Enable or disable the local minimum escape technique by exchanging vertices. |
void |
setMaxIterations(int maxIterations)
|
Methods inherited from class edu.uci.ics.jung.visualization.AbstractLayout |
---|
addChangeListener, applyFilter, dontMove, fireStateChanged, forceMove, getAVertex, getBaseKey, getChangeListeners, getCoordinates, getCurrentSize, getEdge, getEdge, getGraph, getLocation, getVertex, getVertex, getVertexIterator, getVisibleEdges, getVisibleGraph, getVisibleVertices, getX, getY, initialize, initialize, initializeLocation, isLocked, lockVertex, offsetVertex, postInitialize, removeChangeListener, resize, restart, unlockVertex |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
protected UnweightedShortestPath unweightedShortestPaths
protected int diameter
Constructor Detail |
---|
public KKLayoutInt(Graph g)
Method Detail |
---|
public String getStatus()
AbstractLayout
getStatus
in interface Layout
getStatus
in class AbstractLayout
public void setMaxIterations(int maxIterations)
public boolean isIncremental()
public boolean incrementsAreDone()
protected void initialize_local()
AbstractLayout
initialize_local
in class AbstractLayout
protected void initializeLocations()
AbstractLayout
initializeLocations
in class AbstractLayout
protected int getDistance(Vertex v1, Vertex v2)
The original Kamada-Kawai algorithm requires a connected graph. That is, pathes must be exist between every pair of vertices in the graph. To visualize a non-connected graph, this method returns (diameter + 1) for vertices that are not connected.
The default implementation is as follows:
int dist = unweightedShortestPaths.getShortestPath(v1, v2); if (dist < 0) return diameter + 1; else return dist;
protected void initialize_local_vertex(Vertex v)
AbstractLayout
initialize_local_vertex
in class AbstractLayout
public void advancePositions()
AbstractLayout
Note that "locked" vertices are not to be moved; however, it is the policy of the visualization to decide how to handle them, and what to do with the vertices around them. Prototypical code might include a clipping like
for (Iterator i = getVertices().iterator(); i.hasNext() ) { Vertex v = (Vertex) i.next(); if (! dontmove.contains( v ) ) { ... // handle the node } else { // ignore the node } }
advancePositions
in interface Layout
advancePositions
in class AbstractLayout
Layout.advancePositions()
public void adjustForGravity()
public void setAdjustForGravity(boolean on)
public boolean getAdjustForGravity()
public void setExchangeVertices(boolean on)
public boolean getExchangeVertices()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |