protected override bool TryCreateCollectionSource( IVsHierarchyItem hierarchyItem, string flagsString, string?target, IRelationProvider relationProvider, [NotNullWhen(returnValue: true)] out AggregateRelationCollectionSource?containsCollectionSource) { if (ErrorHandler.Succeeded(hierarchyItem.HierarchyIdentity.Hierarchy.GetProperty( hierarchyItem.HierarchyIdentity.ItemID, (int)__VSHPROPID.VSHPROPID_ExtObject, out object projectItemObject))) { var projectItem = projectItemObject as ProjectItem; EnvDTE.Properties?props = projectItem?.Properties; if (props?.Item("TargetingPackPath")?.Value is string path && props?.Item("OriginalItemSpec")?.Value is string name) { string?profile = props?.Item("Profile").Value as string; var framework = new FrameworkReferenceIdentity(path, profile, name); var item = new FrameworkReferenceItem(framework); if (AggregateContainsRelationCollection.TryCreate(item, _relationProvider, out AggregateContainsRelationCollection? collection)) { containsCollectionSource = new AggregateRelationCollectionSource(hierarchyItem, collection); return(true); } } } containsCollectionSource = null; return(false); }
bool IRelatableItem.TryGetOrCreateContainsCollection( IRelationProvider relationProvider, [NotNullWhen(returnValue: true)] out AggregateContainsRelationCollection?relationCollection) { if (_containsCollection == null && AggregateContainsRelationCollection.TryCreate(this, relationProvider, out AggregateContainsRelationCollection? collection)) { _containsCollection = collection; } relationCollection = _containsCollection; return(relationCollection != null); }
public DependenciesTreeSearchProvider( [ImportMany] IEnumerable <IDependenciesTreeSearchProvider> providers, JoinableTaskContext joinableTaskContext, IVsHierarchyItemManager hierarchyItemManager, IProjectServiceAccessor projectServiceAccessor, IRelationProvider relationProvider) { _providers = providers.ToImmutableArray(); _joinableTaskContext = joinableTaskContext; _hierarchyItemManager = hierarchyItemManager; _projectServiceAccessor = projectServiceAccessor; _relationProvider = relationProvider; }
public DependenciesTreeConfiguredProjectSearchContext( DependenciesTreeSearchContext inner, IProjectTree targetRootNode, IVsHierarchyItemManager hierarchyItemManager, IUnconfiguredProjectVsServices projectVsServices, IRelationProvider relationProvider) { _inner = inner; _hierarchyItemManager = hierarchyItemManager; _projectVsServices = projectVsServices; _relationProvider = relationProvider; _targetRootNode = targetRootNode; }
/// <summary> /// Attempts to create a collection for the children of <paramref name="parentItem"/>. /// Fails only when no relations exist to produce child items for the given item's type. /// </summary> public static bool TryCreate(IRelatableItem parentItem, IRelationProvider relationProvider, [NotNullWhen(returnValue: true)] out AggregateContainsRelationCollection?collection) { ImmutableArray <IRelation> containsRelations = relationProvider.GetContainsRelationsFor(parentItem.GetType()); if (containsRelations.IsEmpty) { collection = null; return(false); } collection = new AggregateContainsRelationCollection(parentItem, containsRelations); return(true); }
public DependenciesTreeProjectSearchContext( DependenciesTreeSearchContext outer, UnconfiguredProject unconfiguredProject, IProjectTree dependenciesNode, IVsHierarchyItemManager hierarchyItemManager, IUnconfiguredProjectVsServices projectVsServices, IRelationProvider relationProvider) { _inner = outer; UnconfiguredProject = unconfiguredProject; _dependenciesNode = dependenciesNode; _hierarchyItemManager = hierarchyItemManager; _projectVsServices = projectVsServices; _relationProvider = relationProvider; }
protected override bool TryCreateCollectionSource( IVsHierarchyItem hierarchyItem, string flagsString, string?target, IRelationProvider relationProvider, [NotNullWhen(returnValue: true)] out AggregateRelationCollectionSource?containsCollectionSource) { TIdentity identity; if (!ErrorHandler.Succeeded(hierarchyItem.HierarchyIdentity.Hierarchy.GetProperty( hierarchyItem.HierarchyIdentity.ItemID, (int)__VSHPROPID.VSHPROPID_ExtObject, out object projectItemObject))) { containsCollectionSource = null; return(false); }
public FrameworkReferenceAssemblyAttachedCollectionSourceProvider(IRelationProvider relationProvider) : base(DependencyTreeFlags.FrameworkDependency) { _relationProvider = relationProvider; }
/// <summary> /// Creates collection sources for selected hierarchy items, depending upon the implementation. /// </summary> /// <remarks> /// Only called for hierarchy items whose flags match those passed to the constructor. <paramref name="flagsString"/> is /// provided in case further information is needed. /// </remarks> protected abstract bool TryCreateCollectionSource( IVsHierarchyItem hierarchyItem, string flagsString, string?target, IRelationProvider relationProvider, [NotNullWhen(returnValue: true)] out AggregateRelationCollectionSource?containsCollectionSource);