@Override
	public Set<V> getSelectedVertices() {
		//
		// Implementation note: the 'focusedVertex' is considered selected.  A selected vertex
		//                      will be considered focused when it is the only selected vertex.
		//

		// quick check for no selected vertices
		boolean hasGroupSelection = selectedVertices.size() > 0;
		if (!hasGroupSelection && focusedVertex == null) {
			return Collections.emptySet();
		}

		// there is some vertex selected...
		if (hasGroupSelection) {
			return new HashSet<>(selectedVertices);
		}

		// no group selection, there must be a focused vertex
		Set<V> set = new HashSet<>();
		set.add(focusedVertex);
		return set;
	}
A default {@link VisualGraph} that implements basic setup for things like event processing.

<P>Notes:
<UL>
	<LI><U>Selected Vertices and the Focused Vertex</U> - 
		there can be multiple selected vertices, but only a single focused vertex.  
     <B>{@link #getSelectedVertices()} will return both 
     the selected vertices or	the focused vertex if there are no vertices selected.</B>
 </LI>
 <LI>Clicking a single vertex will focus it.  Control-clicking multiple vertices will
 		cause them all to be selected, with no focused vertex.
	</LI>
 <LI><U>Rendering Edges</U> - edges are rendered with or without articulations if 
        they have them.  This is built-in to the default graphing edge renderer.  
        Some layouts require custom edge rendering and will provide their own 
        renderer as needed.
 </LI>
</UL>


@param <V> the vertex type
@param <E> the edge type
Ghidra/Framework/Graph/src/main/java/ghidra/graph/graphs/DefaultVisualGraph.java