コード例 #1
0
        private void AddOrUpdatePackageItem(VisualState state, IPackage package = null)
        {
            package ??= m_PackageDatabase.GetPackage(state?.packageUniqueId);
            if (package == null)
            {
                return;
            }

            var item = GetPackageItem(state.packageUniqueId);

            if (item != null)
            {
                item.SetPackage(package);

                // Check if group has changed
                var groupName = m_PageManager.GetCurrentPage().GetGroupName(package);
                if (item.packageGroup.name != groupName)
                {
                    var oldGroup = GetOrCreateGroup(item.packageGroup.name);
                    var newGroup = GetOrCreateGroup(groupName);
                    state.groupName = groupName;

                    // Replace PackageItem
                    m_PackageItemsLookup[package.uniqueId] = newGroup.AddPackageItem(package, state);
                    oldGroup.RemovePackageItem(item);
                    if (!oldGroup.packageItems.Any())
                    {
                        m_ItemsList.Remove(oldGroup);
                    }

                    ReorderGroups();
                }

                item.UpdateVisualState(state);
            }
            else
            {
                var group = GetOrCreateGroup(state.groupName);
                item = group.AddPackageItem(package, state);
                m_PackageItemsLookup[package.uniqueId] = item;
            }
        }
コード例 #2
0
        public void Refresh(VisualState newVisualState = null)
        {
            var previousVisualState = visualState?.Clone() ?? new VisualState(package?.uniqueId, string.Empty, false);

            visualState = newVisualState?.Clone() ?? visualState ?? new VisualState(package?.uniqueId, string.Empty, false);

            EnableInClassList("invisible", !visualState.visible);
            m_NameLabel.text    = targetVersion?.displayName ?? string.Empty;
            m_VersionLabel.text = targetVersion.versionString ?? string.Empty;

            if (m_NumPackagesInFeature != null)
            {
                m_NumPackagesInFeature.text = string.Format(L10n.Tr("{0} packages"), package.versions.primary?.dependencies?.Length ?? 0);
            }

            UIUtils.SetElementDisplay(m_ExpanderHidden, !visualState.isLocked);

            var showVersionLabel = !package.Is(PackageType.BuiltIn | PackageType.Feature);

            UIUtils.SetElementDisplay(m_VersionLabel, showVersionLabel);

            UIUtils.SetElementDisplay(m_LockedIcon, false);
            UIUtils.SetElementDisplay(m_DependencyIcon, false);

            UpdateLockedUI(visualState.isLocked);
            UpdateDependencyUI(visualState.isLocked);

            var version = selectedVersion;

            if (version != null && version != targetVersion)
            {
                visualState.seeAllVersions = visualState.seeAllVersions || !package.versions.key.Contains(version);
            }

            RefreshState();
            RefreshSelection();
            RefreshTags();
            RefreshEntitlement();
        }
コード例 #3
0
        private void RefreshLockIcons(IEnumerable <IPackageVersion> featureSets, VisualState visualState = null)
        {
            var showLockedIcon = featureSets?.Any() == true;

            if (showLockedIcon)
            {
                visualState = visualState ?? m_PageManager.GetVisualState(m_Package);
                if (visualState?.isLocked == true)
                {
                    lockedIcon.RemoveFromClassList("unlocked");
                    lockedIcon.AddToClassList("locked");
                    lockedIcon.tooltip = L10n.Tr("This package is locked because it's part of a feature set. Click unlock button to be able to make changes");
                }
                else
                {
                    lockedIcon.AddToClassList("unlocked");
                    lockedIcon.RemoveFromClassList("locked");
                    lockedIcon.tooltip = L10n.Tr("This package is unlocked. You can now change its version.");
                }
            }
            UIUtils.SetElementDisplay(lockedIcon, showLockedIcon);
        }