Exemple #1
0
        private void ShowPackages(bool updateScrollPosition)
        {
            UIUtils.SetElementDisplay(scrollView, true);
            UIUtils.SetElementDisplay(emptyArea, false);

            var page                = m_PageManager.GetCurrentPage();
            var selectedVersion     = page.GetSelectedVersion();
            var selectedVisualState = selectedVersion != null?page.GetVisualState(selectedVersion.packageUniqueId) : null;

            if (selectedVisualState?.visible != true)
            {
                var firstVisible = page.visualStates.FirstOrDefault(v => v.visible);
                if (firstVisible != null)
                {
                    IPackage        package;
                    IPackageVersion version;
                    m_PackageDatabase.GetPackageAndVersion(firstVisible.packageUniqueId, firstVisible.selectedVersionId, out package, out version);
                    m_PageManager.SetSelected(package, version);
                }
                else
                {
                    m_PageManager.ClearSelection();
                }
            }

            if (updateScrollPosition)
            {
                ScrollIfNeeded();
            }
        }
Exemple #2
0
        internal void SetPackage(IPackage package)
        {
            var displayVersion = package?.versions.primary;

            if (displayVersion == null)
            {
                return;
            }

            // changing the package assigned to an item is not supported
            if (this.package != null && this.package.uniqueId != package.uniqueId)
            {
                return;
            }

            var oldDisplayVersion = this.package?.versions.primary;

            this.package = package;

            // if the package gets updated while it's selected, we need to do some special handling
            if (!string.IsNullOrEmpty(visualState?.selectedVersionId))
            {
                // if the primary version was selected but there is a new primary version
                // select the new primary version to keep the main item selected
                if (visualState.selectedVersionId == oldDisplayVersion?.uniqueId && oldDisplayVersion?.uniqueId != displayVersion.uniqueId)
                {
                    m_PageManager.SetSelected(package, displayVersion);
                }
            }

            nameLabel.text = displayVersion.displayName;

            var expandable = !package.Is(PackageType.BuiltIn);

            UIUtils.SetElementDisplay(arrowExpander, expandable);
            UIUtils.SetElementDisplay(expanderHidden, !expandable);
            if (!expandable && UIUtils.IsElementVisible(versionsContainer))
            {
                UpdateExpanderUI(false);
            }

            var showVersionList = !displayVersion.HasTag(PackageTag.BuiltIn) && !string.IsNullOrEmpty(package.displayName);

            UIUtils.SetElementDisplay(versionList, showVersionList);

            tagContainer.Clear();
            var tagLabel = PackageTagLabel.CreateTagLabel(displayVersion);

            if (tagLabel != null)
            {
                tagContainer.Add(tagLabel);
            }

            RefreshState();
            RefreshVersions();
            RefreshSelection();
        }
Exemple #3
0
        public PackageVersionItem(IPackage package, IPackageVersion version)
        {
            ResolveDependencies();

            this.package = package;
            this.version = version;
            RefreshLabel();
            this.OnLeftClick(() => m_PageManager.SetSelected(package, version, true));
        }
        private void SelectPackageAndFilter()
        {
            IPackageVersion version = null;
            IPackage        package = null;

            if (!string.IsNullOrEmpty(m_PackageToSelectOnLoaded))
            {
                m_PackageDatabase.GetPackageAndVersionByIdOrName(m_PackageToSelectOnLoaded, out package, out version);
            }

            if (m_FilterToSelectAfterLoad == PackageFilterTab.AssetStore)
            {
                m_PackageFiltering.currentFilterTab = PackageFilterTab.AssetStore;

                if (!string.IsNullOrEmpty(m_PackageToSelectOnLoaded))
                {
                    if (package == null || package is PlaceholderPackage)
                    {
                        m_PageManager.Fetch(m_PackageToSelectOnLoaded);
                    }
                    else
                    {
                        m_PageManager.GetPage(PackageFilterTab.AssetStore).Load(package, version);
                    }
                }

                m_FilterToSelectAfterLoad = null;
                m_PackageToSelectOnLoaded = null;
                return;
            }

            if (package != null || m_FilterToSelectAfterLoad != null)
            {
                var tab = m_FilterToSelectAfterLoad ?? PackageFilterTab.All;
                if (version != null)
                {
                    if (!m_PackageManagerPrefs.showPreviewPackages && version.HasTag(PackageTag.Preview))
                    {
                        m_PackageManagerPrefs.showPreviewPackages = true;
                    }
                }

                m_PackageFiltering.currentFilterTab = tab;
                if (!string.IsNullOrEmpty(m_PackageToSelectOnLoaded))
                {
                    m_PageManager.SetSelected(package, version, true);
                    packageList.OnFocus();
                }

                m_FilterToSelectAfterLoad = null;
                m_PackageToSelectOnLoaded = null;
            }
        }
Exemple #5
0
        public PackageVersionItem(IPackage package, IPackageVersion version)
        {
            ResolveDependencies();

            var root = m_ResourceLoader.GetTemplate("PackageVersionItem.uxml");

            Add(root);
            cache = new VisualElementCache(root);

            this.package = package;
            this.version = version;
            RefreshLabel();
            this.OnLeftClick(() => m_PageManager.SetSelected(package, version, true));
        }