}
Collections.sort(examsMap.getExecutionCourses(), new BeanComparator("sigla"));
String rowClass = "notFirstRow"; // used for CSS style
for (int i = 0; i < examsMap.getExecutionCourses().size(); i++) {
InfoExecutionCourse infoExecutionCourse = (InfoExecutionCourse) examsMap.getExecutionCourses().get(i);
if (user.equals("sop")) {
strBuffer.append("<table border='1' cellspacing='0' cellpadding='3' width='95%'>");
strBuffer.append("<tr>");
}
if (i == 0) {
rowClass = "firstRow";
}
if (infoExecutionCourse.getCurricularYear().equals(curricularYear)) {
boolean showCreateExamLink = infoExecutionCourse.getAssociatedInfoExams().size() < 2;
if (user.equals("sop")) {
strBuffer.append("<td colspan='6'>");
}
if (user.equals("public")) {
strBuffer.append("<tr valign='top'>");
strBuffer.append("<td class='" + rowClass + "'>");
String siteUrl = infoExecutionCourse.getExecutionCourse().getSiteUrl();
siteUrl = siteUrl == null ? "" : siteUrl;
strBuffer.append(GenericChecksumRewriter.NO_CHECKSUM_PREFIX);
strBuffer.append("<a href=\"");
strBuffer.append(siteUrl);
strBuffer.append("\">");
} else if (showCreateExamLink && user.equals("sop")) {
strBuffer.append("<a href='" + addPublicPrefix("showExamsManagement.do") + "?method=createByCourse&"
+ PresentationConstants.EXECUTION_COURSE_OID + "=" + infoExecutionCourse.getExternalId()
+ "&" + PresentationConstants.EXECUTION_PERIOD_OID + "="
+ infoExecutionCourse.getInfoExecutionPeriod().getExternalId() + "&"
+ PresentationConstants.EXECUTION_DEGREE_OID + "="
+ examsMap.getInfoExecutionDegree().getExternalId() + "&"
+ PresentationConstants.CURRICULAR_YEAR_OID + "=" + curricularYear.toString() + "'>");
}
strBuffer.append(infoExecutionCourse.getSigla());
strBuffer.append(" - ");
strBuffer.append(infoExecutionCourse.getNome());
if (user.equals("public")) {
strBuffer.append("</a>");
strBuffer.append("</td>");
}
boolean hasComment =
infoExecutionCourse.getComment() != null && infoExecutionCourse.getComment().length() > 0
&& !infoExecutionCourse.getComment().equals(" ");
if (hasComment) {
if (user.equals("sop")) {
strBuffer.append(" : ");
strBuffer.append("<a href='" + addPublicPrefix("defineComment.do") + "?executionCourseCode=");
strBuffer.append(infoExecutionCourse.getSigla());
strBuffer
.append("&executionPeriodName=" + infoExecutionCourse.getInfoExecutionPeriod().getName());
strBuffer.append("&executionYear="
+ infoExecutionCourse.getInfoExecutionPeriod().getInfoExecutionYear().getYear());
strBuffer.append("&comment=" + infoExecutionCourse.getComment());
strBuffer.append("&method=prepare");
strBuffer.append("&indexExecutionCourse=" + i);
strBuffer.append("&" + PresentationConstants.EXECUTION_PERIOD_OID + "="
+ infoExecutionCourse.getInfoExecutionPeriod().getExternalId() + "&"
+ PresentationConstants.EXECUTION_DEGREE_OID + "="
+ examsMap.getInfoExecutionDegree().getExternalId() + getCurricularYearsArgs());
strBuffer.append("'>");
} else if (user.equals("public")) {
strBuffer.append("<td colspan='6' class='" + rowClass + "'><i>");
}
strBuffer.append(infoExecutionCourse.getComment());
if (user.equals("sop")) {
strBuffer.append("</a>");
} else if (user.equals("public")) {
strBuffer.append("</i></td>");
}
} else {
if (user.equals("sop")) {
strBuffer.append(" : ");
strBuffer.append("<a href='" + addPublicPrefix("defineComment.do") + "?executionCourseCode=");
strBuffer.append(infoExecutionCourse.getSigla());
strBuffer
.append("&executionPeriodName=" + infoExecutionCourse.getInfoExecutionPeriod().getName());
strBuffer.append("&executionYear="
+ infoExecutionCourse.getInfoExecutionPeriod().getInfoExecutionYear().getYear());
strBuffer.append("&method=prepare");
strBuffer.append("&indexExecutionCourse=" + i);
strBuffer.append("&" + PresentationConstants.EXECUTION_PERIOD_OID + "="
+ infoExecutionCourse.getInfoExecutionPeriod().getExternalId() + "&"
+ PresentationConstants.EXECUTION_DEGREE_OID + "="
+ examsMap.getInfoExecutionDegree().getExternalId() + getCurricularYearsArgs());
strBuffer.append("'>");
strBuffer.append("Definir comentário");
strBuffer.append("</a>");
}
}
if (user.equals("sop")) {
strBuffer.append("</td>");
strBuffer.append("</tr>");
}
if (infoExecutionCourse.getAssociatedInfoExams().isEmpty() && !hasComment) {
strBuffer.append("<td colspan='6' align='center' class='" + rowClass + "'>");
strBuffer.append("<i>").append(getMessageResource(pageContext, "no.exams.for.curricular.year"))
.append("</i>");
strBuffer.append("</td>");
} else {
// Get 1st season exam
InfoExam season1Exam =
(InfoExam) CollectionUtils.find(infoExecutionCourse.getAssociatedInfoExams(), new Predicate() {
@Override
public boolean evaluate(Object obj) {
InfoExam infoExam = (InfoExam) obj;
return infoExam.getSeason().equals(new Season(Season.SEASON1));
}
});
// Get 2nd season exam
InfoExam season2Exam =
(InfoExam) CollectionUtils.find(infoExecutionCourse.getAssociatedInfoExams(), new Predicate() {
@Override
public boolean evaluate(Object obj) {
InfoExam infoExam = (InfoExam) obj;
return infoExam.getSeason().equals(new Season(Season.SEASON2));
}
});
if (user.equals("public")) {
if (season1Exam == null && !hasComment) {
strBuffer.append("<td colspan='3' class='" + rowClass + "'> </td>");
}
if (season2Exam == null && !hasComment) {
strBuffer.append("<td colspan='3' class='" + rowClass + "'> </td>");
}
}
if ((season1Exam != null)
// && season1Exam.getAssociatedRooms() != null
// && season1Exam.getAssociatedRooms().size() >
// 0)
|| (season2Exam != null))
// && season2Exam.getAssociatedRooms() != null
// && season2Exam.getAssociatedRooms().size() > 0))
{
if (season1Exam != null) {
if (user.equals("sop")) {
strBuffer.append("<tr>");
strBuffer.append("<td>");
strBuffer
.append("<a href='" + addPublicPrefix("showExamsManagement.do") + "?method=edit&"
+ PresentationConstants.EXECUTION_COURSE_OID + "="
+ infoExecutionCourse.getExternalId() + "&"
+ PresentationConstants.EXECUTION_PERIOD_OID + "="
+ infoExecutionCourse.getInfoExecutionPeriod().getExternalId() + "&"
+ PresentationConstants.EXECUTION_DEGREE_OID + "="
+ examsMap.getInfoExecutionDegree().getExternalId() + "&"
+ PresentationConstants.CURRICULAR_YEAR_OID + "=" + curricularYear.toString()
+ "&" + PresentationConstants.EXAM_OID + "="
+ season1Exam.getExternalId() + "'>");
}
if (user.equals("sop")) {
strBuffer.append("1ª Época");
strBuffer.append("</a>");
strBuffer.append("</td>");
strBuffer.append("<td>");
strBuffer.append(season1Exam.getDate());
strBuffer.append("<br/>");
strBuffer.append(season1Exam.getBeginningHour());
strBuffer.append("-");
strBuffer.append(season1Exam.getEndHour());
} else if (user.equals("public")) {
strBuffer.append("<td class='" + rowClass + "'>");
strBuffer.append(season1Exam.getDate());
strBuffer.append("</td>");
strBuffer.append("<td class='" + rowClass + "'>");
strBuffer.append(season1Exam.getBeginningHour());
strBuffer.append("</td>");
// strBuffer.append("-");
// strBuffer.append(season1Exam.getEndHour())
// ;
}
if (user.equals("sop")) {
strBuffer.append("</td>");
strBuffer.append("<td>");
// Integer numAlunos =
// infoExecutionCourse.
// getNumberOfAttendingStudents();
Integer numAlunos = season1Exam.getEnrolledStudents();
strBuffer.append(numAlunos);
strBuffer.append(getMessageResource(pageContext,
"public.degree.information.label.enrolledPupils"));
strBuffer.append("</td>");
strBuffer.append("<td>");
strBuffer.append(getMessageResource(pageContext, "public.degree.information.label.lack"));
// Obter o num de lugares de exame das salas
List roomOccupation = season1Exam.getWrittenEvaluationSpaceOccupations();
int numLugaresSalas = 0;
for (int iterRO = 0; iterRO < roomOccupation.size(); iterRO++) {
InfoRoomOccupation infoRO = (InfoRoomOccupation) roomOccupation.get(iterRO);
numLugaresSalas += infoRO.getInfoRoom().getCapacidadeExame().intValue();
}
int numLugaresAPreencher = numAlunos.intValue() - numLugaresSalas;
// if (numLugaresAPreencher < 0)
// numLugaresAPreencher = 0;
strBuffer.append(numLugaresAPreencher);
strBuffer.append(getMessageResource(pageContext, "public.degree.information.label.places"));
strBuffer.append("</td>");
strBuffer.append("<td>");
}
List infoRoomOccupations = season1Exam.getWrittenEvaluationSpaceOccupations();
if (infoRoomOccupations != null && infoRoomOccupations.size() > 0) {
if (user.equals("sop")) {
strBuffer
.append(getMessageResource(pageContext, "public.degree.information.label.rooms"));
strBuffer.append("<br/>");
} else if (user.equals("public")) {
strBuffer.append("<td class='" + rowClass + "'>");
}
for (int iterIRO = 0; iterIRO < infoRoomOccupations.size(); iterIRO++) {
InfoRoomOccupation infoRoomOccupation =
(InfoRoomOccupation) infoRoomOccupations.get(iterIRO);
strBuffer.append(infoRoomOccupation.getInfoRoom().getNome() + "; ");
}
} else {
if (user.equals("sop")) {
strBuffer.append("-");
} else if (user.equals("public")) {
strBuffer.append("<td class='" + rowClass + "'>");
strBuffer.append("<i>");
strBuffer.append(getMessageResource(pageContext,
"public.degree.information.label.noRoomsAttributed"));
strBuffer.append("</i>");
}
}
if (user.equals("sop")) {
strBuffer.append("</td>");
strBuffer.append("<td>");
strBuffer
.append("<a href='" + addPublicPrefix("showExamsManagement.do")
+ "?method=delete&" + PresentationConstants.EXECUTION_COURSE_OID + "="
+ infoExecutionCourse.getExternalId() + "&"
+ PresentationConstants.EXECUTION_PERIOD_OID + "="
+ infoExecutionCourse.getInfoExecutionPeriod().getExternalId() + "&"
+ PresentationConstants.EXECUTION_DEGREE_OID + "="
+ examsMap.getInfoExecutionDegree().getExternalId() + "&"
+ PresentationConstants.CURRICULAR_YEAR_OID + "=" + curricularYear.toString()
+ "&" + PresentationConstants.EXAM_OID + "="
+ season1Exam.getExternalId() + "'>");
strBuffer.append(getMessageResource(pageContext, "public.degree.information.label.delete"));
strBuffer.append("</a>");
strBuffer.append("</td>");
}
}
if (season2Exam != null) {
if (user.equals("sop")) {
strBuffer.append("<tr>");
strBuffer.append("<td>");
strBuffer
.append("<a href='" + addPublicPrefix("showExamsManagement.do") + "?method=edit&"
+ PresentationConstants.EXECUTION_COURSE_OID + "="
+ infoExecutionCourse.getExternalId() + "&"
+ PresentationConstants.EXECUTION_PERIOD_OID + "="
+ infoExecutionCourse.getInfoExecutionPeriod().getExternalId() + "&"
+ PresentationConstants.EXECUTION_DEGREE_OID + "="
+ examsMap.getInfoExecutionDegree().getExternalId() + "&"
+ PresentationConstants.CURRICULAR_YEAR_OID + "=" + curricularYear.toString()
+ "&" + PresentationConstants.EXAM_OID + "="
+ season2Exam.getExternalId() + "'>");
}
if (user.equals("sop")) {
strBuffer.append("2ª ");
strBuffer.append(getMessageResource(pageContext, "public.degree.information.label.times"));
strBuffer.append("</a>");
strBuffer.append("</td>");
strBuffer.append("<td>");
strBuffer.append(season2Exam.getDate());
strBuffer.append("<br/>");
strBuffer.append(season2Exam.getBeginningHour());
strBuffer.append("-");
strBuffer.append(season2Exam.getEndHour());
} else if (user.equals("public")) {
strBuffer.append("<td class='" + rowClass + "'>");
strBuffer.append(season2Exam.getDate());
strBuffer.append("</td>");
strBuffer.append("<td class='" + rowClass + "'>");
strBuffer.append(season2Exam.getBeginningHour());
strBuffer.append("</td>");
// strBuffer.append("-");
// strBuffer.append(season2Exam.getEndHour())
// ;
}
if (user.equals("sop")) {
strBuffer.append("</td>");
strBuffer.append("<td>");
// Integer numAlunos =
// infoExecutionCourse.
// getNumberOfAttendingStudents();
Integer numAlunos = season2Exam.getEnrolledStudents();
strBuffer.append(numAlunos);
strBuffer.append(getMessageResource(pageContext,
"public.degree.information.label.enrolledPupils"));
strBuffer.append("</td>");
strBuffer.append("<td>");
strBuffer.append(getMessageResource(pageContext, "public.degree.information.label.lack"));
// Obter o num de lugares de exame das salas
List roomOccupation = season2Exam.getWrittenEvaluationSpaceOccupations();
int numLugaresSalas = 0;
for (int iterRO = 0; iterRO < roomOccupation.size(); iterRO++) {
InfoRoomOccupation infoRO = (InfoRoomOccupation) roomOccupation.get(iterRO);
numLugaresSalas += infoRO.getInfoRoom().getCapacidadeExame().intValue();
}
int numLugaresAPreencher = numAlunos.intValue() - numLugaresSalas;
// if (numLugaresAPreencher < 0)
// numLugaresAPreencher = 0;
strBuffer.append(numLugaresAPreencher);
strBuffer.append(getMessageResource(pageContext, "public.degree.information.label.places"));
strBuffer.append("</td>");
strBuffer.append("<td>");
}
List infoRoomOccupations = season2Exam.getWrittenEvaluationSpaceOccupations();
if (infoRoomOccupations != null && infoRoomOccupations.size() > 0) {
if (user.equals("sop")) {
strBuffer.append(getMessageResource(pageContext, "public.degree.information.label.rooms")
+ ":");
strBuffer.append("<br/>");
} else if (user.equals("public")) {
strBuffer.append("<td class='" + rowClass + "'>");
}
for (int iterIRO = 0; iterIRO < infoRoomOccupations.size(); iterIRO++) {
InfoRoomOccupation infoRoomOccupation =
(InfoRoomOccupation) infoRoomOccupations.get(iterIRO);
strBuffer.append(infoRoomOccupation.getInfoRoom().getNome() + "; ");
}
if (user.equals("public")) {
strBuffer.append("</td>");
}
} else {
if (user.equals("sop")) {
strBuffer.append("-");
} else if (user.equals("public")) {
strBuffer.append("<td class='" + rowClass + "'>");
strBuffer.append("<i>");
strBuffer.append(getMessageResource(pageContext,
"public.degree.information.label.noRoomsAttributed"));
strBuffer.append("</i>");
strBuffer.append("</td>");
}
}
if (user.equals("sop")) {
strBuffer.append("</td>");
strBuffer.append("<td>");
strBuffer
.append("<a href='" + addPublicPrefix("showExamsManagement.do")
+ "?method=delete&" + PresentationConstants.EXECUTION_COURSE_OID + "="
+ infoExecutionCourse.getExternalId() + "&"
+ PresentationConstants.EXECUTION_PERIOD_OID + "="
+ infoExecutionCourse.getInfoExecutionPeriod().getExternalId() + "&"
+ PresentationConstants.EXECUTION_DEGREE_OID + "="
+ examsMap.getInfoExecutionDegree().getExternalId() + "&"
+ PresentationConstants.CURRICULAR_YEAR_OID + "=" + curricularYear.toString()
+ "&" + PresentationConstants.EXAM_OID + "="
+ season2Exam.getExternalId() + "'>");