in ext/scimv2/client-console/src/main/java/org/apache/syncope/client/console/panels/SCIMConfUserPanel.java [53:272]
public SCIMConfUserPanel(final String id, final SCIMConf scimConf) {
super(id);
if (scimConf.getUserConf() == null) {
scimConf.setUserConf(new SCIMUserConf());
}
if (scimConf.getUserConf().getName() == null) {
scimConf.getUserConf().setName(new SCIMUserNameConf());
}
scimUserConf = scimConf.getUserConf();
AjaxTextFieldPanel externalIdPanel = new AjaxTextFieldPanel(
"externalId", "externalId", new PropertyModel<>("externalId", "externalId") {
private static final long serialVersionUID = -6427731218492117883L;
@Override
public String getObject() {
return scimUserConf.getExternalId();
}
@Override
public void setObject(final String object) {
scimUserConf.setExternalId(object);
}
});
externalIdPanel.setChoices(userPlainSchemas.getObject());
AjaxTextFieldPanel displayNamePanel = new AjaxTextFieldPanel(
"displayName", "displayName", new PropertyModel<>("displayName", "displayName") {
private static final long serialVersionUID = -6427731218492117883L;
@Override
public String getObject() {
return scimUserConf.getDisplayName();
}
@Override
public void setObject(final String object) {
scimUserConf.setDisplayName(object);
}
});
displayNamePanel.setChoices(userPlainSchemas.getObject());
AjaxTextFieldPanel localePanel = new AjaxTextFieldPanel(
"locale", "locale", new PropertyModel<>("locale", "locale") {
private static final long serialVersionUID = -6427731218492117883L;
@Override
public String getObject() {
return scimUserConf.getLocale();
}
@Override
public void setObject(final String object) {
scimUserConf.setLocale(object);
}
});
localePanel.setChoices(userPlainSchemas.getObject());
AjaxTextFieldPanel nickNamePanel = new AjaxTextFieldPanel(
"nickName", "nickName", new PropertyModel<>("nickName", "nickName") {
private static final long serialVersionUID = -6427731218492117883L;
@Override
public String getObject() {
return scimUserConf.getNickName();
}
@Override
public void setObject(final String object) {
scimUserConf.setNickName(object);
}
});
nickNamePanel.setChoices(userPlainSchemas.getObject());
AjaxTextFieldPanel preferredLanguagePanel = new AjaxTextFieldPanel(
"preferredLanguage", "preferredLanguage",
new PropertyModel<>("preferredLanguage", "preferredLanguage") {
private static final long serialVersionUID = -6427731218492117883L;
@Override
public String getObject() {
return scimUserConf.getPreferredLanguage();
}
@Override
public void setObject(final String object) {
scimUserConf.setPreferredLanguage(object);
}
});
preferredLanguagePanel.setChoices(userPlainSchemas.getObject());
AjaxTextFieldPanel profileUrlPanel = new AjaxTextFieldPanel(
"profileUrl", "profileUrl", new PropertyModel<>("profileUrl", "profileUrl") {
private static final long serialVersionUID = -6427731218492117883L;
@Override
public String getObject() {
return scimUserConf.getProfileUrl();
}
@Override
public void setObject(final String object) {
scimUserConf.setProfileUrl(object);
}
});
profileUrlPanel.setChoices(userPlainSchemas.getObject());
AjaxTextFieldPanel timezonePanel = new AjaxTextFieldPanel(
"timezone", "timezone", new PropertyModel<>("timezone", "timezone") {
private static final long serialVersionUID = -6427731218492117883L;
@Override
public String getObject() {
return scimUserConf.getTimezone();
}
@Override
public void setObject(final String object) {
scimUserConf.setTimezone(object);
}
});
timezonePanel.setChoices(userPlainSchemas.getObject());
AjaxTextFieldPanel titlePanel = new AjaxTextFieldPanel(
"title", "title", new PropertyModel<>("title", "title") {
private static final long serialVersionUID = -6427731218492117883L;
@Override
public String getObject() {
return scimUserConf.getTitle();
}
@Override
public void setObject(final String object) {
scimUserConf.setTitle(object);
}
});
titlePanel.setChoices(userPlainSchemas.getObject());
AjaxTextFieldPanel userTypePanel = new AjaxTextFieldPanel(
"userType", "userType", new PropertyModel<>("userType", "userType") {
private static final long serialVersionUID = -6427731218492117883L;
@Override
public String getObject() {
return scimUserConf.getUserType();
}
@Override
public void setObject(final String object) {
scimUserConf.setUserType(object);
}
});
userTypePanel.setChoices(userPlainSchemas.getObject());
// name
buildNameAccordion();
// x509certificates
AjaxTextFieldPanel x509CertificatesPanel = new AjaxTextFieldPanel(
"panel", "x509CertificatesPanel", new Model<>(null));
x509CertificatesPanel.setChoices(userPlainSchemas.getObject());
MultiFieldPanel<String> x509CertificatesMultiPanel = new MultiFieldPanel.Builder<>(
new ListModel<>(scimUserConf.getX509Certificates())).build(
"x509Certificates",
"x509Certificates",
x509CertificatesPanel);
// addresses
List<SCIMUserAddressConf> addresses = new ArrayList<>();
for (AddressCanonicalType canonicalType : AddressCanonicalType.values()) {
SCIMUserAddressConf address = scimUserConf.getAddresses().stream().
filter(addressConf -> addressConf.getType().equals(canonicalType)).
findFirst().orElseGet(() -> {
SCIMUserAddressConf empty = new SCIMUserAddressConf();
empty.setType(canonicalType);
return empty;
});
buildAddressAccordion(address, canonicalType);
addresses.add(address);
}
scimUserConf.getAddresses().clear();
scimUserConf.getAddresses().addAll(addresses);
// complex objects
buildComplexPanels(scimUserConf.getEmails(), "emailsAccordion", "emails", EmailCanonicalType.values());
buildComplexPanels(scimUserConf.getPhoneNumbers(), "phoneNumbersAccordion", "phoneNumbers",
PhoneNumberCanonicalType.values());
buildComplexPanels(scimUserConf.getIms(), "imsAccordion", "ims", IMCanonicalType.values());
buildComplexPanels(scimUserConf.getPhotos(), "photosAccordion", "photos", PhotoCanonicalType.values());
add(externalIdPanel);
add(displayNamePanel);
add(localePanel);
add(nickNamePanel);
add(preferredLanguagePanel);
add(profileUrlPanel);
add(timezonePanel);
add(titlePanel);
add(userTypePanel);
add(x509CertificatesMultiPanel);
add(new Label("nameLabel", Model.of("name")));
add(new Label("addressesLabel", Model.of("addresses")));
add(new Label("emailsLabel", Model.of("emails")));
add(new Label("phoneNumbersLabel", Model.of("phoneNumbers")));
add(new Label("imsLabel", Model.of("ims")));
add(new Label("photosLabel", Model.of("photos")));
}