code cleanup

This commit is contained in:
anhefti 2019-04-09 11:54:41 +02:00
parent b68484b022
commit ed3ed44aff
13 changed files with 142 additions and 55 deletions

View file

@ -62,6 +62,16 @@ public class ExamForm implements TemplateComposer {
private static final Logger log = LoggerFactory.getLogger(ExamForm.class); private static final Logger log = LoggerFactory.getLogger(ExamForm.class);
private static final LocTextKey FORM_SUPPORTER_TEXT_KEY = new LocTextKey("sebserver.exam.form.supporter");
private static final LocTextKey FORM_STATUS_TEXT_KEY = new LocTextKey("sebserver.exam.form.status");
private static final LocTextKey FORM_TYPE_TEXT_KEY = new LocTextKey("sebserver.exam.form.type");
private static final LocTextKey FORM_ENDTIME_TEXT_KEY = new LocTextKey("sebserver.exam.form.endtime");
private static final LocTextKey FORM_STARTTIME_TEXT_KEY = new LocTextKey("sebserver.exam.form.starttime");
private static final LocTextKey FORM_DESCRIPTION_TEXT_KEY = new LocTextKey("sebserver.exam.form.description");
private static final LocTextKey FORM_NAME_TEXT_KEY = new LocTextKey("sebserver.exam.form.name");
private static final LocTextKey FORM_QUIZID_TEXT_KEY = new LocTextKey("sebserver.exam.form.quizid");
private static final LocTextKey FORM_LMSSETUP_TEXT_KEY = new LocTextKey("sebserver.exam.form.lmssetup");
private final PageService pageService; private final PageService pageService;
private final ResourceService resourceService; private final ResourceService resourceService;
@ -155,49 +165,49 @@ public class ExamForm implements TemplateComposer {
.addField(FormBuilder.singleSelection( .addField(FormBuilder.singleSelection(
Domain.EXAM.ATTR_LMS_SETUP_ID, Domain.EXAM.ATTR_LMS_SETUP_ID,
"sebserver.exam.form.lmssetup", FORM_LMSSETUP_TEXT_KEY,
String.valueOf(exam.lmsSetupId), String.valueOf(exam.lmsSetupId),
this.resourceService::lmsSetupResource) this.resourceService::lmsSetupResource)
.readonly(true)) .readonly(true))
.addField(FormBuilder.text( .addField(FormBuilder.text(
Domain.EXAM.ATTR_EXTERNAL_ID, Domain.EXAM.ATTR_EXTERNAL_ID,
"sebserver.exam.form.quizid", FORM_QUIZID_TEXT_KEY,
exam.externalId) exam.externalId)
.readonly(true)) .readonly(true))
.addField(FormBuilder.text( .addField(FormBuilder.text(
QuizData.QUIZ_ATTR_NAME, QuizData.QUIZ_ATTR_NAME,
"sebserver.exam.form.name", FORM_NAME_TEXT_KEY,
exam.name) exam.name)
.readonly(true)) .readonly(true))
.addField(FormBuilder.text( .addField(FormBuilder.text(
QuizData.QUIZ_ATTR_DESCRIPTION, QuizData.QUIZ_ATTR_DESCRIPTION,
"sebserver.exam.form.description", FORM_DESCRIPTION_TEXT_KEY,
exam.description) exam.description)
.asArea() .asArea()
.readonly(true)) .readonly(true))
.addField(FormBuilder.text( .addField(FormBuilder.text(
QuizData.QUIZ_ATTR_START_TIME, QuizData.QUIZ_ATTR_START_TIME,
"sebserver.exam.form.starttime", FORM_STARTTIME_TEXT_KEY,
i18nSupport.formatDisplayDate(exam.startTime)) i18nSupport.formatDisplayDate(exam.startTime))
.readonly(true)) .readonly(true))
.addField(FormBuilder.text( .addField(FormBuilder.text(
QuizData.QUIZ_ATTR_END_TIME, QuizData.QUIZ_ATTR_END_TIME,
"sebserver.exam.form.endtime", FORM_ENDTIME_TEXT_KEY,
i18nSupport.formatDisplayDate(exam.endTime)) i18nSupport.formatDisplayDate(exam.endTime))
.readonly(true)) .readonly(true))
.addField(FormBuilder.singleSelection( .addField(FormBuilder.singleSelection(
Domain.EXAM.ATTR_TYPE, Domain.EXAM.ATTR_TYPE,
"sebserver.exam.form.type", FORM_TYPE_TEXT_KEY,
String.valueOf(exam.type), String.valueOf(exam.type),
this.resourceService::examTypeResources)) this.resourceService::examTypeResources))
.addField(FormBuilder.text( .addField(FormBuilder.text(
Exam.ATTR_STATUS, Exam.ATTR_STATUS,
"sebserver.exam.form.status", FORM_STATUS_TEXT_KEY,
i18nSupport.getText(new LocTextKey("sebserver.exam.status." + examStatus.name()))) i18nSupport.getText(new LocTextKey("sebserver.exam.status." + examStatus.name())))
.readonly(true)) .readonly(true))
.addField(FormBuilder.multiComboSelection( .addField(FormBuilder.multiComboSelection(
Domain.EXAM.ATTR_SUPPORTER, Domain.EXAM.ATTR_SUPPORTER,
"sebserver.exam.form.supporter", FORM_SUPPORTER_TEXT_KEY,
StringUtils.join(exam.supporter, Constants.LIST_SEPARATOR_CHAR), StringUtils.join(exam.supporter, Constants.LIST_SEPARATOR_CHAR),
this.resourceService::examSupporterResources)) this.resourceService::examSupporterResources))

View file

@ -42,6 +42,17 @@ public class IndicatorForm implements TemplateComposer {
private static final Logger log = LoggerFactory.getLogger(IndicatorForm.class); private static final Logger log = LoggerFactory.getLogger(IndicatorForm.class);
private static final LocTextKey FORM_THRESHOLDS_TEXT_KEY =
new LocTextKey("sebserver.exam.indicator.form.thresholds");
private static final LocTextKey FORM_COLOR_TEXT_KEY =
new LocTextKey("sebserver.exam.indicator.form.color");
private static final LocTextKey FORM_TYPE_TEXT_KEY =
new LocTextKey("sebserver.exam.indicator.form.type");
private static final LocTextKey FORM_NAME_TEXT_KEY =
new LocTextKey("sebserver.exam.indicator.form.name");
private static final LocTextKey FORM_EXAM_TEXT_KEY =
new LocTextKey("sebserver.exam.indicator.form.exam");
private final PageService pageService; private final PageService pageService;
private final ResourceService resourceService; private final ResourceService resourceService;
@ -110,25 +121,25 @@ public class IndicatorForm implements TemplateComposer {
parentEntityKey.getModelId()) parentEntityKey.getModelId())
.addField(FormBuilder.text( .addField(FormBuilder.text(
"examName", "examName",
"sebserver.exam.indicator.form.exam", FORM_EXAM_TEXT_KEY,
exam.name) exam.name)
.readonly(true)) .readonly(true))
.addField(FormBuilder.text( .addField(FormBuilder.text(
Domain.INDICATOR.ATTR_NAME, Domain.INDICATOR.ATTR_NAME,
"sebserver.exam.indicator.form.name", FORM_NAME_TEXT_KEY,
indicator.name)) indicator.name))
.addField(FormBuilder.singleSelection( .addField(FormBuilder.singleSelection(
Domain.INDICATOR.ATTR_TYPE, Domain.INDICATOR.ATTR_TYPE,
"sebserver.exam.indicator.form.type", FORM_TYPE_TEXT_KEY,
(indicator.type != null) ? indicator.type.name() : null, (indicator.type != null) ? indicator.type.name() : null,
this.resourceService::indicatorTypeResources)) this.resourceService::indicatorTypeResources))
.addField(FormBuilder.colorSelection( .addField(FormBuilder.colorSelection(
Domain.INDICATOR.ATTR_COLOR, Domain.INDICATOR.ATTR_COLOR,
"sebserver.exam.indicator.form.color", FORM_COLOR_TEXT_KEY,
indicator.defaultColor)) indicator.defaultColor))
.addField(FormBuilder.thresholdList( .addField(FormBuilder.thresholdList(
Domain.THRESHOLD.REFERENCE_NAME, Domain.THRESHOLD.REFERENCE_NAME,
"sebserver.exam.indicator.form.thresholds", FORM_THRESHOLDS_TEXT_KEY,
indicator.getThresholds())) indicator.getThresholds()))
.buildFor((isNew) .buildFor((isNew)
? restService.getRestCall(NewIndicator.class) ? restService.getRestCall(NewIndicator.class)

View file

@ -47,6 +47,13 @@ import ch.ethz.seb.sebserver.gui.widget.WidgetFactory;
@GuiProfile @GuiProfile
public class InstitutionForm implements TemplateComposer { public class InstitutionForm implements TemplateComposer {
private static final LocTextKey FORM_LOGO_IMAGE_TEXT_KEY =
new LocTextKey("sebserver.institution.form.logoImage");
private static final LocTextKey FORM_URL_SUFFIX_TEXT_KEY =
new LocTextKey("sebserver.institution.form.urlSuffix");
private static final LocTextKey FORM_NAME_TEXT_KEY =
new LocTextKey("sebserver.institution.form.name");
private static final Logger log = LoggerFactory.getLogger(InstitutionForm.class); private static final Logger log = LoggerFactory.getLogger(InstitutionForm.class);
private final PageService pageService; private final PageService pageService;
@ -123,15 +130,15 @@ public class InstitutionForm implements TemplateComposer {
institution.getModelId()) institution.getModelId())
.addField(FormBuilder.text( .addField(FormBuilder.text(
Domain.INSTITUTION.ATTR_NAME, Domain.INSTITUTION.ATTR_NAME,
"sebserver.institution.form.name", FORM_NAME_TEXT_KEY,
institution.name)) institution.name))
.addField(FormBuilder.text( .addField(FormBuilder.text(
Domain.INSTITUTION.ATTR_URL_SUFFIX, Domain.INSTITUTION.ATTR_URL_SUFFIX,
"sebserver.institution.form.urlSuffix", FORM_URL_SUFFIX_TEXT_KEY,
institution.urlSuffix)) institution.urlSuffix))
.addField(FormBuilder.imageUpload( .addField(FormBuilder.imageUpload(
Domain.INSTITUTION.ATTR_LOGO_IMAGE, Domain.INSTITUTION.ATTR_LOGO_IMAGE,
"sebserver.institution.form.logoImage", FORM_LOGO_IMAGE_TEXT_KEY,
institution.logoImage)) institution.logoImage))
.buildFor((isNew) .buildFor((isNew)
? this.restService.getRestCall(NewInstitution.class) ? this.restService.getRestCall(NewInstitution.class)

View file

@ -60,6 +60,19 @@ public class LmsSetupForm implements TemplateComposer {
private static final Logger log = LoggerFactory.getLogger(LmsSetupForm.class); private static final Logger log = LoggerFactory.getLogger(LmsSetupForm.class);
private static final LocTextKey FORM_SECRET_LMS_TEXT_KEY =
new LocTextKey("sebserver.lmssetup.form.secret.lms");
private static final LocTextKey FORM_CLIENTNAME_LMS_TEXT_KEY =
new LocTextKey("sebserver.lmssetup.form.clientname.lms");
private static final LocTextKey FORM_URL_TEXT_KEY =
new LocTextKey("sebserver.lmssetup.form.url");
private static final LocTextKey FORM_TYPE_TEXT_KEY =
new LocTextKey("sebserver.lmssetup.form.type");
private static final LocTextKey FORM_NAME_TEXT_KEY =
new LocTextKey("sebserver.lmssetup.form.name");
private static final LocTextKey FORM_INSTITUTION_TEXT_KEY =
new LocTextKey("sebserver.lmssetup.form.institution");
private final PageService pageService; private final PageService pageService;
private final ResourceService resourceService; private final ResourceService resourceService;
@ -143,31 +156,31 @@ public class LmsSetupForm implements TemplateComposer {
isSEBAdmin, isSEBAdmin,
() -> FormBuilder.singleSelection( () -> FormBuilder.singleSelection(
Domain.LMS_SETUP.ATTR_INSTITUTION_ID, Domain.LMS_SETUP.ATTR_INSTITUTION_ID,
"sebserver.lmssetup.form.institution", FORM_INSTITUTION_TEXT_KEY,
String.valueOf(lmsSetup.getInstitutionId()), String.valueOf(lmsSetup.getInstitutionId()),
() -> this.resourceService.institutionResource()) () -> this.resourceService.institutionResource())
.readonly(true)) .readonly(true))
.addField(FormBuilder.text( .addField(FormBuilder.text(
Domain.LMS_SETUP.ATTR_NAME, Domain.LMS_SETUP.ATTR_NAME,
"sebserver.lmssetup.form.name", FORM_NAME_TEXT_KEY,
lmsSetup.getName())) lmsSetup.getName()))
.addField(FormBuilder.singleSelection( .addField(FormBuilder.singleSelection(
Domain.LMS_SETUP.ATTR_LMS_TYPE, Domain.LMS_SETUP.ATTR_LMS_TYPE,
"sebserver.lmssetup.form.type", FORM_TYPE_TEXT_KEY,
(lmsType != null) ? lmsType.name() : null, (lmsType != null) ? lmsType.name() : null,
this.resourceService::lmsTypeResources) this.resourceService::lmsTypeResources)
.readonlyIf(isNotNew)) .readonlyIf(isNotNew))
.addField(FormBuilder.text( .addField(FormBuilder.text(
Domain.LMS_SETUP.ATTR_LMS_URL, Domain.LMS_SETUP.ATTR_LMS_URL,
"sebserver.lmssetup.form.url", FORM_URL_TEXT_KEY,
lmsSetup.getLmsApiUrl())) lmsSetup.getLmsApiUrl()))
.addField(FormBuilder.text( .addField(FormBuilder.text(
Domain.LMS_SETUP.ATTR_LMS_CLIENTNAME, Domain.LMS_SETUP.ATTR_LMS_CLIENTNAME,
"sebserver.lmssetup.form.clientname.lms", FORM_CLIENTNAME_LMS_TEXT_KEY,
lmsSetup.getLmsAuthName())) lmsSetup.getLmsAuthName()))
.addField(FormBuilder.text( .addField(FormBuilder.text(
Domain.LMS_SETUP.ATTR_LMS_CLIENTSECRET, Domain.LMS_SETUP.ATTR_LMS_CLIENTSECRET,
"sebserver.lmssetup.form.secret.lms") FORM_SECRET_LMS_TEXT_KEY)
.asPasswordField()) .asPasswordField())
.buildFor((entityKey == null) .buildFor((entityKey == null)

View file

@ -51,6 +51,18 @@ import ch.ethz.seb.sebserver.gui.widget.WidgetFactory;
public class QuizDiscoveryList implements TemplateComposer { public class QuizDiscoveryList implements TemplateComposer {
// localized text keys // localized text keys
private static final LocTextKey QUIZ_DETAILS_URL_TEXT_KEY =
new LocTextKey("sebserver.quizdiscovery.quiz.details.url");
private static final LocTextKey QUIZ_DETAILS_ENDTIME_TEXT_KEY =
new LocTextKey("sebserver.quizdiscovery.quiz.details.endtime");
private static final LocTextKey QUIZ_DETAILS_STARTTIME_TEXT_KEY =
new LocTextKey("sebserver.quizdiscovery.quiz.details.starttime");
private static final LocTextKey QUIZ_DETAILS_DESCRIPTION_TEXT_KEY =
new LocTextKey("sebserver.quizdiscovery.quiz.details.description");
private static final LocTextKey QUIZ_DETAILS_NAME_TEXT_KEY =
new LocTextKey("sebserver.quizdiscovery.quiz.details.name");
private static final LocTextKey QUIZ_DETAILS_LMS_TEXT_KEY =
new LocTextKey("sebserver.quizdiscovery.quiz.details.lms");
private static final LocTextKey TITLE_TEXT_KEY = private static final LocTextKey TITLE_TEXT_KEY =
new LocTextKey("sebserver.quizdiscovery.list.title"); new LocTextKey("sebserver.quizdiscovery.list.title");
private static final LocTextKey EMPTY_LIST_TEXT_KEY = private static final LocTextKey EMPTY_LIST_TEXT_KEY =
@ -213,29 +225,29 @@ public class QuizDiscoveryList implements TemplateComposer {
.readonly(true) .readonly(true)
.addField(FormBuilder.singleSelection( .addField(FormBuilder.singleSelection(
QuizData.QUIZ_ATTR_LMS_SETUP_ID, QuizData.QUIZ_ATTR_LMS_SETUP_ID,
"sebserver.quizdiscovery.quiz.details.lms", QUIZ_DETAILS_LMS_TEXT_KEY,
String.valueOf(quizData.lmsSetupId), String.valueOf(quizData.lmsSetupId),
() -> this.resourceService.lmsSetupResource())) () -> this.resourceService.lmsSetupResource()))
.addField(FormBuilder.text( .addField(FormBuilder.text(
QuizData.QUIZ_ATTR_NAME, QuizData.QUIZ_ATTR_NAME,
"sebserver.quizdiscovery.quiz.details.name", QUIZ_DETAILS_NAME_TEXT_KEY,
quizData.name)) quizData.name))
.addField(FormBuilder.text( .addField(FormBuilder.text(
QuizData.QUIZ_ATTR_DESCRIPTION, QuizData.QUIZ_ATTR_DESCRIPTION,
"sebserver.quizdiscovery.quiz.details.description", QUIZ_DETAILS_DESCRIPTION_TEXT_KEY,
quizData.description) quizData.description)
.asArea()) .asArea())
.addField(FormBuilder.text( .addField(FormBuilder.text(
QuizData.QUIZ_ATTR_START_TIME, QuizData.QUIZ_ATTR_START_TIME,
"sebserver.quizdiscovery.quiz.details.starttime", QUIZ_DETAILS_STARTTIME_TEXT_KEY,
this.widgetFactory.getI18nSupport().formatDisplayDate(quizData.startTime))) this.widgetFactory.getI18nSupport().formatDisplayDate(quizData.startTime)))
.addField(FormBuilder.text( .addField(FormBuilder.text(
QuizData.QUIZ_ATTR_END_TIME, QuizData.QUIZ_ATTR_END_TIME,
"sebserver.quizdiscovery.quiz.details.endtime", QUIZ_DETAILS_ENDTIME_TEXT_KEY,
this.widgetFactory.getI18nSupport().formatDisplayDate(quizData.startTime))) this.widgetFactory.getI18nSupport().formatDisplayDate(quizData.startTime)))
.addField(FormBuilder.text( .addField(FormBuilder.text(
QuizData.QUIZ_ATTR_START_URL, QuizData.QUIZ_ATTR_START_URL,
"sebserver.quizdiscovery.quiz.details.url", QUIZ_DETAILS_URL_TEXT_KEY,
quizData.startURL)) quizData.startURL))
.build(); .build();
this.widgetFactory.labelSeparator(pc.getParent()); this.widgetFactory.labelSeparator(pc.getParent());

View file

@ -46,6 +46,13 @@ import ch.ethz.seb.sebserver.gui.widget.WidgetFactory;
* password that is also required must match the administrators current password. */ * password that is also required must match the administrators current password. */
public class UserAccountChangePasswordForm implements TemplateComposer { public class UserAccountChangePasswordForm implements TemplateComposer {
private static final LocTextKey FORM_PASSWORD_NEW_TEXT_KEY =
new LocTextKey("sebserver.useraccount.form.password.new");
private static final LocTextKey FORM_PASSWORD_NEW_CONFIRM_TEXT_KEY =
new LocTextKey("sebserver.useraccount.form.password.new.confirm");
private static final LocTextKey FORM_PASSWORD_TEXT_KEY =
new LocTextKey("sebserver.useraccount.form.password");
private final PageService pageService; private final PageService pageService;
private final RestService restService; private final RestService restService;
private final CurrentUser currentUser; private final CurrentUser currentUser;
@ -89,17 +96,17 @@ public class UserAccountChangePasswordForm implements TemplateComposer {
entityKey.getModelId()) entityKey.getModelId())
.addField(FormBuilder.text( .addField(FormBuilder.text(
PasswordChange.ATTR_NAME_PASSWORD, PasswordChange.ATTR_NAME_PASSWORD,
"sebserver.useraccount.form.password") FORM_PASSWORD_TEXT_KEY)
.asPasswordField()) .asPasswordField())
.addField(FormBuilder.text( .addField(FormBuilder.text(
PasswordChange.ATTR_NAME_NEW_PASSWORD, PasswordChange.ATTR_NAME_NEW_PASSWORD,
"sebserver.useraccount.form.password.new") FORM_PASSWORD_NEW_TEXT_KEY)
.asPasswordField()) .asPasswordField())
.addFieldIf( .addFieldIf(
() -> entityKey != null, () -> entityKey != null,
() -> FormBuilder.text( () -> FormBuilder.text(
PasswordChange.ATTR_NAME_CONFIRM_NEW_PASSWORD, PasswordChange.ATTR_NAME_CONFIRM_NEW_PASSWORD,
"sebserver.useraccount.form.password.new.confirm") FORM_PASSWORD_NEW_CONFIRM_TEXT_KEY)
.asPasswordField()) .asPasswordField())
.buildFor(this.restService.getRestCall(ChangePassword.class)); .buildFor(this.restService.getRestCall(ChangePassword.class));

View file

@ -56,6 +56,23 @@ public class UserAccountForm implements TemplateComposer {
private static final Logger log = LoggerFactory.getLogger(UserAccountForm.class); private static final Logger log = LoggerFactory.getLogger(UserAccountForm.class);
private static final LocTextKey FORM_PASSWORD_CONFIRM_TEXT_KEY =
new LocTextKey("sebserver.useraccount.form.password.confirm");
private static final LocTextKey FORM_PASSWORD_TEXT_KEY =
new LocTextKey("sebserver.useraccount.form.password");
private static final LocTextKey FORM_ROLES_TEXT_KEY =
new LocTextKey("sebserver.useraccount.form.roles");
private static final LocTextKey FORM_TIMEZONE_TEXT_KEY =
new LocTextKey("sebserver.useraccount.form.timezone");
private static final LocTextKey FORM_MAIL_TEXT_KEY =
new LocTextKey("sebserver.useraccount.form.mail");
private static final LocTextKey FORM_USERNAME_TEXT_KEY =
new LocTextKey("sebserver.useraccount.form.username");
private static final LocTextKey FORM_NAME_TEXT_KEY =
new LocTextKey("sebserver.useraccount.form.name");
private static final LocTextKey FORM_INSTITUTION_TEXT_KEY =
new LocTextKey("sebserver.useraccount.form.institution");
private final PageService pageService; private final PageService pageService;
private final ResourceService resourceService; private final ResourceService resourceService;
@ -145,21 +162,21 @@ public class UserAccountForm implements TemplateComposer {
isSEBAdmin, isSEBAdmin,
() -> FormBuilder.singleSelection( () -> FormBuilder.singleSelection(
Domain.USER.ATTR_INSTITUTION_ID, Domain.USER.ATTR_INSTITUTION_ID,
"sebserver.useraccount.form.institution", FORM_INSTITUTION_TEXT_KEY,
String.valueOf(userAccount.getInstitutionId()), String.valueOf(userAccount.getInstitutionId()),
() -> this.resourceService.institutionResource()) () -> this.resourceService.institutionResource())
.readonlyIf(isNotNew)) .readonlyIf(isNotNew))
.addField(FormBuilder.text( .addField(FormBuilder.text(
Domain.USER.ATTR_NAME, Domain.USER.ATTR_NAME,
"sebserver.useraccount.form.name", FORM_NAME_TEXT_KEY,
userAccount.getName())) userAccount.getName()))
.addField(FormBuilder.text( .addField(FormBuilder.text(
Domain.USER.ATTR_USERNAME, Domain.USER.ATTR_USERNAME,
"sebserver.useraccount.form.username", FORM_USERNAME_TEXT_KEY,
userAccount.getUsername())) userAccount.getUsername()))
.addField(FormBuilder.text( .addField(FormBuilder.text(
Domain.USER.ATTR_EMAIL, Domain.USER.ATTR_EMAIL,
"sebserver.useraccount.form.mail", FORM_MAIL_TEXT_KEY,
userAccount.getEmail())) userAccount.getEmail()))
// .addField(FormBuilder.singleSelection( // .addField(FormBuilder.singleSelection(
// Domain.USER.ATTR_LANGUAGE, // Domain.USER.ATTR_LANGUAGE,
@ -169,14 +186,14 @@ public class UserAccountForm implements TemplateComposer {
// .readonly(true)) // .readonly(true))
.addField(FormBuilder.singleSelection( .addField(FormBuilder.singleSelection(
Domain.USER.ATTR_TIMEZONE, Domain.USER.ATTR_TIMEZONE,
"sebserver.useraccount.form.timezone", FORM_TIMEZONE_TEXT_KEY,
userAccount.getTimeZone().getID(), userAccount.getTimeZone().getID(),
this.resourceService::timeZoneResources)) this.resourceService::timeZoneResources))
.addFieldIf( .addFieldIf(
() -> modifyGrant, () -> modifyGrant,
() -> FormBuilder.multiSelection( () -> FormBuilder.multiSelection(
USER_ROLE.REFERENCE_NAME, USER_ROLE.REFERENCE_NAME,
"sebserver.useraccount.form.roles", FORM_ROLES_TEXT_KEY,
StringUtils.join(userAccount.getRoles(), Constants.LIST_SEPARATOR_CHAR), StringUtils.join(userAccount.getRoles(), Constants.LIST_SEPARATOR_CHAR),
this.resourceService::userRoleResources) this.resourceService::userRoleResources)
.visibleIf(writeGrant)) .visibleIf(writeGrant))
@ -184,13 +201,13 @@ public class UserAccountForm implements TemplateComposer {
isNew, isNew,
() -> FormBuilder.text( () -> FormBuilder.text(
PasswordChange.ATTR_NAME_NEW_PASSWORD, PasswordChange.ATTR_NAME_NEW_PASSWORD,
"sebserver.useraccount.form.password") FORM_PASSWORD_TEXT_KEY)
.asPasswordField()) .asPasswordField())
.addFieldIf( .addFieldIf(
isNew, isNew,
() -> FormBuilder.text( () -> FormBuilder.text(
PasswordChange.ATTR_NAME_CONFIRM_NEW_PASSWORD, PasswordChange.ATTR_NAME_CONFIRM_NEW_PASSWORD,
"sebserver.useraccount.form.password.confirm") FORM_PASSWORD_CONFIRM_TEXT_KEY)
.asPasswordField()) .asPasswordField())
.buildFor((entityKey == null) .buildFor((entityKey == null)
? restService.getRestCall(NewUserAccount.class) ? restService.getRestCall(NewUserAccount.class)

View file

@ -10,6 +10,8 @@ package ch.ethz.seb.sebserver.gui.form;
import java.util.function.BooleanSupplier; import java.util.function.BooleanSupplier;
import ch.ethz.seb.sebserver.gui.service.i18n.LocTextKey;
public abstract class FieldBuilder<T> { public abstract class FieldBuilder<T> {
int spanLabel = -1; int spanLabel = -1;
int spanInput = -1; int spanInput = -1;
@ -20,10 +22,10 @@ public abstract class FieldBuilder<T> {
boolean visible = true; boolean visible = true;
final String name; final String name;
final String label; final LocTextKey label;
final T value; final T value;
protected FieldBuilder(final String name, final String label, final T value) { protected FieldBuilder(final String name, final LocTextKey label, final T value) {
this.name = name; this.name = name;
this.label = label; this.label = label;
this.value = value; this.value = value;

View file

@ -28,6 +28,8 @@ import ch.ethz.seb.sebserver.gbl.Constants;
import ch.ethz.seb.sebserver.gbl.model.Entity; import ch.ethz.seb.sebserver.gbl.model.Entity;
import ch.ethz.seb.sebserver.gbl.model.exam.Indicator.Threshold; import ch.ethz.seb.sebserver.gbl.model.exam.Indicator.Threshold;
import ch.ethz.seb.sebserver.gbl.util.Tuple; import ch.ethz.seb.sebserver.gbl.util.Tuple;
import ch.ethz.seb.sebserver.gui.service.i18n.I18nSupport;
import ch.ethz.seb.sebserver.gui.service.i18n.LocTextKey;
import ch.ethz.seb.sebserver.gui.service.page.PageContext; import ch.ethz.seb.sebserver.gui.service.page.PageContext;
import ch.ethz.seb.sebserver.gui.service.page.PageService; import ch.ethz.seb.sebserver.gui.service.page.PageService;
import ch.ethz.seb.sebserver.gui.service.remote.webservice.api.RestCall; import ch.ethz.seb.sebserver.gui.service.remote.webservice.api.RestCall;
@ -39,6 +41,7 @@ public class FormBuilder {
private static final Logger log = LoggerFactory.getLogger(FormBuilder.class); private static final Logger log = LoggerFactory.getLogger(FormBuilder.class);
final I18nSupport i18nSupport;
final PageService pageService; final PageService pageService;
final WidgetFactory widgetFactory; final WidgetFactory widgetFactory;
public final PageContext pageContext; public final PageContext pageContext;
@ -56,6 +59,7 @@ public class FormBuilder {
final PageContext pageContext, final PageContext pageContext,
final int rows) { final int rows) {
this.i18nSupport = pageService.getI18nSupport();
this.pageService = pageService; this.pageService = pageService;
this.widgetFactory = pageService.getWidgetFactory(); this.widgetFactory = pageService.getWidgetFactory();
this.pageContext = pageContext; this.pageContext = pageContext;
@ -193,17 +197,17 @@ public class FormBuilder {
empty.setText(""); empty.setText("");
} }
public static TextFieldBuilder text(final String name, final String label) { public static TextFieldBuilder text(final String name, final LocTextKey label) {
return new TextFieldBuilder(name, label, null); return new TextFieldBuilder(name, label, null);
} }
public static TextFieldBuilder text(final String name, final String label, final String value) { public static TextFieldBuilder text(final String name, final LocTextKey label, final String value) {
return new TextFieldBuilder(name, label, value); return new TextFieldBuilder(name, label, value);
} }
public static SelectionFieldBuilder singleSelection( public static SelectionFieldBuilder singleSelection(
final String name, final String name,
final String label, final LocTextKey label,
final String value, final String value,
final Supplier<List<Tuple<String>>> itemsSupplier) { final Supplier<List<Tuple<String>>> itemsSupplier) {
@ -212,7 +216,7 @@ public class FormBuilder {
public static SelectionFieldBuilder multiSelection( public static SelectionFieldBuilder multiSelection(
final String name, final String name,
final String label, final LocTextKey label,
final String value, final String value,
final Supplier<List<Tuple<String>>> itemsSupplier) { final Supplier<List<Tuple<String>>> itemsSupplier) {
@ -221,7 +225,7 @@ public class FormBuilder {
public static SelectionFieldBuilder multiComboSelection( public static SelectionFieldBuilder multiComboSelection(
final String name, final String name,
final String label, final LocTextKey label,
final String value, final String value,
final Supplier<List<Tuple<String>>> itemsSupplier) { final Supplier<List<Tuple<String>>> itemsSupplier) {
@ -230,7 +234,7 @@ public class FormBuilder {
public static SelectionFieldBuilder colorSelection( public static SelectionFieldBuilder colorSelection(
final String name, final String name,
final String label, final LocTextKey label,
final String value) { final String value) {
return new SelectionFieldBuilder(Selection.Type.COLOR, name, label, value, null); return new SelectionFieldBuilder(Selection.Type.COLOR, name, label, value, null);
@ -238,17 +242,17 @@ public class FormBuilder {
public static ThresholdListBuilder thresholdList( public static ThresholdListBuilder thresholdList(
final String name, final String name,
final String label, final LocTextKey label,
final Collection<Threshold> value) { final Collection<Threshold> value) {
return new ThresholdListBuilder(name, label, value); return new ThresholdListBuilder(name, label, value);
} }
public static ImageUploadFieldBuilder imageUpload(final String name, final String label, final String value) { public static ImageUploadFieldBuilder imageUpload(final String name, final LocTextKey label, final String value) {
return new ImageUploadFieldBuilder(name, label, value); return new ImageUploadFieldBuilder(name, label, value);
} }
Label labelLocalized(final Composite parent, final String locTextKey, final int hspan) { Label labelLocalized(final Composite parent, final LocTextKey locTextKey, final int hspan) {
final Label label = this.widgetFactory.labelLocalized(parent, locTextKey); final Label label = this.widgetFactory.labelLocalized(parent, locTextKey);
final GridData gridData = new GridData(SWT.LEFT, SWT.TOP, true, false, hspan, 1); final GridData gridData = new GridData(SWT.LEFT, SWT.TOP, true, false, hspan, 1);
gridData.verticalIndent = 4; gridData.verticalIndent = 4;

View file

@ -17,7 +17,7 @@ import ch.ethz.seb.sebserver.gui.widget.ImageUpload;
public final class ImageUploadFieldBuilder extends FieldBuilder<String> { public final class ImageUploadFieldBuilder extends FieldBuilder<String> {
ImageUploadFieldBuilder(final String name, final String label, final String value) { ImageUploadFieldBuilder(final String name, final LocTextKey label, final String value) {
super(name, label, value); super(name, label, value);
} }

View file

@ -25,6 +25,7 @@ import org.eclipse.swt.widgets.Label;
import ch.ethz.seb.sebserver.gbl.Constants; import ch.ethz.seb.sebserver.gbl.Constants;
import ch.ethz.seb.sebserver.gbl.util.Tuple; import ch.ethz.seb.sebserver.gbl.util.Tuple;
import ch.ethz.seb.sebserver.gui.service.i18n.LocTextKey;
import ch.ethz.seb.sebserver.gui.service.i18n.PolyglotPageService; import ch.ethz.seb.sebserver.gui.service.i18n.PolyglotPageService;
import ch.ethz.seb.sebserver.gui.widget.Selection; import ch.ethz.seb.sebserver.gui.widget.Selection;
import ch.ethz.seb.sebserver.gui.widget.Selection.Type; import ch.ethz.seb.sebserver.gui.widget.Selection.Type;
@ -39,7 +40,7 @@ public final class SelectionFieldBuilder extends FieldBuilder<String> {
SelectionFieldBuilder( SelectionFieldBuilder(
final Selection.Type type, final Selection.Type type,
final String name, final String name,
final String label, final LocTextKey label,
final String value, final String value,
final Supplier<List<Tuple<String>>> itemsSupplier) { final Supplier<List<Tuple<String>>> itemsSupplier) {

View file

@ -13,13 +13,15 @@ import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Text; import org.eclipse.swt.widgets.Text;
import ch.ethz.seb.sebserver.gui.service.i18n.LocTextKey;
public final class TextFieldBuilder extends FieldBuilder<String> { public final class TextFieldBuilder extends FieldBuilder<String> {
boolean isPassword = false; boolean isPassword = false;
boolean isNumber = false; boolean isNumber = false;
boolean isArea = false; boolean isArea = false;
TextFieldBuilder(final String name, final String label, final String value) { TextFieldBuilder(final String name, final LocTextKey label, final String value) {
super(name, label, value); super(name, label, value);
} }

View file

@ -19,13 +19,14 @@ import org.eclipse.swt.widgets.Label;
import ch.ethz.seb.sebserver.gbl.Constants; import ch.ethz.seb.sebserver.gbl.Constants;
import ch.ethz.seb.sebserver.gbl.model.Domain; import ch.ethz.seb.sebserver.gbl.model.Domain;
import ch.ethz.seb.sebserver.gbl.model.exam.Indicator.Threshold; import ch.ethz.seb.sebserver.gbl.model.exam.Indicator.Threshold;
import ch.ethz.seb.sebserver.gui.service.i18n.LocTextKey;
import ch.ethz.seb.sebserver.gui.widget.ThresholdList; import ch.ethz.seb.sebserver.gui.widget.ThresholdList;
public class ThresholdListBuilder extends FieldBuilder<Collection<Threshold>> { public class ThresholdListBuilder extends FieldBuilder<Collection<Threshold>> {
protected ThresholdListBuilder( protected ThresholdListBuilder(
final String name, final String name,
final String label, final LocTextKey label,
final Collection<Threshold> value) { final Collection<Threshold> value) {
super(name, label, value); super(name, label, value);