Exemple #1
0
        public void SetPackages(PackageFilter filter, IEnumerable <Package> packages)
        {
            if (filter == PackageFilter.Modules)
            {
                packages = packages.Where(pkg => pkg.IsBuiltIn);
            }
            else if (filter == PackageFilter.All)
            {
                packages = packages.Where(pkg => !pkg.IsBuiltIn && pkg.IsDiscoverable);
            }
            else
            {
                packages = packages.Where(pkg => !pkg.IsBuiltIn);
                packages = packages.Where(pkg => pkg.Current != null && pkg.Current.IsDirectDependency);
            }

            OnLoaded();
            ClearAll();

            var packagesGroup = new PackageGroup(PackageGroupOrigins.Packages.ToString(), Selection);

            Groups.Add(packagesGroup);
            List.Add(packagesGroup);
            packagesGroup.previousGroup = null;

            var builtInGroup = new PackageGroup(PackageGroupOrigins.BuiltInPackages.ToString(), Selection);

            Groups.Add(builtInGroup);
            List.Add(builtInGroup);

            if (filter == PackageFilter.Modules)
            {
                packagesGroup.nextGroup    = builtInGroup;
                builtInGroup.previousGroup = packagesGroup;
                builtInGroup.nextGroup     = null;
            }
            else
            {
                packagesGroup.nextGroup = null;
                UIUtils.SetElementDisplay(builtInGroup, false);
            }

            var items = packages.OrderBy(pkg => pkg.VersionToDisplay == null ? pkg.Name : pkg.VersionToDisplay.DisplayName).ToList();

            foreach (var package in items)
            {
                AddPackage(package);
            }

            if (!Selection.Selected.Any() && items.Any())
            {
                Selection.SetSelection(items.First());
            }

            PackageFiltering.FilterPackageList(this);
        }
        private void SetPackages(IEnumerable <Package> packages)
        {
            if (PackageCollection.Instance.Filter == PackageFilter.Local)
            {
                packages = packages.Where(pkg => pkg.Current != null);
            }

            var previousSelection = selectedItem != null ? selectedItem.package : null;

            OnLoaded();
            ClearAll();

            var packagesGroup = new PackageGroup(PackageGroupOrigins.Packages.ToString());

            Groups.Add(packagesGroup);
            List.Add(packagesGroup);

            var builtInGroup = new PackageGroup(PackageGroupOrigins.BuiltInPackages.ToString());

            Groups.Add(builtInGroup);
            List.Add(builtInGroup);

            packagesGroup.previousGroup = null;
#if UNITY_2018_2_OR_NEWER
            packagesGroup.nextGroup    = builtInGroup;
            builtInGroup.previousGroup = packagesGroup;
            builtInGroup.nextGroup     = null;
#else
            packagesGroup.nextGroup = null;
            UIUtils.SetElementDisplay(builtInGroup, false);
#endif

            root.Q <VisualElement>(loadingId).visible = false;
            LoadingSpinner.Stop();

            foreach (var package in packages.OrderBy(pkg => pkg.Versions.FirstOrDefault() == null ? pkg.Name : pkg.Versions.FirstOrDefault().DisplayName))
            {
                var item = AddPackage(package);

                if (previousSelection != null && package.Name == previousSelection.Name)
                {
                    Select(item);
                }
            }

            root.Q <VisualElement>(emptyId).visible = !packages.Any();
        }
Exemple #3
0
        private PackageGroup GetOrCreateGroup(string groupName, bool hidden)
        {
            foreach (var g in Groups)
            {
                if (g.name == groupName)
                {
                    return(g);
                }
            }

            var group = new PackageGroup(groupName, hidden);

            if (!hidden)
            {
                group.OnGroupToggle += value =>
                {
                    if (value)
                    {
                        PackageCollection.Instance.CollapsedGroups.Remove(group.name);

                        if (group.Contains(selectedItem))
                        {
                            EditorApplication.delayCall += ScrollIfNeeded;
                        }
                    }
                    else
                    {
                        if (!PackageCollection.Instance.CollapsedGroups.Contains(group.name))
                        {
                            PackageCollection.Instance.CollapsedGroups.Add(group.name);
                        }
                    }
                };
            }

            group.SetExpanded(!PackageCollection.Instance.CollapsedGroups.Contains(groupName));

            Groups.Add(group);
            List.Add(group);
            return(group);
        }
        private void SetPackages(IEnumerable <Package> packages)
        {
            if (PackageCollection.Instance.Filter == PackageFilter.Modules)
            {
                packages = packages.Where(pkg => pkg.IsBuiltIn);
            }
            else if (PackageCollection.Instance.Filter == PackageFilter.All)
            {
                packages = packages.Where(pkg => !pkg.IsBuiltIn);
            }
            else
            {
                packages = packages.Where(pkg => !pkg.IsBuiltIn);
                packages = packages.Where(pkg => pkg.Current != null);
            }

            OnLoaded();
            ClearAll();

            var packagesGroup = new PackageGroup(PackageGroupOrigins.Packages.ToString());

            Groups.Add(packagesGroup);
            List.Add(packagesGroup);
            packagesGroup.previousGroup = null;

            var builtInGroup = new PackageGroup(PackageGroupOrigins.BuiltInPackages.ToString());

            Groups.Add(builtInGroup);
            List.Add(builtInGroup);

            if ((PackageCollection.Instance.Filter & PackageFilter.Modules) == PackageFilter.Modules)
            {
                packagesGroup.nextGroup    = builtInGroup;
                builtInGroup.previousGroup = packagesGroup;
                builtInGroup.nextGroup     = null;
            }
            else
            {
                packagesGroup.nextGroup = null;
                UIUtils.SetElementDisplay(builtInGroup, false);
            }

            var lastSelection = PackageCollection.Instance.SelectedPackage;

            Select(null);

            PackageItem defaultSelection = null;

            foreach (var package in packages.OrderBy(pkg => pkg.Versions.FirstOrDefault() == null ? pkg.Name : pkg.Versions.FirstOrDefault().DisplayName))
            {
                var item = AddPackage(package);

                if (null == selectedItem && defaultSelection == null)
                {
                    defaultSelection = item;
                }

                if (null == selectedItem && !string.IsNullOrEmpty(lastSelection) && package.Name.Equals(lastSelection))
                {
                    Select(item);
                }
            }

            if (selectedItem == null)
            {
                Select(defaultSelection);
            }

            PackageFiltering.FilterPackageList(this);
        }