Esempio n. 1
0
        public static bool ShowAtPosition(Rect rect, PackageFilterTab tab, PageFilters filters)
        {
            if (s_Window != null)
            {
                return(false);
            }

            var nowMilliSeconds = DateTime.Now.Ticks / TimeSpan.TicksPerMillisecond;
            var justClosed      = nowMilliSeconds < s_LastClosedTime + 150;

            if (!justClosed)
            {
                Event.current?.Use();

                if (tab != PackageFilterTab.AssetStore)
                {
                    s_Window = CreateInstance <UpmFiltersWindow>();
                }
                else
                {
                    s_Window = CreateInstance <AssetStoreFiltersWindow>();
                }
                s_Window.Init(rect, filters);
            }

            return(!justClosed);
        }
Esempio n. 2
0
 protected virtual void Init(Rect rect, PageFilters filters)
 {
     m_Filters = filters?.Clone() ?? new PageFilters();
     m_Container.Clear();
     DoDisplay();
     ApplyFilters();
     ShowAsDropDown(rect, GetSize(), new[] { PopupLocation.Below });
 }
Esempio n. 3
0
        public virtual bool UpdateFilters(PageFilters filters)
        {
            if ((m_Filters == null && filters == null) || (m_Filters?.Equals(filters) ?? false))
            {
                return(false);
            }

            m_Filters = filters?.Clone();
            onFiltersChange?.Invoke(m_Filters);
            return(true);
        }
Esempio n. 4
0
        protected BasePage(PackageDatabase packageDatabase, PackageFilterTab tab, PageCapability capability)
        {
            ResolveDependencies(packageDatabase);

            m_Tab        = tab;
            m_Capability = capability;
            if (m_Filters == null)
            {
                var defaultOrdering = m_Capability?.orderingValues?.FirstOrDefault();
                m_Filters = new PageFilters
                {
                    orderBy        = defaultOrdering?.orderBy,
                    isReverseOrder = false
                };
            }
        }
Esempio n. 5
0
        private void UpdateFiltersMenuText(PageFilters filters)
        {
            var filtersSet = new List <string>();

            if (filters?.isFilterSet ?? false)
            {
                if (!string.IsNullOrEmpty(filters.status))
                {
                    filtersSet.Add(L10n.Tr("Status"));
                }
                if (filters.categories?.Any() ?? false)
                {
                    filtersSet.Add(L10n.Tr("Category"));
                }
                if (filters.labels?.Any() ?? false)
                {
                    filtersSet.Add(L10n.Tr("Label"));
                }
            }
            filtersMenu.text = filtersSet.Any() ? $"{L10n.Tr("Filters")} ({string.Join(",", filtersSet.ToArray())})" :  L10n.Tr("Filters");
        }
Esempio n. 6
0
        public static void SendEvent(PageFilters filters)
        {
            var servicesContainer    = ServicesContainer.instance;
            var editorAnalyticsProxy = servicesContainer.Resolve <EditorAnalyticsProxy>();

            if (!editorAnalyticsProxy.RegisterEvent(k_EventName))
            {
                return;
            }

            var filterTab  = PackageManagerWindowAnalytics.GetFilterNameWithSubPage(servicesContainer.Resolve <PackageFiltering>(), servicesContainer.Resolve <PageManager>());
            var orderBy    = filters.isReverseOrder ? $"{filters.orderBy} (reversed)" : filters.orderBy;
            var parameters = new PackageManagerFiltersAnalytics
            {
                filter_tab = filterTab,
                order_by   = orderBy,
                status     = filters.status,
                categories = filters.categories.ToArray(),
                labels     = filters.labels.ToArray()
            };

            editorAnalyticsProxy.SendEventWithLimit(k_EventName, parameters);
        }
        protected override void Init(Rect rect, PageFilters filters)
        {
            m_AssetStoreClient.ListCategories(categories =>
            {
                m_Categories = categories ?? new List <string>();
                base.Init(rect, filters);

                // Defer display of labels
                m_AssetStoreClient.ListLabels(labels =>
                {
                    // If window was closed during fetch of labels, ignore display
                    if (instance == null)
                    {
                        return;
                    }

                    m_Labels = labels ?? new List <string>();
                    if (m_Labels.Any())
                    {
                        DoLabelsDisplay();
                        ApplyFilters();

                        // Update window height if necessary
                        var labelsHeight = GetLabelsHeight();
                        var newHeight    = Math.Min(position.height + labelsHeight, k_MaxHeight);
                        if (newHeight != position.height)
                        {
                            position = new Rect(position)
                            {
                                height = newHeight
                            };
                            RepaintImmediately();
                        }
                    }
                });
            });
        }
Esempio n. 8
0
 private void TriggerOnFiltersChange(PageFilters filters)
 {
     onFiltersChange?.Invoke(filters);
 }