added some new pages for the new match3 structure and dialog to accept ideas

This commit is contained in:
Emil Siverhall 2012-07-18 14:06:14 +02:00
parent ca79800488
commit 2ad1722d5c
6 changed files with 243 additions and 1 deletions

@ -3,6 +3,10 @@
<body>
<wicket:extend>
<div class="prepend-top span-24 last">
<div wicket:id="dialog">
<div wicket:id="dialogPanel"></div>
</div>
<div class="prepend-top" wicket:id="dataPanel"></div>
</div>
</wicket:extend>
</body>

@ -1,13 +1,95 @@
package se.su.dsv.scipro.project.pages;
import java.util.Iterator;
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.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.datatables.ClickableTitleColumn;
import se.su.dsv.scipro.datatables.project.GenericDataPanel;
import se.su.dsv.scipro.match.dataobject.SupervisorIdea;
import se.su.dsv.scipro.match.dataobject.Idea.IdeaStatus;
import se.su.dsv.scipro.project.panels.AcceptIdeaDialogPanel;
import se.su.dsv.scipro.springdata.services.GenericService;
import se.su.dsv.scipro.springdata.services.SupervisorIdeaService;
public class ProjectIdeaStartPage extends AbstractProjectIdeaPage {
@SpringBean
private SupervisorIdeaService ideaService;
private Dialog dialog;
private GenericDataPanel<SupervisorIdea> genericDataPanel;
public ProjectIdeaStartPage(PageParameters pp) {
super(pp);
// TODO Auto-generated constructor stub
addDialog();
addDataTable();
}
private void addDialog() {
dialog = new Dialog("dialog");
dialog.setModal(true);
dialog.setAutoOpen(false);
dialog.setWidth(500);
dialog.setHeight(400);
dialog.add(new EmptyPanel("dialogPanel"));
add(dialog);
}
private void addDataTable() {
add(genericDataPanel = new GenericDataPanel<SupervisorIdea>("dataPanel") {
private static final long serialVersionUID = -4539188306454725307L;
@Override
public GenericService<SupervisorIdea, Long> getService() {
return ideaService;
}
@Override
public String getSortString() {
return "title";
}
@Override
public Iterator<SupervisorIdea> getIterator() {
return ideaService.findByStatus(IdeaStatus.WAITING, new PageRequest(getTable().getCurrentPage(),getTable().getRowsPerPage(), getSort())).iterator();
}
@Override
public IColumn[] getColumns() {
IColumn[] columns = new IColumn[3];
columns[0] = new PropertyColumn<SupervisorIdea>(Model.of("Date"), "dateCreated", "dateCreated");
columns[1] = new PropertyColumn<SupervisorIdea>(Model.of("Level"), "projectClass", "projectClass");
columns[2] = new ClickableTitleColumn<SupervisorIdea>(Model.of("Title"), "title", "title") {
private static final long serialVersionUID = -5826739548812884588L;
@Override
protected void onClick(IModel<SupervisorIdea> ideaModel,
AjaxRequestTarget pTarget) {
dialog.replace(new AcceptIdeaDialogPanel("dialogPanel", ideaModel, getUser()));
dialog.setTitle("Supervisor project idea");
pTarget.addComponent(dialog);
dialog.open(pTarget);
}
};
return columns;
}
});
}
}

@ -0,0 +1,32 @@
<!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>
<form wicket:id="form">
<div class="append-bottom"><b>Level: </b><br />
<span wicket:id="level"></span>
</div>
<div class="append-bottom"><b>Required prerequisites:</b><br />
<span wicket:id="reqs"></span>
</div>
<div class="append-bottom"><b>Title:</b><br />
<span wicket:id="title"></span>
</div>
<div class="append-bottom"><b>Description:</b><br />
<span wicket:id="description"></span>
</div>
<div>
<wicket:enclosure child="partnerPanel">
<b>Partner:</b><br />
<div wicket:id="partnerPanel"></div>
</wicket:enclosure>
<span class="right"><input type="submit" wicket:id="selectButton" value="Select project"/></span>
</div>
</form>
</wicket:panel>
</body>
</html>

@ -0,0 +1,84 @@
package se.su.dsv.scipro.project.panels;
import java.util.TreeSet;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.form.Button;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.markup.html.panel.FeedbackPanel;
import org.apache.wicket.markup.html.panel.Panel;
import org.apache.wicket.model.IModel;
import org.apache.wicket.spring.injection.annot.SpringBean;
import se.su.dsv.scipro.data.dataobjects.ProjectClass;
import se.su.dsv.scipro.data.dataobjects.Student;
import se.su.dsv.scipro.data.dataobjects.User;
import se.su.dsv.scipro.match.dataobject.SupervisorIdea;
import se.su.dsv.scipro.reusable.AddRemoveStudentsPanel;
import se.su.dsv.scipro.springdata.services.SupervisorIdeaService;
import se.su.dsv.scipro.util.JavascriptEventConfirmation;
public class AcceptIdeaDialogPanel extends Panel {
@SpringBean
private SupervisorIdeaService ideaService;
public AcceptIdeaDialogPanel(String id, IModel<SupervisorIdea> model, final User creator) {
super(id, model);
add(new AcceptIdeaForm("form", model, creator));
}
private static final long serialVersionUID = 29731924490786784L;
private class AcceptIdeaForm extends Form<SupervisorIdea> {
private static final long serialVersionUID = -9118352523380756043L;
private AddRemoveStudentsPanel partnerPanel;
public AcceptIdeaForm(String id, final IModel<SupervisorIdea> model, final User creator) {
super(id, model);
add(new Label("level", model.getObject().getProjectClass().getName()));
add(new Label("reqs", model.getObject().getRequirements()));
add(new Label("title", model.getObject().getTitle()));
add(new Label("description", model.getObject().getDescription()));
addPartnerPanel(model);
addButton(model, creator);
}
private void addPartnerPanel(IModel<SupervisorIdea> model) {
partnerPanel = new AddRemoveStudentsPanel("partnerPanel", new TreeSet<Student>()) {
private static final long serialVersionUID = 8432765543881357453L;
@Override
public void onUpdate(AjaxRequestTarget target) {
//do nothing
}
};
partnerPanel.setVisible(model.getObject().getProjectClass().getCode().equals(ProjectClass.BACHELOR));
add(partnerPanel);
}
private void addButton(final IModel<SupervisorIdea> model, final User creator) {
Button button = new Button("selectButton") {
private static final long serialVersionUID = 8805671593150004137L;
@Override
public void onSubmit() {
System.out.println(partnerPanel.getStudentSet());
if(ideaService.acceptIdea(model, creator, partnerPanel.getStudentSet())){
System.out.println("COOL");
} else {
System.out.println("ERROR");
}
}
};
button.add(new JavascriptEventConfirmation("onClick", "Are you sure you want to select this project idea?"));
add(button);
}
}
}

@ -0,0 +1,9 @@
<!DOCTYPE html>
<html
xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd">
<body>
<wicket:extend>
<div wicket:id="editPanel"></div>
</wicket:extend>
</body>
</html>

@ -0,0 +1,31 @@
package se.su.dsv.scipro.supervisor.pages;
import org.apache.wicket.PageParameters;
import org.apache.wicket.model.Model;
import org.apache.wicket.spring.injection.annot.SpringBean;
import se.su.dsv.scipro.components.menuhighlighting.MenuHighlightSupervisorProjectIdea;
import se.su.dsv.scipro.match.dataobject.SupervisorIdea;
import se.su.dsv.scipro.springdata.services.SupervisorIdeaService;
import se.su.dsv.scipro.supervisor.panels.SupervisorEditIdeaPanel;
public class SupervisorIdeaSubmissionPage extends
AbstractSupervisorProjectIdeaPage implements MenuHighlightSupervisorProjectIdea{
@SpringBean
private SupervisorIdeaService ideaService;
public SupervisorIdeaSubmissionPage(PageParameters pp) {
super(pp);
Long ideaId = pp.getAsLong("idea");
SupervisorIdea idea;
if(ideaId!=null)
idea = ideaService.findOne(ideaId);
else {
idea = new SupervisorIdea();
}
add(new SupervisorEditIdeaPanel("editPanel", getUser(), new Model<SupervisorIdea>(idea)));
}
}