< Summary

Class:DCL.Builder.BuilderMainPanelView
Assembly:BuilderProjectsPanel
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/DCLPlugins/BuilderInWorld/HUD/ProjectsPanelHUD/Scripts/Views/BuilderMainPanelView.cs
Covered lines:39
Uncovered lines:9
Coverable lines:48
Total lines:166
Line coverage:81.2% (39 of 48)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
IsVisible()0%110100%
SetVisible(...)0%330100%
SetTogglOnWithoutNotify(...)0%220100%
SetMainLeftPanel()0%110100%
SetProjectSettingsLeftPanel()0%110100%
GetProjectCardView()0%2100%
GetSceneCardViewPrefab()0%110100%
GetSectionContainer()0%2100%
GetTransform()0%2100%
GetSearchBar()0%110100%
GetSettingsViewReferences()0%110100%
GetSceneCardViewContextMenu()0%110100%
GetUnpublishPopup()0%110100%
Dispose()0%220100%
Awake()0%330100%
OnDestroy()0%110100%
CloseTriggerOnOnTriggered(...)0%2.52050%
SetScenes(...)0%2100%
SceneAdded(...)0%2100%
SceneRemoved(...)0%2100%
OnSetProjects(...)0%2100%
OnProjectAdded(...)0%2100%
OnProjectRemoved(...)0%2100%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/DCLPlugins/BuilderInWorld/HUD/ProjectsPanelHUD/Scripts/Views/BuilderMainPanelView.cs

#LineLine coverage
 1using System;
 2using System.Collections.Generic;
 3using UnityEngine;
 4using UnityEngine.UI;
 5
 6namespace DCL.Builder
 7{
 8    internal interface IBuilderMainPanelView : IDisposable
 9    {
 10        event Action OnBackToMainMenuPressed;
 11        event Action OnClosePressed;
 12        event Action OnBackPressed;
 13        event Action OnCreateProjectPressed;
 14        void SetVisible(bool visible);
 15        bool IsVisible();
 16        void SetTogglOnWithoutNotify(SectionId sectionId);
 17        void SetMainLeftPanel();
 18        void SetProjectSettingsLeftPanel();
 19        SceneCardView GetSceneCardViewPrefab();
 20        ProjectCardView GetProjectCardView();
 21        Transform GetSectionContainer();
 22        Transform GetTransform();
 23        SearchBarView GetSearchBar();
 24        LeftMenuSettingsViewReferences GetSettingsViewReferences();
 25        SceneCardViewContextMenu GetSceneCardViewContextMenu();
 26        IUnpublishPopupView GetUnpublishPopup();
 27    }
 28
 29    internal class BuilderMainPanelView : MonoBehaviour, IBuilderMainPanelView, ISceneListener, IProjectsListener
 30    {
 31        [Header("General")]
 32        [SerializeField] internal Button closeButton;
 33        [SerializeField] internal Button backgroundButton;
 34        [SerializeField] internal Transform sectionsContainer;
 35        [SerializeField] internal SceneCardViewContextMenu contextMenu;
 36        [SerializeField] internal SearchBarView searchBarView;
 37        [SerializeField] internal ShowHideAnimator showHideAnimator;
 38        [SerializeField] internal InputAction_Trigger closeTrigger;
 39
 40        [Header("Left-Panel Section Buttons")]
 41        [SerializeField] internal LeftMenuButtonToggleView[] sectionToggles;
 42
 43        [Header("Left-Panel")]
 44        [SerializeField] internal GameObject leftPanelMain;
 45        [SerializeField] internal GameObject leftPanelProjectSettings;
 46        [SerializeField] internal Button createSceneButton;
 47        [SerializeField] internal Button importSceneButton;
 48        [SerializeField] internal Button backToMainPanelButton;
 49        [SerializeField] internal LeftMenuSettingsViewReferences settingsViewReferences;
 50
 51        [Header("Assets")]
 52        [SerializeField] internal SceneCardView sceneCardViewPrefab;
 53        [SerializeField] internal ProjectCardView projectCardView;
 54
 55        [Header("Popups")]
 56        [SerializeField] internal UnpublishPopupView unpublishPopupView;
 57
 58        public event Action OnClosePressed;
 59        public event Action OnBackPressed;
 60        public event Action OnCreateProjectPressed;
 61        public event Action OnImportScenePressed;
 62        public event Action OnBackToMainMenuPressed;
 63
 64        private int scenesCount = 0;
 65        private int projectScenesCount = 0;
 66        private bool isDestroyed = false;
 67
 168        public bool IsVisible() { return gameObject.activeSelf; }
 69
 70        void IBuilderMainPanelView.SetVisible(bool visible)
 71        {
 772            if (visible)
 73            {
 474                if (!gameObject.activeSelf)
 75                {
 476                    gameObject.SetActive(true);
 77                }
 478                showHideAnimator.Show();
 479            }
 80            else
 81            {
 382                showHideAnimator.Hide();
 83            }
 384        }
 85
 86        void IBuilderMainPanelView.SetTogglOnWithoutNotify(SectionId sectionId)
 87        {
 4088            for (int i = 0; i < sectionToggles.Length; i++)
 89            {
 1890                sectionToggles[i].SetIsOnWithoutNotify(sectionId == sectionToggles[i].openSection);
 91            }
 292        }
 93
 94        void IBuilderMainPanelView.SetMainLeftPanel()
 95        {
 196            leftPanelMain.SetActive(true);
 197            leftPanelProjectSettings.SetActive(false);
 198        }
 99
 100        void IBuilderMainPanelView.SetProjectSettingsLeftPanel()
 101        {
 1102            leftPanelMain.SetActive(false);
 1103            leftPanelProjectSettings.SetActive(true);
 1104        }
 105
 0106        ProjectCardView IBuilderMainPanelView.GetProjectCardView() { return projectCardView; }
 107
 2108        SceneCardView IBuilderMainPanelView.GetSceneCardViewPrefab() { return sceneCardViewPrefab; }
 109
 0110        Transform IBuilderMainPanelView.GetSectionContainer() { return sectionsContainer; }
 111
 0112        Transform IBuilderMainPanelView.GetTransform() { return transform; }
 113
 17114        SearchBarView IBuilderMainPanelView.GetSearchBar() { return  searchBarView; }
 115
 18116        LeftMenuSettingsViewReferences IBuilderMainPanelView.GetSettingsViewReferences() { return settingsViewReferences
 117
 18118        SceneCardViewContextMenu IBuilderMainPanelView.GetSceneCardViewContextMenu() { return contextMenu; }
 119
 17120        IUnpublishPopupView IBuilderMainPanelView.GetUnpublishPopup() { return unpublishPopupView; }
 121
 122        public void Dispose()
 123        {
 17124            if (!isDestroyed)
 125            {
 17126                Destroy(gameObject);
 127            }
 17128        }
 129
 130        private void Awake()
 131        {
 17132            name = "_BuilderProjectsPanel";
 133
 18134            closeButton.onClick.AddListener(() => OnClosePressed?.Invoke());
 17135            backgroundButton?.onClick.AddListener(() => OnClosePressed?.Invoke());
 17136            createSceneButton.onClick.AddListener(() => OnCreateProjectPressed?.Invoke());
 17137            importSceneButton.onClick.AddListener(() => OnImportScenePressed?.Invoke());
 18138            backToMainPanelButton.onClick.AddListener(() => OnBackToMainMenuPressed?.Invoke());
 17139            closeTrigger.OnTriggered += CloseTriggerOnOnTriggered;
 140
 17141            contextMenu.Hide();
 17142            gameObject.SetActive(false);
 143
 340144            for (int i = 0; i < sectionToggles.Length; i++)
 145            {
 153146                sectionToggles[i].Setup();
 147            }
 17148        }
 149
 34150        private void OnDestroy() { isDestroyed = true; }
 151
 17152        private void CloseTriggerOnOnTriggered(DCLAction_Trigger action) { OnBackPressed?.Invoke(); }
 153
 0154        void ISceneListener.SetScenes(Dictionary<string, ISceneCardView> scenes) { scenesCount = scenes.Count; }
 155
 0156        void ISceneListener.SceneAdded(ISceneCardView scene) { scenesCount++; }
 157
 0158        void ISceneListener.SceneRemoved(ISceneCardView scene) { scenesCount--; }
 159
 0160        public void OnSetProjects(Dictionary<string, IProjectCardView> projects) { projectScenesCount = projects.Count; 
 161
 0162        public void OnProjectAdded(IProjectCardView project) { projectScenesCount++; }
 163
 0164        public void OnProjectRemoved(IProjectCardView project) { projectScenesCount--; }
 165    }
 166}