Default project classes must be added when we use the clear button to reset the previous search terms.

This commit is contained in:
Tom Vahlman 2012-03-20 17:54:25 +01:00
parent b02e7363ae
commit ac51cb76e8
2 changed files with 17 additions and 3 deletions
src/main/java/se/su/dsv/scipro

@ -1,6 +1,5 @@
package se.su.dsv.scipro.match.panel;
import java.util.ArrayList;
import java.util.List;
import org.apache.wicket.markup.html.WebMarkupContainer;
@ -33,7 +32,6 @@ public class FilterFormProjectClassPanel extends Panel {
public FilterFormProjectClassPanel(String id, final List<ProjectClass> projectClassesToSet) {
super(id);
setOutputMarkupId(true);
List<ProjectClass> projectClasses1 = projectClassDao.findAll();
CompoundPropertyModel<List<ProjectClass>> projectClassModel = new CompoundPropertyModel<List<ProjectClass>>(projectClasses1);
checkGroup = new CheckGroup<ProjectClass>("checkGroup",projectClassesToSet);

@ -22,6 +22,7 @@ import org.apache.wicket.spring.injection.annot.SpringBean;
import se.su.dsv.scipro.components.CustomDateTimeField;
import se.su.dsv.scipro.components.ItemsPerPageChoice;
import se.su.dsv.scipro.data.dao.interfaces.Dao.SortableParams.Sort;
import se.su.dsv.scipro.data.dao.interfaces.ProjectClassDao;
import se.su.dsv.scipro.data.dataobjects.ProjectClass;
import se.su.dsv.scipro.data.dataobjects.Student;
import se.su.dsv.scipro.data.facade.ProjectIdeaFacade;
@ -50,6 +51,9 @@ public class SupervisorUnmatchedThesisPanel extends Panel {
@SpringBean
private KeywordTypeDao keywordTypeDao;
@SpringBean
private ProjectClassDao projectClassDao;
public SupervisorUnmatchedThesisPanel(String id, final Component feedBackPanel) {
super(id);
@ -285,6 +289,7 @@ public class SupervisorUnmatchedThesisPanel extends Panel {
container.add(dateTo);
add(container);
final FilterFormProjectClassPanel projectClassPanel = new FilterFormProjectClassPanel("projectClassPanel", new ArrayList<ProjectClass>());
projectClassPanel.setOutputMarkupId(true);
add(projectClassPanel);
AjaxButton filterButton = new AjaxButton("filterButton", new Model<String>("Filter")) {
private static final long serialVersionUID = 874722659774465502L;
@ -295,9 +300,11 @@ public class SupervisorUnmatchedThesisPanel extends Panel {
List<ProjectClass> pclasses = projectClassPanel.getSelectedprojectClasses();
if (!pclasses.isEmpty()) {
params.setProjectClasses(pclasses);
} else if(params.getProjectClasses() == null || params.getProjectClasses().size() == 0) {
addProjectClasses(params);
}
if(!keywords.isEmpty()) {
params.setKeywords(keywords);
params.setKeywords(keywords); // there should always be a project class, we may otherwise get an NPE when we clear() in clearSearchTermsButton#onSubmit
}
params.setSubmittedAfter(dateFrom.getModelObject());
params.setSubmittedBefore(dateTo.getModelObject());
@ -322,5 +329,14 @@ public class SupervisorUnmatchedThesisPanel extends Panel {
}
});
}
private void addProjectClasses(Params params) {
Collection<ProjectClass> projectClassCollection = new ArrayList<ProjectClass>();
ProjectClass projectClass = projectClassDao.getProjectClass(ProjectClass.BACHELOR);
projectClassCollection.add(projectClass);
projectClass = projectClassDao.getProjectClass(ProjectClass.MASTER);
projectClassCollection.add(projectClass);
params.setProjectClasses(projectClassCollection);
}
}
}