private void initializeModel(ThreadedTableModel<T, ?> model) {
		defaultMonitor = new MessagePassingTaskMonitor();
		incrementalMonitor = new IncrementalLoadingTaskMonitor(defaultMonitor);

		if (threadedModel.isLoadIncrementally()) {
			defaultMonitor.setMessageRecipient(incrementalMonitor);
			loadingProgressMonitor = incrementalMonitor;
			model.setIncrementalTaskMonitor(incrementalMonitor);
		}
		else {
			loadingProgressMonitor = defaultMonitor;
		}

		tableListener = new TableListener();
		model.addThreadedTableModelListener(tableListener);

		model.setDefaultTaskMonitor(defaultMonitor);
		model.setUpdateDelay(minUpdateDelay, maxUpdateDelay);
		threadedModel = model;
	}
Constructs a new threaded table panel.
@param model the threaded table model
@param minUpdateDelay the minimum amount of time to wait before the table model will
       update its data
@param maxUpdateDelay the maximum amount of time to wait before the table model will
       update its data
Ghidra/Framework/Docking/src/main/java/docking/widgets/table/threaded/GThreadedTablePanel.java