Upgrade to Wicket 9.16.0

This commit is contained in:
Andreas Svanberg 2023-11-29 14:52:17 +01:00
parent 97dec05f34
commit d389b40b9e
5 changed files with 12 additions and 28 deletions

@ -22,7 +22,7 @@
<!-- Dependency versions -->
<slf4j.version>2.0.7</slf4j.version>
<log4j2.version>2.20.0</log4j2.version>
<wicket.version>9.14.0</wicket.version>
<wicket.version>9.16.0</wicket.version>
<!-- See https://hibernate.org/orm/releases/ for which version Hibernate implements -->
<jakarta.persistence-api.version>3.1.0</jakarta.persistence-api.version>

@ -14,7 +14,6 @@ import se.su.dsv.scipro.components.EmployeeAutoComplete;
import se.su.dsv.scipro.components.LargeModalWindow;
import se.su.dsv.scipro.components.ModalWindowPlus;
import se.su.dsv.scipro.data.DetachableServiceModel;
import se.su.dsv.scipro.data.PolyModel;
import se.su.dsv.scipro.statistics.AbstractAdminStatisticsPage;
import se.su.dsv.scipro.survey.SurveyService;
import se.su.dsv.scipro.survey.SurveyStatistics;
@ -50,9 +49,9 @@ public class AdminSurveyStatisticsPage extends AbstractAdminStatisticsPage {
protected void populateItem(ListItem<SurveyStatistics.Question> item) {
item.add(new Label("question", item.getModel().map(SurveyStatistics.Question::text)));
item.add(new SingleChoicePanel("single", PolyModel.of(item.getModel(), SurveyStatistics.Question.Single.class)));
item.add(new MultiChoicePanel("multi", PolyModel.of(item.getModel(), SurveyStatistics.Question.Multi.class)));
item.add(new FreeTextPanel("free_text", PolyModel.of(item.getModel(), SurveyStatistics.Question.Text.class)));
item.add(new SingleChoicePanel("single", item.getModel().as(SurveyStatistics.Question.Single.class)));
item.add(new MultiChoicePanel("multi", item.getModel().as(SurveyStatistics.Question.Multi.class)));
item.add(new FreeTextPanel("free_text", item.getModel().as(SurveyStatistics.Question.Text.class)));
}
});
}

@ -1,9 +0,0 @@
package se.su.dsv.scipro.data;
import org.apache.wicket.model.IModel;
public class PolyModel {
public static <T, S extends T> IModel<S> of(IModel<T> model, Class<S> clazz) {
return model.filter(clazz::isInstance).map(clazz::cast);
}
}

@ -5,7 +5,6 @@ import org.apache.wicket.markup.html.list.ListView;
import org.apache.wicket.markup.html.panel.GenericPanel;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.LoadableDetachableModel;
import se.su.dsv.scipro.data.PolyModel;
import se.su.dsv.scipro.grading.ExaminerTimelineService.Event;
import se.su.dsv.scipro.project.Project;
@ -28,24 +27,20 @@ public class ExaminerTimelinePanel extends GenericPanel<Project> {
protected void populateItem(ListItem<Event> listItem) {
listItem.add(new EventPanel.InitialSubmissionPanel(
"initial_submission",
PolyModel.of(
listItem.getModel(),
Event.InitialSubmission.class)));
listItem.getModel().as(Event.InitialSubmission.class)));
listItem.add(new EventPanel.RejectedPanel(
"rejected",
PolyModel.of(listItem.getModel(), Event.Rejected.class)
listItem.getModel().as(Event.Rejected.class)
));
listItem.add(new EventPanel.ResubmissionPanel(
"resubmitted",
PolyModel.of(
listItem.getModel(),
Event.Resubmitted.class)));
listItem.getModel().as(Event.Resubmitted.class)));
listItem.add(new EventPanel.ApprovedPanel(
"approved",
PolyModel.of(listItem.getModel(), Event.Approved.class)
listItem.getModel().as(Event.Approved.class)
));
}
});

@ -6,7 +6,6 @@ import org.apache.wicket.markup.html.link.ExternalLink;
import org.apache.wicket.markup.html.link.Link;
import org.apache.wicket.markup.html.panel.GenericPanel;
import org.apache.wicket.model.IModel;
import se.su.dsv.scipro.data.PolyModel;
import se.su.dsv.scipro.file.FileDescription;
import se.su.dsv.scipro.plagiarism.PlagiarismControl.Status;
import se.su.dsv.scipro.session.SciProSession;
@ -23,7 +22,7 @@ public class UrkundSubmissionPanel extends GenericPanel<FileDescription> {
final IModel<Status> submission = model.map(plagiarismControl::getStatus);
add(new Details("submissionDetails", submission));
final WebMarkupContainer notSubmitted = new WebMarkupContainer("notSubmitted", PolyModel.of(submission, Status.NotSubmitted.class)) {
final WebMarkupContainer notSubmitted = new WebMarkupContainer("notSubmitted", submission.as(Status.NotSubmitted.class)) {
@Override
protected void onConfigure() {
super.onConfigure();
@ -38,7 +37,7 @@ public class UrkundSubmissionPanel extends GenericPanel<FileDescription> {
});
add(notSubmitted);
final WebMarkupContainer submitted = new WebMarkupContainer("submitted", PolyModel.of(submission, Status.Submitted.class)) {
final WebMarkupContainer submitted = new WebMarkupContainer("submitted", submission.as(Status.Submitted.class)) {
@Override
protected void onConfigure() {
super.onConfigure();
@ -51,8 +50,8 @@ public class UrkundSubmissionPanel extends GenericPanel<FileDescription> {
private class Details extends WebMarkupContainer {
private Details(final String id, final IModel<Status> submission) {
super(id, submission);
final IModel<Status.Analysed> analysed = PolyModel.of(submission, Status.Analysed.class);
final IModel<Status.Error> error = PolyModel.of(submission, Status.Error.class);
final IModel<Status.Analysed> analysed = submission.as(Status.Analysed.class);
final IModel<Status.Error> error = submission.as(Status.Error.class);
add(new Label("message", error.map(Status.Error::message)) {
@Override