123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- 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);
- }
- }
- }
|