private DomainObjectListener createDomainObjectListener() {
		// @formatter:off
		return new DomainObjectListenerBuilder(this)
			.ignoreWhen(() -> !provider.isVisible())
			.any(RESTORED, MEMORY_BLOCK_MOVED, MEMORY_BLOCK_REMOVED).terminate(provider::reload)
			.any(CODE_ADDED, CODE_REMOVED).call(swingMgr::update)
			.with(ProgramChangeRecord.class)
				.each(FUNCTION_ADDED).call(this::functionAdded)
				.each(FUNCTION_REMOVED).call(this::functionRemoved)
				.each(FUNCTION_CHANGED).call(this::functionChanged)
				.each(SYMBOL_ADDED, SYMBOL_PRIMARY_STATE_CHANGED).call(this::symbolChanged)
				.each(SYMBOL_RENAMED).call(this::symbolRenamed)
			.build();
		// @formatter:on
	}
Kicks the tool actions to set the proper enablement when selection changes
on the function table
Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/functionwindow/FunctionWindowPlugin.java