This repository has been archived on 2023-11-18. You can view files and clone it, but cannot push or open issues or pull requests.
ha_client/lib/ui_builder_class.dart

49 lines
1.3 KiB
Dart
Raw Normal View History

part of 'main.dart';
class UIBuilder {
EntityCollection _entities;
Map<String, View> _views;
2018-09-28 11:18:37 +03:00
static List badgeDomains = ["alarm_control_panel", "binary_sensor", "device_tracker", "updater", "sun", "timer", "sensor"];
bool get isEmpty => _views.length == 0;
Map<String, View> get views => _views ?? {};
UIBuilder() {
_views = {};
}
2018-09-28 11:18:37 +03:00
static bool isBadge(String domain) {
return badgeDomains.contains(domain);
}
void build(EntityCollection entitiesCollection) {
_entities = entitiesCollection;
_views.clear();
2018-09-28 11:23:48 +03:00
_createViews(entitiesCollection.viewList);
}
2018-09-28 11:23:48 +03:00
void _createViews(List<String> viewsList) {
int counter = 0;
viewsList.forEach((viewId) {
counter += 1;
2018-09-28 11:23:48 +03:00
View view = View(viewId, counter);
try {
Entity viewGroupEntity = _entities.get(viewId);
viewGroupEntity.childEntities.forEach((
2018-09-28 11:23:48 +03:00
entityId) { //Each entity or group in view
if (_entities.isExist(entityId)) {
2018-09-28 11:18:37 +03:00
view.add(_entities.get(entityId));
} else {
TheLogger.log("Warning", "Unknown entity inside view: $entityId");
}
});
} catch (error) {
TheLogger.log("Error","Error parsing view: $viewId");
}
2018-09-28 11:23:48 +03:00
_views[viewId] = view;
});
}
}