private Component buildTablePanel() {

		model = new BsfvTableModel(plugin, plugin.getCurrentProgram());
		bsimFeatureTablePanel = new GhidraThreadedTablePanel<>(model, 1000);
		bsimFeatureTable = bsimFeatureTablePanel.getTable();
		bsimFeatureTable.setName("BSim Features");

		bsimFeatureTable.installNavigation(tool);
		bsimFeatureTable.setNavigateOnSelectionEnabled(true);
		bsimFeatureTable.setAutoResizeMode(JTable.AUTO_RESIZE_SUBSEQUENT_COLUMNS);
		bsimFeatureTable.setPreferredScrollableViewportSize(new Dimension(900, 300));
		bsimFeatureTable.setRowSelectionAllowed(true);
		bsimFeatureTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);

		bsimFeatureTable.getSelectionModel().addListSelectionListener(e -> {
			if (!plugin.getHighlightByRow()) {
				return;
			}
			DecompilerHighlightService service = plugin.getDecompilerHighlightService();
			if (service == null) {
				return;
			}
			int selectedRow = bsimFeatureTable.getSelectedRow();
			if (selectedRow == -1) {
				return;
			}
			BsfvRowObject row = model.getRowObject(selectedRow);
			BsfvTokenHighlightMatcher tokenMatcher =
				new BsfvTokenHighlightMatcher(row, model.getHighFunction(), plugin);
			DecompilerHighlighter highlighter = service.createHighlighter(
				HighlightAndGraphAction.BSIM_FEATURE_HIGHLIGHTER_NAME, tokenMatcher);
			highlighter.applyHighlights();
		});

		model.addTableModelListener(e -> {
			int rowCount = model.getRowCount();
			int unfilteredCount = model.getUnfilteredRowCount();

			StringBuilder buffy = new StringBuilder();

			buffy.append(rowCount).append(" items");
			if (rowCount != unfilteredCount) {
				buffy.append(" (of ").append(unfilteredCount).append(" )");
			}

			setSubTitle(buffy.toString());
		});

		tableFilterPanel = new GhidraTableFilterPanel<>(bsimFeatureTable, model);

		JPanel container = new JPanel(new BorderLayout());
		container.add(bsimFeatureTablePanel, BorderLayout.CENTER);
		container.add(tableFilterPanel, BorderLayout.SOUTH);
		return container;
	}
Returns the BSim feature table model
@return table model
Ghidra/Features/BSimFeatureVisualizer/src/main/java/ghidra/bsfv/BsfvTableProvider.java