Resolves #151 Group visibility support

This commit is contained in:
Yegor Vialov
2018-10-21 16:11:47 +03:00
parent 6a43e04b31
commit 0f6babc243
3 changed files with 25 additions and 7 deletions

View File

@ -1,11 +1,11 @@
part of 'main.dart'; part of 'main.dart';
class HACard extends StatelessWidget { class CardWidget extends StatelessWidget {
final List<Entity> entities; final List<Entity> entities;
final String friendlyName; final String friendlyName;
const HACard({ const CardWidget({
Key key, Key key,
this.entities, this.entities,
this.friendlyName this.friendlyName
@ -13,6 +13,13 @@ class HACard extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
final entityModel = EntityModel.of(context);
if (entityModel != null) {
final groupEntity = entityModel.entity;
if (groupEntity.isHidden) {
return Container(width: 0.0, height: 0.0,);
}
}
List<Widget> body = []; List<Widget> body = [];
body.add(_buildCardHeader()); body.add(_buildCardHeader());
body.addAll(_buildCardBody(context)); body.addAll(_buildCardBody(context));

View File

@ -62,6 +62,7 @@ class Entity {
String get unitOfMeasurement => attributes["unit_of_measurement"] ?? ""; String get unitOfMeasurement => attributes["unit_of_measurement"] ?? "";
List get childEntityIds => attributes["entity_id"] ?? []; List get childEntityIds => attributes["entity_id"] ?? [];
String get lastUpdated => _getLastUpdatedFormatted(); String get lastUpdated => _getLastUpdatedFormatted();
bool get isHidden => attributes["hidden"] ?? false;
Entity(Map rawData) { Entity(Map rawData) {
update(rawData); update(rawData);

View File

@ -41,6 +41,7 @@ class View {
} else { } else {
childEntitiesAsCards[entity.entityId] = CardSkeleton( childEntitiesAsCards[entity.entityId] = CardSkeleton(
displayName: entity.displayName, displayName: entity.displayName,
groupEntity: entity
); );
childEntitiesAsCards[entity.entityId].childEntities = entity.childEntities; childEntitiesAsCards[entity.entityId].childEntities = entity.childEntities;
} }
@ -111,10 +112,14 @@ class ViewWidgetState extends State<ViewWidget> {
widget.cards.forEach((String id, CardSkeleton skeleton){ widget.cards.forEach((String id, CardSkeleton skeleton){
result.add( result.add(
HACard( EntityModel(
entity: skeleton.groupEntity,
handleTap: false,
child: CardWidget(
entities: skeleton.childEntities, entities: skeleton.childEntities,
friendlyName: skeleton.displayName, friendlyName: skeleton.displayName,
) )
)
); );
}); });
@ -151,8 +156,13 @@ class ViewWidgetState extends State<ViewWidget> {
class CardSkeleton { class CardSkeleton {
String displayName; String displayName;
List<Entity> childEntities; List<Entity> childEntities;
Entity groupEntity;
CardSkeleton({Key key, this.displayName, this.childEntities}) { CardSkeleton({
Key key,
this.displayName,
this.childEntities,
this.groupEntity}) {
childEntities = []; childEntities = [];
} }
} }