@Override
	public void setValueAt(Object aValue, int rowIndex, int columnIndex) {

		// Shouldn't happen, but do a sanity check.
		if (rowIndex < 0 || rowIndex >= users.size()) {
			return;
		}

		User user = users.get(rowIndex);

		switch (columnIndex) {
			case READ_ONLY_COL:
				user = new User(user.getName(),
					((Boolean) aValue).booleanValue() ? User.READ_ONLY : User.WRITE);
				break;

			case READ_WRITE_COL:
				user = new User(user.getName(),
					((Boolean) aValue).booleanValue() ? User.WRITE : User.READ_ONLY);
				break;

			case ADMIN_COL:
				user = new User(user.getName(),
					((Boolean) aValue).booleanValue() ? User.ADMIN : User.WRITE);
				break;
		}

		users.remove(rowIndex);
		users.add(rowIndex, user);

		refresh();
	}
Invoked when the user has changed one of the access rights checkboxes. When this
happens we have to update the associated User data.
Ghidra/Framework/Project/src/main/java/ghidra/framework/main/UserAccessTableModel.java