< Summary

Class:CatalogGroupListView
Assembly:BuilderInWorldCatalog
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/BuilderMode/Catalog/UI/CatalogGroupListView.cs
Covered lines:17
Uncovered lines:36
Coverable lines:53
Total lines:117
Line coverage:32% (17 of 53)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
AddAdapters()0%30500%
RemoveAdapters()0%42600%
SubscribeToEvents(...)0%110100%
UnsubscribeToEvents(...)0%2100%
OnDrag(...)0%2100%
AdapterStartDragging(...)0%330100%
OnEndDrag(...)0%6200%
GetLastCatalogItemDragged()0%2100%
CatalogItemSelected(...)0%6200%
CatalogItemFavorite(...)0%6200%
OnPointerEnter(...)0%6200%
OnPointerExit(...)0%6200%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/BuilderMode/Catalog/UI/CatalogGroupListView.cs

#LineLine coverage
 1using System.Collections.Generic;
 2using UnityEngine;
 3using UnityEngine.EventSystems;
 4
 5public class CatalogGroupListView : ListView<Dictionary<string, List<CatalogItem>>>
 6{
 7    public Canvas generalCanvas;
 8    public CatalogAssetGroupAdapter categoryItemAdapterPrefab;
 9    public DynamicScrollSensitivity dynamicScrollSensitivity;
 10
 11    public System.Action<CatalogItem> OnCatalogItemClicked;
 12    public System.Action<CatalogItem, CatalogItemAdapter> OnCatalogItemFavorite;
 13    public System.Action<PointerEventData, CatalogItemAdapter> OnPointerEnterInAdapter;
 14    public System.Action<PointerEventData, CatalogItemAdapter> OnPointerExitInAdapter;
 15
 16    public event System.Action OnResumeInput;
 17    public event System.Action OnStopInput;
 18
 19    private GameObject draggedObject;
 20    private CatalogItemAdapter catalogItemAdapterDragged;
 21
 22    public override void AddAdapters()
 23    {
 024        base.AddAdapters();
 25
 026        if (contentList == null)
 027            return;
 28
 029        foreach (Dictionary<string, List<CatalogItem>> assetPackGroups in contentList)
 30        {
 031            foreach (KeyValuePair<string, List<CatalogItem>> assetPackGroup in assetPackGroups)
 32            {
 033                CatalogAssetGroupAdapter adapter = Instantiate(categoryItemAdapterPrefab, contentPanelTransform).GetComp
 034                adapter.SetContent(assetPackGroup.Key, assetPackGroup.Value);
 035                SubscribeToEvents(adapter);
 36            }
 37        }
 38
 039        if (dynamicScrollSensitivity != null)
 040            dynamicScrollSensitivity.RecalculateSensitivity();
 041    }
 42
 43    public override void RemoveAdapters()
 44    {
 045        if (contentPanelTransform == null ||
 46            contentPanelTransform.transform == null ||
 47            contentPanelTransform.transform.childCount == 0)
 048            return;
 49
 050        for (int i = 0; i < contentPanelTransform.transform.childCount; i++)
 51        {
 052            CatalogAssetGroupAdapter toRemove = contentPanelTransform.transform.GetChild(i).GetComponent<CatalogAssetGro
 053            if (toRemove != null)
 54            {
 055                UnsubscribeToEvents(toRemove);
 056                Destroy(toRemove.gameObject);
 57            }
 58        }
 059    }
 60
 61    public void SubscribeToEvents(CatalogAssetGroupAdapter adapter)
 62    {
 163        adapter.OnCatalogItemClicked += CatalogItemSelected;
 164        adapter.OnCatalogItemFavorite += CatalogItemFavorite;
 165        adapter.OnAdapterStartDragging += AdapterStartDragging;
 166        adapter.OnAdapterDrag += OnDrag;
 167        adapter.OnAdapterEndDrag += OnEndDrag;
 168        adapter.OnPointerEnterInAdapter += OnPointerEnter;
 169        adapter.OnPointerExitInAdapter += OnPointerExit;
 170    }
 71
 72    public void UnsubscribeToEvents(CatalogAssetGroupAdapter adapter)
 73    {
 074        adapter.OnCatalogItemClicked -= CatalogItemSelected;
 075        adapter.OnCatalogItemFavorite -= CatalogItemFavorite;
 076        adapter.OnAdapterStartDragging -= AdapterStartDragging;
 077        adapter.OnAdapterDrag -= OnDrag;
 078        adapter.OnAdapterEndDrag -= OnEndDrag;
 079        adapter.OnPointerEnterInAdapter -= OnPointerEnter;
 080        adapter.OnPointerExitInAdapter -= OnPointerExit;
 081    }
 82
 083    private void OnDrag(PointerEventData data) { draggedObject.transform.position = data.position; }
 84
 85    private void AdapterStartDragging(CatalogItem catalogItemClicked, CatalogItemAdapter adapter, BaseEventData data)
 86    {
 87        PointerEventData eventData = data as PointerEventData;
 88
 989        if (draggedObject == null)
 190            draggedObject = Instantiate(adapter.gameObject, generalCanvas.transform);
 91
 992        CatalogItemAdapter newAdapter = draggedObject.GetComponent<CatalogItemAdapter>();
 93
 994        RectTransform adapterRT = adapter.GetComponent<RectTransform>();
 995        newAdapter.SetContent(adapter.GetContent());
 996        newAdapter.EnableDragMode(adapterRT.sizeDelta);
 997        catalogItemAdapterDragged = newAdapter;
 98
 999        OnStopInput?.Invoke();
 9100    }
 101
 102    private void OnEndDrag(PointerEventData data)
 103    {
 0104        OnResumeInput?.Invoke();
 0105        Destroy(draggedObject);
 0106    }
 107
 0108    public CatalogItemAdapter GetLastCatalogItemDragged() { return catalogItemAdapterDragged; }
 109
 0110    private void CatalogItemSelected(CatalogItem sceneObject) { OnCatalogItemClicked?.Invoke(sceneObject); }
 111
 0112    private void CatalogItemFavorite(CatalogItem sceneObject, CatalogItemAdapter adapter) { OnCatalogItemFavorite?.Invok
 113
 0114    private void OnPointerEnter(PointerEventData eventData, CatalogItemAdapter adapter) { OnPointerEnterInAdapter?.Invok
 115
 0116    private void OnPointerExit(PointerEventData eventData, CatalogItemAdapter adapter) { OnPointerExitInAdapter?.Invoke(
 117}