@Override
		public Component getTreeCellRendererComponent(JTree tree, Object value, boolean sel,
				boolean expanded, boolean leaf, int row, boolean isFocused) {

			CustomCellRenderer renderer =
				(CustomCellRenderer) super.getTreeCellRendererComponent(tree, value, sel, expanded,
					leaf, row, isFocused);

			TOCItem item = (TOCItem) ((DefaultMutableTreeNode) value).getUserObject();
			if (item == null) {
				return renderer;
			}

			CustomTreeItemDecorator customItem = (CustomTreeItemDecorator) item;
			renderer.setText(customItem.getDisplayText());

			if (!SystemUtilities.isInDevelopmentMode()) {
				return renderer;
			}

			URL url = customItem.getURL();
			if (url != null) {
				renderer.setToolTipText(url.toExternalForm());
				return renderer;
			}

			ID id = customItem.getID();
			if (id != null) {
				renderer.setToolTipText("Missing Help - " + id.id + " in '" + id.hs + "' help set");
				return renderer;
			}

			// this can happen if there is no 'target' attribute in the TOC
			// (see TOCView.createItem())
			return renderer;
		}
Our hook to install our custom cell renderer.
Ghidra/Framework/Help/src/main/java/help/CustomTOCView.java