package hu.sch.web.kp.valuation;
import hu.sch.domain.Group;
import hu.sch.domain.Semester;
import hu.sch.domain.Valuation;
import hu.sch.domain.ValuationStatistic;
import hu.sch.services.ValuationManagerLocal;
import hu.sch.web.kp.KorokPage;
import hu.sch.web.kp.valuation.message.ValuationMessages;
import hu.sch.web.kp.valuation.request.entrant.EntrantRequests;
import hu.sch.web.kp.valuation.request.point.PointRequests;
import java.util.List;
import javax.inject.Inject;
import org.apache.wicket.datetime.markup.html.basic.DateLabel;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.link.BookmarkablePageLink;
import org.apache.wicket.markup.html.link.Link;
import org.apache.wicket.markup.html.list.ListItem;
import org.apache.wicket.markup.html.list.ListView;
import org.apache.wicket.model.CompoundPropertyModel;
import org.apache.wicket.request.mapper.parameter.PageParameters;
import org.apache.wicket.util.string.StringValueConversionException;
/**
*
* @author messo
*/
public class ValuationHistory extends KorokPage {
@Inject
private ValuationManagerLocal valuationManager;
private int version = 0;
public ValuationHistory(PageParameters params) {
Long groupId = null;
try {
groupId = params.get("gid").toLong();
} catch (StringValueConversionException ex) {
}
String semesterStr = params.get("sid").toString(null);
Group group = null;
Semester semester = null;
if (groupId == null || (group = groupManager.findGroupById(groupId)) == null) {
error("Nincs ilyen csoport!");
setResponsePage(Valuations.class);
return;
}
if (semesterStr == null || semesterStr.length() == 0 || !(semester = new Semester(semesterStr)).isValid()) {
error("Nincs ilyen félév!");
setResponsePage(Valuations.class);
return;
}
// keressük az értékeléseket (verziókat) a megadott csoporthoz a megadott félévben.
add(new BookmarkablePageLink("latestVersion", ValuationDetails.class,
new PageParameters().add("id", valuationManager.findLatestVersionsId(group, semester))));
add(ValuationMessages.getLink("messages", group.getId(), semester));
setHeaderLabelText("Félévi értékelés története");
add(new Label("groupName", group.getName()));
add(new Label("semester", semester.toString()));
List<ValuationStatistic> versions = valuationManager.findValuationStatisticForVersions(group, semester);
version = versions.size();
add(new ListView<ValuationStatistic>("versionList", versions) {
@Override
protected void populateItem(ListItem<ValuationStatistic> item) {
final Valuation val = item.getModelObject().getValuation();
item.setDefaultModel(new CompoundPropertyModel<ValuationStatistic>(item.getModelObject()));
PageParameters params = new PageParameters().add("vid", val.getId());
item.add(new BookmarkablePageLink("versionLink", ValuationDetails.class,
new PageParameters().add("id", val.getId())).add(
new Label("versionLabel", String.valueOf(version--))));
item.add(DateLabel.forDatePattern("valuation.lastModified", "yyyy. MM. dd. kk:mm"));
item.add(DateLabel.forDatePattern("valuation.lastConsidered", "yyyy. MM. dd. kk:mm"));
Link givenKDOLink = new BookmarkablePageLink("givenKDOLink", EntrantRequests.class, params);
givenKDOLink.add(new Label("givenKDO"));
item.add(givenKDOLink);
Link givenKBLink = new BookmarkablePageLink("givenKBLink", EntrantRequests.class, params);
givenKBLink.add(new Label("givenKB"));
item.add(givenKBLink);
Link givenABLink = new BookmarkablePageLink("givenABLink", EntrantRequests.class, params);
givenABLink.add(new Label("givenAB"));
item.add(givenABLink);
Link pointLink = new BookmarkablePageLink("pointLink", PointRequests.class, params);
pointLink.add(new Label("averagePoint"));
item.add(pointLink);
Link summaPointLink = new BookmarkablePageLink("summaPointLink", PointRequests.class, params);
summaPointLink.add(new Label("summaPoint"));
item.add(summaPointLink);
// item.add(new Link("messagesLink") {
//
// @Override
// public void onClick() {
// setResponsePage(new ValuationMessages(val.getId()));
// }
// });
item.add(new Label("valuation.pointStatus"));
item.add(new Label("valuation.entrantStatus"));
}
});
}
}