Fix crash when editing an application period #117
@ -176,18 +176,16 @@ public class ApplicationPeriod extends DomainObject {
|
||||
return Collections.unmodifiableSet(answerSet);
|
||||
}
|
||||
|
||||
public void setProjectTypes(Iterable<ProjectType> projectTypes) {
|
||||
this.projectTypes.clear();
|
||||
public void setProjectTypes(Set<ProjectType> projectTypes) {
|
||||
this.projectTypes.removeIf(appt -> !projectTypes.contains(appt.getProjectType()));
|
||||
for (ProjectType pt : projectTypes) {
|
||||
this.projectTypes.add(new ApplicationPeriodProjectType(this, pt));
|
||||
if (this.projectTypes.stream().noneMatch(appt -> appt.getProjectType().equals(pt))) {
|
||||
addProjectType(pt);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void addProjectType(ProjectType projectType) {
|
||||
this.projectTypes.add(new ApplicationPeriodProjectType(this, projectType));
|
||||
}
|
||||
|
||||
public void removeProjectType(ProjectType projectType) {
|
||||
this.projectTypes.removeIf(next -> next.getProjectType().equals(projectType));
|
||||
}
|
||||
}
|
||||
|
@ -123,13 +123,7 @@ public class AdminApplicationPeriodsPanel extends Panel {
|
||||
item.add(
|
||||
new DisplayMultiplesPanel<>(
|
||||
s,
|
||||
new ListAdapterModel<>(
|
||||
LambdaModel.of(
|
||||
iModel,
|
||||
ApplicationPeriod::getProjectTypes,
|
||||
ApplicationPeriod::setProjectTypes
|
||||
)
|
||||
)
|
||||
new ListAdapterModel<>(iModel.map(ApplicationPeriod::getProjectTypes))
|
||||
) {
|
||||
@Override
|
||||
public Component getComponent(String componentId, IModel<ProjectType> t) {
|
||||
|
@ -22,12 +22,7 @@ public class AddTargetLinkPanel extends Panel {
|
||||
public AddTargetLinkPanel(String id, final IModel<ApplicationPeriod> model) {
|
||||
super(id, model);
|
||||
add(
|
||||
new ListView<>(
|
||||
"list",
|
||||
new ListAdapterModel<>(
|
||||
LambdaModel.of(model, ApplicationPeriod::getProjectTypes, ApplicationPeriod::setProjectTypes)
|
||||
)
|
||||
) {
|
||||
new ListView<>("list", new ListAdapterModel<>(model.map(ApplicationPeriod::getProjectTypes))) {
|
||||
@Override
|
||||
protected void populateItem(ListItem<ProjectType> item) {
|
||||
item.add(new Label("pc", item.getModelObject().getName()));
|
||||
|
@ -76,13 +76,7 @@ public class ProjectPartnerPage extends AbstractIdeaProjectPage implements MenuH
|
||||
}
|
||||
);
|
||||
final IModel<? extends List<ProjectType>> matchableTypes = getMatchableTypes(
|
||||
new ListAdapterModel<>(
|
||||
LambdaModel.of(
|
||||
applicationPeriod,
|
||||
ApplicationPeriod::getProjectTypes,
|
||||
ApplicationPeriod::setProjectTypes
|
||||
)
|
||||
)
|
||||
new ListAdapterModel<>(applicationPeriod.map(ApplicationPeriod::getProjectTypes))
|
||||
);
|
||||
panelContainer.add(
|
||||
new ListView<>("ads", matchableTypes) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user