@Override
	public void disposed() {
		if (matchesTable == null) {
			return;
		}

		// must remove the listener first to avoid callback whilst we are disposing
		ListSelectionModel selectionModel = matchesTable.getSelectionModel();
		selectionModel.removeListSelectionListener(matchSelectionListener);

		oneToManyTableModel.dispose();

		for (Filter<VTMatch> filter : filters) {
			filter.dispose();
		}
	}
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