diff --git a/src/se/hal/page/EventOverviewHttpPage.java b/src/se/hal/page/EventOverviewHttpPage.java index 58bb96a9..53c6a6dd 100755 --- a/src/se/hal/page/EventOverviewHttpPage.java +++ b/src/se/hal/page/EventOverviewHttpPage.java @@ -5,8 +5,10 @@ import se.hal.HalContext; import se.hal.intf.HalEventConfig; import se.hal.intf.HalEventData; import se.hal.intf.HalHttpPage; +import se.hal.struct.AbstractDevice; import se.hal.struct.Event; import se.hal.struct.devicedata.SwitchEventData; +import se.hal.util.DeviceNameComparator; import se.hal.util.HistoryDataListSqlResult; import se.hal.util.HistoryDataListSqlResult.HistoryData; import zutil.db.DBConnection; @@ -14,6 +16,7 @@ import zutil.io.file.FileUtil; import zutil.parser.Templator; import java.sql.PreparedStatement; +import java.util.Arrays; import java.util.List; import java.util.Map; @@ -67,8 +70,11 @@ public class EventOverviewHttpPage extends HalHttpPage { return tmpl; } else { + Event[] events = Event.getLocalEvents(db).toArray(new Event[0]); + Arrays.sort(events, DeviceNameComparator.getInstance()); + Templator tmpl = new Templator(FileUtil.find(OVERVIEW_TEMPLATE)); - tmpl.set("events", Event.getLocalEvents(db)); + tmpl.set("events", events); return tmpl; } } diff --git a/src/se/hal/page/SensorOverviewHttpPage.java b/src/se/hal/page/SensorOverviewHttpPage.java index 82e76431..acc2606a 100755 --- a/src/se/hal/page/SensorOverviewHttpPage.java +++ b/src/se/hal/page/SensorOverviewHttpPage.java @@ -2,7 +2,9 @@ package se.hal.page; import se.hal.HalContext; import se.hal.intf.HalHttpPage; +import se.hal.struct.Event; import se.hal.struct.Sensor; +import se.hal.util.DeviceNameComparator; import se.hal.util.HistoryDataListSqlResult; import se.hal.util.HistoryDataListSqlResult.HistoryData; import zutil.db.DBConnection; @@ -10,6 +12,7 @@ import zutil.io.file.FileUtil; import zutil.parser.Templator; import java.sql.PreparedStatement; +import java.util.Arrays; import java.util.List; import java.util.Map; @@ -51,8 +54,11 @@ public class SensorOverviewHttpPage extends HalHttpPage { return tmpl; } else { + Sensor[] sensors = Sensor.getLocalSensors(db).toArray(new Sensor[0]); + Arrays.sort(sensors, DeviceNameComparator.getInstance()); + Templator tmpl = new Templator(FileUtil.find(OVERVIEW_TEMPLATE)); - tmpl.set("sensors", Sensor.getLocalSensors(db)); + tmpl.set("sensors", sensors); return tmpl; } } diff --git a/src/se/hal/util/DeviceNameComparator.java b/src/se/hal/util/DeviceNameComparator.java new file mode 100644 index 00000000..ed5eec21 --- /dev/null +++ b/src/se/hal/util/DeviceNameComparator.java @@ -0,0 +1,23 @@ +package se.hal.util; + +import se.hal.struct.AbstractDevice; + +import java.util.Comparator; + +/** + * A comparator that compares on the device name. + */ +public class DeviceNameComparator implements Comparator { + private static DeviceNameComparator instance; + + @Override + public int compare(AbstractDevice device1, AbstractDevice device2) { + return device1.getName().compareTo(device2.getName()); + } + + public static DeviceNameComparator getInstance() { + if (instance == null) + instance = new DeviceNameComparator(); + return instance; + } +}