@Override
		public void removeSelectionPath(TreePath path) {
			// Called by the UI to add/remove selections--mark it as a user event.
			// Note: this code is based upon the fact that the BasicTreeUI calls this method on
			//       the tree when processing user clicks.  If another UI implementation were
			//       to call a different method, then we would have to re-think how we mark our
			//       events as user vs internally generated.
			GTreeSelectionModel gTreeSelectionModel = (GTreeSelectionModel) getSelectionModel();
			gTreeSelectionModel.userRemovedSelectionPath(path);
		}
Need to override the removeMouseListener method of the JTree to defer to the delegate
mouse listener. The GTree uses a mouse listener delegate for itself and the JTree it
wraps. When the delegate was installed, it moved all the existing mouse listeners from
the JTree to the delegate. All listener remove calls should also be moved to the
delegate. Otherwise, some Ghidra components that use a convention/pattern to avoid
listener duplication by first removing a listener before adding it, don't work and
duplicates get added.
Ghidra/Framework/Docking/src/main/java/docking/widgets/tree/GTree.java