protected void removeSelectedItems() {
		TableModel model = table.getModel();
		if (!(model instanceof RowObjectTableModel)) {
			throw new AssertException("This action cannot delete rows for the given table model." +
				"You can override this method to peform the delete action yourself.");
		}

		if (checkForBusy(model)) {
			Msg.showInfo(this, table, "Table is Busy",
				"Cannot remove items from the table while it is working");
			return;
		}

		@SuppressWarnings("unchecked")
		RowObjectTableModel<Object> rowObjectModel = (RowObjectTableModel<Object>) model;
		int[] rows = table.getSelectedRows();
		List<Object> itemsToRemove = new ArrayList<>();
		for (int row : rows) {
			itemsToRemove.add(rowObjectModel.getRowObject(row));
		}

		removeRowObjects(model, itemsToRemove);

		// put some selection back
		int restoreRow = rows[0];
		selectRow(model, restoreRow);
	}
A special method that triggers the registration of this action's shared/dummy keybinding.
This is needed for plugins that produce transient component providers that do not exist
at the time the plugin is loaded.

@param tool the tool whose options will updated with a dummy keybinding
@param owner the owner of the action that may be installed
Ghidra/Features/Base/src/main/java/ghidra/util/table/actions/DeleteTableRowAction.java