< Summary

Class:BuilderProjectsPanelView
Assembly:BuilderProjectsPanel
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/BuilderProjectsPanel/Scripts/Views/BuilderProjectsPanelView.cs
Covered lines:47
Uncovered lines:13
Coverable lines:60
Total lines:183
Line coverage:78.3% (47 of 60)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
SetVisible(...)0%330100%
SetTogglOnWithoutNotify(...)0%220100%
SetMainLeftPanel()0%110100%
SetProjectSettingsLeftPanel()0%110100%
GetCardViewPrefab()0%110100%
GetSectionContainer()0%110100%
GetTransform()0%110100%
GetSearchBar()0%110100%
GetSettingsViewReferences()0%110100%
GetSceneCardViewContextMenu()0%110100%
GetUnpublishPopup()0%110100%
Dispose()0%220100%
Awake()0%220100%
OnDestroy()0%110100%
CloseTriggerOnOnTriggered(...)0%6200%
SubmenuScenesDirty()0%110100%
OnSetScenes(...)0%110100%
OnSetScenes(...)0%110100%
OnSceneAdded(...)0%2100%
OnSceneAdded(...)0%2100%
OnSceneRemoved(...)0%2100%
OnSceneRemoved(...)0%2100%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/BuilderProjectsPanel/Scripts/Views/BuilderProjectsPanelView.cs

#LineLine coverage
 1using System;
 2using System.Collections.Generic;
 3using UnityEngine;
 4using UnityEngine.UI;
 5
 6internal interface IBuilderProjectsPanelView : IDisposable
 7{
 8    event Action OnBackToMainMenuPressed;
 9    event Action OnClosePressed;
 10    void SetVisible(bool visible);
 11    void SetTogglOnWithoutNotify(SectionId sectionId);
 12    void SetMainLeftPanel();
 13    void SetProjectSettingsLeftPanel();
 14    SceneCardView GetCardViewPrefab();
 15    Transform GetSectionContainer();
 16    Transform GetTransform();
 17    SearchBarView GetSearchBar();
 18    LeftMenuSettingsViewReferences GetSettingsViewReferences();
 19    SceneCardViewContextMenu GetSceneCardViewContextMenu();
 20    IUnpublishPopupView GetUnpublishPopup();
 21}
 22
 23internal class BuilderProjectsPanelView : MonoBehaviour, IBuilderProjectsPanelView, IDeployedSceneListener, IProjectScen
 24{
 25    [Header("General")]
 26    [SerializeField] internal Button closeButton;
 27    [SerializeField] internal Transform sectionsContainer;
 28    [SerializeField] internal SceneCardViewContextMenu contextMenu;
 29    [SerializeField] internal SearchBarView searchBarView;
 30    [SerializeField] internal ShowHideAnimator showHideAnimator;
 31    [SerializeField] internal InputAction_Trigger closeTrigger;
 32
 33    [Header("Left-Panel Section Buttons")]
 34    [SerializeField] internal LeftMenuButtonToggleView[] sectionToggles;
 35    [SerializeField] internal LeftMenuButtonToggleView inWorldScenesToggle;
 36    [SerializeField] internal LeftMenuButtonToggleView projectsToggle;
 37
 38    [Header("Left-Panel")]
 39    [SerializeField] internal GameObject leftPanelMain;
 40    [SerializeField] internal GameObject leftPanelProjectSettings;
 41    [SerializeField] internal Button createSceneButton;
 42    [SerializeField] internal Button importSceneButton;
 43    [SerializeField] internal Button backToMainPanelButton;
 44    [SerializeField] internal LeftMenuSettingsViewReferences settingsViewReferences;
 45
 46    [Header("Assets")]
 47    [SerializeField] internal SceneCardView sceneCardViewPrefab;
 48
 49    [Header("Popups")]
 50    [SerializeField] internal UnpublishPopupView unpublishPopupView;
 51
 52    public event Action OnClosePressed;
 53    public event Action OnCreateScenePressed;
 54    public event Action OnImportScenePressed;
 55    public event Action OnBackToMainMenuPressed;
 56
 57    private int deployedScenesCount = 0;
 58    private int projectScenesCount = 0;
 59    private bool isDestroyed = false;
 60
 61    void IBuilderProjectsPanelView.SetVisible(bool visible)
 62    {
 863        if (visible)
 64        {
 565            if (!gameObject.activeSelf)
 66            {
 567                gameObject.SetActive(true);
 68            }
 569            showHideAnimator.Show();
 570        }
 71        else
 72        {
 373            showHideAnimator.Hide();
 74        }
 375    }
 76
 77    void IBuilderProjectsPanelView.SetTogglOnWithoutNotify(SectionId sectionId)
 78    {
 6079        for (int i = 0; i < sectionToggles.Length; i++)
 80        {
 2781            sectionToggles[i].SetIsOnWithoutNotify(sectionId == sectionToggles[i].openSection);
 82        }
 383    }
 84
 85    void IBuilderProjectsPanelView.SetMainLeftPanel()
 86    {
 287        leftPanelMain.SetActive(true);
 288        leftPanelProjectSettings.SetActive(false);
 289    }
 90
 91    void IBuilderProjectsPanelView.SetProjectSettingsLeftPanel()
 92    {
 193        leftPanelMain.SetActive(false);
 194        leftPanelProjectSettings.SetActive(true);
 195    }
 96
 397    SceneCardView IBuilderProjectsPanelView.GetCardViewPrefab() { return sceneCardViewPrefab; }
 98
 199    Transform IBuilderProjectsPanelView.GetSectionContainer() { return sectionsContainer; }
 100
 1101    Transform IBuilderProjectsPanelView.GetTransform() { return transform; }
 102
 16103    SearchBarView IBuilderProjectsPanelView.GetSearchBar() { return  searchBarView; }
 104
 17105    LeftMenuSettingsViewReferences IBuilderProjectsPanelView.GetSettingsViewReferences() { return settingsViewReferences
 106
 17107    SceneCardViewContextMenu IBuilderProjectsPanelView.GetSceneCardViewContextMenu() { return contextMenu; }
 108
 16109    IUnpublishPopupView IBuilderProjectsPanelView.GetUnpublishPopup() { return unpublishPopupView; }
 110
 111    public void Dispose()
 112    {
 16113        if (!isDestroyed)
 114        {
 16115            Destroy(gameObject);
 116        }
 16117    }
 118
 119    private void Awake()
 120    {
 16121        name = "_BuilderProjectsPanel";
 122
 17123        closeButton.onClick.AddListener(() => OnClosePressed?.Invoke());
 16124        createSceneButton.onClick.AddListener(() => OnCreateScenePressed?.Invoke());
 16125        importSceneButton.onClick.AddListener(() => OnImportScenePressed?.Invoke());
 17126        backToMainPanelButton.onClick.AddListener(() => OnBackToMainMenuPressed?.Invoke());
 16127        closeTrigger.OnTriggered += CloseTriggerOnOnTriggered;
 128
 16129        contextMenu.Hide();
 16130        gameObject.SetActive(false);
 131
 320132        for (int i = 0; i < sectionToggles.Length; i++)
 133        {
 144134            sectionToggles[i].Setup();
 135        }
 16136    }
 137
 32138    private void OnDestroy() { isDestroyed = true; }
 139
 0140    private void CloseTriggerOnOnTriggered(DCLAction_Trigger action) { OnClosePressed?.Invoke(); }
 141
 142    private void SubmenuScenesDirty()
 143    {
 2144        inWorldScenesToggle.gameObject.SetActive(deployedScenesCount > 0);
 2145        projectsToggle.gameObject.SetActive(projectScenesCount > 0);
 2146    }
 147
 148    void IDeployedSceneListener.OnSetScenes(Dictionary<string, ISceneCardView> scenes)
 149    {
 1150        deployedScenesCount = scenes.Count;
 1151        SubmenuScenesDirty();
 1152    }
 153
 154    void IProjectSceneListener.OnSetScenes(Dictionary<string, ISceneCardView> scenes)
 155    {
 1156        projectScenesCount = scenes.Count;
 1157        SubmenuScenesDirty();
 1158    }
 159
 160    void IDeployedSceneListener.OnSceneAdded(ISceneCardView scene)
 161    {
 0162        deployedScenesCount++;
 0163        SubmenuScenesDirty();
 0164    }
 165
 166    void IProjectSceneListener.OnSceneAdded(ISceneCardView scene)
 167    {
 0168        projectScenesCount++;
 0169        SubmenuScenesDirty();
 0170    }
 171
 172    void IDeployedSceneListener.OnSceneRemoved(ISceneCardView scene)
 173    {
 0174        deployedScenesCount--;
 0175        SubmenuScenesDirty();
 0176    }
 177
 178    void IProjectSceneListener.OnSceneRemoved(ISceneCardView scene)
 179    {
 0180        projectScenesCount--;
 0181        SubmenuScenesDirty();
 0182    }
 183}