public DependencyModel(
            string providerType,
            string path,
            string originalItemSpec,
            ProjectTreeFlags flags,
            bool resolved,
            bool isImplicit,
            IImmutableDictionary <string, string> properties)
        {
            Requires.NotNullOrEmpty(providerType, nameof(providerType));
            Requires.NotNullOrEmpty(path, nameof(path));

            ProviderType     = providerType;
            Path             = path;
            Name             = Path;
            OriginalItemSpec = originalItemSpec ?? Path;
            Resolved         = resolved;
            Implicit         = isImplicit;
            Properties       = properties ?? ImmutableDictionary <string, string> .Empty;
            Caption          = Name;

            if (resolved)
            {
                Flags = flags.Union(DependencyTreeFlags.GenericResolvedDependencyFlags);
            }
            else
            {
                Flags = flags.Union(DependencyTreeFlags.GenericUnresolvedDependencyFlags);
            }

            if (isImplicit)
            {
                Flags = Flags.Except(DependencyTreeFlags.SupportsRemove);
            }
        }
 /// <summary>
 /// Create a project dependency node given ID
 /// </summary>
 private IDependencyNode CreateDependencyNode(DependencyNodeId id,
                                              int priority,
                                              IImmutableDictionary <string, string> properties,
                                              bool resolved)
 {
     return(new ProjectDependencyNode(id,
                                      flags: ProjectSubTreeNodeFlags.Union(DependencyNode.DependsOnOtherProviders),
                                      priority: priority,
                                      properties: properties,
                                      resolved: resolved));
 }
Beispiel #3
0
        public DependencyModel(
            string providerType,
            string path,
            string originalItemSpec,
            ProjectTreeFlags flags,
            bool resolved,
            bool isImplicit,
            IImmutableDictionary <string, string> properties)
        {
            Requires.NotNullOrEmpty(providerType, nameof(providerType));
            Requires.NotNullOrEmpty(path, nameof(path));

            ProviderType     = providerType;
            Path             = path;
            Name             = Path;
            OriginalItemSpec = originalItemSpec ?? Path;
            Resolved         = resolved;
            Implicit         = isImplicit;
            Properties       = properties ?? ImmutableStringDictionary <string> .EmptyOrdinal;
            Caption          = Name;

            if (resolved)
            {
                Flags = flags.Union(DependencyTreeFlags.GenericResolvedDependencyFlags);
            }
            else
            {
                Flags = flags.Union(DependencyTreeFlags.GenericUnresolvedDependencyFlags);
            }

            if (isImplicit)
            {
                Flags = Flags.Except(DependencyTreeFlags.SupportsRemove);
            }

            if (Properties.TryGetValue("Visible", out string visibleMetadata) &&
                bool.TryParse(visibleMetadata, out bool visible))
            {
                Visible = visible;
            }
        }
Beispiel #4
0
 public SubTreeRootDependencyModel(
     string providerType,
     string name,
     DependencyIconSet iconSet,
     ProjectTreeFlags flags)
     : base(providerType, name, name, flags, true, false, null)
 {
     IconSet = iconSet;
     Flags   = flags.Union(DependencyTreeFlags.DependencyFlags)
               .Union(DependencyTreeFlags.SubTreeRootNodeFlags)
               .Except(DependencyTreeFlags.SupportsRuleProperties)
               .Except(DependencyTreeFlags.SupportsRemove);
 }
        private static ProjectTreeFlags FilterFlags(
            ProjectTreeFlags flags,
            ProjectTreeFlags?additionalFlags,
            ProjectTreeFlags?excludedFlags)
        {
            if (additionalFlags.HasValue)
            {
                flags = flags.Union(additionalFlags.Value);
            }

            if (excludedFlags.HasValue)
            {
                flags = flags.Except(excludedFlags.Value);
            }

            return(flags);
        }
 public SubTreeRootDependencyModel(
     string providerType,
     string name,
     ImageMoniker icon,
     ImageMoniker unresolvedIcon,
     ProjectTreeFlags flags)
     : base(providerType, name, name, flags, true, false, null)
 {
     Icon                   = icon;
     ExpandedIcon           = Icon;
     UnresolvedIcon         = unresolvedIcon;
     UnresolvedExpandedIcon = UnresolvedIcon;
     Flags                  = flags.Union(DependencyTreeFlags.DependencyFlags)
                              .Union(DependencyTreeFlags.SubTreeRootNodeFlags)
                              .Except(DependencyTreeFlags.SupportsRuleProperties)
                              .Except(DependencyTreeFlags.SupportsRemove);
 }
Beispiel #7
0
        public DependencyNode(DependencyNodeId id,
                              ProjectTreeFlags flags,
                              int priority = 0,
                              IImmutableDictionary <string, string> properties = null,
                              bool resolved = true)
        {
            Requires.NotNull(id, nameof(id));

            Id         = id;
            Caption    = Id.ItemSpec ?? string.Empty;
            Priority   = priority;
            Properties = properties;
            Resolved   = resolved;
            Flags      = Resolved
                        ? ResolvedDependencyFlags.Union(flags)
                        : UnresolvedDependencyFlags.Union(flags);
        }