public void onChanged(ChangedEvent event) {
Boolean authorized = (Boolean) event.getValue();
int recordNum = event.getRowNum();
ListGridRecord record = grid.getRecord(recordNum);
String permissionName = record.getAttribute(nameField);
Permission permission = Permission.valueOf(permissionName);
String permissionDisplayName = record.getAttribute("displayName");
if (permission == Permission.VIEW_RESOURCE) {
String messageString = MSG.view_adminRoles_permissions_readAccessImplied(permissionDisplayName);
handleIllegalPermissionSelection(event, messageString);
} else if (!authorized && selectedPermissions.contains(Permission.MANAGE_SECURITY)
&& permission != Permission.MANAGE_SECURITY) {
String messageString = MSG
.view_adminRoles_permissions_illegalDeselectionDueToManageSecuritySelection(permissionDisplayName);
handleIllegalPermissionSelection(event, messageString);
} else if (!authorized && selectedPermissions.contains(Permission.MANAGE_INVENTORY)
&& permission.getTarget() == Permission.Target.RESOURCE) {
String messageString = MSG
.view_adminRoles_permissions_illegalDeselectionDueToManageInventorySelection(permissionDisplayName);
handleIllegalPermissionSelection(event, messageString);
} else if (!authorized && selectedPermissions.contains(Permission.CONFIGURE_WRITE)
&& permission == Permission.CONFIGURE_READ) {