Index: lams_build/lib/lams/lams.jar =================================================================== diff -u -r6950295e2d5e90ffae268faeae946718654ddc7b -r943d43d5e2afea12f2fdcb9e6ef24bc1a524b4a9 Binary files differ Index: lams_central/src/java/org/lamsfoundation/lams/web/LessonConditionsAction.java =================================================================== diff -u -r0b94418e93d5b28f72e19c82bede38921db9612a -r943d43d5e2afea12f2fdcb9e6ef24bc1a524b4a9 --- lams_central/src/java/org/lamsfoundation/lams/web/LessonConditionsAction.java (.../LessonConditionsAction.java) (revision 0b94418e93d5b28f72e19c82bede38921db9612a) +++ lams_central/src/java/org/lamsfoundation/lams/web/LessonConditionsAction.java (.../LessonConditionsAction.java) (revision 943d43d5e2afea12f2fdcb9e6ef24bc1a524b4a9) @@ -29,6 +29,7 @@ import java.util.Iterator; import java.util.List; import java.util.Set; +import java.util.TreeSet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -51,6 +52,7 @@ import org.lamsfoundation.lams.lesson.LearnerProgress; import org.lamsfoundation.lams.lesson.Lesson; import org.lamsfoundation.lams.lesson.service.ILessonService; +import org.lamsfoundation.lams.lesson.util.LessonComparator; import org.lamsfoundation.lams.monitoring.service.IMonitoringService; import org.lamsfoundation.lams.tool.exception.DataMissingException; import org.lamsfoundation.lams.usermanagement.User; @@ -111,7 +113,8 @@ request.setAttribute(CentralConstants.PARAM_TITLE, lesson.getLessonName()); request.setAttribute(LessonConditionsAction.PARAM_PRECEDING_LESSONS, precedingLessons); - Set organisationLessons = lesson.getOrganisation().getLessons(); + Set organisationLessons = new TreeSet(new LessonComparator()); + organisationLessons.addAll(lesson.getOrganisation().getLessons()); List availableLessons = new ArrayList(organisationLessons.size()); for (Lesson organisationLesson : organisationLessons) { if (!lessonId.equals(organisationLesson.getLessonId()) Index: lams_common/src/java/org/lamsfoundation/lams/lesson/util/LessonComparator.java =================================================================== diff -u --- lams_common/src/java/org/lamsfoundation/lams/lesson/util/LessonComparator.java (revision 0) +++ lams_common/src/java/org/lamsfoundation/lams/lesson/util/LessonComparator.java (revision 943d43d5e2afea12f2fdcb9e6ef24bc1a524b4a9) @@ -0,0 +1,50 @@ +/**************************************************************** + * Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org) + * ============================================================= + * License Information: http://lamsfoundation.org/licensing/lams/2.0/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2.0 + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ + +/* $Id$ */ +package org.lamsfoundation.lams.lesson.util; + +import java.util.Comparator; + +import org.lamsfoundation.lams.lesson.Lesson; + +/** + * The lesson comparator used for any ordered collection. Order is done on the lessonid order which means pretty much + * reverse time order (chronological). + */ +public class LessonComparator implements Comparator { + + /** + * Compare the lesson ids + * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object) + */ + public int compare(Lesson o1, Lesson o2) { + if (o1 != null && o2 != null) { + return (int) (o1.getLessonId() - o2.getLessonId()); + } else if (o1 != null) { + return 1; + } else { + return -1; + } + } + +} Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/MonitoringAction.java =================================================================== diff -u -re06bcbbc04edaf18a4d603bdc90f85260894dcc3 -r943d43d5e2afea12f2fdcb9e6ef24bc1a524b4a9 --- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/MonitoringAction.java (.../MonitoringAction.java) (revision e06bcbbc04edaf18a4d603bdc90f85260894dcc3) +++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/MonitoringAction.java (.../MonitoringAction.java) (revision 943d43d5e2afea12f2fdcb9e6ef24bc1a524b4a9) @@ -29,6 +29,7 @@ import java.util.ArrayList; import java.util.Date; import java.util.Set; +import java.util.TreeSet; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; @@ -39,6 +40,7 @@ import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import org.lamsfoundation.lams.lesson.Lesson; +import org.lamsfoundation.lams.lesson.util.LessonComparator; import org.lamsfoundation.lams.monitoring.MonitoringConstants; import org.lamsfoundation.lams.monitoring.service.IMonitoringService; import org.lamsfoundation.lams.monitoring.service.MonitoringServiceProxy; @@ -774,7 +776,9 @@ Organisation organisation = monitoringService.getOrganisation(orgId); int count = 0; - for (Lesson lesson : (Set) organisation.getLessons()) { + Set organisationLessons = new TreeSet(new LessonComparator()); + organisationLessons.addAll(organisation.getLessons()); + for (Lesson lesson : organisationLessons) { if (!Lesson.REMOVED_STATE.equals(lesson.getLessonStateId()) && !Lesson.FINISHED_STATE.equals(lesson.getLessonStateId())) { languageOutput += "" +