/** * (non-Javadoc) * * @see * edu.uci.ics.jung.visualization.AbstractLayout#initialize_local_vertex(edu.uci.ics.jung.graph.Vertex) */ protected void initialize_local_vertex(Vertex v) { ISOMVertexData vd = getISOMVertexData(v); if (vd == null) { vd = new ISOMVertexData(); v.addUserDatum(getIsomKey(), vd, UserData.REMOVE); } vd.visited = false; }
private synchronized void adjustVertex(Vertex v) { queue.removeAllElements(); ISOMVertexData ivd = getISOMVertexData(v); ivd.distance = 0; ivd.visited = true; queue.add(v); Vertex current; while (!queue.isEmpty()) { current = (Vertex) queue.remove(0); ISOMVertexData currData = getISOMVertexData(current); Coordinates currXYData = getCoordinates(current); double dx = tempXYD.getX() - currXYData.getX(); double dy = tempXYD.getY() - currXYData.getY(); double factor = adaption / Math.pow(2, currData.distance); currXYData.addX(factor * dx); currXYData.addY(factor * dy); if (currData.distance < radius) { Set s = current.getNeighbors(); while (true) { try { for (Iterator iter = s.iterator(); iter.hasNext(); ) { Vertex child = (Vertex) iter.next(); ISOMVertexData childData = getISOMVertexData(child); if (childData != null && !childData.visited) { childData.visited = true; childData.distance = currData.distance + 1; queue.addElement(child); } } break; } catch (ConcurrentModificationException cme) { } } } } }
public ISOMVertexData getISOMVertexData(Vertex v) { return (ISOMVertexData) (v.getUserDatum(getIsomKey())); }