Source:
<code>private void configure() { Label emailLabel = WidgetUtil.getLabel(CoreModule.user.getEmail(), 15); emailField = FieldUtil.getTextItem(200, "[a-zA-Z0-9_.\\-+@]"); emailField.setName("email"); emailField.setValidators(ValidatorUtil.getEmailValidator()); saveButton = WidgetUtil.getIButton("Change email", CoreConstants.ICON_SAVED, new ClickHandler() { @Override public void onClick(ClickEvent clickEvent) { if (emailField.validate()) { ConfigurationServiceAsync service = ConfigurationService.Util.getInstance(); final AsyncCallback<User> callback = new AsyncCallback<User>() { @Override public void onFailure(Throwable caught) { WidgetUtil.resetIButton(saveButton, "Change email", CoreConstants.ICON_SAVED); Layout.getInstance().setWarningMessage("Unable to change email:<br />" + caught.getMessage()); } @Override public void onSuccess(User result) { Modules.getInstance().userUpdated(CoreModule.user, result); CoreModule.user = result; WidgetUtil.resetIButton(saveButton, "Change email", CoreConstants.ICON_SAVED); Layout.getInstance().setNoticeMessage( "Your email change has been taken into account. " <START> +" You will receive a mail with a code to validate it.<br />" <END> + "Please refresh VIP to enter the code in your account"); } }; WidgetUtil.setLoadingIButton(saveButton, "Saving..."); service.requestNewEmail( emailField.getValueAsString().trim(), callback); } } }); saveButton.setWidth(150); this.addMember(emailLabel); addField("New email", emailField); this.addMember(saveButton); }</code><technical_language>is a reformulation suggestion: "Please validation code new email address in order validate it. Note login email change validate new address." I refresh info email, activation code</technical_language>

Target:
private void configure() { Label emailLabel = WidgetUtil.getLabel(CoreModule.user.getEmail(), 15); emailField = FieldUtil.getTextItem(200, "[a-zA-Z0-9_.\\-+@]"); emailField.setName("email"); emailField.setValidators(ValidatorUtil.getEmailValidator()); saveButton = WidgetUtil.getIButton("Change email", CoreConstants.ICON_SAVED, new ClickHandler() { @Override public void onClick(ClickEvent clickEvent) { if (emailField.validate()) { ConfigurationServiceAsync service = ConfigurationService.Util.getInstance(); final AsyncCallback<User> callback = new AsyncCallback<User>() { @Override public void onFailure(Throwable caught) { WidgetUtil.resetIButton(saveButton, "Change email", CoreConstants.ICON_SAVED); Layout.getInstance().setWarningMessage("Unable to change email:<br />" + caught.getMessage()); } @Override public void onSuccess(User result) { Modules.getInstance().userUpdated(CoreModule.user, result); CoreModule.user = result; WidgetUtil.resetIButton(saveButton, "Change email", CoreConstants.ICON_SAVED); Layout.getInstance().setNoticeMessage( "Your email change has been taken into account. " +" Please use the validation code sent to your new email address in order to validate it. <br />" + "Note that your login email will not change until you validate the new address"); } }; WidgetUtil.setLoadingIButton(saveButton, "Saving..."); service.requestNewEmail( emailField.getValueAsString().trim(), callback); } } }); saveButton.setWidth(150); this.addMember(emailLabel); addField("New email", emailField); this.addMember(saveButton); }