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