@Override
 public void commit() throws SourceException, InvalidValueException {
   Integer roleId = (Integer) roleBox.getValue();
   if (roleId == -1) {
     user.setIsAccountOwner(Boolean.TRUE);
   } else {
     user.setIsAccountOwner(Boolean.FALSE);
   }
   setInternalValue(roleId);
   super.commit();
 }
 @Override
 public void setPropertyDataSource(Property newDataSource) {
   Object value = newDataSource.getValue();
   if (value == null) {
     Object itemId = roleBox.getItemIds().iterator().next();
     roleBox.setValue(itemId);
   } else if (value instanceof Integer) {
     roleBox.setValue(value);
   }
   super.setPropertyDataSource(newDataSource);
 }