private void updatePanelButtonEnablement() {
			boolean hasLocalSymbolStore = localSymbolStore != null;
			boolean singleRow = table.getSelectedRowCount() == 1;
			boolean moreThanOneRow = table.getRowCount() > 1;

			refreshSearchLocationsStatusButton
					.setEnabled(hasLocalSymbolStore && !tableModel.isEmpty());
			moveLocationUpButton.setEnabled(hasLocalSymbolStore && singleRow && moreThanOneRow);
			moveLocationDownButton.setEnabled(hasLocalSymbolStore && singleRow && moreThanOneRow);
			addLocationButton.setEnabled(hasLocalSymbolStore);
			deleteLocationButton.setEnabled(hasLocalSymbolStore && table.getSelectedRowCount() > 0);
			saveSearchLocationsButton.setEnabled(hasLocalSymbolStore && isConfigChanged());
			updateLayout(hasLocalSymbolStore);
		}
The union of the changed status of the local storage path and the additional
search paths table model changed status.

@return boolean true if the config has changed
Ghidra/Features/PDB/src/main/java/pdb/symbolserver/ui/ConfigPdbDialog.java