Added sorting by name in overview pages

This commit is contained in:
Ziver Koc 2018-12-04 18:33:53 +01:00
parent 6a15640aea
commit 2f3dbf462e
3 changed files with 37 additions and 2 deletions

View file

@ -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;
}
}

View file

@ -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;
}
}

View file

@ -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<AbstractDevice> {
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;
}
}