fixed some saves, changed a panel to use models instead of entity

This commit is contained in:
Fredrik Friis 2012-03-01 12:40:33 +09:00
parent 50ab4aadc3
commit b4df30b748
3 changed files with 21 additions and 21 deletions
src/main/java/se/su/dsv/scipro

@ -14,6 +14,7 @@ import org.apache.wicket.markup.html.panel.EmptyPanel;
import org.apache.wicket.markup.html.panel.Panel; import org.apache.wicket.markup.html.panel.Panel;
import org.apache.wicket.model.IModel; import org.apache.wicket.model.IModel;
import org.apache.wicket.model.LoadableDetachableModel; import org.apache.wicket.model.LoadableDetachableModel;
import org.apache.wicket.model.Model;
import org.apache.wicket.spring.injection.annot.SpringBean; import org.apache.wicket.spring.injection.annot.SpringBean;
import se.su.dsv.scipro.SciProSession; import se.su.dsv.scipro.SciProSession;
@ -56,19 +57,19 @@ public class ListCheckListPanel extends Panel {
@SpringBean @SpringBean
CheckListController checkListController; CheckListController checkListController;
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
private Project project; private Model<Project> projectModel;
private final ListView<CheckList> checkLists; private final ListView<CheckList> checkLists;
private Label emptyLabel; private Label emptyLabel;
public ListCheckListPanel(String id, final CheckListRole role, final Project project) { public ListCheckListPanel(String id, final CheckListRole role, final Model<Project> projectModel) {
super(id); super(id);
assert(project != null); assert(projectModel.getObject() != null);
this.project = project; this.projectModel = projectModel;
final IModel<List<CheckList>> checkListModel = new LoadableDetachableModel<List<CheckList>>() { final IModel<List<CheckList>> checkListModel = new LoadableDetachableModel<List<CheckList>>() {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@Override @Override
protected List<CheckList> load() { protected List<CheckList> load() {
return project.getCheckLists(); return projectModel.getObject().getCheckLists();
} }
}; };
final WebMarkupContainer container = new WebMarkupContainer("container"); final WebMarkupContainer container = new WebMarkupContainer("container");
@ -76,7 +77,7 @@ public class ListCheckListPanel extends Panel {
emptyLabel = new Label("emptyLabel", "No checklists has been added to this project yet."); emptyLabel = new Label("emptyLabel", "No checklists has been added to this project yet.");
emptyLabel.setOutputMarkupId(true); emptyLabel.setOutputMarkupId(true);
emptyLabel.setVisible(project.getCheckLists().isEmpty()); emptyLabel.setVisible(projectModel.getObject().getCheckLists().isEmpty());
container.add(emptyLabel); container.add(emptyLabel);
container.add(new WebMarkupContainer("removeHeader"){ container.add(new WebMarkupContainer("removeHeader"){
@ -94,7 +95,7 @@ public class ListCheckListPanel extends Panel {
final CheckList cl = item.getModelObject(); final CheckList cl = item.getModelObject();
final PageParameters pp = new PageParameters(); final PageParameters pp = new PageParameters();
pp.put("checklist", cl.getId()); pp.put("checklist", cl.getId());
pp.put(Project.PP_PROJECT_ID, project.getId()); pp.put(Project.PP_PROJECT_ID, projectModel.getObject().getId());
//Check for answered questions on this checklist //Check for answered questions on this checklist
boolean isAnswered=false; boolean isAnswered=false;
for(CheckListQuestion question :cl.getQuestions()){ for(CheckListQuestion question :cl.getQuestions()){
@ -105,8 +106,8 @@ public class ListCheckListPanel extends Panel {
} }
//Check for links from project schedule events //Check for links from project schedule events
boolean isLinked=false; boolean isLinked=false;
if(project != null && project.getProjectSchedule() != null){ if(projectModel.getObject() != null && projectModel.getObject().getProjectSchedule() != null){
for(final ProjectScheduleEvent event : project.getProjectSchedule().getEvents()){ for(final ProjectScheduleEvent event : projectModel.getObject().getProjectSchedule().getEvents()){
if(event.getCheckList() != null && event.getCheckList().equals(cl)){ if(event.getCheckList() != null && event.getCheckList().equals(cl)){
isLinked = true; isLinked = true;
break; break;
@ -123,7 +124,7 @@ public class ListCheckListPanel extends Panel {
assert(canDeleteChecklist(role)); assert(canDeleteChecklist(role));
// if(checklistCanBeRemoved){ // if(checklistCanBeRemoved){
for (ProjectScheduleEvent pse : project.getProjectSchedule().getEvents()){ for (ProjectScheduleEvent pse : projectModel.getObject().getProjectSchedule().getEvents()){
if (pse.getCheckList()!=null && pse.getCheckList().equals(item.getModelObject())){ if (pse.getCheckList()!=null && pse.getCheckList().equals(item.getModelObject())){
pse.setCheckList(null); pse.setCheckList(null);
pseDao.save(pse); pseDao.save(pse);
@ -131,8 +132,11 @@ public class ListCheckListPanel extends Panel {
} }
checkListDao.reLoad(item.getModel().getObject()); checkListDao.reLoad(item.getModel().getObject());
project.removeCheckList(item.getModelObject()); projectModel.getObject().removeCheckList(item.getModelObject());
projectDao.save(project);
projectModel.setObject(projectDao.save(projectModel.getObject()));
setResponsePage(SupervisorChecklistPage.class, pp); setResponsePage(SupervisorChecklistPage.class, pp);
// } // }
} }

@ -1,17 +1,11 @@
package se.su.dsv.scipro.project.pages; package se.su.dsv.scipro.project.pages;
import java.util.List;
import org.apache.wicket.PageParameters; import org.apache.wicket.PageParameters;
import org.apache.wicket.model.LoadableDetachableModel; import org.apache.wicket.model.Model;
import se.su.dsv.scipro.SciProSession; import se.su.dsv.scipro.SciProSession;
import se.su.dsv.scipro.checklists.panels.CheckListModel;
import se.su.dsv.scipro.checklists.panels.ListCheckListPanel; import se.su.dsv.scipro.checklists.panels.ListCheckListPanel;
import se.su.dsv.scipro.data.dataobjects.CheckList;
import se.su.dsv.scipro.data.dataobjects.Member;
import se.su.dsv.scipro.data.dataobjects.Project; import se.su.dsv.scipro.data.dataobjects.Project;
import se.su.dsv.scipro.data.dataobjects.User;
import se.su.dsv.scipro.data.enums.CheckListRole; import se.su.dsv.scipro.data.enums.CheckListRole;
import se.su.dsv.scipro.security.auth.Authorization; import se.su.dsv.scipro.security.auth.Authorization;
import se.su.dsv.scipro.security.auth.roles.Roles; import se.su.dsv.scipro.security.auth.roles.Roles;
@ -28,7 +22,7 @@ public class ProjectChecklistPage extends ProjectPage {
super(pp); super(pp);
pp.put(Project.PP_PROJECT_ID, SciProSession.get().getActiveProject().getId()); pp.put(Project.PP_PROJECT_ID, SciProSession.get().getActiveProject().getId());
add(new ListCheckListPanel("listCheckListPanel", CheckListRole.AUTHOR,getActiveProject())); add(new ListCheckListPanel("listCheckListPanel", CheckListRole.AUTHOR, new Model<Project>(getActiveProject())));
//add(new TrafficLightPanel("trafficLightPanel")); //add(new TrafficLightPanel("trafficLightPanel"));
//add(new CreateCheckListTemplatePanel("createCheckList")); //add(new CreateCheckListTemplatePanel("createCheckList"));
} }

@ -1,10 +1,12 @@
package se.su.dsv.scipro.supervisor.pages; package se.su.dsv.scipro.supervisor.pages;
import org.apache.wicket.PageParameters; import org.apache.wicket.PageParameters;
import org.apache.wicket.model.Model;
import se.su.dsv.scipro.checklists.panels.ListCheckListPanel; import se.su.dsv.scipro.checklists.panels.ListCheckListPanel;
import se.su.dsv.scipro.checklists.panels.SupervisorAddChecklistPanel; import se.su.dsv.scipro.checklists.panels.SupervisorAddChecklistPanel;
import se.su.dsv.scipro.components.menuhighlighting.MenuHighlightSupervisorMyProjects; import se.su.dsv.scipro.components.menuhighlighting.MenuHighlightSupervisorMyProjects;
import se.su.dsv.scipro.data.dataobjects.Project;
import se.su.dsv.scipro.data.enums.CheckListRole; import se.su.dsv.scipro.data.enums.CheckListRole;
import se.su.dsv.scipro.security.auth.Authorization; import se.su.dsv.scipro.security.auth.Authorization;
import se.su.dsv.scipro.security.auth.roles.Roles; import se.su.dsv.scipro.security.auth.roles.Roles;
@ -18,7 +20,7 @@ import se.su.dsv.scipro.security.auth.roles.Roles;
public class SupervisorChecklistPage extends AbstractSupervisorProjectDetailsPage implements MenuHighlightSupervisorMyProjects { public class SupervisorChecklistPage extends AbstractSupervisorProjectDetailsPage implements MenuHighlightSupervisorMyProjects {
public SupervisorChecklistPage(PageParameters pp) { public SupervisorChecklistPage(PageParameters pp) {
super(pp); super(pp);
add(new ListCheckListPanel("listCheckListPanel", CheckListRole.SUPERVISOR, projectModel.getObject())); add(new ListCheckListPanel("listCheckListPanel", CheckListRole.SUPERVISOR, new Model<Project>(projectModel.getObject())));
add(new SupervisorAddChecklistPanel("addChecklistPanel", pp, projectModel.getObject())); add(new SupervisorAddChecklistPanel("addChecklistPanel", pp, projectModel.getObject()));
} }