@Override
		public void run(TaskMonitor monitor) throws CancelledException {
			List<MemoryMatch> matches = tableModel.getModelData();

			if (refreshByteValues(monitor, matches) && scanner != null) {
				performScanFiltering(monitor, matches);
			}
			else {
				tableModel.fireTableDataChanged();  // some data bytes may have changed, repaint
				provider.refreshAndScanCompleted(null);
			}

		}
Internal panel of the memory search window that manages the display of the search results
in a table. This panel also includes most of the search logic as it has direct access to the
table for showing the results.
Ghidra/Features/Base/src/main/java/ghidra/features/base/memsearch/gui/MemorySearchResultsPanel.java