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