private IProjectTree CreateProjectItemTreeNode( IDependencyViewModel viewModel, IRule rule, ProjectTreeFlags?additionalFlags = null, ProjectTreeFlags?excludedFlags = null) { ProjectTreeFlags flags = FilterFlags(viewModel.Flags, additionalFlags, excludedFlags); string filePath = (viewModel.OriginalModel != null && viewModel.OriginalModel.TopLevel && viewModel.OriginalModel.Resolved) ? viewModel.OriginalModel.GetTopLevelId() : viewModel.FilePath; var itemContext = ProjectPropertiesContext.GetContext( CommonServices.Project, file: filePath, itemType: viewModel.SchemaItemType, itemName: filePath); return(TreeServices.CreateTree( caption: viewModel.Caption, itemContext: itemContext, propertySheet: null, browseObjectProperties: rule, icon: viewModel.Icon.ToProjectSystemType(), expandedIcon: viewModel.ExpandedIcon.ToProjectSystemType(), visible: true, flags: flags)); }
/// <summary> /// Updates or creates new IProjectItemTree node /// </summary> private IProjectTree CreateOrUpdateProjectItemTreeNode( IProjectTree node, IDependencyViewModel viewModel, IRule rule, ProjectTreeFlags?additionalFlags = null, ProjectTreeFlags?excludedFlags = null) { if (node == null) { var flags = FilterFlags(viewModel.Flags, additionalFlags, excludedFlags); var itemContext = ProjectPropertiesContext.GetContext( CommonServices.Project, file: viewModel.FilePath, itemType: viewModel.SchemaItemType, itemName: viewModel.FilePath); node = TreeServices.CreateTree( caption: viewModel.Caption, itemContext: itemContext, propertySheet: null, visible: true, browseObjectProperties: rule, flags: viewModel.Flags, icon: viewModel.Icon.ToProjectSystemType(), expandedIcon: viewModel.ExpandedIcon.ToProjectSystemType()); } else { node = UpdateTreeNode(node, viewModel, rule); } return(node); }
private IProjectTree CreateProjectTreeNode( IDependencyViewModel viewModel, IRule rule, ProjectTreeFlags?additionalFlags = null, ProjectTreeFlags?excludedFlags = null) { // For IProjectTree remove ProjectTreeFlags.Common.Reference flag, otherwise CPS would fail to // map this node to graph node and GraphProvider would be never called. // Only IProjectItemTree can have this flag ProjectTreeFlags flags = FilterFlags(viewModel.Flags.Except(DependencyTreeFlags.BaseReferenceFlags), additionalFlags, excludedFlags); string filePath = (viewModel.OriginalModel != null && viewModel.OriginalModel.TopLevel && viewModel.OriginalModel.Resolved) ? viewModel.OriginalModel.GetTopLevelId() : viewModel.FilePath; return(TreeServices.CreateTree( caption: viewModel.Caption, filePath: filePath, visible: true, browseObjectProperties: rule, flags: flags, icon: viewModel.Icon.ToProjectSystemType(), expandedIcon: viewModel.ExpandedIcon.ToProjectSystemType())); }
/// <summary> /// Updates or creates new IProjectTree node /// </summary> private IProjectTree CreateOrUpdateProjectTreeNode( IProjectTree node, IDependencyViewModel viewModel, IRule rule, ProjectTreeFlags?additionalFlags = null, ProjectTreeFlags?excludedFlags = null) { if (node == null) { // For IProjectTree remove ProjectTreeFlags.Common.Reference flag, otherwise CPS would fail to // map this node to graph node and GraphProvider would be never called. // Only IProjectItemTree can have this flag var flags = FilterFlags(viewModel.Flags.Except(DependencyTreeFlags.BaseReferenceFlags), additionalFlags, excludedFlags); node = TreeServices.CreateTree( caption: viewModel.Caption, filePath: viewModel.FilePath, visible: true, browseObjectProperties: rule, flags: flags, icon: viewModel.Icon.ToProjectSystemType(), expandedIcon: viewModel.ExpandedIcon.ToProjectSystemType()); } else { node = UpdateTreeNode(node, viewModel, rule); } return(node); }