@Override
	@SuppressWarnings("unchecked")
	public void mouseDragged(MouseEvent e) {
		if (locked == false) {
			VisualizationViewer<V, E> vv = (VisualizationViewer<V, E>) e.getSource();
			if (vertex != null) {
				Point p = e.getPoint();
				Point2D graphPoint =
					vv.getRenderContext().getMultiLayerTransformer().inverseTransform(p);
				Point2D graphDown =
					vv.getRenderContext().getMultiLayerTransformer().inverseTransform(down);
				Layout<V, E> layout = vv.getGraphLayout();
				double dx = graphPoint.getX() - graphDown.getX();
				double dy = graphPoint.getY() - graphDown.getY();
				PickedState<V> ps = vv.getPickedVertexState();

				for (V v : ps.getPicked()) {
					Point2D vp = layout.apply(v);
					vp.setLocation(vp.getX() + dx, vp.getY() + dy);
					layout.setLocation(v, vp);
				}
				down = p;

			}
			else {
				Point2D out = e.getPoint();
				if (e.getModifiersEx() == this.addToSelectionModifiers ||
					e.getModifiersEx() == modifiers) {
					rect.setFrameFromDiagonal(down, out);
				}
			}
			if (vertex != null) {
				e.consume();
			}
			vv.repaint();
		}
	}
If the mouse is over a picked vertex, drag all picked
vertices with the mouse.
If the mouse is not over a Vertex, draw the rectangle
to select multiple Vertices
Ghidra/Framework/Graph/src/main/java/ghidra/graph/viewer/event/mouse/JungPickingGraphMousePlugin.java