@SuppressWarnings({ "unchecked", "unchecked" })
@Override
protected void initForm(FormItemContainer formLayout, Controller listener, @SuppressWarnings("unused")
UserRequest ureq) {
MultipleSelectionElement checkbox;
checkBoxes = new ArrayList<MultipleSelectionElement>();
formItems = new ArrayList<FormItem>();
setFormTitle("title");
// text description of this Step
textContainer = FormLayoutContainer.createCustomFormLayout("index", getTranslator(), this.velocity_root + "/step0.html");
formLayout.add(textContainer);
textContainer.contextPut("userPropertyHandlers", UserManager.getInstance().getUserPropertyHandlersFor(
usageIdentifyerForAllProperties, isAdministrativeUser));
Set<FormItem> targets;
// Main layout is a vertical layout without left side padding. To format
// the checkboxes properly we need a default layout for the remaining form
// elements
FormItemContainer innerFormLayout = FormLayoutContainer.createDefaultFormLayout("innerFormLayout", getTranslator());
formLayout.add(innerFormLayout);
// add input field for password
Map configuration = BaseSecurityModule.getConfiguration();
Boolean canChangePwd = (Boolean) configuration.get(BaseSecurityModule.CONFIG_USERMANAGER_CAN_MODIFY_PWD);
if (canChangePwd.booleanValue() || isOLATAdmin) {
checkbox = uifactory.addCheckboxesVertical("checkboxPWD", "form.name.pwd", innerFormLayout, new String[] { "changePWD" }, new String[] { "" }, null, 1);
checkbox.select("changePWD", false);
checkbox.addActionListener(listener, FormEvent.ONCLICK);
formitem = uifactory.addTextElement(UserBulkChangeManager.PWD_IDENTIFYER, "password", 127, null, innerFormLayout);
TextElement formEl = (TextElement) formitem;
formEl.setDisplaySize(35);
formitem.setLabel(null, null);
targets = new HashSet<FormItem>();
targets.add(formitem);
RulesFactory.createHideRule(checkbox, null, targets, innerFormLayout);
RulesFactory.createShowRule(checkbox, "changePWD", targets, innerFormLayout);
checkBoxes.add(checkbox);
formItems.add(formitem);
}
// add SingleSelect for language
Map<String, String> locdescs = I18nManager.getInstance().getEnabledLanguagesTranslated();
Set lkeys = locdescs.keySet();
String[] languageKeys = new String[lkeys.size()];
String[] languageValues = new String[lkeys.size()];
// fetch languages
int p = 0;
I18nManager i18n = I18nManager.getInstance();
for (Iterator iter = lkeys.iterator(); iter.hasNext();) {
String key = (String) iter.next();
languageKeys[p] = key;
languageValues[p] = locdescs.get(key);
p++;
}
checkbox = uifactory.addCheckboxesVertical("checkboxLang", "form.name.language", innerFormLayout, new String[] { "changeLang" }, new String[] { "" }, null, 1);
checkbox.select("changeLang", false);
checkbox.addActionListener(listener, FormEvent.ONCLICK);
formitem = uifactory.addDropdownSingleselect(UserBulkChangeManager.LANG_IDENTIFYER, innerFormLayout, languageKeys, languageValues, null);
formitem.setLabel(null, null);
targets = new HashSet<FormItem>();
targets.add(formitem);
RulesFactory.createHideRule(checkbox, null, targets, innerFormLayout);
RulesFactory.createShowRule(checkbox, "changeLang", targets, innerFormLayout);
checkBoxes.add(checkbox);
formItems.add(formitem);
// add checkboxes/formitems for userProperties defined in
// src/serviceconfig/org/olat/_spring/olat_userconfig.xml -> Key:
// org.olat.admin.user.bulkChange.UserBulkChangeStep00
userPropertyHandlers = UserManager.getInstance().getUserPropertyHandlersFor(usageIdentifyer, isAdministrativeUser);
UserPropertyHandler userPropertyHandler;
for (int i = 0; i < userPropertyHandlers.size(); i++) {
userPropertyHandler = userPropertyHandlers.get(i);
checkbox = uifactory.addCheckboxesVertical("checkbox" + i, "form.name." + userPropertyHandler.getName(), innerFormLayout, new String[] { "change" + userPropertyHandler.getName() }, new String[] { "" }, null, 1);
checkbox.select("change" + userPropertyHandler.getName(), false);
checkbox.addActionListener(listener, FormEvent.ONCLICK);
formitem = userPropertyHandler.addFormItem(getLocale(), null, usageIdentifyer, isAdministrativeUser, innerFormLayout);
formitem.setLabel(null, null);
targets = new HashSet<FormItem>();