From ab5bc053b1178fdaef4027a202443a289da1b17b Mon Sep 17 00:00:00 2001 From: fred-fri <fred-fri@dsv.su.se> Date: Wed, 1 Aug 2012 14:21:12 +0900 Subject: [PATCH] some improvements --- .../scipro/match/dataobject/ProjectIdea.java | 2 +- .../pages/SupervisorMyProjectIdeasPage.html | 19 ++++++----- .../pages/SupervisorMyProjectIdeasPage.java | 34 +++++++++++++++++-- 3 files changed, 44 insertions(+), 11 deletions(-) diff --git a/src/main/java/se/su/dsv/scipro/match/dataobject/ProjectIdea.java b/src/main/java/se/su/dsv/scipro/match/dataobject/ProjectIdea.java index 6d2a44fdc1..9e9671f463 100644 --- a/src/main/java/se/su/dsv/scipro/match/dataobject/ProjectIdea.java +++ b/src/main/java/se/su/dsv/scipro/match/dataobject/ProjectIdea.java @@ -42,7 +42,7 @@ public class ProjectIdea extends DomainObject { ) private Set<Employee> interestedSupervisors = new HashSet<Employee>(); - @ManyToMany + @ManyToMany(fetch = FetchType.EAGER) private List<Student> authors = new ArrayList<Student>(); @ManyToOne diff --git a/src/main/java/se/su/dsv/scipro/supervisor/pages/SupervisorMyProjectIdeasPage.html b/src/main/java/se/su/dsv/scipro/supervisor/pages/SupervisorMyProjectIdeasPage.html index cf7a666600..66738e20d3 100644 --- a/src/main/java/se/su/dsv/scipro/supervisor/pages/SupervisorMyProjectIdeasPage.html +++ b/src/main/java/se/su/dsv/scipro/supervisor/pages/SupervisorMyProjectIdeasPage.html @@ -1,13 +1,16 @@ <!DOCTYPE html> <html - xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd"> + xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd"> <body> - <wicket:extend> - <!--<div class="prepend-top span-24 last">--> - <!--<div wicket:id="feedBackPanel" />--> - <!--<div wicket:id="matchedThesisPanel"></div> --> - <!--</div>--> - <div wicket:id="dp"></div> - </wicket:extend> +<wicket:extend> + <!--<div class="prepend-top span-24 last">--> + <!--<div wicket:id="feedBackPanel" />--> + <!--<div wicket:id="matchedThesisPanel"></div> --> + <!--</div>--> + <div wicket:id="dialog"> + <div wicket:id="dialogPanel"></div> + </div> + <div wicket:id="dp"></div> +</wicket:extend> </body> </html> \ No newline at end of file diff --git a/src/main/java/se/su/dsv/scipro/supervisor/pages/SupervisorMyProjectIdeasPage.java b/src/main/java/se/su/dsv/scipro/supervisor/pages/SupervisorMyProjectIdeasPage.java index 5bf2e7f173..12d66cbb0e 100644 --- a/src/main/java/se/su/dsv/scipro/supervisor/pages/SupervisorMyProjectIdeasPage.java +++ b/src/main/java/se/su/dsv/scipro/supervisor/pages/SupervisorMyProjectIdeasPage.java @@ -3,14 +3,20 @@ package se.su.dsv.scipro.supervisor.pages; import org.apache.wicket.Component; import org.apache.wicket.PageParameters; +import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn; import org.apache.wicket.extensions.markup.html.repeater.data.table.PropertyColumn; +import org.apache.wicket.markup.html.panel.EmptyPanel; import org.apache.wicket.markup.html.panel.FeedbackPanel; +import org.apache.wicket.model.IModel; import org.apache.wicket.model.Model; import org.apache.wicket.spring.injection.annot.SpringBean; +import org.odlabs.wiquery.ui.dialog.Dialog; import org.springframework.data.domain.PageRequest; import se.su.dsv.scipro.SciProSession; import se.su.dsv.scipro.data.dataobjects.Project; +import se.su.dsv.scipro.datatables.ClickableTitleColumn; +import se.su.dsv.scipro.datatables.DateColumn; import se.su.dsv.scipro.datatables.GenericDataPanel; import se.su.dsv.scipro.match.dataobject.ProjectIdea; import se.su.dsv.scipro.reusable.SafeLongToIntService; @@ -18,6 +24,7 @@ import se.su.dsv.scipro.springdata.services.EmployeeService; import se.su.dsv.scipro.springdata.services.GenericService; import se.su.dsv.scipro.springdata.services.ProjectIdeaService; import se.su.dsv.scipro.supervisor.panels.SupervisorMatchedThesisPanel; +import se.su.dsv.scipro.supervisor.panels.WatsonInfoPanel; import java.util.Iterator; @@ -33,6 +40,8 @@ public class SupervisorMyProjectIdeasPage extends AbstractSupervisorProjectIdeaP @SpringBean private EmployeeService employeeService; + private Dialog dialog; + public SupervisorMyProjectIdeasPage(PageParameters pp) { super(pp); // Component feedBackPanel = new FeedbackPanel("feedBackPanel"); @@ -40,6 +49,13 @@ public class SupervisorMyProjectIdeasPage extends AbstractSupervisorProjectIdeaP // add(feedBackPanel); // add(new SupervisorMatchedThesisPanel("matchedThesisPanel", SciProSession.get().getUser(), "Supervisor", feedBackPanel)); + dialog = new Dialog("dialog"); + dialog.setModal(true); + dialog.setAutoOpen(false); + dialog.setWidth(550); + dialog.setHeight(700); + dialog.add(new EmptyPanel("dialogPanel")); + add(dialog); add(new GenericDataPanel<ProjectIdea>("dp") { @@ -55,8 +71,22 @@ public class SupervisorMyProjectIdeasPage extends AbstractSupervisorProjectIdeaP @Override public IColumn[] getColumns() { - IColumn[] columns = new IColumn[1]; - columns[0] = new PropertyColumn<ProjectIdea>(Model.of("Title"), "title", "title"); + IColumn[] columns = new IColumn[3]; + columns[0] = new PropertyColumn<ProjectIdea>(Model.of("Level"), "projectClass", "projectClass"); + +// columns[1] = new PropertyColumn<ProjectIdea>(Model.of("Title"), "title", "title"); + columns[1] = new ClickableTitleColumn<ProjectIdea>(Model.of("Title"), "title", "title") { + + @Override + protected void onClick(IModel<ProjectIdea> clicked, AjaxRequestTarget target) { + dialog.replace(new WatsonInfoPanel("dialogPanel", clicked.getObject())); + dialog.setTitle("Project idea: " + clicked.getObject().getTitle()); + target.addComponent(dialog); + dialog.open(target); + } + }; + + columns[2] = new DateColumn<ProjectIdea>(Model.of("Received"), "match.dateCreated", "match.dateCreated"); return columns; }