@Override
		public void valueChanged(TreeSelectionEvent e) {
			if (isSelectingNodeInternally) {
				// ignore our own selection events, as this method will get called twice if we don't
				return;
			}

			JHelpNavigator navigator = getHelpNavigator();
			HelpModel helpModel = navigator.getModel();

			TreeItem treeItem = getSelectedItem(e, navigator);
			if (treeItem == null) {
				return; // nothing selected
			}

			TOCItem item = (TOCItem) treeItem;
			String presentation = item.getPresentation();
			if (presentation != null) {
				return; // don't currently support presentations
			}

			CustomTreeItemDecorator customItem = (CustomTreeItemDecorator) item;
			ID itemId = getId(customItem, helpModel);
			if (itemId == null) {
				Msg.debug(this, "No help ID for " + item);
				return;
			}

			String customDisplayText = customItem.getDisplayText();
			try {
				helpModel.setCurrentID(itemId, customDisplayText, navigator);
			}
			catch (InvalidHelpSetContextException ex) {
				Msg.error(this, "Exception setting new help item ID", ex);
			}
		}
Our hook to install our custom cell renderer.
Ghidra/Framework/Help/src/main/java/help/CustomTOCView.java