// selection on an edge before getting rid of the endpoints of
// the edge.
Iterator figures = (new HashSet(_map.values())).iterator();
while (figures.hasNext()) {
Figure figure = (Figure) figures.next();
Object object = figure.getUserObject();
if (_model.isEdge(object)) {
if (!GraphUtilities.isPartiallyContainedEdge(object, _model
.getRoot(), _model)) {
if (_selectionModel.containsSelection(figure)) {
_selectionModel.removeSelection(figure);
}
clearEdge(object);
// Previously, the figure was being left in _map,
// which results in an accumulation over time
// of figures that should not be rendered.
// EAL 4/29/04.
_map.remove(object);
}
}
}
figures = (new HashSet(_map.values())).iterator();
while (figures.hasNext()) {
Figure figure = (Figure) figures.next();
Object object = figure.getUserObject();
if (_model.isNode(object)) {
if (!GraphUtilities.isContainedNode(object, _model.getRoot(),
_model)) {
if (_selectionModel.containsSelection(figure)) {
_selectionModel.removeSelection(figure);
}
clearNode(object);
// Previously, the figure was being left in _map,
// which results in an accumulation over time
// of figures that should not be rendered.
// EAL 4/29/04.
_map.remove(object);
}
}
}
// Save the selected edges.
Iterator edges = GraphUtilities.totallyContainedEdges(_model.getRoot(),
_model);
while (edges.hasNext()) {
Object edge = edges.next();
Figure oldFigure = getFigure(edge);
boolean selected = _selectionModel.containsSelection(oldFigure);
if (selected) {
selectedEdges.add(edge);
}
}
// Save the selected nodes.
Iterator nodes = (GraphUtilities.nodeSet(_model.getRoot(), _model))
.iterator();
while (nodes.hasNext()) {
Object node = nodes.next();
Figure oldFigure = getFigure(node);
boolean selected = _selectionModel.containsSelection(oldFigure);
if (selected) {
selectedNodes.add(node);
}