public void onClick(ClickEvent event) {
final VCard4Factory profileFactory = OswServiceFactory
.getService().getProfileFactory();
final Profile profile = profileFactory.profile();
try {
// prepare for updating and check for empty values
if (avatarF.getAvatarUri().length() > 0)
profile.addField(profileFactory.photo(avatarF.getAvatarUri()));
if (displaynameF.getText().length() > 0)
profile.addField(profileFactory.fullname(displaynameF.getText()));
if (nameF.getFirstName().length() > 0 || nameF.getLastName().length() > 0)
profile.addField(profileFactory.name(null, nameF.getFirstName(), nameF.getLastName(), null));
if (birthdayF.getDate() != null)
profile.addField(profileFactory.birthday(birthdayF.getDate()));
if (genderF.getGenderText().length() > 0) {
if (genderF.getGenderValue().equals(GenderField.Type.MALE.toString())) {
profile.addField(profileFactory.gender(GenderField.Type.MALE));
} else if (genderF.getGenderValue().equals(GenderField.Type.FEMALE.toString())) {
profile.addField(profileFactory.gender(GenderField.Type.FEMALE));
} else if (genderF.getGenderValue().equals(GenderField.Type.NOTKNOWN.toString())) {
profile.addField(profileFactory.gender(GenderField.Type.NOTKNOWN));
} else if (genderF.getGenderValue().equals(GenderField.Type.NOTAPPLICABLE.toString())) {
profile.addField(profileFactory.gender(GenderField.Type.NOTAPPLICABLE));
}
}
if (bioF.getText().length() > 0)
profile.addField(profileFactory.note(bioF.getText()));
if (emailF.getText().length() > 0)
profile.addField(profileFactory.email(emailF.getText()));
if (telF.getText().length() > 0)
profile.addField(profileFactory.tel(telF.getText()));
if (urlF.getText().length() > 0)
profile.addField(profileFactory.url(urlF.getText()));
} catch (CardinalityException e) {
} catch (UnsupportedFieldException e) {
}