< Summary

Class:InspectorController
Assembly:BuildModeHUD
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/DCLPlugins/BuilderInWorld/HUD/BuildModeHUD/Scripts/GodMode/Inspector/InspectorController.cs
Covered lines:33
Uncovered lines:7
Coverable lines:40
Total lines:132
Line coverage:82.5% (33 of 40)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
Initialize(...)0%110100%
Dispose()0%220100%
OpenEntityList()0%4.123050%
SetEntityList(...)0%4.254075%
ClearList()0%2.062075%
CloseList()0%2.062075%
EntityActionInvoked(...)0%990100%
EntityRename(...)0%220100%
SetCloseButtonsAction(...)0%110100%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/DCLPlugins/BuilderInWorld/HUD/BuildModeHUD/Scripts/GodMode/Inspector/InspectorController.cs

#LineLine coverage
 1using System;
 2using System.Collections.Generic;
 3using UnityEngine.Events;
 4
 5public enum EntityAction
 6{
 7    SELECT = 0,
 8    LOCK = 1,
 9    DELETE = 2,
 10    SHOW = 3
 11}
 12
 13public interface IInspectorController
 14{
 15    event Action<BIWEntity> OnEntityClick;
 16    event Action<BIWEntity> OnEntityDelete;
 17    event Action<BIWEntity> OnEntityLock;
 18    event Action<BIWEntity> OnEntityChangeVisibility;
 19    event Action<BIWEntity, string> OnEntityRename;
 20
 21    ISceneLimitsController sceneLimitsController { get; }
 22
 23    void Initialize(IInspectorView inspectorView);
 24    void Dispose();
 25    void OpenEntityList();
 26    void SetEntityList(List<BIWEntity> sceneEntities);
 27    void ClearList();
 28    void CloseList();
 29    void EntityActionInvoked(EntityAction action, BIWEntity entityToApply, EntityListAdapter adapter);
 30    void EntityRename(BIWEntity entity, string newName);
 31    void SetCloseButtonsAction(UnityAction call);
 32}
 33
 34public class InspectorController : IInspectorController
 35{
 36    public event Action<BIWEntity> OnEntityClick;
 37    public event Action<BIWEntity> OnEntityDelete;
 38    public event Action<BIWEntity> OnEntityLock;
 39    public event Action<BIWEntity> OnEntityChangeVisibility;
 40    public event Action<BIWEntity, string> OnEntityRename;
 41
 042    public ISceneLimitsController sceneLimitsController => inspectorView.sceneLimitsController;
 43
 44    internal IInspectorView inspectorView;
 45
 46    public void Initialize(IInspectorView inspectorView)
 47    {
 1048        this.inspectorView = inspectorView;
 49
 1050        inspectorView.OnEntityActionInvoked += EntityActionInvoked;
 1051        inspectorView.OnEntityRename += EntityRename;
 52
 1053        inspectorView.ConfigureSceneLimits(new SceneLimitsController());
 1054        CloseList();
 1055    }
 56
 57    public void Dispose()
 58    {
 1159        if (inspectorView == null)
 160            return;
 61
 1062        inspectorView.OnEntityActionInvoked -= EntityActionInvoked;
 1063        inspectorView.OnEntityRename -= EntityRename;
 1064    }
 65
 66    public void OpenEntityList()
 67    {
 168        if (inspectorView.entityList != null)
 69        {
 070            if (inspectorView.entities != null)
 071                inspectorView.entityList.SetContent(inspectorView.entities);
 72
 073            inspectorView.entityList.SetActive(true);
 74        }
 75
 176        inspectorView.SetActive(true);
 177    }
 78
 79    public void SetEntityList(List<BIWEntity> sceneEntities)
 80    {
 181        inspectorView.SetEntitiesList(sceneEntities);
 82
 183        if (inspectorView.entityList != null &&
 84            inspectorView.entityList.isActive &&
 85            inspectorView.entities != null)
 86        {
 087            inspectorView.entityList.SetContent(inspectorView.entities);
 88        }
 189    }
 90
 91    public void ClearList()
 92    {
 193        inspectorView.ClearEntitiesList();
 94
 195        if (inspectorView.entityList != null)
 096            inspectorView.entityList.RemoveAdapters();
 197    }
 98
 99    public void CloseList()
 100    {
 11101        inspectorView.SetActive(false);
 102
 11103        if (inspectorView.entityList != null)
 0104            inspectorView.entityList.SetActive(false);
 11105    }
 106
 107    public void EntityActionInvoked(EntityAction action, BIWEntity entityToApply, EntityListAdapter adapter)
 108    {
 109        switch (action)
 110        {
 111            case EntityAction.SELECT:
 112
 1113                OnEntityClick?.Invoke(entityToApply);
 1114                break;
 115            case EntityAction.LOCK:
 116
 1117                OnEntityLock?.Invoke(entityToApply);
 1118                break;
 119            case EntityAction.DELETE:
 120
 1121                OnEntityDelete?.Invoke(entityToApply);
 1122                break;
 123            case EntityAction.SHOW:
 1124                OnEntityChangeVisibility?.Invoke(entityToApply);
 125                break;
 126        }
 1127    }
 128
 2129    public void EntityRename(BIWEntity entity, string newName) { OnEntityRename?.Invoke(entity, newName); }
 130
 2131    public void SetCloseButtonsAction(UnityAction call) { inspectorView.SetCloseButtonsAction(call); }
 132}