Added more DemoData + Clean up
This commit is contained in:
parent
3a5cfad535
commit
5a74795569
@ -36,7 +36,11 @@ export abstract class Device {
|
||||
return item.title;
|
||||
}
|
||||
|
||||
public static compareTitle(a: Device, b: Device): number {
|
||||
public static compareTypeThenTitle(a: Device, b: Device): number {
|
||||
const type: number = -a.type.localeCompare(b.type);
|
||||
if (type !== 0) {
|
||||
return type;
|
||||
}
|
||||
return a.title.localeCompare(b.title);
|
||||
}
|
||||
|
||||
|
||||
@ -35,8 +35,12 @@ export class Property {
|
||||
return item.name;
|
||||
}
|
||||
|
||||
public static compareName(a: Property, b: Property): number {
|
||||
return a.name.localeCompare(b.name);
|
||||
public static compareTypeThenTitle(a: Property, b: Property): number {
|
||||
const type: number = -a.type.localeCompare(b.type);
|
||||
if (type !== 0) {
|
||||
return type;
|
||||
}
|
||||
return a.title.localeCompare(b.title);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
<ng-container *ngFor="let device of devices.sort(Device.compareTitle); trackBy: Device.trackBy">
|
||||
<ng-container *ngFor="let device of devices.sort(Device.compareTypeThenTitle); trackBy: Device.trackBy">
|
||||
<ng-container [ngSwitch]="device.type">
|
||||
<div class="device" *ngSwitchCase="'DeviceSwitch'" [ngClass]="getSwitchClassList(device)">
|
||||
<div class="title">
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
<th>Wert</th>
|
||||
<th>Zeitstempel</th>
|
||||
</tr>
|
||||
<tr *ngFor="let property of properties">
|
||||
<tr *ngFor="let property of properties.sort(Property.compareTypeThenTitle)">
|
||||
<td>
|
||||
<app-edit-field [initial]="property.title" (valueChange)="setProperty(property, 'title', $event)"></app-edit-field>
|
||||
</td>
|
||||
|
||||
@ -11,6 +11,8 @@ import {SceneService} from "../../api/scene/scene.service";
|
||||
})
|
||||
export class PropertyListComponent implements OnInit {
|
||||
|
||||
Property = Property;
|
||||
|
||||
properties: Property[] = [];
|
||||
|
||||
scenes: Scene[] = [];
|
||||
@ -23,7 +25,7 @@ export class PropertyListComponent implements OnInit {
|
||||
}
|
||||
|
||||
ngOnInit(): void {
|
||||
this.propertyService.findAll(properties => this.properties = properties, Property.compareName);
|
||||
this.propertyService.findAll(properties => this.properties = properties, Property.compareTypeThenTitle);
|
||||
this.propertyService.subscribe(update => this.updateProperty(update.payload, update.existing));
|
||||
|
||||
this.sceneService.findAll(scenes => this.scenes = scenes, Scene.compareNumber);
|
||||
|
||||
@ -48,24 +48,39 @@ public class DemoDataService {
|
||||
private final SceneWriteService sceneWriteService;
|
||||
|
||||
public void insertDemoData() {
|
||||
final Property fernseher = createProperty("fernseher.eg", PropertyType.SWITCH, "Fernseher", knx(0, 0, 20), knx(0, 0, 4));
|
||||
final Property verstaerker = createProperty("verstaerker", PropertyType.SWITCH, "Verstärker", knx(0, 3, 57), knx(0, 3, 56));
|
||||
final Property garten_steckdosen = createProperty("garten.steckdosen", PropertyType.SWITCH, "Garten Steckdosen", knx(0, 4, 12), knx(0, 4, 11));
|
||||
final Property terrasse = createProperty("terrasse", PropertyType.SWITCH, "Terrasse Licht", knx(0, 4, 1), knx(0, 4, 0));
|
||||
|
||||
final Property ambiente_eg = createProperty("ambiente.eg", PropertyType.SWITCH, "Ambiente EG", knx(0, 3, 81), knx(0, 3, 80));
|
||||
final Property ambiente_og = createProperty("ambiente.og", PropertyType.SWITCH, "Ambiente OG", knx(0, 6, 2), knx(0, 6, 3));
|
||||
|
||||
final Property bad_licht = createProperty("bad.licht", PropertyType.SWITCH, "Bad Licht", knx(0, 5, 19), knx(0, 3, 73));
|
||||
final Property bad_licht_mitte = createProperty("bad.licht.mitte", PropertyType.SWITCH, "Bad Licht Mitte", knx(0, 3, 30), knx(0, 3, 29));
|
||||
final Property flur_eg_licht = createProperty("flur.eg.licht", PropertyType.SWITCH, "Flur EG Licht", knx(0, 4, 8), knx(0, 5, 14));
|
||||
|
||||
final Property wohnzimmer_rollladen = createProperty("wohnzimmer.rollladen", PropertyType.SHUTTER, "Wohnzimmer Rollladen", null, knx(0, 4, 24));
|
||||
final Property schlafzimmer_rollladen = createProperty("schlafzimmer_rollladen", PropertyType.SHUTTER, "Schlafzimmer Rollladen", null, knx(0, 3, 3));
|
||||
final Property flur_og_rollladen = createProperty("flur_og_rollladen", PropertyType.SHUTTER, "Flur OG Rollladen", null, knx(0, 5, 13));
|
||||
|
||||
final Property helligkeit = createProperty("helligkeit", PropertyType.LUX, "Helligkeit", knx(0, 5, 6), null);
|
||||
final Property szene_haus = createProperty("szene_haus", PropertyType.SCENE, "Szene Haus ", null, knx(0, 0, 21));
|
||||
|
||||
if (deviceRepository.count() == 0) {
|
||||
deviceWriteService.createDeviceSwitch("Ambiente EG", ambiente_eg);
|
||||
deviceWriteService.createDeviceSwitch("Ambiente OG", ambiente_og);
|
||||
deviceWriteService.createDeviceSwitch("Bad Licht", bad_licht);
|
||||
deviceWriteService.createDeviceShutter("Wohnzimmer Rollladen", wohnzimmer_rollladen);
|
||||
deviceWriteService.createDeviceShutter("Schlafzimmer Rollladen", schlafzimmer_rollladen);
|
||||
deviceWriteService.createDeviceShutter("Flur Rollladen", flur_og_rollladen);
|
||||
deviceWriteService.createDeviceSwitch(fernseher);
|
||||
deviceWriteService.createDeviceSwitch(verstaerker);
|
||||
deviceWriteService.createDeviceSwitch(garten_steckdosen);
|
||||
deviceWriteService.createDeviceSwitch(terrasse);
|
||||
|
||||
deviceWriteService.createDeviceSwitch(ambiente_eg);
|
||||
deviceWriteService.createDeviceSwitch(ambiente_og);
|
||||
|
||||
deviceWriteService.createDeviceSwitch(bad_licht);
|
||||
deviceWriteService.createDeviceSwitch(flur_eg_licht);
|
||||
|
||||
deviceWriteService.createDeviceShutter(wohnzimmer_rollladen);
|
||||
deviceWriteService.createDeviceShutter(schlafzimmer_rollladen);
|
||||
deviceWriteService.createDeviceShutter(flur_og_rollladen);
|
||||
}
|
||||
|
||||
if (sceneRepository.count() == 0) {
|
||||
@ -116,17 +131,6 @@ public class DemoDataService {
|
||||
createSunset(scheduleFlurRollladen, true, BETWEEN_OFFICIAL_AND_CIVIL, 0, 100);
|
||||
scheduleRepository.save(scheduleFlurRollladen);
|
||||
|
||||
final Schedule scheduleBadLichtMitte = createSchedule(false, "Bad Licht Mitte", bad_licht_mitte);
|
||||
createTime(scheduleBadLichtMitte, true, 10, 30, 0, MIN30, true);
|
||||
createTime(scheduleBadLichtMitte, true, 11, 30, 0, MIN30, false);
|
||||
createTime(scheduleBadLichtMitte, true, 15, 30, 0, MIN30, true);
|
||||
createTime(scheduleBadLichtMitte, true, 16, 30, 0, MIN30, false);
|
||||
createTime(scheduleBadLichtMitte, true, 21, 0, 0, MIN30, true);
|
||||
createTime(scheduleBadLichtMitte, true, 22, 0, 0, MIN30, false);
|
||||
createTime(scheduleBadLichtMitte, true, 0, 0, 0, MIN30, true);
|
||||
createTime(scheduleBadLichtMitte, true, 1, 0, 0, MIN30, false);
|
||||
scheduleRepository.save(scheduleBadLichtMitte);
|
||||
|
||||
final Schedule scheduleSzeneHaus = createSchedule(true, "Dekoration", szene_haus);
|
||||
createTime(scheduleSzeneHaus, true, 6, 0, 0, 0, 31);
|
||||
createTime(scheduleSzeneHaus, true, 8, 30, 0, 0, 30);
|
||||
|
||||
@ -24,17 +24,25 @@ public class DeviceWriteService {
|
||||
|
||||
private final DeviceReadService deviceReadService;
|
||||
|
||||
public DeviceDto createDeviceSwitch(final Property stateProperty) {
|
||||
return createDeviceSwitch(null, stateProperty);
|
||||
}
|
||||
|
||||
public DeviceDto createDeviceSwitch(final String title, final Property stateProperty) {
|
||||
final DeviceSwitch deviceSwitch = new DeviceSwitch();
|
||||
deviceSwitch.setTitle(title);
|
||||
deviceSwitch.setTitle(getTitle(title, stateProperty));
|
||||
deviceSwitch.setStateProperty(stateProperty);
|
||||
deviceRepository.save(deviceSwitch);
|
||||
return deviceReadService.toDto(deviceSwitch);
|
||||
}
|
||||
|
||||
public DeviceDto createDeviceShutter(final Property positionProperty) {
|
||||
return createDeviceShutter(null, positionProperty);
|
||||
}
|
||||
|
||||
public DeviceDto createDeviceShutter(final String title, final Property positionProperty) {
|
||||
final DeviceShutter deviceShutter = new DeviceShutter();
|
||||
deviceShutter.setTitle(title);
|
||||
deviceShutter.setTitle(getTitle(title, positionProperty));
|
||||
deviceShutter.setPositionProperty(positionProperty);
|
||||
deviceRepository.save(deviceShutter);
|
||||
return deviceReadService.toDto(deviceShutter);
|
||||
@ -71,13 +79,23 @@ public class DeviceWriteService {
|
||||
public DeviceDto create(final String type) {
|
||||
switch (type) {
|
||||
case "DeviceSwitch":
|
||||
return createDeviceSwitch(generateUnusedTitle(), null);
|
||||
return createDeviceSwitch(null, null);
|
||||
case "DeviceShutter":
|
||||
return createDeviceShutter(generateUnusedTitle(), null);
|
||||
return createDeviceShutter(null, null);
|
||||
}
|
||||
throw new RuntimeException("Not implemented type: " + type);
|
||||
}
|
||||
|
||||
private String getTitle(final String title, final Property property) {
|
||||
if (title != null) {
|
||||
return title;
|
||||
} else if (property != null) {
|
||||
return property.getTitle();
|
||||
} else {
|
||||
return generateUnusedTitle();
|
||||
}
|
||||
}
|
||||
|
||||
private String generateUnusedTitle() {
|
||||
int index = 0;
|
||||
String title = null;
|
||||
|
||||
@ -7,6 +7,13 @@ import java.util.function.Supplier;
|
||||
|
||||
public class Helpers {
|
||||
|
||||
public static <T> T orElseGet(final T value, final T orElse) {
|
||||
if (value == null) {
|
||||
return orElse;
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
public static <T> T orElseGet(final T value, final Supplier<T> orElseGet) {
|
||||
if (value == null) {
|
||||
return orElseGet.get();
|
||||
|
||||
Loading…
Reference in New Issue
Block a user