private void updateArcs() { for (GraphArc arc : arcs) { if (isSelected()) { arc.setSelected(true); } else { GraphNode src = arc.getSource(); GraphNode dest = arc.getDestination(); if (src == dest) { arc.setSelected(false); } else if (this == src) { arc.setSelected(dest.isSelected()); } else if (this == dest) { arc.setSelected(src.isSelected()); } } } }