From 556a610949dc3a310bfd40cf75788c7c3fa49dbd Mon Sep 17 00:00:00 2001 From: Fredrik Norberg <fnorbe@dsv.su.se> Date: Thu, 28 Jul 2011 17:10:21 +0200 Subject: [PATCH 1/5] added adminchecklistpage --- .../admin/pages/AdminCheckListPage.html | 13 +++ .../admin/pages/AdminCheckListPage.java | 34 ++++++ .../admin/panels/AdminTabMenuPanel.java | 2 + .../panels/CreateCheckListTemplatePanel.html | 5 +- .../checklists/panels/TrafficLightPanel.java | 79 ------------- .../checklists/panels/ViewCheckListPanel.java | 110 ++++++++++++++++++ 6 files changed, 160 insertions(+), 83 deletions(-) create mode 100644 src/main/java/se/su/dsv/scipro/admin/pages/AdminCheckListPage.html create mode 100644 src/main/java/se/su/dsv/scipro/admin/pages/AdminCheckListPage.java create mode 100644 src/main/java/se/su/dsv/scipro/checklists/panels/ViewCheckListPanel.java diff --git a/src/main/java/se/su/dsv/scipro/admin/pages/AdminCheckListPage.html b/src/main/java/se/su/dsv/scipro/admin/pages/AdminCheckListPage.html new file mode 100644 index 0000000000..27c3803811 --- /dev/null +++ b/src/main/java/se/su/dsv/scipro/admin/pages/AdminCheckListPage.html @@ -0,0 +1,13 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>CheckLists</title> +</head> +<body> + <wicket:extend> + <div wicket:id="cCLPanel"></div> + </wicket:extend> + +</body> +</html> \ No newline at end of file diff --git a/src/main/java/se/su/dsv/scipro/admin/pages/AdminCheckListPage.java b/src/main/java/se/su/dsv/scipro/admin/pages/AdminCheckListPage.java new file mode 100644 index 0000000000..f9d2db1f21 --- /dev/null +++ b/src/main/java/se/su/dsv/scipro/admin/pages/AdminCheckListPage.java @@ -0,0 +1,34 @@ +package se.su.dsv.scipro.admin.pages; + +import org.apache.wicket.PageParameters; +import org.apache.wicket.markup.html.form.Form; +import org.apache.wicket.markup.html.form.SubmitLink; +import org.apache.wicket.markup.html.form.TextField; +import org.apache.wicket.markup.html.panel.FeedbackPanel; +import org.apache.wicket.model.PropertyModel; +import org.apache.wicket.spring.injection.annot.SpringBean; + +import se.su.dsv.scipro.checklists.panels.CreateCheckListTemplatePanel; +import se.su.dsv.scipro.data.dao.interfaces.GeneralSystemSettingsDao; +import se.su.dsv.scipro.data.dataobjects.GeneralSystemSettings; +import se.su.dsv.scipro.project.panels.ProjectPartnerPanel; +import se.su.dsv.scipro.security.auth.Authorization; +import se.su.dsv.scipro.security.auth.roles.Roles; + +/** + * @author Fredrik Norberg - fnorbe@dsv.su.se + * + */ + +@Authorization(authorizedRoles={Roles.SYSADMIN, Roles.ADMIN}) +public class AdminCheckListPage extends AbstractAdminPage { + + + public static final String MAIN_MENU_LABEL = "CheckLists"; + + public AdminCheckListPage(PageParameters pp) { + super(pp); + add(new CreateCheckListTemplatePanel("cCLPanel")); + } + +} diff --git a/src/main/java/se/su/dsv/scipro/admin/panels/AdminTabMenuPanel.java b/src/main/java/se/su/dsv/scipro/admin/panels/AdminTabMenuPanel.java index 33c8432b34..fb319be8bc 100644 --- a/src/main/java/se/su/dsv/scipro/admin/panels/AdminTabMenuPanel.java +++ b/src/main/java/se/su/dsv/scipro/admin/panels/AdminTabMenuPanel.java @@ -6,6 +6,7 @@ import java.util.List; import org.apache.wicket.Page; import se.su.dsv.scipro.admin.pages.AbstractAdminPage; +import se.su.dsv.scipro.admin.pages.AdminCheckListPage; import se.su.dsv.scipro.admin.pages.AdminFinalSeminarPage; import se.su.dsv.scipro.admin.pages.AdminProjectPartnerPage; import se.su.dsv.scipro.admin.pages.AdminRolePage; @@ -39,6 +40,7 @@ public class AdminTabMenuPanel extends AbstractMenuPanel { items.add(new MenuItem("Settings", AdminGeneralSettingsPage.class, ImageIcon.ICON_SETTINGS)); items.add(new MenuItem("Role management", AdminRolePage.class)); items.add(new MenuItem("Project partner", AdminProjectPartnerPage.class)); + items.add(new MenuItem("CheckList", AdminCheckListPage.class)); return items; } diff --git a/src/main/java/se/su/dsv/scipro/checklists/panels/CreateCheckListTemplatePanel.html b/src/main/java/se/su/dsv/scipro/checklists/panels/CreateCheckListTemplatePanel.html index ae81354e01..7f29e0238d 100644 --- a/src/main/java/se/su/dsv/scipro/checklists/panels/CreateCheckListTemplatePanel.html +++ b/src/main/java/se/su/dsv/scipro/checklists/panels/CreateCheckListTemplatePanel.html @@ -5,6 +5,7 @@ <meta http-equiv="Content-type" content="text/html;charset=UTF-8" /> </head> <body> + <wicket:panel> <div wicket:id="feedbackPanel"></div> <form wicket:id="form"> @@ -13,10 +14,6 @@ </div> <input wicket:id="button" type="submit"/> </form> - <div> - <a href="#" wicket:id="link">Print</a> - </div> - <div> <a href="#" wicket:id="newLink">New Link</a> </div> diff --git a/src/main/java/se/su/dsv/scipro/checklists/panels/TrafficLightPanel.java b/src/main/java/se/su/dsv/scipro/checklists/panels/TrafficLightPanel.java index 149ec7bdfc..81dcdee7ba 100644 --- a/src/main/java/se/su/dsv/scipro/checklists/panels/TrafficLightPanel.java +++ b/src/main/java/se/su/dsv/scipro/checklists/panels/TrafficLightPanel.java @@ -38,18 +38,6 @@ public class TrafficLightPanel extends Panel { private static final long serialVersionUID = 8862892008428526067L; - @SpringBean - private CheckListDao checkListDao; - - @SpringBean - private CheckListAnswerDao checkListAnswerDao; - - @SpringBean - private CheckListQuestionDao checkListQuestionDao; - - @SpringBean - private CheckListTemplateDao checkListTemplateDao; - public TrafficLightPanel(String id) { super(id); @@ -94,71 +82,4 @@ public class TrafficLightPanel extends Panel { group.add(lightList); } - - List<CheckList> checkLists = checkListDao.findCheckLists(SciProSession.get() - .getActiveProject());{ - if (checkLists.size() < 1) { - CheckList checkList = new CheckList("Test", SciProSession.get().getActiveProject()); - CheckListQuestion checkListQuestion = new CheckListQuestion("Testquestion?"); - checkListQuestion = checkListQuestionDao.save(checkListQuestion); - checkList.getQuestions().add(checkListQuestion); - checkList = checkListDao.save(checkList); - } - - ListView<CheckList> checkListsListView = new ListView<CheckList>("checkLists", checkLists) { - - /** - * - */ - private static final long serialVersionUID = 1L; - - @Override - protected void populateItem(ListItem<CheckList> item) { - - ListView<CheckListQuestion> listView = new ListView<CheckListQuestion>( - "listView", - new ArrayList<CheckListQuestion>(item.getModel().getObject().getQuestions())) { - - private static final long serialVersionUID = 1L; - - @Override - protected void populateItem(ListItem<CheckListQuestion> item) { - CheckListQuestion checkListQuestion = item.getModel().getObject(); - if(checkListQuestion.getAnswers().size() == 0){ - CheckListAnswer checkListAnswer = new CheckListAnswer(SciProSession.get().getUser(), CheckListQuestionAnswer.GREEN); - checkListAnswer = checkListAnswerDao.save(checkListAnswer); - checkListQuestion.getAnswers().add(checkListAnswer); - checkListQuestionDao.save(checkListQuestion); - - } - item.add(new Label("question", item.getModel().getObject().getQuestion())); - - ListView<CheckListAnswer> listView = new ListView<CheckListAnswer>( - "listViewAnswer", - new ArrayList<CheckListAnswer>(item.getModel().getObject().getAnswers())) { - - private static final long serialVersionUID = 1L; - - @Override - protected void populateItem(ListItem<CheckListAnswer> item) { - item.add(new Label("answer", item.getModel().getObject().getAnswer().toString())); - - - } - - }; - item.add(listView); - - } - - }; - - item.add(listView); - - } - }; - - add(checkListsListView); - }; - } diff --git a/src/main/java/se/su/dsv/scipro/checklists/panels/ViewCheckListPanel.java b/src/main/java/se/su/dsv/scipro/checklists/panels/ViewCheckListPanel.java new file mode 100644 index 0000000000..3dab763499 --- /dev/null +++ b/src/main/java/se/su/dsv/scipro/checklists/panels/ViewCheckListPanel.java @@ -0,0 +1,110 @@ +package se.su.dsv.scipro.checklists.panels; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.wicket.markup.html.basic.Label; +import org.apache.wicket.markup.html.list.ListItem; +import org.apache.wicket.markup.html.list.ListView; +import org.apache.wicket.markup.html.panel.Panel; +import org.apache.wicket.spring.injection.annot.SpringBean; + +import se.su.dsv.scipro.SciProSession; +import se.su.dsv.scipro.data.dao.interfaces.CheckListAnswerDao; +import se.su.dsv.scipro.data.dao.interfaces.CheckListDao; +import se.su.dsv.scipro.data.dao.interfaces.CheckListQuestionDao; +import se.su.dsv.scipro.data.dao.interfaces.CheckListTemplateDao; +import se.su.dsv.scipro.data.dataobjects.CheckList; +import se.su.dsv.scipro.data.dataobjects.CheckListAnswer; +import se.su.dsv.scipro.data.dataobjects.CheckListQuestion; +import se.su.dsv.scipro.data.enums.CheckListQuestionAnswer; + +public class ViewCheckListPanel extends Panel { + + + private static final long serialVersionUID = 1L; + + @SpringBean + private CheckListDao checkListDao; + + @SpringBean + private CheckListAnswerDao checkListAnswerDao; + + @SpringBean + private CheckListQuestionDao checkListQuestionDao; + + @SpringBean + private CheckListTemplateDao checkListTemplateDao; + + + public ViewCheckListPanel(String id){ + super(id); + + List<CheckList> checkLists = checkListDao.findCheckLists(SciProSession.get() + .getActiveProject());{ + if (checkLists.size() < 1) { + CheckList checkList = new CheckList("Test", SciProSession.get().getActiveProject()); + CheckListQuestion checkListQuestion = new CheckListQuestion("Testquestion?"); + checkListQuestion = checkListQuestionDao.save(checkListQuestion); + checkList.getQuestions().add(checkListQuestion); + checkList = checkListDao.save(checkList); + } + + ListView<CheckList> checkListsListView = new ListView<CheckList>("checkLists", checkLists) { + + /** + * + */ + private static final long serialVersionUID = 1L; + + @Override + protected void populateItem(ListItem<CheckList> item) { + + ListView<CheckListQuestion> listView = new ListView<CheckListQuestion>( + "listView", + new ArrayList<CheckListQuestion>(item.getModel().getObject().getQuestions())) { + + private static final long serialVersionUID = 1L; + + @Override + protected void populateItem(ListItem<CheckListQuestion> item) { + CheckListQuestion checkListQuestion = item.getModel().getObject(); + if(checkListQuestion.getAnswers().size() == 0){ + CheckListAnswer checkListAnswer = new CheckListAnswer(SciProSession.get().getUser(), CheckListQuestionAnswer.GREEN); + checkListAnswer = checkListAnswerDao.save(checkListAnswer); + checkListQuestion.getAnswers().add(checkListAnswer); + checkListQuestionDao.save(checkListQuestion); + + } + item.add(new Label("question", item.getModel().getObject().getQuestion())); + + ListView<CheckListAnswer> listView = new ListView<CheckListAnswer>( + "listViewAnswer", + new ArrayList<CheckListAnswer>(item.getModel().getObject().getAnswers())) { + + private static final long serialVersionUID = 1L; + + @Override + protected void populateItem(ListItem<CheckListAnswer> item) { + item.add(new Label("answer", item.getModel().getObject().getAnswer().toString())); + + + } + + }; + item.add(listView); + + } + + }; + + item.add(listView); + + } + }; + + add(checkListsListView); + }; + + } +} From d026cfb9d3814a789bfae973471b6122b3290ac7 Mon Sep 17 00:00:00 2001 From: joha-asc <aschan.johan@gmail.com> Date: Fri, 29 Jul 2011 15:35:11 +0200 Subject: [PATCH 2/5] checklist foundation --- .../panels/CreateCheckListTemplatePanel.html | 28 +++++- .../panels/CreateCheckListTemplatePanel.java | 88 +++++++----------- .../pm-null | Bin 5404 -> 0 bytes .../pm-null | Bin 5404 -> 0 bytes .../pm-null | Bin 5404 -> 0 bytes .../pm-null | Bin 5404 -> 0 bytes .../pm-null | Bin 5404 -> 0 bytes 7 files changed, 58 insertions(+), 58 deletions(-) delete mode 100644 target/work/WicketMockServlet-filestore/2225/4400/e95749e4_308e_4698_a057_bb86050ac96e/pm-null delete mode 100644 target/work/WicketMockServlet-filestore/2349/5733/fd6064a1_8b84_4446_82cc_69fd7167e7c6/pm-null delete mode 100644 target/work/WicketMockServlet-filestore/4435/793/a137fc0e_994c_4fd1_94a7_801290d34f88/pm-null delete mode 100644 target/work/WicketMockServlet-filestore/6408/4902/a7851e5b_30d6_4edf_a954_3f4f8c6690fb/pm-null delete mode 100644 target/work/WicketMockServlet-filestore/7238/3517/7b8c41d4_a788_46e0_a576_ab3eb0b03be8/pm-null diff --git a/src/main/java/se/su/dsv/scipro/checklists/panels/CreateCheckListTemplatePanel.html b/src/main/java/se/su/dsv/scipro/checklists/panels/CreateCheckListTemplatePanel.html index 7f29e0238d..28b3eaac96 100644 --- a/src/main/java/se/su/dsv/scipro/checklists/panels/CreateCheckListTemplatePanel.html +++ b/src/main/java/se/su/dsv/scipro/checklists/panels/CreateCheckListTemplatePanel.html @@ -8,15 +8,33 @@ <wicket:panel> <div wicket:id="feedbackPanel"></div> + <form wicket:id="form2"> + <div wicket:id="container"> + <div wicket:id="questions"> + <span wicket:id=questionLabel></span> + </div> + </div> + <div> + <input wicket:id="question" type="text" /> + + </div> + <input wicket:id="button2" type="submit" /> + + </form> <form wicket:id="form"> <div> - <input wicket:id="questions" type="text" /> + + <input wicket:id="title" type="text" /> </div> - <input wicket:id="button" type="submit"/> + <div wicket:id="radioChoice"> + <input type="radio" /> + </div> + + + <div></div> + <input wicket:id="button" type="submit" /> </form> - <div> - <a href="#" wicket:id="newLink">New Link</a> - </div> + </wicket:panel> </body> </html> \ No newline at end of file diff --git a/src/main/java/se/su/dsv/scipro/checklists/panels/CreateCheckListTemplatePanel.java b/src/main/java/se/su/dsv/scipro/checklists/panels/CreateCheckListTemplatePanel.java index 5705cfbd88..c111457a1c 100644 --- a/src/main/java/se/su/dsv/scipro/checklists/panels/CreateCheckListTemplatePanel.java +++ b/src/main/java/se/su/dsv/scipro/checklists/panels/CreateCheckListTemplatePanel.java @@ -1,27 +1,19 @@ package se.su.dsv.scipro.checklists.panels; -import java.util.ArrayList; import java.util.List; -import java.util.SortedSet; import org.apache.wicket.ajax.AjaxRequestTarget; -import org.apache.wicket.ajax.markup.html.AjaxLink; import org.apache.wicket.ajax.markup.html.form.AjaxButton; import org.apache.wicket.markup.html.WebMarkupContainer; -import org.apache.wicket.markup.html.WebPage; import org.apache.wicket.markup.html.basic.Label; -import org.apache.wicket.markup.html.basic.MultiLineLabel; import org.apache.wicket.markup.html.form.Form; -import org.apache.wicket.markup.html.form.Radio; import org.apache.wicket.markup.html.form.RadioChoice; -import org.apache.wicket.markup.html.form.RadioGroup; import org.apache.wicket.markup.html.form.RequiredTextField; import org.apache.wicket.markup.html.form.TextField; import org.apache.wicket.markup.html.list.ListItem; import org.apache.wicket.markup.html.list.ListView; import org.apache.wicket.markup.html.panel.FeedbackPanel; import org.apache.wicket.markup.html.panel.Panel; -import org.apache.wicket.model.CompoundPropertyModel; import org.apache.wicket.model.IModel; import org.apache.wicket.model.LoadableDetachableModel; import org.apache.wicket.model.Model; @@ -29,21 +21,10 @@ import org.apache.wicket.model.PropertyModel; import org.apache.wicket.spring.injection.annot.SpringBean; import se.su.dsv.scipro.SciProSession; -import se.su.dsv.scipro.data.dao.interfaces.CheckListAnswerDao; -import se.su.dsv.scipro.data.dao.interfaces.CheckListDao; -import se.su.dsv.scipro.data.dao.interfaces.CheckListQuestionDao; import se.su.dsv.scipro.data.dao.interfaces.CheckListTemplateDao; import se.su.dsv.scipro.data.dao.interfaces.ProjectClassDao; -import se.su.dsv.scipro.data.dataobjects.CheckList; -import se.su.dsv.scipro.data.dataobjects.CheckListAnswer; -import se.su.dsv.scipro.data.dataobjects.CheckListQuestion; import se.su.dsv.scipro.data.dataobjects.CheckListTemplate; -import se.su.dsv.scipro.data.dataobjects.GeneralSystemSettings; import se.su.dsv.scipro.data.dataobjects.ProjectClass; -import se.su.dsv.scipro.data.enums.CheckListQuestionAnswer; -import se.su.dsv.scipro.data.enums.StateOfMind; -import se.su.dsv.scipro.knol.resource.page.StaticImage; -import edu.emory.mathcs.backport.java.util.Arrays; /** * @author fnorbe@dsv.su.se @@ -53,15 +34,6 @@ public class CreateCheckListTemplatePanel extends Panel { private static final long serialVersionUID = 8862892008428526067L; - @SpringBean - private CheckListDao checkListDao; - - @SpringBean - private CheckListAnswerDao checkListAnswerDao; - - @SpringBean - private CheckListQuestionDao checkListQuestionDao; - @SpringBean private CheckListTemplateDao checkListTemplateDao; @@ -82,36 +54,41 @@ public class CreateCheckListTemplatePanel extends Panel { feedbackPanel.setOutputMarkupId(true); add(feedbackPanel); Form<CheckListTemplate> form = new Form<CheckListTemplate>("form"); + Form<CheckListTemplate> form2 = new Form<CheckListTemplate>("form2"); final TextField<String> titleField = new RequiredTextField<String>("title", new PropertyModel<String>(this, "title")); - final TextField<String> questionField = new RequiredTextField<String>("questions", + final TextField<String> questionField = new RequiredTextField<String>("question", new PropertyModel<String>(this, "question")); questionField.setOutputMarkupId(true); - RadioChoice<ProjectClass> radioChoice = new RadioChoice<ProjectClass>("view", + RadioChoice<ProjectClass> radioChoice = new RadioChoice<ProjectClass>("radioChoice", new PropertyModel<ProjectClass>(this, "projectClass"), projectClassDao.findAll()); - IModel<List<String>> questionModel = new LoadableDetachableModel<List<String>>() { + final IModel<List<String>> questionModel = new LoadableDetachableModel<List<String>>(){ private static final long serialVersionUID = 1L; @Override - protected List<String> load() { - // TODO Auto-generated method stub + protected List<String> load() { return checkListTemplate.getQuestions(); } }; - - AjaxLink<Void> printLink = new AjaxLink<Void>("addQuestionLink") { + final WebMarkupContainer container = new WebMarkupContainer("container"); + container.setOutputMarkupId(true); + ListView<String> listView = new ListView<String>("questions", questionModel) { private static final long serialVersionUID = 1L; @Override - public void onClick(AjaxRequestTarget target) { - checkListTemplate.getQuestions().add(question); - question = ""; - target.addComponent(questionField); + protected void populateItem(ListItem<String> item) { + Label question = new Label("questionLabel", item.getModel().getObject()); + item.add(question); + } }; + + container.add(listView); + + AjaxButton button = new AjaxButton("button", new Model<String>("Save")) { /** @@ -125,20 +102,13 @@ public class CreateCheckListTemplatePanel extends Panel { checkListTemplate.setLevel(projectClass); checkListTemplate.setCreator(SciProSession.get().getUser()); checkListTemplate.setName(title); - + checkListTemplate = checkListTemplateDao.save(checkListTemplate); target.addComponent(feedbackPanel); } }; - form.add(titleField); - form.add(radioChoice); - form.add(button); - form.add(questionField); - add(form); - - - - AjaxLink<Void> newLink = new AjaxLink<Void>("newLink") { + + AjaxButton button2 = new AjaxButton("button2", new Model<String>("Add")) { /** * @@ -146,13 +116,25 @@ public class CreateCheckListTemplatePanel extends Panel { private static final long serialVersionUID = 1L; @Override - public void onClick(AjaxRequestTarget target) { - checkListTemplate = new CheckListTemplate(); + protected void onSubmit(AjaxRequestTarget target, Form<?> form) { + checkListTemplate.getQuestions().add(new String(question)); + questionModel.detach(); + question = ""; + target.addComponent(questionField); + target.addComponent(container); + } }; - add(printLink); - add(newLink); + form.add(titleField); + form.add(radioChoice); + form.add(button); + form2.add(questionField); + form2.add(container); + form2.add(button2); + add(form); + add(form2); + //add(addQuestionLink); }; diff --git a/target/work/WicketMockServlet-filestore/2225/4400/e95749e4_308e_4698_a057_bb86050ac96e/pm-null b/target/work/WicketMockServlet-filestore/2225/4400/e95749e4_308e_4698_a057_bb86050ac96e/pm-null deleted file mode 100644 index 147e0c190a640c463089eb697c906c8a928f579a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5404 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 diff --git a/target/work/WicketMockServlet-filestore/2349/5733/fd6064a1_8b84_4446_82cc_69fd7167e7c6/pm-null b/target/work/WicketMockServlet-filestore/2349/5733/fd6064a1_8b84_4446_82cc_69fd7167e7c6/pm-null deleted file mode 100644 index 147e0c190a640c463089eb697c906c8a928f579a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5404 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 diff --git a/target/work/WicketMockServlet-filestore/4435/793/a137fc0e_994c_4fd1_94a7_801290d34f88/pm-null b/target/work/WicketMockServlet-filestore/4435/793/a137fc0e_994c_4fd1_94a7_801290d34f88/pm-null deleted file mode 100644 index 147e0c190a640c463089eb697c906c8a928f579a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5404 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 diff --git a/target/work/WicketMockServlet-filestore/6408/4902/a7851e5b_30d6_4edf_a954_3f4f8c6690fb/pm-null b/target/work/WicketMockServlet-filestore/6408/4902/a7851e5b_30d6_4edf_a954_3f4f8c6690fb/pm-null deleted file mode 100644 index 147e0c190a640c463089eb697c906c8a928f579a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5404 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 diff --git a/target/work/WicketMockServlet-filestore/7238/3517/7b8c41d4_a788_46e0_a576_ab3eb0b03be8/pm-null b/target/work/WicketMockServlet-filestore/7238/3517/7b8c41d4_a788_46e0_a576_ab3eb0b03be8/pm-null deleted file mode 100644 index ec767529171c9b9af6758aef8ab6f412233d25bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5404 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 From 6e36c1b685b9d2fc3861390a6d581dfd6db2a081 Mon Sep 17 00:00:00 2001 From: Fredrik Norberg <fnorbe@dsv.su.se> Date: Mon, 1 Aug 2011 17:10:19 +0200 Subject: [PATCH 3/5] Implemented creation of checklist templates --- .gitignore | 3 + .../panels/CreateCheckListTemplatePanel.html | 36 +++++------ .../panels/CreateCheckListTemplatePanel.java | 37 ++++++++---- .../checklists/panels/TrafficLightPanel.html | 36 ----------- .../resources/META-INF/base-repository.xml | 60 ------------------- 5 files changed, 45 insertions(+), 127 deletions(-) delete mode 100644 src/main/resources/META-INF/base-repository.xml diff --git a/.gitignore b/.gitignore index 2115d5fd97..a1b64d57b2 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,6 @@ \.classpath \target/**/* \target/* +/.settings +/.classpath +/target diff --git a/src/main/java/se/su/dsv/scipro/checklists/panels/CreateCheckListTemplatePanel.html b/src/main/java/se/su/dsv/scipro/checklists/panels/CreateCheckListTemplatePanel.html index 28b3eaac96..a43e02bacd 100644 --- a/src/main/java/se/su/dsv/scipro/checklists/panels/CreateCheckListTemplatePanel.html +++ b/src/main/java/se/su/dsv/scipro/checklists/panels/CreateCheckListTemplatePanel.html @@ -8,31 +8,31 @@ <wicket:panel> <div wicket:id="feedbackPanel"></div> - <form wicket:id="form2"> - <div wicket:id="container"> - <div wicket:id="questions"> - <span wicket:id=questionLabel></span> - </div> - </div> - <div> - <input wicket:id="question" type="text" /> - - </div> - <input wicket:id="button2" type="submit" /> - - </form> <form wicket:id="form"> <div> - <input wicket:id="title" type="text" /> + Template name: <input wicket:id="title" type="text" /> </div> + <p></p> <div wicket:id="radioChoice"> <input type="radio" /> </div> - - - <div></div> - <input wicket:id="button" type="submit" /> + <div> + <form wicket:id="addQuestionForm"> + <div wicket:id="container"> + <div>Questions</div> + <div wicket:id="questions"> + <span wicket:id=questionLabel></span> + </div> + </div> + <div> + <input wicket:id="question" type="text" /> + </div> + <input wicket:id="addQuestionButton" type="submit" /> + </form> + </div> + <p></p> + <input wicket:id="save" type="submit" /> </form> </wicket:panel> diff --git a/src/main/java/se/su/dsv/scipro/checklists/panels/CreateCheckListTemplatePanel.java b/src/main/java/se/su/dsv/scipro/checklists/panels/CreateCheckListTemplatePanel.java index c111457a1c..f100f19bd9 100644 --- a/src/main/java/se/su/dsv/scipro/checklists/panels/CreateCheckListTemplatePanel.java +++ b/src/main/java/se/su/dsv/scipro/checklists/panels/CreateCheckListTemplatePanel.java @@ -43,6 +43,8 @@ public class CreateCheckListTemplatePanel extends Panel { private String question = ""; private String title = ""; + private final FeedbackPanel feedbackPanel; + private ProjectClass projectClass; private CheckListTemplate checkListTemplate = new CheckListTemplate(); @@ -50,16 +52,18 @@ public class CreateCheckListTemplatePanel extends Panel { public CreateCheckListTemplatePanel(String id) { super(id); projectClass = projectClassDao.getProjectClass(ProjectClass.BACHELOR); - final FeedbackPanel feedbackPanel = new FeedbackPanel("feedbackPanel"); + feedbackPanel = new FeedbackPanel("feedbackPanel"); feedbackPanel.setOutputMarkupId(true); add(feedbackPanel); Form<CheckListTemplate> form = new Form<CheckListTemplate>("form"); - Form<CheckListTemplate> form2 = new Form<CheckListTemplate>("form2"); + final Form<CheckListTemplate> addQuestionForm = new Form<CheckListTemplate>("addQuestionForm"); final TextField<String> titleField = new RequiredTextField<String>("title", new PropertyModel<String>(this, "title")); + titleField.setOutputMarkupId(true); final TextField<String> questionField = new RequiredTextField<String>("question", new PropertyModel<String>(this, "question")); questionField.setOutputMarkupId(true); + questionField.setRequired(false); RadioChoice<ProjectClass> radioChoice = new RadioChoice<ProjectClass>("radioChoice", new PropertyModel<ProjectClass>(this, "projectClass"), projectClassDao.findAll()); @@ -87,9 +91,9 @@ public class CreateCheckListTemplatePanel extends Panel { }; container.add(listView); - + //add(new FeedbackPanel("feedbackPanel")); - AjaxButton button = new AjaxButton("button", new Model<String>("Save")) { + AjaxButton save = new AjaxButton("save", new Model<String>("Save template")) { /** * @@ -102,13 +106,17 @@ public class CreateCheckListTemplatePanel extends Panel { checkListTemplate.setLevel(projectClass); checkListTemplate.setCreator(SciProSession.get().getUser()); checkListTemplate.setName(title); - checkListTemplate = checkListTemplateDao.save(checkListTemplate); - target.addComponent(feedbackPanel); + checkListTemplateDao.save(checkListTemplate); + checkListTemplate = new CheckListTemplate(); + title =""; + question=""; + target.addComponent(container); + target.addComponent(titleField); } }; - AjaxButton button2 = new AjaxButton("button2", new Model<String>("Add")) { + AjaxButton addQuestionButton = new AjaxButton("addQuestionButton", new Model<String>("Add question")) { /** * @@ -118,22 +126,25 @@ public class CreateCheckListTemplatePanel extends Panel { @Override protected void onSubmit(AjaxRequestTarget target, Form<?> form) { - checkListTemplate.getQuestions().add(new String(question)); + if(question != null || question != ""){ + checkListTemplate.getQuestions().add(new String(question)); + } questionModel.detach(); question = ""; target.addComponent(questionField); target.addComponent(container); + System.out.println("mooooo"); } }; + addQuestionForm.add(questionField); + addQuestionForm.add(container); + addQuestionForm.add(addQuestionButton); form.add(titleField); form.add(radioChoice); - form.add(button); - form2.add(questionField); - form2.add(container); - form2.add(button2); + form.add(addQuestionForm); + form.add(save); add(form); - add(form2); //add(addQuestionLink); }; diff --git a/src/main/java/se/su/dsv/scipro/checklists/panels/TrafficLightPanel.html b/src/main/java/se/su/dsv/scipro/checklists/panels/TrafficLightPanel.html index 4f3970ab18..9b0f684344 100644 --- a/src/main/java/se/su/dsv/scipro/checklists/panels/TrafficLightPanel.html +++ b/src/main/java/se/su/dsv/scipro/checklists/panels/TrafficLightPanel.html @@ -12,21 +12,6 @@ <table > <tr > <td><input type="radio" wicket:id="radio" /></td> -<!-- - <td><img wicket:id="image" /></td> - </tr> - </table> - </form> - </div> - <div wicket:id="checkLists"> - <div wicket:id="listView"> - <span wicket:id="question"></span> - <div wicket:id="listViewAnswer"> - <span wicket:id="answer"></span> - </div> - </div> - </div> ---> <td><img wicket:id="image"/></td> </tr> <tr> @@ -39,24 +24,3 @@ </wicket:panel> </body> </html> -<!-- -<!DOCTYPE html> -<html - xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd"> -<head> -<meta http-equiv="Content-type" content="text/html;charset=UTF-8" /> -</head> -<body> - <wicket:panel> - <div wicket:id="trafficLightContainer"> - <table wicket:id="group"> - <tr wicket:id="lights"> - <td><input type="radio" wicket:id="radio" /></td> - <td> <img wicket:id="image"/></td> - </tr> - </table> - </div> ->>>>>>> checklists - </wicket:panel> -</body> -</html> --> \ No newline at end of file diff --git a/src/main/resources/META-INF/base-repository.xml b/src/main/resources/META-INF/base-repository.xml deleted file mode 100644 index 4bbf38d867..0000000000 --- a/src/main/resources/META-INF/base-repository.xml +++ /dev/null @@ -1,60 +0,0 @@ -<!DOCTYPE Repository - PUBLIC "-//The Apache Software Foundation//DTD Jackrabbit 1.5//EN" - "http://jackrabbit.apache.org/dtd/repository-1.5.dtd"> -<Repository> - <FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem"> - <param name="path" value="/jackrabbit" /> - </FileSystem> - <Security appName="Jackrabbit"> - <AccessManager class="org.apache.jackrabbit.core.security.simple.SimpleAccessManager" /> - <LoginModule class="org.apache.jackrabbit.core.security.simple.SimpleLoginModule"> - <param name="anonymousId" value="anonymous" /> - </LoginModule> - </Security> - <Workspaces rootPath="${rep.home}/workspaces" defaultWorkspace="default" /> - - <DataStore class="org.apache.jackrabbit.core.data.FileDataStore"> - <param name="path" value="${rep.home}/repository/datastore"/> - <param name="minRecordLength" value="100"/> - </DataStore> - - <Workspace name="${wsp.name}"> - <FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem"> - <param name="path" value="${wsp.home}" /> - </FileSystem> - - <PersistenceManager class="org.apache.jackrabbit.core.persistence.bundle.BundleFsPersistenceManager"> - <param name="blobFSBlockSize" value="0"/> - <param name="minBlobSize" value="4096"/> - <param name="errorHandling" value=""/> - </PersistenceManager> - - <SearchIndex class="org.apache.jackrabbit.core.query.lucene.SearchIndex"> - <param name="path" value="${wsp.home}/index" /> - <param name="indexingConfiguration" value="${wsp.home}/index-config.xml"/> - <param name="textFilterClasses" value=" - org.apache.jackrabbit.extractor.MsWordTextExtractor, - org.apache.jackrabbit.extractor.MsExcelTextExtractor, - org.apache.jackrabbit.extractor.MsPowerPointTextExtractor, - org.apache.jackrabbit.extractor.PdfTextExtractor, - org.apache.jackrabbit.extractor.OpenOfficeTextExtractor, - org.apache.jackrabbit.extractor.RTFTextExtractor, - org.apache.jackrabbit.extractor.XMLTextExtractor, - org.apache.jackrabbit.extractor.PngTextExtractor, - org.apache.jackrabbit.extractor.HTMLTextExtractor"/> - <param name="extractorPoolSize " value="2"/> - <param name="supportHighlighting" value="true"/> - </SearchIndex> - </Workspace> - <Versioning rootPath="${rep.home}/versions"> - <FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem"> - <param name="path" value="${rep.home}/versions" /> - </FileSystem> -<!-- <PersistenceManager class="org.apache.jackrabbit.core.persistence.xml.XMLPersistenceManager" />--> - <PersistenceManager class="org.apache.jackrabbit.core.persistence.bundle.BundleFsPersistenceManager"> - <param name="blobFSBlockSize" value="0"/> - <param name="minBlobSize" value="4096"/> - <param name="errorHandling" value=""/> - </PersistenceManager> - </Versioning> -</Repository> From a2b09124f77d4ae0a713c0438f49f2fdce48bc3c Mon Sep 17 00:00:00 2001 From: Fredrik Norberg <fnorbe@dsv.su.se> Date: Tue, 2 Aug 2011 14:12:26 +0200 Subject: [PATCH 4/5] added listCheckListPanel --- .../admin/pages/AdminCheckListPage.html | 16 ++++- .../admin/pages/AdminCheckListPage.java | 2 + .../panels/CreateCheckListTemplatePanel.java | 2 - .../checklists/panels/ListCheckListPanel.java | 66 ++++++++++++++++++ .../panels/ListCheckListTemplatePanel.java | 67 +++++++++++++++++++ .../checklists/panels/ViewCheckListPanel.java | 9 ++- .../data/dao/interfaces/CheckListDao.java | 5 +- .../data/dao/jpa/CheckListDaoJPAImp.java | 26 ++++++- .../dsv/scipro/data/dataobjects/Project.java | 22 +++++- .../dsv/scipro/data/enums/CheckListRole.java | 7 ++ .../project/pages/ProjectChecklistPage.java | 7 +- .../project/pages/ProjectPartnerPage.html | 1 - .../project/pages/ProjectPartnerPage.java | 12 +++- src/main/resources/applicationContext.xml | 4 ++ 14 files changed, 229 insertions(+), 17 deletions(-) create mode 100644 src/main/java/se/su/dsv/scipro/checklists/panels/ListCheckListPanel.java create mode 100644 src/main/java/se/su/dsv/scipro/checklists/panels/ListCheckListTemplatePanel.java create mode 100644 src/main/java/se/su/dsv/scipro/data/enums/CheckListRole.java diff --git a/src/main/java/se/su/dsv/scipro/admin/pages/AdminCheckListPage.html b/src/main/java/se/su/dsv/scipro/admin/pages/AdminCheckListPage.html index 27c3803811..815340b389 100644 --- a/src/main/java/se/su/dsv/scipro/admin/pages/AdminCheckListPage.html +++ b/src/main/java/se/su/dsv/scipro/admin/pages/AdminCheckListPage.html @@ -6,7 +6,21 @@ </head> <body> <wicket:extend> - <div wicket:id="cCLPanel"></div> + + <div class="span-22 last"> + <!-- Left column --> + <div class="span-10 colborder"> + <div class="span-10 last"> + <div wicket:id="cCLPanel"></div> + </div> + </div> + <!-- Right column --> + <div class="span-10 last"> + <div class="span-10 last"> + <div wicket:id="listCLPanel"></div> + </div> + </div> + </div> </wicket:extend> </body> diff --git a/src/main/java/se/su/dsv/scipro/admin/pages/AdminCheckListPage.java b/src/main/java/se/su/dsv/scipro/admin/pages/AdminCheckListPage.java index f9d2db1f21..0148b8c6f4 100644 --- a/src/main/java/se/su/dsv/scipro/admin/pages/AdminCheckListPage.java +++ b/src/main/java/se/su/dsv/scipro/admin/pages/AdminCheckListPage.java @@ -9,6 +9,7 @@ import org.apache.wicket.model.PropertyModel; import org.apache.wicket.spring.injection.annot.SpringBean; import se.su.dsv.scipro.checklists.panels.CreateCheckListTemplatePanel; +import se.su.dsv.scipro.checklists.panels.ListCheckListTemplatePanel; import se.su.dsv.scipro.data.dao.interfaces.GeneralSystemSettingsDao; import se.su.dsv.scipro.data.dataobjects.GeneralSystemSettings; import se.su.dsv.scipro.project.panels.ProjectPartnerPanel; @@ -29,6 +30,7 @@ public class AdminCheckListPage extends AbstractAdminPage { public AdminCheckListPage(PageParameters pp) { super(pp); add(new CreateCheckListTemplatePanel("cCLPanel")); + add(new ListCheckListTemplatePanel("listCLPanel")); } } diff --git a/src/main/java/se/su/dsv/scipro/checklists/panels/CreateCheckListTemplatePanel.java b/src/main/java/se/su/dsv/scipro/checklists/panels/CreateCheckListTemplatePanel.java index f100f19bd9..5e72d75a4d 100644 --- a/src/main/java/se/su/dsv/scipro/checklists/panels/CreateCheckListTemplatePanel.java +++ b/src/main/java/se/su/dsv/scipro/checklists/panels/CreateCheckListTemplatePanel.java @@ -133,7 +133,6 @@ public class CreateCheckListTemplatePanel extends Panel { question = ""; target.addComponent(questionField); target.addComponent(container); - System.out.println("mooooo"); } }; @@ -145,7 +144,6 @@ public class CreateCheckListTemplatePanel extends Panel { form.add(addQuestionForm); form.add(save); add(form); - //add(addQuestionLink); }; diff --git a/src/main/java/se/su/dsv/scipro/checklists/panels/ListCheckListPanel.java b/src/main/java/se/su/dsv/scipro/checklists/panels/ListCheckListPanel.java new file mode 100644 index 0000000000..38bc18914f --- /dev/null +++ b/src/main/java/se/su/dsv/scipro/checklists/panels/ListCheckListPanel.java @@ -0,0 +1,66 @@ +package se.su.dsv.scipro.checklists.panels; + +import java.util.List; + +import org.apache.wicket.markup.html.WebMarkupContainer; +import org.apache.wicket.markup.html.basic.Label; +import org.apache.wicket.markup.html.list.ListItem; +import org.apache.wicket.markup.html.list.ListView; +import org.apache.wicket.markup.html.panel.Panel; +import org.apache.wicket.model.IModel; +import org.apache.wicket.model.LoadableDetachableModel; + +import se.su.dsv.scipro.data.dao.interfaces.CheckListDao; +import se.su.dsv.scipro.data.dataobjects.CheckList; +import se.su.dsv.scipro.data.dataobjects.Project; +import se.su.dsv.scipro.data.enums.CheckListRole; + +/** + * @author Fredrik Norberg fnorbe@dsv.su.se + * + */ + +public class ListCheckListPanel extends Panel { + + private List<CheckList> checkLists; + private CheckListRole role; + private CheckListDao checkListDao; + private Project project; + + + private static final long serialVersionUID = 1L; + + public ListCheckListPanel(String id, CheckListRole role, final Project project) { + super(id); + this.role = role; + checkLists = checkListDao.findCheckLists(project, role); + + IModel<List<CheckList>> checkListModel = new LoadableDetachableModel<List<CheckList>>() { + + private static final long serialVersionUID = 1L; + + @Override + protected List<CheckList> load() { + return project.getCheckLists(); + + } + }; + + final WebMarkupContainer container = new WebMarkupContainer("container"); + container.setOutputMarkupId(true); + ListView<CheckList> checkLists = new ListView<CheckList>("checkLists", checkListModel) { + + private static final long serialVersionUID = 1L; + + @Override + protected void populateItem(ListItem<CheckList> item) { + Label listName = new Label("listName", item.getModel().getObject().getName()); + item.add(listName); + + } + }; + + container.add(checkLists); + } + +} diff --git a/src/main/java/se/su/dsv/scipro/checklists/panels/ListCheckListTemplatePanel.java b/src/main/java/se/su/dsv/scipro/checklists/panels/ListCheckListTemplatePanel.java new file mode 100644 index 0000000000..268c615bad --- /dev/null +++ b/src/main/java/se/su/dsv/scipro/checklists/panels/ListCheckListTemplatePanel.java @@ -0,0 +1,67 @@ +package se.su.dsv.scipro.checklists.panels; + +import java.util.List; + +import org.apache.wicket.markup.html.WebMarkupContainer; +import org.apache.wicket.markup.html.basic.Label; +import org.apache.wicket.markup.html.list.ListItem; +import org.apache.wicket.markup.html.list.ListView; +import org.apache.wicket.markup.html.panel.Panel; +import org.apache.wicket.model.IModel; +import org.apache.wicket.model.LoadableDetachableModel; +import org.apache.wicket.model.PropertyModel; +import org.apache.wicket.spring.injection.annot.SpringBean; + +import se.su.dsv.scipro.data.dao.interfaces.CheckListTemplateDao; +import se.su.dsv.scipro.data.dataobjects.CheckListTemplate; + + +/** + * @author Fredrik Norberg - fnorbe@dsv.su.se + * + */ + +public class ListCheckListTemplatePanel extends Panel{ + + @SpringBean + private CheckListTemplateDao checkListTemplateDao; + + private static final long serialVersionUID = 1L; + + public ListCheckListTemplatePanel(String id) { + super(id); + + IModel<List<CheckListTemplate>> checkListTemplateModel = new LoadableDetachableModel<List<CheckListTemplate>>() { + + private static final long serialVersionUID = 1L; + + @Override + protected List<CheckListTemplate> load() { + return checkListTemplateDao.findAll(); + + } + }; + + + final WebMarkupContainer container = new WebMarkupContainer("container"); + container.setOutputMarkupId(true); + ListView<CheckListTemplate> checkListTemplates = new ListView<CheckListTemplate>("checkListTemplates", checkListTemplateModel) { + + private static final long serialVersionUID = 1L; + + @Override + protected void populateItem(ListItem<CheckListTemplate> item) { + Label templateName = new Label("templateName", new PropertyModel<String>(item.getModel(),"name")); + Label templateOwner = new Label("templateOwner", new PropertyModel<String>(item.getModel(), "owner")); + item.add(templateName); + item.add(templateOwner); + + } + }; + + container.add(checkListTemplates); + } + +} + + diff --git a/src/main/java/se/su/dsv/scipro/checklists/panels/ViewCheckListPanel.java b/src/main/java/se/su/dsv/scipro/checklists/panels/ViewCheckListPanel.java index 3dab763499..777a44d6a7 100644 --- a/src/main/java/se/su/dsv/scipro/checklists/panels/ViewCheckListPanel.java +++ b/src/main/java/se/su/dsv/scipro/checklists/panels/ViewCheckListPanel.java @@ -40,7 +40,7 @@ public class ViewCheckListPanel extends Panel { public ViewCheckListPanel(String id){ super(id); - List<CheckList> checkLists = checkListDao.findCheckLists(SciProSession.get() + /* List<CheckList> checkLists = checkListDao.findCheckLists(SciProSession.get() .getActiveProject());{ if (checkLists.size() < 1) { CheckList checkList = new CheckList("Test", SciProSession.get().getActiveProject()); @@ -48,13 +48,12 @@ public class ViewCheckListPanel extends Panel { checkListQuestion = checkListQuestionDao.save(checkListQuestion); checkList.getQuestions().add(checkListQuestion); checkList = checkListDao.save(checkList); + } ListView<CheckList> checkListsListView = new ListView<CheckList>("checkLists", checkLists) { - /** - * - */ + private static final long serialVersionUID = 1L; @Override @@ -104,7 +103,7 @@ public class ViewCheckListPanel extends Panel { }; add(checkListsListView); - }; + };*/ } } diff --git a/src/main/java/se/su/dsv/scipro/data/dao/interfaces/CheckListDao.java b/src/main/java/se/su/dsv/scipro/data/dao/interfaces/CheckListDao.java index 4c5058033e..4e0117545c 100644 --- a/src/main/java/se/su/dsv/scipro/data/dao/interfaces/CheckListDao.java +++ b/src/main/java/se/su/dsv/scipro/data/dao/interfaces/CheckListDao.java @@ -4,8 +4,11 @@ import java.util.List; import se.su.dsv.scipro.data.dataobjects.CheckList; import se.su.dsv.scipro.data.dataobjects.Project; +import se.su.dsv.scipro.data.enums.CheckListRole; public interface CheckListDao extends Dao<CheckList> { - public List<CheckList> findCheckLists(final Project project); + public List<CheckList> findCheckLists(final Project project, CheckListRole role); + //use this if a dataview is necesary + //public int countCheckLists (final CheckList cl, Project project); } diff --git a/src/main/java/se/su/dsv/scipro/data/dao/jpa/CheckListDaoJPAImp.java b/src/main/java/se/su/dsv/scipro/data/dao/jpa/CheckListDaoJPAImp.java index 94994e3311..7241462343 100644 --- a/src/main/java/se/su/dsv/scipro/data/dao/jpa/CheckListDaoJPAImp.java +++ b/src/main/java/se/su/dsv/scipro/data/dao/jpa/CheckListDaoJPAImp.java @@ -1,6 +1,7 @@ package se.su.dsv.scipro.data.dao.jpa; import java.util.ArrayList; +import java.util.Date; import java.util.List; import javax.persistence.EntityManager; @@ -9,12 +10,16 @@ import javax.persistence.PersistenceException; import javax.persistence.TypedQuery; import org.hibernate.ejb.QueryHints; +import org.joda.time.DateTime; import org.springframework.orm.jpa.JpaCallback; import org.springframework.stereotype.Repository; +import org.springframework.transaction.annotation.Transactional; import se.su.dsv.scipro.data.dao.interfaces.CheckListDao; import se.su.dsv.scipro.data.dataobjects.CheckList; import se.su.dsv.scipro.data.dataobjects.Project; +import se.su.dsv.scipro.data.dataobjects.ProjectClass; +import se.su.dsv.scipro.data.enums.CheckListRole; /** * @@ -29,7 +34,7 @@ public class CheckListDaoJPAImp extends AbstractDaoJPAImp<CheckList> implements super(CheckList.class); } - public List<CheckList> findCheckLists(final Project project) { + public List<CheckList> findCheckLists(final Project project, CheckListRole role) { return getJpaTemplate().execute(new JpaCallback<List<CheckList>>() { public List<CheckList> doInJpa(EntityManager em) throws PersistenceException { String q = "select s " + "from CheckList s " + "where s.project = :project"; @@ -47,4 +52,23 @@ public class CheckListDaoJPAImp extends AbstractDaoJPAImp<CheckList> implements }); } + //use this if a dataview is necesary + /*@Override + @Transactional(readOnly = true) + public int countCheckLists(final CheckList cl,final Project project) { + return getJpaTemplate().execute(new JpaCallback<Integer>() { + + @Override + public Integer doInJpa(EntityManager em) + throws PersistenceException { + String q = "SELECT COUNT(cl) from CheckList cl WHERE cl.project = :p" ; + TypedQuery<Long> query = em.createQuery(q, + Long.class); + query.setHint(QueryHints.HINT_CACHEABLE, "true"); + query.setParameter("p", project); + + return (query.getSingleResult()).intValue(); + } + }); + }*/ } diff --git a/src/main/java/se/su/dsv/scipro/data/dataobjects/Project.java b/src/main/java/se/su/dsv/scipro/data/dataobjects/Project.java index 455ff5a680..a97b96ccfa 100644 --- a/src/main/java/se/su/dsv/scipro/data/dataobjects/Project.java +++ b/src/main/java/se/su/dsv/scipro/data/dataobjects/Project.java @@ -1,6 +1,8 @@ package se.su.dsv.scipro.data.dataobjects; +import java.util.ArrayList; import java.util.Date; +import java.util.List; import java.util.SortedSet; import java.util.TreeSet; @@ -41,6 +43,7 @@ public class Project extends DomainObject implements Comparable<Project>, Iconiz private static final long serialVersionUID = 9071570648984376188L; public static final String PP_PROJECT_ID = "pid"; + @Id @GeneratedValue @@ -82,6 +85,10 @@ public class Project extends DomainObject implements Comparable<Project>, Iconiz private String statusMessage = ""; private Date daisyStartDate; + + @OneToMany(targetEntity=CheckList.class, cascade=CascadeType.ALL, orphanRemoval=true) + @Sort(type=SortType.NATURAL) //Required by hibernate + private List<CheckList> checkLists = new ArrayList<CheckList>(); public Project() {} @@ -208,6 +215,18 @@ public class Project extends DomainObject implements Comparable<Project>, Iconiz public void setStatusMessage(String statusMessage) { this.statusMessage = statusMessage; } + + public List<CheckList> getCheckLists() { + return checkLists; + } + + public void setCheckLists(List<CheckList> checkLists) { + this.checkLists = checkLists; + } + + public void addCheckList(CheckList cl){ + checkLists.add(cl); + } @Override public int hashCode() { @@ -268,6 +287,5 @@ public class Project extends DomainObject implements Comparable<Project>, Iconiz final public String getCommentKey() { return Project.class.getCanonicalName().toString(); } - - + } diff --git a/src/main/java/se/su/dsv/scipro/data/enums/CheckListRole.java b/src/main/java/se/su/dsv/scipro/data/enums/CheckListRole.java new file mode 100644 index 0000000000..06cbbf71bf --- /dev/null +++ b/src/main/java/se/su/dsv/scipro/data/enums/CheckListRole.java @@ -0,0 +1,7 @@ +package se.su.dsv.scipro.data.enums; + +public enum CheckListRole { + AUTHOR, + SUPERVISOR, + ADMIN +} diff --git a/src/main/java/se/su/dsv/scipro/project/pages/ProjectChecklistPage.java b/src/main/java/se/su/dsv/scipro/project/pages/ProjectChecklistPage.java index ad39c2dbc3..8fbc7f753c 100644 --- a/src/main/java/se/su/dsv/scipro/project/pages/ProjectChecklistPage.java +++ b/src/main/java/se/su/dsv/scipro/project/pages/ProjectChecklistPage.java @@ -2,6 +2,9 @@ package se.su.dsv.scipro.project.pages; import org.apache.wicket.PageParameters; +import se.su.dsv.scipro.SciProSession; +import se.su.dsv.scipro.checklists.panels.ListCheckListPanel; +import se.su.dsv.scipro.data.enums.CheckListRole; import se.su.dsv.scipro.security.auth.Authorization; import se.su.dsv.scipro.security.auth.roles.Roles; @@ -10,11 +13,13 @@ import se.su.dsv.scipro.security.auth.roles.Roles; * */ -@Authorization(authorizedRoles={Roles.SYSADMIN}) //TODO Hidden for initial deployment +@Authorization(authorizedRoles={Roles.SYSADMIN}) public class ProjectChecklistPage extends ProjectPage { public ProjectChecklistPage(PageParameters pp) { super(pp); + add(new ListCheckListPanel("listCheckListPanel", CheckListRole.AUTHOR, + SciProSession.get().getActiveProject())); //add(new TrafficLightPanel("trafficLightPanel")); //add(new CreateCheckListTemplatePanel("createCheckList")); } diff --git a/src/main/java/se/su/dsv/scipro/project/pages/ProjectPartnerPage.html b/src/main/java/se/su/dsv/scipro/project/pages/ProjectPartnerPage.html index 2195675938..5ac372575a 100644 --- a/src/main/java/se/su/dsv/scipro/project/pages/ProjectPartnerPage.html +++ b/src/main/java/se/su/dsv/scipro/project/pages/ProjectPartnerPage.html @@ -7,7 +7,6 @@ <div class="span-22 last"> <div wicket:id=feedback></div> <!-- Left column --> - <div class="span-10 colborder"> <div class="span-10 last"> <h5 class="peer-title">Look for project partner</h5> diff --git a/src/main/java/se/su/dsv/scipro/project/pages/ProjectPartnerPage.java b/src/main/java/se/su/dsv/scipro/project/pages/ProjectPartnerPage.java index 2f738710b4..83ffa48803 100644 --- a/src/main/java/se/su/dsv/scipro/project/pages/ProjectPartnerPage.java +++ b/src/main/java/se/su/dsv/scipro/project/pages/ProjectPartnerPage.java @@ -59,7 +59,6 @@ public class ProjectPartnerPage extends ProjectPage { private DataView<ProjectPartner> dataView; private WebMarkupContainer wmc; - private IModel<List<ProjectPartner>> listModel; private RadioChoice<ProjectClass> degreeChoice; private RadioChoice<ProjectClass> showChoice; @@ -76,7 +75,7 @@ public class ProjectPartnerPage extends ProjectPage { settings = generalSystemSettingsDao.getGeneralSystemSettingsInstance(); choices = new ArrayList<ProjectClass>(); - days = settings.getProjectPartnerDaysToLive(); + setDays(settings.getProjectPartnerDaysToLive()); ProjectClass bachelor = projectClassDao.getProjectClass(ProjectClass.BACHELOR); choices.add(bachelor); choices.add(projectClassDao.getProjectClass(ProjectClass.MASTER)); @@ -142,7 +141,6 @@ public class ProjectPartnerPage extends ProjectPage { private void loadListView(ProjectPartnerDataProvider projectPartnerDataProvider){ dataView = new DataView<ProjectPartner>("list", projectPartnerDataProvider, 5 ){ - //wmc.add(new ListView<ProjectPartner>("list", new PropertyModel<List<ProjectPartner>>(this, "ProjectPartnerDao.getProjectPartner")){ @@ -160,5 +158,13 @@ public class ProjectPartnerPage extends ProjectPage { } }; } + + public int getDays() { + return days; + } + + public void setDays(int days) { + this.days = days; + } } diff --git a/src/main/resources/applicationContext.xml b/src/main/resources/applicationContext.xml index 78cb9aa86b..14ed77e032 100644 --- a/src/main/resources/applicationContext.xml +++ b/src/main/resources/applicationContext.xml @@ -38,6 +38,10 @@ "projectClassDao" "projectScheduleDao" "projectFollowerDao" + "checkListDao" + "checkListQuestion" + "checkListTemplate" + "checkListAnswer" "stringResourceDao" "fileDescriptionDao" "projectEventTemplateDao" From 19a80d3935fb42f9a3a701f37f7b9d186e577076 Mon Sep 17 00:00:00 2001 From: Fredrik Norberg <fnorbe@dsv.su.se> Date: Tue, 2 Aug 2011 15:42:38 +0200 Subject: [PATCH 5/5] added ListCheckListTemplatePanel --- .../panels/ListCheckListTemplatePanel.html | 17 +++++++++++++++++ .../panels/ListCheckListTemplatePanel.java | 5 +++-- 2 files changed, 20 insertions(+), 2 deletions(-) create mode 100644 src/main/java/se/su/dsv/scipro/checklists/panels/ListCheckListTemplatePanel.html diff --git a/src/main/java/se/su/dsv/scipro/checklists/panels/ListCheckListTemplatePanel.html b/src/main/java/se/su/dsv/scipro/checklists/panels/ListCheckListTemplatePanel.html new file mode 100644 index 0000000000..acdf122fe6 --- /dev/null +++ b/src/main/java/se/su/dsv/scipro/checklists/panels/ListCheckListTemplatePanel.html @@ -0,0 +1,17 @@ +<!DOCTYPE html> +<html + xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd"> +<head> +<meta http-equiv="Content-type" content="text/html;charset=UTF-8" /> +</head> +<body> + <wicket:panel> + <div wicket:id="container"> + <div wicket:id="checkListTemplates"> + <div wicket:id="templateName"></div> + <div wicket:id="templateOwner"></div> + </div> + </div> + </wicket:panel> +</body> +</html> \ No newline at end of file diff --git a/src/main/java/se/su/dsv/scipro/checklists/panels/ListCheckListTemplatePanel.java b/src/main/java/se/su/dsv/scipro/checklists/panels/ListCheckListTemplatePanel.java index 268c615bad..840ead4a8c 100644 --- a/src/main/java/se/su/dsv/scipro/checklists/panels/ListCheckListTemplatePanel.java +++ b/src/main/java/se/su/dsv/scipro/checklists/panels/ListCheckListTemplatePanel.java @@ -52,7 +52,7 @@ public class ListCheckListTemplatePanel extends Panel{ @Override protected void populateItem(ListItem<CheckListTemplate> item) { Label templateName = new Label("templateName", new PropertyModel<String>(item.getModel(),"name")); - Label templateOwner = new Label("templateOwner", new PropertyModel<String>(item.getModel(), "owner")); + Label templateOwner = new Label("templateOwner", new PropertyModel<String>(item.getModel(), "creator")); item.add(templateName); item.add(templateOwner); @@ -60,8 +60,9 @@ public class ListCheckListTemplatePanel extends Panel{ }; container.add(checkListTemplates); - } + add(container); + } }