private void findReferences(NavigatableActionContext context) {
		AddressSetView fromSet = context.getSelection();
		Address fromAddr = context.getAddress();
		Program currentProgram = context.getProgram();
		ProgramSelection currentSelection = context.getSelection();
		if (fromAddr == null) {
			return;
		}

		String title;
		if (currentSelection == null || currentSelection.isEmpty()) {
			if (currentProgram.getMemory().getBlock(fromAddr) == null) {
				Msg.showWarn(getClass(), null, "Search For Direct References",
					"Could not find memory associated with " + fromAddr);
				return;
			}
			if (currentProgram.getMemory()
					.getBlock(fromAddr)
					.getType() == MemoryBlockType.BIT_MAPPED) {
				Msg.showWarn(getClass(), null, "Search For Direct References",
					"Cannot search for direct references on bit memory!");
				return;
			}
			fromSet = getAddressSetForCodeUnitAt(currentProgram, fromAddr);
			title = ": Direct Refs to " + fromAddr;
		}
		else {
			title = ": Direct Refs to Selection @ " + currentSelection.getMinAddress();
		}

		List<TableComponentProvider<ReferenceAddressPair>> list = new ArrayList<>(providerList);
		for (int i = 0; i < list.size(); i++) {
			TableComponentProvider<ReferenceAddressPair> p = list.get(i);
			if (!tool.isVisible(p)) {
				providerList.remove(p);
			}
			else {
				FindReferencesTableModel model = (FindReferencesTableModel) p.getModel();
				AddressSetView searchSet = model.getSearchAddressSet();
				Address searchAddr = model.getAddress();
				// If this model matches the search about to be performed.
				// (i.e. same search address set or same individual address)
				if (((fromSet != null && !fromSet.isEmpty()) && (fromSet.equals(searchSet))) ||
					(((fromSet == null) || fromSet.isEmpty()) && fromAddr.equals(searchAddr))) {
					model.refresh();
					tool.showComponentProvider(p, true);
					return;
				}
			}
		}
		FindReferencesTableModel model = null;

		model = new FindReferencesTableModel(fromSet, tool, currentProgram);

		TableService service = tool.getService(TableService.class);
		TableComponentProvider<ReferenceAddressPair> p =
			service.showTable("Find References to" + title, "Possible References", model,
				"References", context.getNavigatable());
		p.installRemoveItemsAction();
		p.setHelpLocation(new HelpLocation(HelpTopics.SEARCH, "Search for Direct References"));
		createLocalActions(context, p, model);
		providerList.add(p);
	}
find possible references to current address
Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/analysis/FindPossibleReferencesPlugin.java