< 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:21
Uncovered lines:2
Coverable lines:23
Total lines:67
Line coverage:91.3% (21 of 23)
Covered branches:0
Total branches:0
Covered methods:5
Total methods:5
Method coverage:100% (5 of 5)

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
UIElementHandlerBase(...)0%110100%
AddElementToRoot(...)0%3.043083.33%
AddComponentToEntity(...)0%220100%
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
 1717        protected UIElementHandlerBase(
 18            IInternalECSComponent<InternalUiContainer> internalUiContainer, int componentId)
 19        {
 1720            this.internalUiContainer = internalUiContainer;
 1721            this.componentId = componentId;
 1722        }
 23
 24        protected internal InternalUiContainer AddElementToRoot(IParcelScene scene, IDCLEntity entity, VisualElement uiE
 25        {
 1526            var internalContainer = AddComponentToEntity(scene, entity);
 27
 1528            uiElement.pickingMode = PickingMode.Ignore;
 1529            if (internalContainer.rootElement.style.width.keyword == StyleKeyword.Auto
 30                || internalContainer.rootElement.style.height.keyword == StyleKeyword.Auto)
 31            {
 032                uiElement.style.position = new StyleEnum<Position>(Position.Relative);
 33            }
 34
 1535            internalContainer.rootElement.Add(uiElement);
 1536            return internalContainer;
 37        }
 38
 39        protected internal InternalUiContainer AddComponentToEntity(IParcelScene scene, IDCLEntity entity)
 40        {
 1641            var containerModel = internalUiContainer.GetFor(scene, entity)?.model ?? new InternalUiContainer(entity.enti
 1642            containerModel.components.Add(componentId);
 43
 1644            internalUiContainer.PutFor(scene, entity, containerModel);
 1645            return containerModel;
 46        }
 47
 48        protected internal void RemoveElementFromRoot(IParcelScene scene, IDCLEntity entity, VisualElement uiElement)
 49        {
 750            RemoveComponentFromEntity(scene, entity)?.rootElement?.Remove(uiElement);
 751        }
 52
 53        protected internal InternalUiContainer? RemoveComponentFromEntity(IParcelScene scene, IDCLEntity entity)
 54        {
 855            var containerData = internalUiContainer.GetFor(scene, entity);
 856            if (containerData != null)
 57            {
 858                var containerModel = containerData.Value.model;
 859                containerModel.components.Remove(componentId);
 860                internalUiContainer.PutFor(scene, entity, containerModel);
 861                return containerModel;
 62            }
 63
 064            return null;
 65        }
 66    }
 67}