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