@Override
	public void sessionUpdated(DomainObjectChangedEvent ev) {
		if (!isVisible()) {
			return;
		}
		// Check event since some may require reload of table if more or fewer matches.
		boolean matchesContextChanged = false;
		for (int i = 0; i < ev.numRecords(); i++) {
			DomainObjectChangeRecord doRecord = ev.getChangeRecord(i);
			EventType eventType = doRecord.getEventType();

			if (eventType == VTEvent.ASSOCIATION_MARKUP_STATUS_CHANGED ||
				eventType == VTEvent.ASSOCIATION_STATUS_CHANGED ||
				eventType == VTEvent.MATCH_TAG_CHANGED) {

				oneToManyTableModel.refresh();
				repaint();
				matchesContextChanged = true;
			}
			else if (eventType == DomainObjectEvent.RESTORED ||
				eventType == VTEvent.MATCH_SET_ADDED || eventType == VTEvent.MATCH_ADDED ||
				eventType == VTEvent.MATCH_DELETED) {

				reload();
				repaint();
				matchesContextChanged = true;
			}
		}
		if (matchesContextChanged) {
			// Update the context so that toolbar actions fix their enablement.
			tool.contextChanged(this);
		}
	}
The docking window that provides a table of the other tool's function matches
for the function containing the current cursor location in this tool's
listing.
Ghidra/Features/VersionTracking/src/main/java/ghidra/feature/vt/gui/provider/onetomany/VTMatchOneToManyTableProvider.java