ChangeEntryGroup.cs
2.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
using System;
using JetBrains.Annotations;
using Unity.Cloud.Collaborate.Assets;
using UnityEngine.UIElements;
namespace Unity.Cloud.Collaborate.Components
{
internal class ChangeEntryGroup : VisualElement
{
readonly AdapterListView m_ListView;
readonly ChangesGroupHeader m_GroupHeader;
readonly ListNotice m_ListNotice;
[NotNull]
string m_Title = string.Empty;
bool m_Searching;
int m_SelectedEntryCount;
int m_EntryCount;
public ChangeEntryGroup([NotNull] AdapterListView adapterListView)
{
m_ListView = adapterListView;
m_GroupHeader = new ChangesGroupHeader();
m_ListNotice = new ListNotice();
m_ListNotice.AddToClassList(UiConstants.ussHidden);
Add(m_GroupHeader);
Add(m_ListView);
Add(m_ListNotice);
}
[NotNull]
public string Title
{
set
{
m_Title = value;
UpdateTitle();
}
get => m_Title;
}
public bool Searching
{
set
{
m_Searching = value;
UpdateListNoticeText();
}
get => m_Searching;
}
public int NumberMenuItems
{
set => m_GroupHeader.SetEnableOverflowMenu(value != 0);
}
public int EntryCount
{
set
{
m_EntryCount = value;
UpdateListNotice();
}
get => m_EntryCount;
}
public int SelectedEntryCount
{
set
{
m_SelectedEntryCount = value;
UpdateTitle();
}
get => m_SelectedEntryCount;
}
void UpdateListNoticeText()
{
m_ListNotice.Text = Searching ? StringAssets.noticeNoResultsForQuery : StringAssets.noticeNoChangesToDisplay;
}
void UpdateTitle()
{
m_GroupHeader.UpdateGroupName(Searching
? StringAssets.searchResults
: string.Format(StringAssets.changeGroupHeaderFormat, Title, SelectedEntryCount));
}
void UpdateListNotice()
{
if (m_EntryCount != 0)
{
m_ListNotice.AddToClassList(UiConstants.ussHidden);
m_ListView.RemoveFromClassList(UiConstants.ussHidden);
}
else
{
m_ListNotice.RemoveFromClassList(UiConstants.ussHidden);
m_ListView.AddToClassList(UiConstants.ussHidden);
}
}
public void SetOverflowCallback(Action<float, float> callback)
{
m_GroupHeader.OnOverflowButtonClicked += callback;
}
public void ScrollTo(int idx)
{
m_ListView.ScrollToIndex(idx);
}
}
}