private JPanel createPluginTablePanel(PluginDetailsPanel pluginDetailsPanel) {

		JPanel pluginTablePanel = new JPanel();
		pluginTablePanel.setLayout(new BorderLayout());

		PluginInstallerTableModel tableModel =
			new PluginInstallerTableModel(tool, getComponent(), pluginDescriptions, model);
		table = new GTable(tableModel);
		table.getAccessibleContext().setAccessibleName("Plugin");
		table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
		tableFilterPanel = new GTableFilterPanel<>(table, tableModel);
		tableFilterPanel.getAccessibleContext().setAccessibleName("Plugin Filter");

		JScrollPane sp = new JScrollPane(table);
		sp.getAccessibleContext().setAccessibleName("Plugin Table");
		pluginTablePanel.add(sp, BorderLayout.CENTER);
		pluginTablePanel.add(tableFilterPanel, BorderLayout.SOUTH);

		// Restrict the size of the first couple columns - the default size is
		// way too large. This is annoying but our table column classes don't have a nice
		// way to restrict column width.
		TableColumnModel columnModel = table.getColumnModel();
		TableColumn installedColumn = columnModel.getColumn(INSTALLED_COL);
		installedColumn.setMaxWidth(30);
		TableColumn statusColumn = columnModel.getColumn(STATUS_COL);
		statusColumn.setMaxWidth(24);

		tableModel.setTableSortState(TableSortState.createDefaultSortState(NAME_COL));
		tableModel.refresh();

		columnModel.getColumn(NAME_COL).setCellRenderer(new NameCellRenderer());
		columnModel.getColumn(STATUS_COL).setCellRenderer(new StatusCellRenderer());

		HelpService help = Help.getHelpService();
		help.registerHelp(table, new HelpLocation(GenericHelpTopics.TOOL, "PluginDialog"));

		table.getSelectionModel().addListSelectionListener(e -> {

			if (e.getValueIsAdjusting()) {
				return;
			}

			int row = table.getSelectedRow();
			if (row < 0 || row > pluginDescriptions.size()) {
				pluginDetailsPanel.setPluginDescription(null);
				return;
			}

			PluginDescription desc = tableFilterPanel.getRowObject(row);
			pluginDetailsPanel.setPluginDescription(desc);
		});
		pluginTablePanel.getAccessibleContext().setAccessibleName("Plugins");
		return pluginTablePanel;
	}
Creates the panel containing the table of plugins.
Ghidra/Framework/Project/src/main/java/ghidra/framework/plugintool/dialog/PluginInstallerDialog.java