private void build() {
		panel = new JPanel(new BorderLayout(5, 5));

		bundleStatusTable = new GTable(bundleStatusTableModel);
		bundleStatusTable.setSelectionBackground(new GColor("color.bg.table.selection.bundle"));
		bundleStatusTable.setSelectionForeground(new GColor("color.fg.table.selection.bundle"));
		bundleStatusTable.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);

		// give actions a chance to update status when selection changed
		bundleStatusTable.getSelectionModel().addListSelectionListener(e -> {
			if (e.getValueIsAdjusting()) {
				return;
			}
			tool.contextChanged(BundleStatusComponentProvider.this);
		});

		// to allow custom cell renderers
		bundleStatusTable.setAutoCreateColumnsFromModel(false);
		filterPanel = new GTableFilterPanel<>(bundleStatusTable, bundleStatusTableModel);
		JScrollPane scrollPane = new JScrollPane(bundleStatusTable);

		panel.add(filterPanel, BorderLayout.SOUTH);
		panel.add(scrollPane, BorderLayout.CENTER);
		panel.setPreferredSize(new Dimension(800, 400));

		String namePrefix = "Bundle Manager";
		bundleStatusTable.setAccessibleNamePrefix(namePrefix);
		filterPanel.setAccessibleNamePrefix(namePrefix);

	}
{@link BundleStatusComponentProvider} visualizes bundle status and exposes actions for
adding, removing, enabling, disabling, activating, and deactivating bundles.

@param tool the tool
@param owner the owner name
@param bundleHost the bundle host
Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/osgi/BundleStatusComponentProvider.java