< Summary

Class:DCL.ECSComponents.UIAbstractElements.UIElementHandlerBase
Assembly:DCL.ECSComponents.AbstractElements
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/DCLPlugins/ECS7/ECSComponents/UIAbstractElements/UIElementHandlerBase.cs
Covered lines:19
Uncovered lines:1
Coverable lines:20
Total lines:59
Line coverage:95% (19 of 20)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
UIElementHandlerBase(...)0%110100%
AddElementToRoot(...)0%110100%
AddComponentToEntity(...)0%440100%
RemoveElementFromRoot(...)0%330100%
RemoveComponentFromEntity(...)0%2.012085.71%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/DCLPlugins/ECS7/ECSComponents/UIAbstractElements/UIElementHandlerBase.cs

#LineLine coverage
 1using DCL.Controllers;
 2using DCL.ECS7.InternalComponents;
 3using DCL.Models;
 4using UnityEngine.UIElements;
 5
 6namespace DCL.ECSComponents.UIAbstractElements
 7{
 8    /// <summary>
 9    /// Base class to handle common routines such as
 10    /// adding and removing UI Components and Visual Elements
 11    /// </summary>
 12    public abstract class UIElementHandlerBase
 13    {
 14        protected readonly IInternalECSComponent<InternalUiContainer> internalUiContainer;
 15        protected readonly int componentId;
 16
 1017        protected UIElementHandlerBase(
 18            IInternalECSComponent<InternalUiContainer> internalUiContainer, int componentId)
 19        {
 1020            this.internalUiContainer = internalUiContainer;
 1021            this.componentId = componentId;
 1022        }
 23
 24        protected internal InternalUiContainer AddElementToRoot(IParcelScene scene, IDCLEntity entity, VisualElement uiE
 25        {
 426            var internalContainer = AddComponentToEntity(scene, entity);
 427            internalContainer.rootElement.Add(uiElement);
 428            return internalContainer;
 29        }
 30
 31        protected internal InternalUiContainer AddComponentToEntity(IParcelScene scene, IDCLEntity entity)
 32        {
 433            var containerModel = internalUiContainer.GetFor(scene, entity)?.model ?? new InternalUiContainer(entity.enti
 434            containerModel.components.Add(componentId);
 35
 436            internalUiContainer.PutFor(scene, entity, containerModel);
 437            return containerModel;
 38        }
 39
 40        protected internal void RemoveElementFromRoot(IParcelScene scene, IDCLEntity entity, VisualElement uiElement)
 41        {
 242            RemoveComponentFromEntity(scene, entity)?.rootElement?.Remove(uiElement);
 243        }
 44
 45        protected internal InternalUiContainer RemoveComponentFromEntity(IParcelScene scene, IDCLEntity entity)
 46        {
 247            var containerData = internalUiContainer.GetFor(scene, entity);
 248            if (containerData != null)
 49            {
 250                var containerModel = containerData.model;
 251                containerModel.components.Remove(componentId);
 252                internalUiContainer.PutFor(scene, entity, containerModel);
 253                return containerModel;
 54            }
 55
 056            return null;
 57        }
 58    }
 59}